commit 4d87dd6f374cf2301b31c7660bcd6afd39d437d8 Author: Wen-Yen Chuang Date: Mon Dec 12 21:29:30 2011 +0800 * l3afpad-0.8.18.1.1 diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..6d608a3 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,5 @@ +Bugs and feature requests please mail to: +Wen-Yen Chuang + +Forked from Leafpad 0.8.18.1, http://tarot.freeshell.org/leafpad/ +Thanks to Tarot Osuji diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 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. + + 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 Lesser 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 + + 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) + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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) year 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 Lesser General +Public License instead of this License. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..a99f74b --- /dev/null +++ b/ChangeLog @@ -0,0 +1,297 @@ +2011-09-01 + + version 0.8.18.1.1: + * Ported to GTK+ 3.x + * Sync license data with latest files published by FSF + +2010-12-23 + + version 0.8.18.1: + * Fixed saving (Jan-Erik Rediger, Edward Sheldrake). + +2010-12-18 + + version 0.8.18: + * Fixed action when file name contains colon + (John Lindgren, Mikko Viinamaki). + * Fixed memory leak on saving file (Dmitry Artamonow). + * Fixed caseless search bug (Dmitry Artamonow). + * Fixed memory leak on line numbering (Hongwei Xi). + * Fixed truncation on saving file (Alex, brian m. carlson). + * Added translations: eo, gl. + * Updated translations: fi, hu. + +2009-10-27 + + version 0.8.17: + * Fixed find dialog behaviour with GTK+ 2.18 (Radu-Cristian, MoD). + * Fixed SEGV when config file is 0 byte (Erik Suit). + * Added translations: br, nn, sl, sr. + * Updated translations: de, es, fr, id, lv, pl. + +2008-12-18 + + version 0.8.16: + * Removed "Shift+Enter" key-binding (minhsien0330). + * Updated French translation (Marc Veillet). + * Updated Italian translation (Vincenzo Campanella). + +2008-09-03 + + version 0.8.15: + * Named main window with gtk_widget_set_name (Cory Burgett). + * Added Brazilian Portuguese translation (Leslie Harlley Watter). + * Added Indonesian translation (Andhika Padmawan). + * Added Danish translation (Joe Hansen). + * Updated Traditional Chinese translation (Wei-Lun Chao). + * Updated Lithuanian translation (Gintautas Miliauskas). + +2008-02-13 + + version 0.8.14: + * Added Basque translation (Mikel Olasagasti). + * Updated Vietnamese translation (Clytie Siddall). + * Updated Dutch translation (Benno Schulenberg). + * Updated Irish translation (Kevin Scannell). + * Updated Simplified Chinese translation (Li Daobing). + +2007-12-15 + + version 0.8.13: + * Changed configuration file directory to XDG base (Glib >= 2.6) + (thanks Olivier Duclos). + * Fixed drag and DROP behaviour (GTK+ >= 2.10) + (thanks Markus Torstensson). + +2007-09-17 + + version 0.8.12: + * Added Print Preview menu (GTK+ >= 2.10). + * Fixed one-by-one replace behaviour (GTK+ >= 2.10). + * Updated Vietnamese translation (Clytie Siddall). + +2007-07-07 + + version 0.8.11: + * Followed GNOME Goals (AppIcon, ApplicationCategory, PoLinguas). + * Added GTK+ 2.10 Printing feature. + * Added "--jump=LINENUM" command line option. + * Added temporal "Always on Top" feature invoked by Ctrl+T. + * Fixed auto indentation behaviour. + * Updated Simplified Chinese translation (Li Daobing). + +2007-04-08 + + version 0.8.10: + * Added icons for Tango Desktop (Lapo Calamandrei). + * Added Dutch translation (Wouter Van Hemel). + * Added Finnish translation (Eero Tamminen). + * Added Irish translation (Kevin Patrick Scannell). + * Added Korean translation (Seo Sanghyeon). + * Added Ukrainian translation (Youri Bulka). + * Updated Greek translation (Stavros Giannouris). + * Updated Bulgarian translation (Yavor Doganov). + * Updated German translation (Andreas Schweitzer). + * Updated Hungarian translation (Reviczky Adam Janos). + +2006-04-14 + + version 0.8.9: + * Find proper font if no glyph found from current font when printing. + * Fixed word wrapping of wide character string when printing. + +2006-04-07 + + version 0.8.8: + * Changed to use libgnomeprint22 for printing. + * Changed configure.ac to use newer functions automatically. + * Fixed pointer type error under sparc64 (thanks Steven Mestdagh). + +2006-01-20 + + version 0.8.7: + * Implemented text DnD. + +2006-01-03 + + version 0.8.6: + * Fixed "Replace all at once" with no string (thanks Marek). + * Updated Swedish translation (Isak Savo). + +2005-11-12 + + version 0.8.5: + * Fixed curious highlighting behaviour. + * Attached 32*32 icon for some package maintainer. + * Updated Traditional Chinese translation (OLS3). + +2005-09-24 + + version 0.8.4: + * Implemented GOption (thanks Magnus Bergman). + * Added '--tab-width' command line option. + * Inform read-only file by less/greater than sign bracket. + * Improved Korean auto-detection. + * Added Hebrew translation (Yo'av Moshe). + * Added Turkish translation (Kaya Oguz). + * Added Greek translation (Stavros Giannouris). + * Updated Italian translation (Alessio D'Ascanio). + +2005-07-22 + + version 0.8.3: + * Implemented replaced word highlighting. + * Modified line-number margin. + * Fixed space-separeted filename bugs (thanks Andrea Antolini). + * Added Slovak translation (Peter Chabada). + * Updated Polish translation (Michal Wrobel). + +2005-07-02 + + version 0.8.2: + * Improved dependency caused by intltool (thanks Machismo Ulverstein). + * Modified left margin. + * Fixed Macintosh return code bug (thanks young dave). + * Fixed "response" signal of about diaglog (thanks Muthiah Annamalai). + * Updated Bulgarian translation (Yavor Doganov). + * Updated Simplified Chinese translation (Carlos Z.F. Liu). + +2005-05-14 + + version 0.8.1: + * Implemented searched word highlighting. + * Modified Up/Down/PageUp/PageDown behaviour when scroll-outed. + * Fixed space-separated filename bug (thanks Chris Everts). + * Added Bulgarian translation (Yavor Doganov). + * Added Vietnamese translation (Quy NGUYEN DAI). + * Updated Hungarian translation (Reviczky Adam Janos). + * Updated Polish translation (Michal Wrobel). + +2005-04-29 + + version 0.8.0: + * Implemented glib-gettext & intltool. + * Added Print feature (only invoke lpr). + * Added load stdin feature. + * Added command line options. + * Added '--enable-chooser' configure option for GtkFileChooser. + * Modified some small points (DnD, caret, shadow, sensitivity...). + * Changed shortcut keys displayed on menu. + * Fixed replace question dialog behavior (thanks Keith). + * Added Portuguese translation (thanks Alan Kelon). + +2004-12-26 + + version 0.7.9: + * Shrinked codeset menu. + * Fixed destroy response for question dialog (thanks Richard S). + * Removed local "G_BROKEN_FILENAMES" setting. + * Removed scrollbar_spacing manipulation. + * Updated Swedish translation (by Isak Savo). + * Added Lithuanian translation (thanks Lech Jankovski). + * Added Polish translation (thanks Michal Wrobel). + +2004-12-03 + + version 0.7.8: + * Implemented widget sesnsitivity. + * Changed scrollbar_spacing to zero. + * Changed about dialog caption. + * Fixed undo sequency for Ctrl+V overwrite. + * Added Hungarian translation (thanks Reviczky Adam Janos). + * Added Catalan translation (thanks David Rosal). + * Added Tamil translation (thanks Vijay Durairaj). + * Added Italian translation (thanks Alessio D'Ascanio). + +2004-11-21 + + version 0.7.7.1: + * Fixed undo function for the case start from '%' character. + +2004-11-19 + + version 0.7.7: + * Improved undo behavior (by word). + * Fixed multi-line unindent properly. + * Updated German translation (thanks Ruediger Arp). + * Added Czech translation (thanks Petr Vyslouzil). + +2004-11-12 + + version 0.7.6: + * Improved command line recognition of filename (uri & space-separated). + * Added MimeType entry to l3afpad.desktop (suggested by Carlos). + * Assigned Ctrl+G & Shift+Ctrl+G to Find Next/Previous. + * Added statements of copying permission to all source codes. + * Added French translation (thanks Luc Pionchon). + * Added Spanish translation (thanks Lucas Vieites). + +2004-10-29 + + version 0.7.5: + * Added l3afpad.desktop file. + * Fixed DnD with space-separated filename (thanks Eugenia). + * Added Russian translation (thanks Artem Vakhitov). + * Added Swedish translation (thanks Isak Savo). + * Added German translation (thanks Sebastian Stach). + +2004-10-22 + + version 0.7.4: + * Changed application icon to HIG based. + * Changed icon directory to "GNOME 2 developer's guide" based. + * Improved drag and drop (xffm ready). + * Improved Ctrl+W interrupt. + * Fixed undo manner for overwrite mode. + * Fixed scrolling manner for paste. + * Fixed auto-indent manner when selection bound exists. + +2004-10-17 + + version 0.7.3.1: + * Fixed seg-fault caused by search_string (thanks UTSUMI Hirosi). + +2004-10-15 + + version 0.7.3: + * Added drag and drop func (still single file only). + * Fixed initial value of search_string. + * Fixed cancel button action of font dialog. + * Fixed capital W input using with old GTK+. + * Added Traditional Chinese translation (thanks OLS3). + +2004-10-01 + + version 0.7.2: + * Added "display line numbers" func. + * Added "toggle tab width" func (Ctrl+Tab). + * Changed "/File/New" action (create new window). + * Changed description to "simple text editor". + * Added Simplified Chinese translation (thanks Carlos Z.F. Liu). + +2004-09-24 + + version 0.7.1: + * Added auto-indent func. + * Added multi-line indent func. + * Bracket title if the file not exist. + * Changed error message at codeset conversion error. + +2004-09-17 + + version 0.7.0: + * Started recording ChangeLog. + * Added undo/redo func (still not word level). + * Added printing "modified" sign func. + * Removed app name from title. + * Improved auto-detection for windows-125x. + +2004-xx-xx + + version 0.6.x: + * Implemented gettext. + * Implemented autoconf/automake. + * Added search/replace func. + version 0.5.x: + * Added charset handling func. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..7d1c323 --- /dev/null +++ b/INSTALL @@ -0,0 +1,365 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. + + 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. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..e432322 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = src data po + +EXTRA_DIST = \ + intltool-extract.in intltool-merge.in intltool-update.in diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..5be418a --- /dev/null +++ b/Makefile.in @@ -0,0 +1,707 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ +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 = : +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ + compile config.guess config.sub depcomp install-sh missing \ + mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-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 uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(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 +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +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@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +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_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = src data po +EXTRA_DIST = \ + intltool-extract.in intltool-merge.in intltool-update.in + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: 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__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +# 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. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; 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" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + 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; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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 +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(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 \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + 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) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__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*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(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 \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(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__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: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { 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 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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +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 mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -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 $(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 + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ + distclean distclean-generic distclean-hdr 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-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 pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am + + +# 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: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..e1e53aa --- /dev/null +++ b/README @@ -0,0 +1,68 @@ +L3afpad - GTK+ based simple text editor + + +Description +=========== + +L3afpad is a simple GTK+ text editor that emphasizes simplicity. As development +focuses on keeping weight down to a minimum, only the most essential features +are implemented in the editor. L3afpad is simple to use, is easily compiled, +requires few libraries, and starts up quickly. + +This program is released under the GNU General Public License (GPL) version 2, +see the file 'COPYING' for more information. + + +Features +======== + + * Codeset option (Some OpenI18N registered) + * Auto codeset detection (UTF-8 and some codesets) + * Unlimitted Undo/Redo + * Auto/Multi-line Indent + * Display line numbers + * Drag and Drop + * Printing + + +Installation +============ + +L3afpad requires GTK+-3.x.x libraries. + +Simple install procedure: + + $ tar xzvf l3afpad-x.x.x.tar.gz # unpack the sources + $ cd l3afpad-x.x.x # change to the toplevel directory + $ ./configure # run the `configure' script + $ make # build L3afpad + [ Become root if necessary ] + # make install-strip # install L3afpad + +See the file 'INSTALL' for more detailed information. + + +Keybindings +=========== +Ctrl-N New +Ctrl-O Open +Ctrl-S Save +Shift-Ctrl-S Save As +Ctrl-W Close +Ctrl-P Print +Ctrl-Q Quit +Ctrl-Z Undo +Shift-Ctrl-Z (Ctrl-Y) Redo +Ctrl-X Cut +Ctrl-C Copy +Ctrl-V Paste +Ctrl-A Select All +Ctrl-F Find +Ctrl-G (F3) Find Next +Shift-Ctrl-G (Shift-F3) Find Previous +Ctrl-H (Ctrl-R) Replace +Ctrl-J Jump To +Ctrl-T Always on Top +Ctrl-Tab toggle tab width +Tab with selection bound multi-line indent +Shift-Tab with selection bound multi-line unindent diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..be51b7c --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1818 @@ +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 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_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. +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'.])]) + +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 +# +# Modified to require ngettext +# Matthias Clasen 08/06/2004 +# +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.ac. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) + +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_ac,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl + +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) + + + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 40 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + + INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + ] + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + + +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# 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. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +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 +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# 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]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +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 +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +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 +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# 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 $1]) + +_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 +])# PKG_CHECK_MODULES + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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.11' +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.11.1], [], + [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.11.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 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], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# 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. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# 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. + +# serial 10 + +# 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", "GCJ", or "OBJC". +# 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 + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" 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'. + 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 8's {/usr,}/bin/sh. + touch 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 + ;; + 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, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# 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. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 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. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _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. FIXME. This creates each `.P' file that we will +# 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" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# 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. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 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. + +# serial 16 + +# 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. + +# 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.62])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], +[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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [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([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. 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)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl 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 +]) + +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, 2003, 2005, 2008 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}" != 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, 2005 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. + +# serial 2 + +# 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])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 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. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# 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. + +# serial 6 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != 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 +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# 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. + +# serial 6 + +# 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 supports --run. +# If it does, 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 --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 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_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 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. + +# serial 4 + +# _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])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# 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. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# 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 ( + 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 + rm -f conftest.file + 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 + + 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)]) + +# Copyright (C) 2001, 2003, 2005 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, 2008 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. + +# serial 2 + +# _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, 2005 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. + +# serial 2 + +# _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. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +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 + diff --git a/autogen.sh b/autogen.sh new file mode 100644 index 0000000..0796e01 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,5 @@ +#!/bin/sh +aclocal +autoheader +automake --gnu --add-missing --copy +autoconf diff --git a/compile b/compile new file mode 100644 index 0000000..1b1d232 --- /dev/null +++ b/compile @@ -0,0 +1,142 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2005-05-14.22 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# 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 +# . + +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 $? + ;; +esac + +ofile= +cfile= +eat= + +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 -e 's|^.*/||' -e '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 + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/config.guess b/config.guess new file mode 100644 index 0000000..e3a2116 --- /dev/null +++ b/config.guess @@ -0,0 +1,1533 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-10' + +# 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 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# 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 Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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 + +# 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 tupples: *-*-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=`(/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 ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + 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 + # 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/[-_].*/\./'` + ;; + 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}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${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 ;; + 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'` + exit ;; + 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: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:*:[456]) + 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/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + 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:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd | genuineintel) + 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-gnu`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 '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + 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-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + 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 | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + 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="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + 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-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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 configury 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 ;; + 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 ;; + 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 + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + 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 ;; + 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 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +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` +/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: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..6009783 --- /dev/null +++ b/config.h.in @@ -0,0 +1,85 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if Emacs key theme is enabled. */ +#undef ENABLE_EMACS + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* Define if print feature is enabled. */ +#undef ENABLE_PRINT + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define the location where the catalogs will be installed */ +#undef LOCALEDIR + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* 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 to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION diff --git a/config.sub b/config.sub new file mode 100644 index 0000000..eb0389a --- /dev/null +++ b/config.sub @@ -0,0 +1,1693 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-11' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# 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 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# 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. + + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# 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. + +# 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 + $0 [OPTION] 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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + 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) + 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*) + 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 \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | 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 \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | 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 \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-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-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | 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-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | 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-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | 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 + ;; + 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 + ;; + 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) + 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 + ;; + 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'm not sure what "Sysv32" means. Should this be sysv3.2? + 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 + ;; + 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 + ;; + mingw32) + basic_machine=i386-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 + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + 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 + ;; + 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) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + 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 | ppc64-le | powerpc64-little) + 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) + 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 + ;; + 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 + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-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 + ;; + 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. + -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* | -solaris* | -sym* \ + | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -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* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -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*) + # 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 + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -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 + ;; + # 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 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + 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: diff --git a/configure b/configure new file mode 100755 index 0000000..0562bfb --- /dev/null +++ b/configure @@ -0,0 +1,7885 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.68 for L3afpad 0.8.18.1.1. +# +# Report bugs to . +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 + +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" + 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 \$(( 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 : + # 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 + export CONFIG_SHELL + 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+"$@"} +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 caleb@calno.com +$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_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; } + + # 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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'" + + +test -n "$DJDIR" || exec 7<&0 &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='L3afpad' +PACKAGE_TARNAME='l3afpad' +PACKAGE_VERSION='0.8.18.1.1' +PACKAGE_STRING='L3afpad 0.8.18.1.1' +PACKAGE_BUGREPORT='caleb@calno.com' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +MKINSTALLDIRS +POSUB +POFILES +PO_IN_DATADIR_FALSE +PO_IN_DATADIR_TRUE +INTLLIBS +INSTOBJEXT +GMOFILES +CATOBJEXT +CATALOGS +MSGFMT_OPTS +EGREP +GREP +CPP +GETTEXT_PACKAGE +GTK_LIBS +GTK_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +DATADIRNAME +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +ALL_LINGUAS +INTLTOOL_PERL +GMSGFMT +MSGFMT +MSGMERGE +XGETTEXT +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +USE_NLS +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 +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' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_nls +enable_dependency_tracking +enable_print +enable_emacs +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +GTK_CFLAGS +GTK_LIBS +CPP' + + +# 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' +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 ;; + + -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 +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 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + 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 L3afpad 0.8.18.1.1 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] + --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/l3afpad] + --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 +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of L3afpad 0.8.18.1.1:";; + 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] + --disable-nls do not use Native Language Support + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-print force to disable print feature + --enable-emacs implement Emacs key theme (experimental) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + 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 + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + CPP C preprocessor + +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 . +_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 +L3afpad configure 0.8.18.1.1 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 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 || + $as_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_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 declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#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_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_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 caleb@calno.com ## +## ------------------------------ ##" + ) | 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_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 +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 L3afpad $as_me 0.8.18.1.1, which was +generated by GNU Autoconf 2.68. 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 + +# 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 + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; 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 \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$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. + + +# 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# 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 ( + 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 + rm -f conftest.file + 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 + + 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; } +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 --run true"; then + am_missing_run="$MISSING --run " +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}" != 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + +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=$PACKAGE_TARNAME + VERSION=$PACKAGE_VERSION + + +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"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +ac_config_headers="$ac_config_headers config.h" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# 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='\' +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 +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 +#include +#include +#include +/* 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 + +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'. + 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 8's {/usr,}/bin/sh. + touch 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 + ;; + 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 + + + + + +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac + +if test -n ""; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 +$as_echo_n "checking for intltool >= ... " >&6; } + + INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; 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_INTLTOOL_UPDATE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_UPDATE="$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 +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; 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_INTLTOOL_MERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_MERGE="$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 +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; 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_INTLTOOL_EXTRACT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_EXTRACT="$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 +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 +fi + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; 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_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XGETTEXT="$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 +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; 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_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MSGMERGE="$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 +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; 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_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MSGFMT="$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 +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; 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_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$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 + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; 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_INTLTOOL_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_PERL="$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 +INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL +if test -n "$INTLTOOL_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_PERL"; then + as_fn_error $? "perl not found" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } +fi +if test "xno-xml" != "xno-xml"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + else + as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile + + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + DATADIRNAME=share +else + DATADIRNAME=lib +fi + + ;; + *) + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + + + # require >= 0.31 for autoreconf +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 +#include +#include +#include +/* 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 + +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'. + 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 8's {/usr,}/bin/sh. + touch 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 + ;; + 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 + + +if test "$GCC" = "yes"; then + CFLAGS="$CFLAGS -Wall -Wextra" +fi +if test "x$CC" != xcc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +else + { $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; } +fi +set dummy $CC; ac_cc=`$as_echo "$2" | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval \${ac_cv_prog_cc_${ac_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. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { { 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; } && + test -f conftest2.$ac_objext && { { 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 + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&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_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { { 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; } && + test -f conftest2.$ac_objext && { { 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 + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; 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; } + +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != 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 + + + + + + + + + + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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.9.0 + { $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 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 +$as_echo_n "checking for GTK... " >&6; } + +if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0" 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 + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0" 2>&1` + else + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gtk+-3.0) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "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. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +# Check whether --enable-print was given. +if test "${enable_print+set}" = set; then : + enableval=$enable_print; +fi + +if test "$enable_print" != "no"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + +$as_echo "#define ENABLE_PRINT 1" >>confdefs.h + +fi +fi + +# Check whether --enable-emacs was given. +if test "${enable_emacs+set}" = set; then : + enableval=$enable_emacs; +$as_echo "#define ENABLE_EMACS 1" >>confdefs.h + + +fi + + +GETTEXT_PACKAGE="$PACKAGE" + +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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 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" + { test -f "$ac_path_GREP" && $as_test_x "$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" + { test -f "$ac_path_EGREP" && $as_test_x "$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 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 +#include +#include +#include + +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 + +_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 + +_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 +#include +#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 locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LOCALE_H 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if ${am_cv_val_LC_MESSAGES+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=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: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then + +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if ${gt_cv_func_ngettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes +else + gt_cv_func_ngettext_libc=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: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if ${gt_cv_func_dgettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !dgettext ("","") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_dgettext_libc=yes +else + gt_cv_func_dgettext_libc=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: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $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 bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_bindtextdomain=yes +else + ac_cv_lib_intl_bindtextdomain=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_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $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 ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $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 dgettext (); +int +main () +{ +return dgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dgettext=yes +else + ac_cv_lib_intl_dgettext=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_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes +fi + +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $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 ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dcgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $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 dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dcgettext=yes +else + ac_cv_lib_intl_dcgettext=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_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv +else + : +fi + +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; 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_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + +fi +done + + MSGFMT_OPTS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $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; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; 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_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$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 + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; 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_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + CATOBJEXT=.mo + DATADIRNAME=lib +fi + + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + +fi + + + + if test "$gt_cv_have_gettext" = "yes" ; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + ac_config_commands="$ac_config_commands default-1" + + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" + +cat >>confdefs.h <<_ACEOF +#define LOCALEDIR "$localedir" +_ACEOF + + + +ac_config_files="$ac_config_files Makefile src/Makefile data/Makefile po/Makefile.in" + +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 + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +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 + + ac_config_commands="$ac_config_commands po/stamp-it" + + +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 + +: "${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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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 L3afpad $as_me 0.8.18.1.1, which was +generated by GNU Autoconf 2.68. 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 ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +L3afpad config.status 0.8.18.1.1 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 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" ac_aux_dir="$ac_aux_dir" + + +_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 + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; + + *) 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` +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 +' >$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 +' >$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"" || { + # Autoconf 2.62 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. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac ;; + "po/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 + fi + rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" + >"po/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/POTFILES + } + ' "po/Makefile.in" >"po/Makefile" + rm -f "po/Makefile.tmp" + mv "po/stamp-it.tmp" "po/stamp-it" + ;; + + 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 + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..4052be2 --- /dev/null +++ b/configure.ac @@ -0,0 +1,36 @@ +AC_INIT(L3afpad, 0.8.18.1.1, caleb@calno.com) +AM_INIT_AUTOMAKE($PACKAGE_TARNAME, $PACKAGE_VERSION) +AM_CONFIG_HEADER(config.h) + +AC_PROG_INTLTOOL(, no-xml) # require >= 0.31 for autoreconf +AC_PROG_CC +if test "$GCC" = "yes"; then + CFLAGS="$CFLAGS -Wall -Wextra" +fi +AM_PROG_CC_C_O + +PKG_CHECK_MODULES(GTK, gtk+-3.0) + +AC_ARG_ENABLE(print, + AC_HELP_STRING([--disable-print], [force to disable print feature])) +if test "$enable_print" != "no"; then + PKG_CHECK_EXISTS(gtk+-3.0 >= 3.0.10, + AC_DEFINE(ENABLE_PRINT, 1, [Define if print feature is enabled.])) +fi + +AC_ARG_ENABLE(emacs, + AC_HELP_STRING([--enable-emacs], [implement Emacs key theme (experimental)]), + AC_DEFINE(ENABLE_EMACS, 1, [Define if Emacs key theme is enabled.]) +) + +GETTEXT_PACKAGE="$PACKAGE" +AC_SUBST(GETTEXT_PACKAGE) +AM_GLIB_GNU_GETTEXT +AM_GLIB_DEFINE_LOCALEDIR(LOCALEDIR) + +AC_OUTPUT([ + Makefile + src/Makefile + data/Makefile + po/Makefile.in +]) diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..909e3cf --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,11 @@ +desktopdir = $(datadir)/applications +desktop_in_files = l3afpad.desktop.in +desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) +@INTLTOOL_DESKTOP_RULE@ + +pixmapsdir = $(datadir)/pixmaps +pixmaps_DATA = l3afpad.png l3afpad.xpm + +EXTRA_DIST = \ + $(desktop_DATA) $(desktop_in_files) \ + $(pixmaps_DATA) diff --git a/data/Makefile.in b/data/Makefile.in new file mode 100644 index 0000000..bcbd3dd --- /dev/null +++ b/data/Makefile.in @@ -0,0 +1,420 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ +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 = : +subdir = data +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +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__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(pixmapsdir)" +DATA = $(desktop_DATA) $(pixmaps_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +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@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +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_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +desktopdir = $(datadir)/applications +desktop_in_files = l3afpad.desktop.in +desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) +pixmapsdir = $(datadir)/pixmaps +pixmaps_DATA = l3afpad.png l3afpad.xpm +EXTRA_DIST = \ + $(desktop_DATA) $(desktop_in_files) \ + $(pixmaps_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(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) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile +.PRECIOUS: 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__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-desktopDATA: $(desktop_DATA) + @$(NORMAL_INSTALL) + test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + 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)$(desktopdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ + done + +uninstall-desktopDATA: + @$(NORMAL_UNINSTALL) + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(desktopdir)" && rm -f $$files +install-pixmapsDATA: $(pixmaps_DATA) + @$(NORMAL_INSTALL) + test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" + @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ + 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)$(pixmapsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ + done + +uninstall-pixmapsDATA: + @$(NORMAL_UNINSTALL) + @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pixmapsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pixmapsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(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 $(DATA) +installdirs: + for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(pixmapsdir)"; 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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +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 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-desktopDATA install-pixmapsDATA + +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 + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-desktopDATA uninstall-pixmapsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-desktopDATA 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-pixmapsDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am uninstall uninstall-am uninstall-desktopDATA \ + uninstall-pixmapsDATA + +@INTLTOOL_DESKTOP_RULE@ + +# 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: diff --git a/data/l3afpad.desktop b/data/l3afpad.desktop new file mode 100644 index 0000000..ec058f3 --- /dev/null +++ b/data/l3afpad.desktop @@ -0,0 +1,86 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=L3afpad +Name[bg]=L3afpad +Name[br]=L3afpad +Name[ca]=L3afpad +Name[cs]=L3afpad +Name[da]=L3afpad +Name[de]=L3afpad +Name[el]=L3afpad +Name[eo]=L3afpad +Name[es]=L3afpad +Name[eu]=L3afpad +Name[fi]=L3afpad +Name[fr]=L3afpad +Name[ga]=L3afpad +Name[gl]=L3afpad +Name[he]=L3afpad +Name[hu]=L3afpad +Name[id]=L3afpad +Name[it]=L3afpad +Name[ja]=L3afpad +Name[ko]=L3afpad +Name[lt]=L3afpad +Name[lv]=L3afpad +Name[nl]=L3afpad +Name[nn]=L3afpad +Name[pl]=L3afpad +Name[pt]=L3afpad +Name[pt_BR]=L3afpad +Name[ru]=L3afpad +Name[sk]=L3afpad +Name[sl]=L3afpad +Name[sr]=L3afpad +Name[sv]=L3afpad +Name[ta]=L3afpad +Name[tr]=L3afpad +Name[uk]=L3afpad +Name[vi]=L3afpad +Name[zh_CN]=L3afpad +Name[zh_TW]=L3afpad +Comment=Simple text editor +Comment[bg]=Опростен текстов редактор +Comment[br]=Embanner testennou eeun +Comment[ca]=Editor de text simple +Comment[cs]=Jednoduchý textový editor +Comment[da]=Enkel tekstbehandler +Comment[de]=Einfacher Texteditor +Comment[el]=Απλός επεξεργαστής κειμένου +Comment[eo]=Simpla tekstredaktilo +Comment[es]=Editor de texto simple +Comment[eu]=Testu editore sinplea +Comment[fi]=Yksinkertainen tekstieditori +Comment[fr]=Un éditeur de texte tout simple +Comment[ga]=Eagarthóir simplí +Comment[gl]=Editor de texto sinxelo +Comment[he]=עורך טקסט פשוט +Comment[hu]=Egyszerű szöveg szerkesztő +Comment[id]=Penyunting teks sederhana +Comment[it]=Semplice editor di testi +Comment[ja]=シンプルなテキストエディタ +Comment[ko]=간단한 텍스트 편집기 +Comment[lt]=Paprastas teksto redaktorius +Comment[lv]=Vienkāršā teksta redaktors +Comment[nl]=Eenvoudige teksteditor +Comment[nn]=Enkel tekstredigering +Comment[pl]=Prosty edytor tekstu +Comment[pt]=Simples editor de texto +Comment[pt_BR]=Editor de texto simples +Comment[ru]=Простой текстовый редактор +Comment[sk]=Jednoduchý textový editor +Comment[sl]=Preprost urejevalnik besedila +Comment[sr]=Једноставан уређивач текста +Comment[sv]=Enkel textredigerare +Comment[ta]=எளிமையான உரை பதிப்பான் +Comment[tr]=Basit metin düzenleyicisi +Comment[uk]=Проситий текстовий редактор +Comment[vi]=Một trình soạn thảo văn bản đơn giản +Comment[zh_CN]=简易文字编辑器 +Comment[zh_TW]=簡易文字編輯器 +Exec=l3afpad %f +Icon=l3afpad +Terminal=false +Type=Application +MimeType=text/plain +Categories=GTK;Utility;TextEditor; diff --git a/data/l3afpad.desktop.in b/data/l3afpad.desktop.in new file mode 100644 index 0000000..6f57f5e --- /dev/null +++ b/data/l3afpad.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +_Name=L3afpad +_Comment=Simple text editor +Exec=l3afpad %f +Icon=l3afpad +Terminal=false +Type=Application +MimeType=text/plain +Categories=GTK;Utility;TextEditor; diff --git a/data/l3afpad.png b/data/l3afpad.png new file mode 100644 index 0000000..15f84be Binary files /dev/null and b/data/l3afpad.png differ diff --git a/data/l3afpad.xpm b/data/l3afpad.xpm new file mode 100644 index 0000000..b804053 --- /dev/null +++ b/data/l3afpad.xpm @@ -0,0 +1,180 @@ +/* XPM */ +static char *l3afpad[] = { +/* columns rows colors chars-per-pixel */ +"32 32 142 2 ", +" c #5D8404", +". c #5E8903", +"X c #648C04", +"o c #698F03", +"O c #678E0E", +"+ c #6C9403", +"@ c #6F9903", +"# c #719603", +"$ c #739B03", +"% c #7A9E03", +"& c #7B9F0A", +"* c #7B9D17", +"= c #77A203", +"- c #7DA204", +"; c #82A505", +": c #85A905", +"> c #8AAD06", +", c #82A40B", +"< c #89A709", +"1 c #86A909", +"2 c #8AAD0A", +"3 c #8CB106", +"4 c #8CB009", +"5 c #90B207", +"6 c #92B40C", +"7 c #97BA0B", +"8 c #9ABC0D", +"9 c #85AB14", +"0 c #8AAD13", +"q c #84A218", +"w c #8EB111", +"e c #8CB11A", +"r c #94B613", +"t c #95B811", +"y c #9CBD14", +"u c #95B51B", +"i c #9BBC1B", +"p c #A0BF11", +"a c #8CAE27", +"s c #90AB28", +"d c #91B020", +"f c #9DBC21", +"g c #98B62B", +"h c #9BB92B", +"j c #9CB73B", +"k c #A1BC3B", +"l c #9EC016", +"z c #9FC01F", +"x c #A1C10D", +"c c #A3C413", +"v c #A2C21C", +"b c #A8C71A", +"n c #ABCA1D", +"m c #A2C123", +"M c #A8C721", +"N c #A7C824", +"B c #ADCC22", +"V c #A6C52C", +"C c #A8C72D", +"Z c #ABCC2A", +"A c #B0D025", +"S c #A8C730", +"D c #ADCB32", +"F c #A8C339", +"G c #AFCC3D", +"H c #B3CE3F", +"J c #B0D036", +"K c #B3D23C", +"L c #B8D438", +"P c #8CAE4A", +"I c #94AF40", +"U c #96B156", +"Y c #9DBB51", +"T c #A2BA4B", +"R c #A4BD55", +"E c #A7C143", +"W c #A8C541", +"Q c #ACC843", +"! c #B3CD41", +"~ c #B3CB4C", +"^ c #B5D342", +"/ c #B8D24B", +"( c #ACC55A", +") c #B8CE59", +"_ c #BED851", +"` c #BED45A", +"' c #A6C066", +"] c #B8CE64", +"[ c #B7CE6E", +"{ c #B8CC6A", +"} c #BCD06F", +"| c #B9CD7C", +" . c #BAD075", +".. c #BED17B", +"X. c #C0D561", +"o. c #C5DB66", +"O. c #C1D76B", +"+. c #C5DB6A", +"@. c #C2D573", +"#. c #C2D579", +"$. c #C7DA7D", +"%. c #C9DC7B", +"&. c #B8CA80", +"*. c #B6CA8E", +"=. c #BFCF9A", +"-. c #C4D582", +";. c #CCDC85", +":. c #C5D58F", +">. c #CCDB8D", +",. c #CCDB96", +"<. c #C1D09D", +"1. c #CBD79C", +"2. c #D0DD93", +"3. c #D3DF9D", +"4. c #D3E291", +"5. c #D4E299", +"6. c #D9E79B", +"7. c #C7D7A6", +"8. c #C6D3AA", +"9. c #CEDBAF", +"0. c #CBD6B3", +"q. c #CDD8B4", +"w. c #D4DEB6", +"e. c #DAE8A1", +"r. c #D8E3AA", +"t. c #DBE4BB", +"y. c #DFE8BC", +"u. c #E0ECB4", +"i. c #E2EBBB", +"p. c #DAE2C9", +"a. c #E3EAC6", +"s. c #E4ECCC", +"d. c #E9F0CA", +"f. c #EAF0D0", +"g. c #EDF2DB", +"h. c #EAEFE0", +"j. c #EDF2E3", +"k. c #EFF2E8", +"l. c #F6F8EC", +"z. c #FCFCF7", +"x. c #FEFEFD", +"c. c None", +/* pixels */ +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.=.w.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.} { -.r.g.l.c.c.c.c.c.c.c.c.c.<.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.( r 5 8 m k ` 5.i.c.c.c.c.x.j.9.j.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.T d r r r 7 5 7 y ! c.c.c.c.h.q.j.x.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.I & < u i f y y p c ! c.c.c.p.0.k.x.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.q % , u m V V f y z ~ c.c.8.&.;.e.u.c.c.c.c.c.c.c.", +"c.c.c.c.c.t.j - - % , w f S D C z Q s.8.| H J H V 2.c.c.c.c.c.c.", +"c.c.c.c.c.] > : - ; : ; > i V D V a U R G D G N v ` c.c.c.c.c.c.", +"c.c.c.c.>.f 5 > ; - % ; ; ; , q 9 O 1 i V D J J J +.c.c.c.c.c.", +"c.c.c.c.@.7 5 ; - # # o o o # % $ X # w y m D ^ ^ Z X.c.c.c.c.c.", +"c.c.c.c.~ 7 < % # # # # % % % % X # , 2 y v N J K L / c.c.c.c.c.", +"c.c.c.c.T h s q < % # - ; % # X X % : 1 t y v N N Z ^ c.c.c.c.c.", +"c.c.c.c.c.c.t.1.T ; - $ $ $ + . + ; : 2 7 y m v i i S c.c.c.c.c.", +"c.c.c.c.c.c.c.c.k - - = - - X $ % , 2 : 6 y i i i i c.c.c.c.c.c.", +"c.c.c.c.c.c.c.y.u ; - - - + X - - : 4 4 6 t l x i F c.c.c.c.c.c.", +"c.c.c.c.c.c.c.a.g ; - - $ X $ - ; 2 t 4 4 7 c 8 m @.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.f.f - $ - $ @ $ = - 2 f w 4 l b x ~ c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.3.u - - = $ @ @ $ - 4 #...4 l n n ! c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.@.w = $ $ = @ @ = - 5 $.g.g l n A _ c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.~ 2 - $ @ = $ $ - 4 l O.c.) c B ^ 4.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.~ : = @ @ @ @ = - 6 m %.c.4.A L 6.z.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.{ = + @ = $ @ = 3 6 ..c.c.c.+.+.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.Y + $ e e - = 9 W $.a.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.P ' | :.,.[ ( .d.z.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.*.7.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.", +"c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c." +}; diff --git a/depcomp b/depcomp new file mode 100644 index 0000000..e5f9736 --- /dev/null +++ b/depcomp @@ -0,0 +1,589 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2007-03-29.01 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# 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 outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +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" + +# 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 + +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 -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## 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). +## - 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 -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## 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. + tr ' ' ' +' < "$tmpdepfile" | +## 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. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then : + else + 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 ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + 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 -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + 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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + 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 -eq 0; then : + else + 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # 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.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#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 $1 != '--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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + 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 $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + 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. + -*|$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" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + 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 $1 != '--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, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/install-sh b/install-sh new file mode 100644 index 0000000..a5897de --- /dev/null +++ b/install-sh @@ -0,0 +1,519 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2006-12-25.00 + +# 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. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# 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_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +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 +no_target_directory= + +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 + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +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 + 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 + trap '(exit $?); exit' 1 2 13 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 starting with `-'. + 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 + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # 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 -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + 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. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/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-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 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 + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && 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` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob 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-end: "$" +# End: diff --git a/intltool-extract.in b/intltool-extract.in new file mode 100644 index 0000000..ae393ac --- /dev/null +++ b/intltool-extract.in @@ -0,0 +1,875 @@ +#!@INTLTOOL_PERL@ -w +# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- + +# +# The Intltool Message Extractor +# +# Copyright (C) 2000-2001, 2003 Free Software Foundation. +# +# Intltool 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. +# +# Intltool 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. +# +# 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. +# +# Authors: Kenneth Christiansen +# Darin Adler +# + +## Release information +my $PROGRAM = "intltool-extract"; +my $PACKAGE = "intltool"; +my $VERSION = "0.37.1"; + +## Loaded modules +use strict; +use File::Basename; +use Getopt::Long; + +## Scalars used by the option stuff +my $TYPE_ARG = "0"; +my $LOCAL_ARG = "0"; +my $HELP_ARG = "0"; +my $VERSION_ARG = "0"; +my $UPDATE_ARG = "0"; +my $QUIET_ARG = "0"; +my $SRCDIR_ARG = "."; + +my $FILE; +my $OUTFILE; + +my $gettext_type = ""; +my $input; +my %messages = (); +my %loc = (); +my %count = (); +my %comments = (); +my $strcount = 0; + +my $XMLCOMMENT = ""; + +## Use this instead of \w for XML files to handle more possible characters. +my $w = "[-A-Za-z0-9._:]"; + +## Always print first +$| = 1; + +## Handle options +GetOptions ( + "type=s" => \$TYPE_ARG, + "local|l" => \$LOCAL_ARG, + "help|h" => \$HELP_ARG, + "version|v" => \$VERSION_ARG, + "update" => \$UPDATE_ARG, + "quiet|q" => \$QUIET_ARG, + "srcdir=s" => \$SRCDIR_ARG, + ) or &error; + +&split_on_argument; + + +## Check for options. +## This section will check for the different options. + +sub split_on_argument { + + if ($VERSION_ARG) { + &version; + + } elsif ($HELP_ARG) { + &help; + + } elsif ($LOCAL_ARG) { + &place_local; + &extract; + + } elsif ($UPDATE_ARG) { + &place_normal; + &extract; + + } elsif (@ARGV > 0) { + &place_normal; + &message; + &extract; + + } else { + &help; + + } +} + +sub place_normal { + $FILE = $ARGV[0]; + $OUTFILE = "$FILE.h"; + + my $dirname = dirname ($OUTFILE); + if (! -d "$dirname" && $dirname ne "") { + system ("mkdir -p $dirname"); + } +} + +sub place_local { + $FILE = $ARGV[0]; + $OUTFILE = fileparse($FILE, ()); + if (!-e "tmp/") { + system("mkdir tmp/"); + } + $OUTFILE = "./tmp/$OUTFILE.h" +} + +sub determine_type { + if ($TYPE_ARG =~ /^gettext\/(.*)/) { + $gettext_type=$1 + } +} + +## Sub for printing release information +sub version{ + print <<_EOF_; +${PROGRAM} (${PACKAGE}) $VERSION +Copyright (C) 2000, 2003 Free Software Foundation, Inc. +Written by Kenneth Christiansen, 2000. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +_EOF_ + exit; +} + +## Sub for printing usage information +sub help { + print <<_EOF_; +Usage: ${PROGRAM} [OPTION]... [FILENAME] +Generates a header file from an XML source file. + +It grabs all strings between <_translatable_node> and its end tag in +XML files. Read manpage (man ${PROGRAM}) for more info. + + --type=TYPE Specify the file type of FILENAME. Currently supports: + "gettext/glade", "gettext/ini", "gettext/keys" + "gettext/rfc822deb", "gettext/schemas", + "gettext/scheme", "gettext/xml", "gettext/quoted", + "gettext/quotedxml" + -l, --local Writes output into current working directory + (conflicts with --update) + --update Writes output into the same directory the source file + reside (conflicts with --local) + --srcdir Root of the source tree + -v, --version Output version information and exit + -h, --help Display this help and exit + -q, --quiet Quiet mode + +Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") +or send email to . +_EOF_ + exit; +} + +## Sub for printing error messages +sub error{ + print STDERR "Try `${PROGRAM} --help' for more information.\n"; + exit; +} + +sub message { + print "Generating C format header file for translation.\n" unless $QUIET_ARG; +} + +sub extract { + &determine_type; + + &convert; + + open OUT, ">$OUTFILE"; + binmode (OUT) if $^O eq 'MSWin32'; + &msg_write; + close OUT; + + print "Wrote $OUTFILE\n" unless $QUIET_ARG; +} + +sub convert { + + ## Reading the file + { + local (*IN); + local $/; #slurp mode + open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!"; + $input = ; + } + + &type_ini if $gettext_type eq "ini"; + &type_keys if $gettext_type eq "keys"; + &type_xml if $gettext_type eq "xml"; + &type_glade if $gettext_type eq "glade"; + &type_scheme if $gettext_type eq "scheme"; + &type_schemas if $gettext_type eq "schemas"; + &type_rfc822deb if $gettext_type eq "rfc822deb"; + &type_quoted if $gettext_type eq "quoted"; + &type_quotedxml if $gettext_type eq "quotedxml"; +} + +sub entity_decode_minimal +{ + local ($_) = @_; + + s/'/'/g; # ' + s/"/"/g; # " + s/&/&/g; + + return $_; +} + +sub entity_decode +{ + local ($_) = @_; + + s/'/'/g; # ' + s/"/"/g; # " + s/<//g; + s/&/&/g; + + return $_; +} + +sub escape_char +{ + return '\"' if $_ eq '"'; + return '\n' if $_ eq "\n"; + return '\\\\' if $_ eq '\\'; + + return $_; +} + +sub escape +{ + my ($string) = @_; + return join "", map &escape_char, split //, $string; +} + +sub type_ini { + ### For generic translatable desktop files ### + while ($input =~ /^(#(.+)\n)?^_.*=(.*)$/mg) { + if (defined($2)) { + $comments{$3} = $2; + } + $messages{$3} = []; + } +} + +sub type_keys { + ### For generic translatable mime/keys files ### + while ($input =~ /^\s*_\w+=(.*)$/mg) { + $messages{$1} = []; + } +} + +sub type_xml { + ### For generic translatable XML files ### + my $tree = readXml($input); + parseTree(0, $tree); +} + +sub print_var { + my $var = shift; + my $vartype = ref $var; + + if ($vartype =~ /ARRAY/) { + my @arr = @{$var}; + print "[ "; + foreach my $el (@arr) { + print_var($el); + print ", "; + } + print "] "; + } elsif ($vartype =~ /HASH/) { + my %hash = %{$var}; + print "{ "; + foreach my $key (keys %hash) { + print "$key => "; + print_var($hash{$key}); + print ", "; + } + print "} "; + } else { + print $var; + } +} + +# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment) +sub getAttributeString +{ + my $sub = shift; + my $do_translate = shift || 1; + my $language = shift || ""; + my $translate = shift; + my $result = ""; + foreach my $e (reverse(sort(keys %{ $sub }))) { + my $key = $e; + my $string = $sub->{$e}; + my $quote = '"'; + + $string =~ s/^[\s]+//; + $string =~ s/[\s]+$//; + + if ($string =~ /^'.*'$/) + { + $quote = "'"; + } + $string =~ s/^['"]//g; + $string =~ s/['"]$//g; + + ## differences from intltool-merge.in.in + if ($key =~ /^_/) { + $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT; + $messages{entity_decode($string)} = []; + $$translate = 2; + } + ## differences end here from intltool-merge.in.in + $result .= " $key=$quote$string$quote"; + } + return $result; +} + +# Verbatim copy from intltool-merge.in.in +sub getXMLstring +{ + my $ref = shift; + my $spacepreserve = shift || 0; + my @list = @{ $ref }; + my $result = ""; + + my $count = scalar(@list); + my $attrs = $list[0]; + my $index = 1; + + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); + + while ($index < $count) { + my $type = $list[$index]; + my $content = $list[$index+1]; + if (! $type ) { + # We've got CDATA + if ($content) { + # lets strip the whitespace here, and *ONLY* here + $content =~ s/\s+/ /gs if (!$spacepreserve); + $result .= $content; + } + } elsif ( "$type" ne "1" ) { + # We've got another element + $result .= "<$type"; + $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements + if ($content) { + my $subresult = getXMLstring($content, $spacepreserve); + if ($subresult) { + $result .= ">".$subresult . ""; + } else { + $result .= "/>"; + } + } else { + $result .= "/>"; + } + } + $index += 2; + } + return $result; +} + +# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed +# Translate list of nodes if necessary +sub translate_subnodes +{ + my $fh = shift; + my $content = shift; + my $language = shift || ""; + my $singlelang = shift || 0; + my $spacepreserve = shift || 0; + + my @nodes = @{ $content }; + + my $count = scalar(@nodes); + my $index = 0; + while ($index < $count) { + my $type = $nodes[$index]; + my $rest = $nodes[$index+1]; + traverse($fh, $type, $rest, $language, $spacepreserve); + $index += 2; + } +} + +# Based on traverse() in intltool-merge.in.in +sub traverse +{ + my $fh = shift; # unused, to allow us to sync code between -merge and -extract + my $nodename = shift; + my $content = shift; + my $language = shift || ""; + my $spacepreserve = shift || 0; + + if ($nodename && "$nodename" eq "1") { + $XMLCOMMENT = $content; + } elsif ($nodename) { + # element + my @all = @{ $content }; + my $attrs = shift @all; + my $translate = 0; + my $outattr = getAttributeString($attrs, 1, $language, \$translate); + + if ($nodename =~ /^_/) { + $translate = 1; + $nodename =~ s/^_//; + } + my $lookup = ''; + + $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + + if ($translate) { + $lookup = getXMLstring($content, $spacepreserve); + if (!$spacepreserve) { + $lookup =~ s/^\s+//s; + $lookup =~ s/\s+$//s; + } + + if ($lookup && $translate != 2) { + $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT; + $messages{$lookup} = []; + } elsif ($translate == 2) { + translate_subnodes($fh, \@all, $language, 1, $spacepreserve); + } + } else { + $XMLCOMMENT = ""; + my $count = scalar(@all); + if ($count > 0) { + my $index = 0; + while ($index < $count) { + my $type = $all[$index]; + my $rest = $all[$index+1]; + traverse($fh, $type, $rest, $language, $spacepreserve); + $index += 2; + } + } + } + $XMLCOMMENT = ""; + } +} + + +# Verbatim copy from intltool-merge.in.in, $fh for compatibility +sub parseTree +{ + my $fh = shift; + my $ref = shift; + my $language = shift || ""; + + my $name = shift @{ $ref }; + my $cont = shift @{ $ref }; + + while (!$name || "$name" eq "1") { + $name = shift @{ $ref }; + $cont = shift @{ $ref }; + } + + my $spacepreserve = 0; + my $attrs = @{$cont}[0]; + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + + traverse($fh, $name, $cont, $language, $spacepreserve); +} + +# Verbatim copy from intltool-merge.in.in +sub intltool_tree_comment +{ + my $expat = shift; + my $data = $expat->original_string(); + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + $data =~ s/^$//s; + push @$clist, 1 => $data; +} + +# Verbatim copy from intltool-merge.in.in +sub intltool_tree_cdatastart +{ + my $expat = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + push @$clist, 0 => $expat->original_string(); +} + +# Verbatim copy from intltool-merge.in.in +sub intltool_tree_cdataend +{ + my $expat = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + $clist->[$pos] .= $expat->original_string(); +} + +# Verbatim copy from intltool-merge.in.in +sub intltool_tree_char +{ + my $expat = shift; + my $text = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + # Use original_string so that we retain escaped entities + # in CDATA sections. + # + if ($pos > 0 and $clist->[$pos - 1] eq '0') { + $clist->[$pos] .= $expat->original_string(); + } else { + push @$clist, 0 => $expat->original_string(); + } +} + +# Verbatim copy from intltool-merge.in.in +sub intltool_tree_start +{ + my $expat = shift; + my $tag = shift; + my @origlist = (); + + # Use original_string so that we retain escaped entities + # in attribute values. We must convert the string to an + # @origlist array to conform to the structure of the Tree + # Style. + # + my @original_array = split /\x/, $expat->original_string(); + my $source = $expat->original_string(); + + # Remove leading tag. + # + $source =~ s|^\s*<\s*(\S+)||s; + + # Grab attribute key/value pairs and push onto @origlist array. + # + while ($source) + { + if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) + { + $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; + push @origlist, $1; + push @origlist, '"' . $2 . '"'; + } + elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) + { + $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; + push @origlist, $1; + push @origlist, "'" . $2 . "'"; + } + else + { + last; + } + } + + my $ol = [ { @origlist } ]; + + push @{ $expat->{Lists} }, $expat->{Curlist}; + push @{ $expat->{Curlist} }, $tag => $ol; + $expat->{Curlist} = $ol; +} + +# Copied from intltool-merge.in.in and added comment handler. +sub readXml +{ + my $xmldoc = shift || return; + my $ret = eval 'require XML::Parser'; + if(!$ret) { + die "You must have XML::Parser installed to run $0\n\n"; + } + my $xp = new XML::Parser(Style => 'Tree'); + $xp->setHandlers(Char => \&intltool_tree_char); + $xp->setHandlers(Start => \&intltool_tree_start); + $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); + $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); + + ## differences from intltool-merge.in.in + $xp->setHandlers(Comment => \&intltool_tree_comment); + ## differences end here from intltool-merge.in.in + + my $tree = $xp->parse($xmldoc); + #print_var($tree); + +# Hello thereHowdydo +# would be: +# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, +# [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ] + + return $tree; +} + +sub type_schemas { + ### For schemas XML files ### + + # FIXME: We should handle escaped < (less than) + while ($input =~ / + \s* + (\s*(?:\s*)?(.*?)\s*<\/default>\s*)? + (\s*(?:\s*)?(.*?)\s*<\/short>\s*)? + (\s*(?:\s*)?(.*?)\s*<\/long>\s*)? + <\/locale> + /sgx) { + my @totranslate = ($3,$6,$9); + my @eachcomment = ($2,$5,$8); + foreach (@totranslate) { + my $currentcomment = shift @eachcomment; + next if !$_; + s/\s+/ /g; + $messages{entity_decode_minimal($_)} = []; + $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment)); + } + } +} + +sub type_rfc822deb { + ### For rfc822-style Debian configuration files ### + + my $lineno = 1; + my $type = ''; + while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg) + { + my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5); + while ($pre =~ m/\n/g) + { + $lineno ++; + } + $lineno += length($newline); + my @str_list = rfc822deb_split(length($underscore), $text); + for my $str (@str_list) + { + $strcount++; + $messages{$str} = []; + $loc{$str} = $lineno; + $count{$str} = $strcount; + my $usercomment = ''; + while($pre =~ s/(^|\n)#([^\n]*)$//s) + { + $usercomment = "\n" . $2 . $usercomment; + } + $comments{$str} = $tag . $usercomment; + } + $lineno += ($text =~ s/\n//g); + } +} + +sub rfc822deb_split { + # Debian defines a special way to deal with rfc822-style files: + # when a value contain newlines, it consists of + # 1. a short form (first line) + # 2. a long description, all lines begin with a space, + # and paragraphs are separated by a single dot on a line + # This routine returns an array of all paragraphs, and reformat + # them. + # When first argument is 2, the string is a comma separated list of + # values. + my $type = shift; + my $text = shift; + $text =~ s/^[ \t]//mg; + return (split(/, */, $text, 0)) if $type ne 1; + return ($text) if $text !~ /\n/; + + $text =~ s/([^\n]*)\n//; + my @list = ($1); + my $str = ''; + for my $line (split (/\n/, $text)) + { + chomp $line; + if ($line =~ /^\.\s*$/) + { + # New paragraph + $str =~ s/\s*$//; + push(@list, $str); + $str = ''; + } + elsif ($line =~ /^\s/) + { + # Line which must not be reformatted + $str .= "\n" if length ($str) && $str !~ /\n$/; + $line =~ s/\s+$//; + $str .= $line."\n"; + } + else + { + # Continuation line, remove newline + $str .= " " if length ($str) && $str !~ /\n$/; + $str .= $line; + } + } + $str =~ s/\s*$//; + push(@list, $str) if length ($str); + return @list; +} + +sub type_quoted { + while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { + my $message = $1; + my $before = $`; + $message =~ s/\\\"/\"/g; + $before =~ s/[^\n]//g; + $messages{$message} = []; + $loc{$message} = length ($before) + 2; + } +} + +sub type_quotedxml { + while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { + my $message = $1; + my $before = $`; + $message =~ s/\\\"/\"/g; + $message = entity_decode($message); + $before =~ s/[^\n]//g; + $messages{$message} = []; + $loc{$message} = length ($before) + 2; + } +} + +sub type_glade { + ### For translatable Glade XML files ### + + my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message"; + + while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) { + # Glade sometimes uses tags that normally mark translatable things for + # little bits of non-translatable content. We work around this by not + # translating strings that only includes something like label4 or window1. + $messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/; + } + + while ($input =~ /(..[^<]*)<\/items>/sg) { + for my $item (split (/\n/, $1)) { + $messages{entity_decode($item)} = []; + } + } + + ## handle new glade files + while ($input =~ /<(property|atkproperty|col)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) { + $messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/; + if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) { + $comments{entity_decode($3)} = entity_decode($2) ; + } + } + while ($input =~ /]*)"\s+description="([^>]+)"\/>/sg) { + $messages{entity_decode_minimal($2)} = []; + } +} + +sub type_scheme { + my ($line, $i, $state, $str, $trcomment, $char); + for $line (split(/\n/, $input)) { + $i = 0; + $state = 0; # 0 - nothing, 1 - string, 2 - translatable string + while ($i < length($line)) { + if (substr($line,$i,1) eq "\"") { + if ($state == 2) { + $comments{$str} = $trcomment if ($trcomment); + $messages{$str} = []; + $str = ''; + $state = 0; $trcomment = ""; + } elsif ($state == 1) { + $str = ''; + $state = 0; $trcomment = ""; + } else { + $state = 1; + $str = ''; + if ($i>0 && substr($line,$i-1,1) eq '_') { + $state = 2; + } + } + } elsif (!$state) { + if (substr($line,$i,1) eq ";") { + $trcomment = substr($line,$i+1); + $trcomment =~ s/^;*\s*//; + $i = length($line); + } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) { + $trcomment = ""; + } + } else { + if (substr($line,$i,1) eq "\\") { + $char = substr($line,$i+1,1); + if ($char ne "\"" && $char ne "\\") { + $str = $str . "\\"; + } + $i++; + } + $str = $str . substr($line,$i,1); + } + $i++; + } + } +} + +sub msg_write { + my @msgids; + if (%count) + { + @msgids = sort { $count{$a} <=> $count{$b} } keys %count; + } + else + { + @msgids = sort keys %messages; + } + for my $message (@msgids) + { + my $offsetlines = 1; + $offsetlines++ if $message =~ /%/; + if (defined ($comments{$message})) + { + while ($comments{$message} =~ m/\n/g) + { + $offsetlines++; + } + } + print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n" + if defined $loc{$message}; + print OUT "/* ".$comments{$message}." */\n" + if defined $comments{$message}; + print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/; + + my @lines = split (/\n/, $message, -1); + for (my $n = 0; $n < @lines; $n++) + { + if ($n == 0) + { + print OUT "char *s = N_(\""; + } + else + { + print OUT " \""; + } + + print OUT escape($lines[$n]); + + if ($n < @lines - 1) + { + print OUT "\\n\"\n"; + } + else + { + print OUT "\");\n"; + } + } + } +} + diff --git a/intltool-merge.in b/intltool-merge.in new file mode 100644 index 0000000..60c3f3e --- /dev/null +++ b/intltool-merge.in @@ -0,0 +1,1506 @@ +#!@INTLTOOL_PERL@ -w +# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- + +# +# The Intltool Message Merger +# +# Copyright (C) 2000, 2003 Free Software Foundation. +# Copyright (C) 2000, 2001 Eazel, Inc +# +# Intltool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# version 2 published by the Free Software Foundation. +# +# Intltool 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. +# +# 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. +# +# Authors: Maciej Stachowiak +# Kenneth Christiansen +# Darin Adler +# +# Proper XML UTF-8'ification written by Cyrille Chepelov +# + +## Release information +my $PROGRAM = "intltool-merge"; +my $PACKAGE = "intltool"; +my $VERSION = "0.37.1"; + +## Loaded modules +use strict; +use Getopt::Long; +use Text::Wrap; +use File::Basename; + +my $must_end_tag = -1; +my $last_depth = -1; +my $translation_depth = -1; +my @tag_stack = (); +my @entered_tag = (); +my @translation_strings = (); +my $leading_space = ""; + +## Scalars used by the option stuff +my $HELP_ARG = 0; +my $VERSION_ARG = 0; +my $BA_STYLE_ARG = 0; +my $XML_STYLE_ARG = 0; +my $KEYS_STYLE_ARG = 0; +my $DESKTOP_STYLE_ARG = 0; +my $SCHEMAS_STYLE_ARG = 0; +my $RFC822DEB_STYLE_ARG = 0; +my $QUOTED_STYLE_ARG = 0; +my $QUOTEDXML_STYLE_ARG = 0; +my $QUIET_ARG = 0; +my $PASS_THROUGH_ARG = 0; +my $UTF8_ARG = 0; +my $MULTIPLE_OUTPUT = 0; +my $cache_file; + +## Handle options +GetOptions +( + "help" => \$HELP_ARG, + "version" => \$VERSION_ARG, + "quiet|q" => \$QUIET_ARG, + "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility + "ba-style|b" => \$BA_STYLE_ARG, + "xml-style|x" => \$XML_STYLE_ARG, + "keys-style|k" => \$KEYS_STYLE_ARG, + "desktop-style|d" => \$DESKTOP_STYLE_ARG, + "schemas-style|s" => \$SCHEMAS_STYLE_ARG, + "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG, + "quoted-style" => \$QUOTED_STYLE_ARG, + "quotedxml-style" => \$QUOTEDXML_STYLE_ARG, + "pass-through|p" => \$PASS_THROUGH_ARG, + "utf8|u" => \$UTF8_ARG, + "multiple-output|m" => \$MULTIPLE_OUTPUT, + "cache|c=s" => \$cache_file + ) or &error; + +my $PO_DIR; +my $FILE; +my $OUTFILE; + +my %po_files_by_lang = (); +my %translations = (); +my $iconv = $ENV{"ICONV"} || "iconv"; +my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); + +sub isProgramInPath +{ + my ($file) = @_; + # If either a file exists, or when run it returns 0 exit status + return 1 if ((-x $file) or (system("$file -l >$devnull") == 0)); + return 0; +} + +if (! isProgramInPath ("$iconv")) +{ + print STDERR " *** iconv is not found on this system!\n". + " *** Without it, intltool-merge can not convert encodings.\n"; + exit; +} + +# Use this instead of \w for XML files to handle more possible characters. +my $w = "[-A-Za-z0-9._:]"; + +# XML quoted string contents +my $q = "[^\\\"]*"; + +## Check for options. + +if ($VERSION_ARG) +{ + &print_version; +} +elsif ($HELP_ARG) +{ + &print_help; +} +elsif ($BA_STYLE_ARG && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + &ba_merge_translations; + &finalize; +} +elsif ($XML_STYLE_ARG && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + &xml_merge_output; + &finalize; +} +elsif ($KEYS_STYLE_ARG && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + &keys_merge_translations; + &finalize; +} +elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + &desktop_merge_translations; + &finalize; +} +elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + &schemas_merge_translations; + &finalize; +} +elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) +{ + &preparation; + &print_message; + &rfc822deb_merge_translations; + &finalize; +} +elsif (($QUOTED_STYLE_ARG || $QUOTEDXML_STYLE_ARG) && @ARGV > 2) +{ + &utf8_sanity_check; + &preparation; + &print_message; + "ed_merge_translations($QUOTEDXML_STYLE_ARG); + &finalize; +} +else +{ + &print_help; +} + +exit; + +## Sub for printing release information +sub print_version +{ + print <<_EOF_; +${PROGRAM} (${PACKAGE}) ${VERSION} +Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen. + +Copyright (C) 2000-2003 Free Software Foundation, Inc. +Copyright (C) 2000-2001 Eazel, 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. +_EOF_ + exit; +} + +## Sub for printing usage information +sub print_help +{ + print <<_EOF_; +Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE +Generates an output file that includes some localized attributes from an +untranslated source file. + +Mandatory options: (exactly one must be specified) + -b, --ba-style includes translations in the bonobo-activation style + -d, --desktop-style includes translations in the desktop style + -k, --keys-style includes translations in the keys style + -s, --schemas-style includes translations in the schemas style + -r, --rfc822deb-style includes translations in the RFC822 style + --quoted-style includes translations in the quoted string style + --quotedxml-style includes translations in the quoted xml string style + -x, --xml-style includes translations in the standard xml style + +Other options: + -u, --utf8 convert all strings to UTF-8 before merging + (default for everything except RFC822 style) + -p, --pass-through deprecated, does nothing and issues a warning + -m, --multiple-output output one localized file per locale, instead of + a single file containing all localized elements + -c, --cache=FILE specify cache file name + (usually \$top_builddir/po/.intltool-merge-cache) + -q, --quiet suppress most messages + --help display this help and exit + --version output version information and exit + +Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") +or send email to . +_EOF_ + exit; +} + + +## Sub for printing error messages +sub print_error +{ + print STDERR "Try `${PROGRAM} --help' for more information.\n"; + exit; +} + + +sub print_message +{ + print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG; +} + + +sub preparation +{ + $PO_DIR = $ARGV[0]; + $FILE = $ARGV[1]; + $OUTFILE = $ARGV[2]; + + &gather_po_files; + &get_translation_database; +} + +# General-purpose code for looking up translations in .po files + +sub po_file2lang +{ + my ($tmp) = @_; + $tmp =~ s/^.*\/(.*)\.po$/$1/; + return $tmp; +} + +sub gather_po_files +{ + if (my $linguas = $ENV{"LINGUAS"}) + { + for my $lang (split / /, $linguas) { + my $po_file = $PO_DIR . "/" . $lang . ".po"; + if (-e $po_file) { + $po_files_by_lang{$lang} = $po_file; + } + } + } + else + { + if (open LINGUAS_FILE, "$PO_DIR/LINGUAS") + { + while () + { + next if /^#/; + + for my $lang (split) + { + chomp ($lang); + my $po_file = $PO_DIR . "/" . $lang . ".po"; + if (-e $po_file) { + $po_files_by_lang{$lang} = $po_file; + } + } + } + + close LINGUAS_FILE; + } + else + { + for my $po_file (glob "$PO_DIR/*.po") { + $po_files_by_lang{po_file2lang($po_file)} = $po_file; + } + } + } +} + +sub get_local_charset +{ + my ($encoding) = @_; + my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias"; + + # seek character encoding aliases in charset.alias (glib) + + if (open CHARSET_ALIAS, $alias_file) + { + while () + { + next if /^\#/; + return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i) + } + + close CHARSET_ALIAS; + } + + # if not found, return input string + + return $encoding; +} + +sub get_po_encoding +{ + my ($in_po_file) = @_; + my $encoding = ""; + + open IN_PO_FILE, $in_po_file or die; + while () + { + ## example: "Content-Type: text/plain; charset=ISO-8859-1\n" + if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) + { + $encoding = $1; + last; + } + } + close IN_PO_FILE; + + if (!$encoding) + { + print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG; + $encoding = "ISO-8859-1"; + } + + system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull"); + if ($?) { + $encoding = get_local_charset($encoding); + } + + return $encoding +} + +sub utf8_sanity_check +{ + print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG; + $UTF8_ARG = 1; +} + +sub get_translation_database +{ + if ($cache_file) { + &get_cached_translation_database; + } else { + &create_translation_database; + } +} + +sub get_newest_po_age +{ + my $newest_age; + + foreach my $file (values %po_files_by_lang) + { + my $file_age = -M $file; + $newest_age = $file_age if !$newest_age || $file_age < $newest_age; + } + + $newest_age = 0 if !$newest_age; + + return $newest_age; +} + +sub create_cache +{ + print "Generating and caching the translation database\n" unless $QUIET_ARG; + + &create_translation_database; + + open CACHE, ">$cache_file" || die; + print CACHE join "\x01", %translations; + close CACHE; +} + +sub load_cache +{ + print "Found cached translation database\n" unless $QUIET_ARG; + + my $contents; + open CACHE, "<$cache_file" || die; + { + local $/; + $contents = ; + } + close CACHE; + %translations = split "\x01", $contents; +} + +sub get_cached_translation_database +{ + my $cache_file_age = -M $cache_file; + if (defined $cache_file_age) + { + if ($cache_file_age <= &get_newest_po_age) + { + &load_cache; + return; + } + print "Found too-old cached translation database\n" unless $QUIET_ARG; + } + + &create_cache; +} + +sub create_translation_database +{ + for my $lang (keys %po_files_by_lang) + { + my $po_file = $po_files_by_lang{$lang}; + + if ($UTF8_ARG) + { + my $encoding = get_po_encoding ($po_file); + + if (lc $encoding eq "utf-8") + { + open PO_FILE, "<$po_file"; + } + else + { + print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;; + + open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|"; + } + } + else + { + open PO_FILE, "<$po_file"; + } + + my $nextfuzzy = 0; + my $inmsgid = 0; + my $inmsgstr = 0; + my $msgid = ""; + my $msgstr = ""; + + while () + { + $nextfuzzy = 1 if /^#, fuzzy/; + + if (/^msgid "((\\.|[^\\]+)*)"/ ) + { + $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; + $msgid = ""; + $msgstr = ""; + + if ($nextfuzzy) { + $inmsgid = 0; + } else { + $msgid = unescape_po_string($1); + $inmsgid = 1; + } + $inmsgstr = 0; + $nextfuzzy = 0; + } + + if (/^msgstr "((\\.|[^\\]+)*)"/) + { + $msgstr = unescape_po_string($1); + $inmsgstr = 1; + $inmsgid = 0; + } + + if (/^"((\\.|[^\\]+)*)"/) + { + $msgid .= unescape_po_string($1) if $inmsgid; + $msgstr .= unescape_po_string($1) if $inmsgstr; + } + } + $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; + } +} + +sub finalize +{ +} + +sub unescape_one_sequence +{ + my ($sequence) = @_; + + return "\\" if $sequence eq "\\\\"; + return "\"" if $sequence eq "\\\""; + return "\n" if $sequence eq "\\n"; + return "\r" if $sequence eq "\\r"; + return "\t" if $sequence eq "\\t"; + return "\b" if $sequence eq "\\b"; + return "\f" if $sequence eq "\\f"; + return "\a" if $sequence eq "\\a"; + return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7) + + return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/); + return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/); + + # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489 + + return $sequence; +} + +sub unescape_po_string +{ + my ($string) = @_; + + $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg; + + return $string; +} + +sub entity_decode +{ + local ($_) = @_; + + s/'/'/g; # ' + s/"/"/g; # " + s/<//g; + s/&/&/g; + + return $_; +} + +# entity_encode: (string) +# +# Encode the given string to XML format (encode '<' etc). + +sub entity_encode +{ + my ($pre_encoded) = @_; + + my @list_of_chars = unpack ('C*', $pre_encoded); + + # with UTF-8 we only encode minimalistic + return join ('', map (&entity_encode_int_minimalist, @list_of_chars)); +} + +sub entity_encode_int_minimalist +{ + return """ if $_ == 34; + return "&" if $_ == 38; + return "'" if $_ == 39; + return "<" if $_ == 60; + return ">" if $_ == 62; + return chr $_; +} + +sub entity_encoded_translation +{ + my ($lang, $string) = @_; + + my $translation = $translations{$lang, $string}; + return $string if !$translation; + return entity_encode ($translation); +} + +## XML (bonobo-activation specific) merge code + +sub ba_merge_translations +{ + my $source; + + { + local $/; # slurp mode + open INPUT, "<$FILE" or die "can't open $FILE: $!"; + $source = ; + close INPUT; + } + + open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!"; + # Binmode so that selftest works ok if using a native Win32 Perl... + binmode (OUTPUT) if $^O eq 'MSWin32'; + + while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) + { + print OUTPUT $1; + + my $node = $2 . "\n"; + + my @strings = (); + $_ = $node; + while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) { + push @strings, entity_decode($3); + } + print OUTPUT; + + my %langs; + for my $string (@strings) + { + for my $lang (keys %po_files_by_lang) + { + $langs{$lang} = 1 if $translations{$lang, $string}; + } + } + + for my $lang (sort keys %langs) + { + $_ = $node; + s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s; + s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg; + print OUTPUT; + } + } + + print OUTPUT $source; + + close OUTPUT; +} + + +## XML (non-bonobo-activation) merge code + + +# Process tag attributes +# Only parameter is a HASH containing attributes -> values mapping +sub getAttributeString +{ + my $sub = shift; + my $do_translate = shift || 0; + my $language = shift || ""; + my $result = ""; + my $translate = shift; + foreach my $e (reverse(sort(keys %{ $sub }))) { + my $key = $e; + my $string = $sub->{$e}; + my $quote = '"'; + + $string =~ s/^[\s]+//; + $string =~ s/[\s]+$//; + + if ($string =~ /^'.*'$/) + { + $quote = "'"; + } + $string =~ s/^['"]//g; + $string =~ s/['"]$//g; + + if ($do_translate && $key =~ /^_/) { + $key =~ s|^_||g; + if ($language) { + # Handle translation + my $decode_string = entity_decode($string); + my $translation = $translations{$language, $decode_string}; + if ($translation) { + $translation = entity_encode($translation); + $string = $translation; + } + $$translate = 2; + } else { + $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate + } + } + + $result .= " $key=$quote$string$quote"; + } + return $result; +} + +# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree +sub getXMLstring +{ + my $ref = shift; + my $spacepreserve = shift || 0; + my @list = @{ $ref }; + my $result = ""; + + my $count = scalar(@list); + my $attrs = $list[0]; + my $index = 1; + + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); + + while ($index < $count) { + my $type = $list[$index]; + my $content = $list[$index+1]; + if (! $type ) { + # We've got CDATA + if ($content) { + # lets strip the whitespace here, and *ONLY* here + $content =~ s/\s+/ /gs if (!$spacepreserve); + $result .= $content; + } + } elsif ( "$type" ne "1" ) { + # We've got another element + $result .= "<$type"; + $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements + if ($content) { + my $subresult = getXMLstring($content, $spacepreserve); + if ($subresult) { + $result .= ">".$subresult . ""; + } else { + $result .= "/>"; + } + } else { + $result .= "/>"; + } + } + $index += 2; + } + return $result; +} + +# Translate list of nodes if necessary +sub translate_subnodes +{ + my $fh = shift; + my $content = shift; + my $language = shift || ""; + my $singlelang = shift || 0; + my $spacepreserve = shift || 0; + + my @nodes = @{ $content }; + + my $count = scalar(@nodes); + my $index = 0; + while ($index < $count) { + my $type = $nodes[$index]; + my $rest = $nodes[$index+1]; + if ($singlelang) { + my $oldMO = $MULTIPLE_OUTPUT; + $MULTIPLE_OUTPUT = 1; + traverse($fh, $type, $rest, $language, $spacepreserve); + $MULTIPLE_OUTPUT = $oldMO; + } else { + traverse($fh, $type, $rest, $language, $spacepreserve); + } + $index += 2; + } +} + +sub isWellFormedXmlFragment +{ + my $ret = eval 'require XML::Parser'; + if(!$ret) { + die "You must have XML::Parser installed to run $0\n\n"; + } + + my $fragment = shift; + return 0 if (!$fragment); + + $fragment = "$fragment"; + my $xp = new XML::Parser(Style => 'Tree'); + my $tree = 0; + eval { $tree = $xp->parse($fragment); }; + return $tree; +} + +sub traverse +{ + my $fh = shift; + my $nodename = shift; + my $content = shift; + my $language = shift || ""; + my $spacepreserve = shift || 0; + + if (!$nodename) { + if ($content =~ /^[\s]*$/) { + $leading_space .= $content; + } + print $fh $content; + } else { + # element + my @all = @{ $content }; + my $attrs = shift @all; + my $translate = 0; + my $outattr = getAttributeString($attrs, 1, $language, \$translate); + + if ($nodename =~ /^_/) { + $translate = 1; + $nodename =~ s/^_//; + } + my $lookup = ''; + + $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + + print $fh "<$nodename", $outattr; + if ($translate) { + $lookup = getXMLstring($content, $spacepreserve); + if (!$spacepreserve) { + $lookup =~ s/^\s+//s; + $lookup =~ s/\s+$//s; + } + + if ($lookup || $translate == 2) { + my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup}); + if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) { + $translation = $lookup if (!$translation); + print $fh " xml:lang=\"", $language, "\"" if $language; + print $fh ">"; + if ($translate == 2) { + translate_subnodes($fh, \@all, $language, 1, $spacepreserve); + } else { + print $fh $translation; + } + print $fh ""; + + return; # this means there will be no same translation with xml:lang="$language"... + # if we want them both, just remove this "return" + } else { + print $fh ">"; + if ($translate == 2) { + translate_subnodes($fh, \@all, $language, 1, $spacepreserve); + } else { + print $fh $lookup; + } + print $fh ""; + } + } else { + print $fh "/>"; + } + + for my $lang (sort keys %po_files_by_lang) { + if ($MULTIPLE_OUTPUT && $lang ne "$language") { + next; + } + if ($lang) { + # Handle translation + # + my $translate = 0; + my $localattrs = getAttributeString($attrs, 1, $lang, \$translate); + my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup}); + if ($translate && !$translation) { + $translation = $lookup; + } + + if ($translation || $translate) { + print $fh "\n"; + $leading_space =~ s/.*\n//g; + print $fh $leading_space; + print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">"; + if ($translate == 2) { + translate_subnodes($fh, \@all, $lang, 1, $spacepreserve); + } else { + print $fh $translation; + } + print $fh ""; + } + } + } + + } else { + my $count = scalar(@all); + if ($count > 0) { + print $fh ">"; + my $index = 0; + while ($index < $count) { + my $type = $all[$index]; + my $rest = $all[$index+1]; + traverse($fh, $type, $rest, $language, $spacepreserve); + $index += 2; + } + print $fh ""; + } else { + print $fh "/>"; + } + } + } +} + +sub intltool_tree_comment +{ + my $expat = shift; + my $data = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + push @$clist, 1 => $data; +} + +sub intltool_tree_cdatastart +{ + my $expat = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + push @$clist, 0 => $expat->original_string(); +} + +sub intltool_tree_cdataend +{ + my $expat = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + $clist->[$pos] .= $expat->original_string(); +} + +sub intltool_tree_char +{ + my $expat = shift; + my $text = shift; + my $clist = $expat->{Curlist}; + my $pos = $#$clist; + + # Use original_string so that we retain escaped entities + # in CDATA sections. + # + if ($pos > 0 and $clist->[$pos - 1] eq '0') { + $clist->[$pos] .= $expat->original_string(); + } else { + push @$clist, 0 => $expat->original_string(); + } +} + +sub intltool_tree_start +{ + my $expat = shift; + my $tag = shift; + my @origlist = (); + + # Use original_string so that we retain escaped entities + # in attribute values. We must convert the string to an + # @origlist array to conform to the structure of the Tree + # Style. + # + my @original_array = split /\x/, $expat->original_string(); + my $source = $expat->original_string(); + + # Remove leading tag. + # + $source =~ s|^\s*<\s*(\S+)||s; + + # Grab attribute key/value pairs and push onto @origlist array. + # + while ($source) + { + if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) + { + $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; + push @origlist, $1; + push @origlist, '"' . $2 . '"'; + } + elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) + { + $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; + push @origlist, $1; + push @origlist, "'" . $2 . "'"; + } + else + { + last; + } + } + + my $ol = [ { @origlist } ]; + + push @{ $expat->{Lists} }, $expat->{Curlist}; + push @{ $expat->{Curlist} }, $tag => $ol; + $expat->{Curlist} = $ol; +} + +sub readXml +{ + my $filename = shift || return; + if(!-f $filename) { + die "ERROR Cannot find filename: $filename\n"; + } + + my $ret = eval 'require XML::Parser'; + if(!$ret) { + die "You must have XML::Parser installed to run $0\n\n"; + } + my $xp = new XML::Parser(Style => 'Tree'); + $xp->setHandlers(Char => \&intltool_tree_char); + $xp->setHandlers(Start => \&intltool_tree_start); + $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); + $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); + my $tree = $xp->parsefile($filename); + +# Hello thereHowdydo +# would be: +# [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{}, +# 0, "Howdy", ref, [{}]], 0, "do" ] ] + + return $tree; +} + +sub print_header +{ + my $infile = shift; + my $fh = shift; + my $source; + + if(!-f $infile) { + die "ERROR Cannot find filename: $infile\n"; + } + + print $fh qq{\n}; + { + local $/; + open DOCINPUT, "<${FILE}" or die; + $source = ; + close DOCINPUT; + } + if ($source =~ /()/s) + { + print $fh "$1\n"; + } + elsif ($source =~ /(]*>)/s) + { + print $fh "$1\n"; + } +} + +sub parseTree +{ + my $fh = shift; + my $ref = shift; + my $language = shift || ""; + + my $name = shift @{ $ref }; + my $cont = shift @{ $ref }; + + while (!$name || "$name" eq "1") { + $name = shift @{ $ref }; + $cont = shift @{ $ref }; + } + + my $spacepreserve = 0; + my $attrs = @{$cont}[0]; + $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); + + traverse($fh, $name, $cont, $language, $spacepreserve); +} + +sub xml_merge_output +{ + my $source; + + if ($MULTIPLE_OUTPUT) { + for my $lang (sort keys %po_files_by_lang) { + if ( ! -d $lang ) { + mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; + } + open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; + binmode (OUTPUT) if $^O eq 'MSWin32'; + my $tree = readXml($FILE); + print_header($FILE, \*OUTPUT); + parseTree(\*OUTPUT, $tree, $lang); + close OUTPUT; + print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; + } + if ( ! -d "C" ) { + mkdir "C" or -d "C" or die "Cannot create subdirectory C: $!\n"; + } + open OUTPUT, ">C/$OUTFILE" or die "Cannot open C/$OUTFILE: $!\n"; + binmode (OUTPUT) if $^O eq 'MSWin32'; + my $tree = readXml($FILE); + print_header($FILE, \*OUTPUT); + parseTree(\*OUTPUT, $tree); + close OUTPUT; + print "CREATED C/$OUTFILE\n" unless $QUIET_ARG; + } else { + open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n"; + binmode (OUTPUT) if $^O eq 'MSWin32'; + my $tree = readXml($FILE); + print_header($FILE, \*OUTPUT); + parseTree(\*OUTPUT, $tree); + close OUTPUT; + print "CREATED $OUTFILE\n" unless $QUIET_ARG; + } +} + +sub keys_merge_translation +{ + my ($lang) = @_; + + if ( ! -d $lang && $MULTIPLE_OUTPUT) + { + mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; + } + + open INPUT, "<${FILE}" or die "Cannot open ${FILE}: $!\n"; + open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; + binmode (OUTPUT) if $^O eq 'MSWin32'; + + while () + { + if (s/^(\s*)_(\w+=(.*))/$1$2/) + { + my $string = $3; + + if (!$MULTIPLE_OUTPUT) + { + print OUTPUT; + + my $non_translated_line = $_; + + for my $lang (sort keys %po_files_by_lang) + { + my $translation = $translations{$lang, $string}; + next if !$translation; + + $_ = $non_translated_line; + s/(\w+)=.*/[$lang]$1=$translation/; + print OUTPUT; + } + } + else + { + my $non_translated_line = $_; + my $translation = $translations{$lang, $string}; + $translation = $string if !$translation; + + $_ = $non_translated_line; + s/(\w+)=.*/$1=$translation/; + print OUTPUT; + } + } + else + { + print OUTPUT; + } + } + + close OUTPUT; + close INPUT; + + print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; +} + +sub keys_merge_translations +{ + if ($MULTIPLE_OUTPUT) + { + for my $lang (sort keys %po_files_by_lang) + { + keys_merge_translation ($lang); + } + keys_merge_translation ("C"); + } + else + { + keys_merge_translation ("."); + } +} + +sub desktop_merge_translations +{ + open INPUT, "<${FILE}" or die; + open OUTPUT, ">${OUTFILE}" or die; + binmode (OUTPUT) if $^O eq 'MSWin32'; + + while () + { + if (s/^(\s*)_(\w+=(.*))/$1$2/) + { + my $string = $3; + + print OUTPUT; + + my $non_translated_line = $_; + + for my $lang (sort keys %po_files_by_lang) + { + my $translation = $translations{$lang, $string}; + next if !$translation; + + $_ = $non_translated_line; + s/(\w+)=.*/${1}[$lang]=$translation/; + print OUTPUT; + } + } + else + { + print OUTPUT; + } + } + + close OUTPUT; + close INPUT; +} + +sub schemas_merge_translations +{ + my $source; + + { + local $/; # slurp mode + open INPUT, "<$FILE" or die "can't open $FILE: $!"; + $source = ; + close INPUT; + } + + open OUTPUT, ">$OUTFILE" or die; + binmode (OUTPUT) if $^O eq 'MSWin32'; + + # FIXME: support attribute translations + + # Empty nodes never need translation, so unmark all of them. + # For example, <_foo/> is just replaced by . + $source =~ s|<\s*_($w+)\s*/>|<$1/>|g; + + while ($source =~ s/ + (.*?) + (\s+)((\s*) + (\s*(?:\s*)?(.*?)\s*<\/default>)?(\s*) + (\s*(?:\s*)?(.*?)\s*<\/short>)?(\s*) + (\s*(?:\s*)?(.*?)\s*<\/long>)?(\s*) + <\/locale>) + //sx) + { + print OUTPUT $1; + + my $locale_start_spaces = $2 ? $2 : ''; + my $default_spaces = $4 ? $4 : ''; + my $short_spaces = $7 ? $7 : ''; + my $long_spaces = $10 ? $10 : ''; + my $locale_end_spaces = $13 ? $13 : ''; + my $c_default_block = $3 ? $3 : ''; + my $default_string = $6 ? $6 : ''; + my $short_string = $9 ? $9 : ''; + my $long_string = $12 ? $12 : ''; + + print OUTPUT "$locale_start_spaces$c_default_block"; + + $default_string =~ s/\s+/ /g; + $default_string = entity_decode($default_string); + $short_string =~ s/\s+/ /g; + $short_string = entity_decode($short_string); + $long_string =~ s/\s+/ /g; + $long_string = entity_decode($long_string); + + for my $lang (sort keys %po_files_by_lang) + { + my $default_translation = $translations{$lang, $default_string}; + my $short_translation = $translations{$lang, $short_string}; + my $long_translation = $translations{$lang, $long_string}; + + next if (!$default_translation && !$short_translation && + !$long_translation); + + print OUTPUT "\n$locale_start_spaces"; + + print OUTPUT "$default_spaces"; + + if ($default_translation) + { + $default_translation = entity_encode($default_translation); + print OUTPUT "$default_translation"; + } + + print OUTPUT "$short_spaces"; + + if ($short_translation) + { + $short_translation = entity_encode($short_translation); + print OUTPUT "$short_translation"; + } + + print OUTPUT "$long_spaces"; + + if ($long_translation) + { + $long_translation = entity_encode($long_translation); + print OUTPUT "$long_translation"; + } + + print OUTPUT "$locale_end_spaces"; + } + } + + print OUTPUT $source; + + close OUTPUT; +} + +sub rfc822deb_merge_translations +{ + my %encodings = (); + for my $lang (keys %po_files_by_lang) { + $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang})); + } + + my $source; + + $Text::Wrap::huge = 'overflow'; + $Text::Wrap::break = qr/\n|\s(?=\S)/; + + { + local $/; # slurp mode + open INPUT, "<$FILE" or die "can't open $FILE: $!"; + $source = ; + close INPUT; + } + + open OUTPUT, ">${OUTFILE}" or die; + binmode (OUTPUT) if $^O eq 'MSWin32'; + + while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg) + { + my $sep = $1; + my $non_translated_line = $3.$4; + my $string = $5; + my $underscore = length($2); + next if $underscore eq 0 && $non_translated_line =~ /^#/; + # Remove [] dummy strings + my $stripped = $string; + $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2; + $stripped =~ s/\[\s[^\[\]]*\]$//; + $non_translated_line .= $stripped; + + print OUTPUT $sep.$non_translated_line; + + if ($underscore) + { + my @str_list = rfc822deb_split($underscore, $string); + + for my $lang (sort keys %po_files_by_lang) + { + my $is_translated = 1; + my $str_translated = ''; + my $first = 1; + + for my $str (@str_list) + { + my $translation = $translations{$lang, $str}; + + if (!$translation) + { + $is_translated = 0; + last; + } + + # $translation may also contain [] dummy + # strings, mostly to indicate an empty string + $translation =~ s/\[\s[^\[\]]*\]$//; + + if ($first) + { + if ($underscore eq 2) + { + $str_translated .= $translation; + } + else + { + $str_translated .= + Text::Tabs::expand($translation) . + "\n"; + } + } + else + { + if ($underscore eq 2) + { + $str_translated .= ', ' . $translation; + } + else + { + $str_translated .= Text::Tabs::expand( + Text::Wrap::wrap(' ', ' ', $translation)) . + "\n .\n"; + } + } + $first = 0; + + # To fix some problems with Text::Wrap::wrap + $str_translated =~ s/(\n )+\n/\n .\n/g; + } + next unless $is_translated; + + $str_translated =~ s/\n \.\n$//; + $str_translated =~ s/\s+$//; + + $_ = $non_translated_line; + s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s; + print OUTPUT; + } + } + } + print OUTPUT "\n"; + + close OUTPUT; + close INPUT; +} + +sub rfc822deb_split +{ + # Debian defines a special way to deal with rfc822-style files: + # when a value contain newlines, it consists of + # 1. a short form (first line) + # 2. a long description, all lines begin with a space, + # and paragraphs are separated by a single dot on a line + # This routine returns an array of all paragraphs, and reformat + # them. + # When first argument is 2, the string is a comma separated list of + # values. + my $type = shift; + my $text = shift; + $text =~ s/^[ \t]//mg; + return (split(/, */, $text, 0)) if $type ne 1; + return ($text) if $text !~ /\n/; + + $text =~ s/([^\n]*)\n//; + my @list = ($1); + my $str = ''; + + for my $line (split (/\n/, $text)) + { + chomp $line; + if ($line =~ /^\.\s*$/) + { + # New paragraph + $str =~ s/\s*$//; + push(@list, $str); + $str = ''; + } + elsif ($line =~ /^\s/) + { + # Line which must not be reformatted + $str .= "\n" if length ($str) && $str !~ /\n$/; + $line =~ s/\s+$//; + $str .= $line."\n"; + } + else + { + # Continuation line, remove newline + $str .= " " if length ($str) && $str !~ /\n$/; + $str .= $line; + } + } + + $str =~ s/\s*$//; + push(@list, $str) if length ($str); + + return @list; +} + +sub quoted_translation +{ + my ($xml_mode, $lang, $string) = @_; + + $string = entity_decode($string) if $xml_mode; + $string =~ s/\\\"/\"/g; + + my $translation = $translations{$lang, $string}; + $translation = $string if !$translation; + $translation = entity_encode($translation) if $xml_mode; + $translation =~ s/\"/\\\"/g; + return $translation +} + +sub quoted_merge_translations +{ + my ($xml_mode) = @_; + + if (!$MULTIPLE_OUTPUT) { + print "Quoted only supports Multiple Output.\n"; + exit(1); + } + + for my $lang (sort keys %po_files_by_lang) { + if ( ! -d $lang ) { + mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; + } + open INPUT, "<${FILE}" or die; + open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; + binmode (OUTPUT) if $^O eq 'MSWin32'; + while () + { + s/\"(([^\"]|\\\")*[^\\\"])\"/"\"" . "ed_translation($xml_mode, $lang, $1) . "\""/ge; + print OUTPUT; + } + close OUTPUT; + close INPUT; + } +} diff --git a/intltool-update.in b/intltool-update.in new file mode 100644 index 0000000..2684cc0 --- /dev/null +++ b/intltool-update.in @@ -0,0 +1,1166 @@ +#!@INTLTOOL_PERL@ -w +# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- + +# +# The Intltool Message Updater +# +# Copyright (C) 2000-2003 Free Software Foundation. +# +# Intltool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# version 2 published by the Free Software Foundation. +# +# Intltool 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. +# +# 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. +# +# Authors: Kenneth Christiansen +# Maciej Stachowiak +# Darin Adler + +## Release information +my $PROGRAM = "intltool-update"; +my $VERSION = "0.37.1"; +my $PACKAGE = "intltool"; + +## Loaded modules +use strict; +use Getopt::Long; +use Cwd; +use File::Copy; +use File::Find; + +## Scalars used by the option stuff +my $HELP_ARG = 0; +my $VERSION_ARG = 0; +my $DIST_ARG = 0; +my $POT_ARG = 0; +my $HEADERS_ARG = 0; +my $MAINTAIN_ARG = 0; +my $REPORT_ARG = 0; +my $VERBOSE = 0; +my $GETTEXT_PACKAGE = ""; +my $OUTPUT_FILE = ""; + +my @languages; +my %varhash = (); +my %po_files_by_lang = (); + +# Regular expressions to categorize file types. +# FIXME: Please check if the following is correct + +my $xml_support = +"xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required) +"ui|". # Bonobo specific - User Interface desc. files +"lang|". # ? +"glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required) +"scm(?:\\.in)*|". # ? (Note: .in is not required) +"oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files +"etspec|". # ? +"server(?:\\.in)+|". # Bonobo specific +"sheet(?:\\.in)+|". # ? +"schemas(?:\\.in)+|". # GConf specific +"pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer. +"kbd(?:\\.in)+|". # GOK specific. +"policy(?:\\.in)+"; # PolicyKit files + +my $ini_support = +"icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec +"desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec +"caves(?:\\.in)+|". # GNOME Games specific +"directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec +"soundlist(?:\\.in)+|". # GNOME specific +"keys(?:\\.in)+|". # GNOME Mime database specific +"theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec +"service(?:\\.in)+"; # DBus specific + +my $buildin_gettext_support = +"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py"; + +## Always flush buffer when printing +$| = 1; + +## Sometimes the source tree will be rooted somewhere else. +my $SRCDIR = $ENV{"srcdir"} || "."; +my $POTFILES_in; + +$POTFILES_in = "<$SRCDIR/POTFILES.in"; + +my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); + +## Handle options +GetOptions +( + "help" => \$HELP_ARG, + "version" => \$VERSION_ARG, + "dist|d" => \$DIST_ARG, + "pot|p" => \$POT_ARG, + "headers|s" => \$HEADERS_ARG, + "maintain|m" => \$MAINTAIN_ARG, + "report|r" => \$REPORT_ARG, + "verbose|x" => \$VERBOSE, + "gettext-package|g=s" => \$GETTEXT_PACKAGE, + "output-file|o=s" => \$OUTPUT_FILE, + ) or &Console_WriteError_InvalidOption; + +&Console_Write_IntltoolHelp if $HELP_ARG; +&Console_Write_IntltoolVersion if $VERSION_ARG; + +my $arg_count = ($DIST_ARG > 0) + + ($POT_ARG > 0) + + ($HEADERS_ARG > 0) + + ($MAINTAIN_ARG > 0) + + ($REPORT_ARG > 0); + +&Console_Write_IntltoolHelp if $arg_count > 1; + +my $PKGNAME = FindPackageName (); + +# --version and --help don't require a module name +my $MODULE = $GETTEXT_PACKAGE || $PKGNAME || "unknown"; + +if ($POT_ARG) +{ + &GenerateHeaders; + &GeneratePOTemplate; +} +elsif ($HEADERS_ARG) +{ + &GenerateHeaders; +} +elsif ($MAINTAIN_ARG) +{ + &FindLeftoutFiles; +} +elsif ($REPORT_ARG) +{ + &GenerateHeaders; + &GeneratePOTemplate; + &Console_Write_CoverageReport; +} +elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/) +{ + my $lang = $ARGV[0]; + + ## Report error if the language file supplied + ## to the command line is non-existent + &Console_WriteError_NotExisting("$SRCDIR/$lang.po") + if ! -s "$SRCDIR/$lang.po"; + + if (!$DIST_ARG) + { + print "Working, please wait..." if $VERBOSE; + &GenerateHeaders; + &GeneratePOTemplate; + } + &POFile_Update ($lang, $OUTPUT_FILE); + &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE); +} +else +{ + &Console_Write_IntltoolHelp; +} + +exit; + +######### + +sub Console_Write_IntltoolVersion +{ + print <<_EOF_; +${PROGRAM} (${PACKAGE}) $VERSION +Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler. + +Copyright (C) 2000-2003 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. +_EOF_ + exit; +} + +sub Console_Write_IntltoolHelp +{ + print <<_EOF_; +Usage: ${PROGRAM} [OPTION]... LANGCODE +Updates PO template files and merge them with the translations. + +Mode of operation (only one is allowed): + -p, --pot generate the PO template only + -s, --headers generate the header files in POTFILES.in + -m, --maintain search for left out files from POTFILES.in + -r, --report display a status report for the module + -d, --dist merge LANGCODE.po with existing PO template + +Extra options: + -g, --gettext-package=NAME override PO template name, useful with --pot + -o, --output-file=FILE write merged translation to FILE + -x, --verbose display lots of feedback + --help display this help and exit + --version output version information and exit + +Examples of use: +${PROGRAM} --pot just create a new PO template +${PROGRAM} xy create new PO template and merge xy.po with it + +Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") +or send email to . +_EOF_ + exit; +} + +sub echo_n +{ + my $str = shift; + my $ret = `echo "$str"`; + + $ret =~ s/\n$//; # do we need the "s" flag? + + return $ret; +} + +sub POFile_DetermineType ($) +{ + my $type = $_; + my $gettext_type; + + my $xml_regex = "(?:" . $xml_support . ")"; + my $ini_regex = "(?:" . $ini_support . ")"; + my $buildin_regex = "(?:" . $buildin_gettext_support . ")"; + + if ($type =~ /\[type: gettext\/([^\]].*)]/) + { + $gettext_type=$1; + } + elsif ($type =~ /schemas(\.in)+$/) + { + $gettext_type="schemas"; + } + elsif ($type =~ /glade2?(\.in)*$/) + { + $gettext_type="glade"; + } + elsif ($type =~ /scm(\.in)*$/) + { + $gettext_type="scheme"; + } + elsif ($type =~ /keys(\.in)+$/) + { + $gettext_type="keys"; + } + + # bucket types + + elsif ($type =~ /$xml_regex$/) + { + $gettext_type="xml"; + } + elsif ($type =~ /$ini_regex$/) + { + $gettext_type="ini"; + } + elsif ($type =~ /$buildin_regex$/) + { + $gettext_type="buildin"; + } + else + { + $gettext_type="unknown"; + } + + return "gettext\/$gettext_type"; +} + +sub TextFile_DetermineEncoding ($) +{ + my $gettext_code="ASCII"; # All files are ASCII by default + my $filetype=`file $_ | cut -d ' ' -f 2`; + + if ($? eq "0") + { + if ($filetype =~ /^(ISO|UTF)/) + { + chomp ($gettext_code = $filetype); + } + elsif ($filetype =~ /^XML/) + { + $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8 + } + } + + return $gettext_code; +} + +sub isNotValidMissing +{ + my ($file) = @_; + + return if $file =~ /^\{arch\}\/.*$/; + return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/; +} + +sub FindLeftoutFiles +{ + my (@buf_i18n_plain, + @buf_i18n_xml, + @buf_i18n_xml_unmarked, + @buf_i18n_ini, + @buf_potfiles, + @buf_potfiles_ignore, + @buf_allfiles, + @buf_allfiles_sorted, + @buf_potfiles_sorted, + @buf_potfiles_ignore_sorted + ); + + ## Search and find all translatable files + find sub { + push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; + push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; + push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; + push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; + }, ".."; + find sub { + push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; + push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; + push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; + push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; + }, "$SRCDIR/.." if "$SRCDIR" ne "."; + + open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n"; + @buf_potfiles = grep !/^(#|\s*$)/, ; + close POTFILES; + + foreach (@buf_potfiles) { + s/^\[.*]\s*//; + } + + print "Searching for missing translatable files...\n" if $VERBOSE; + + ## Check if we should ignore some found files, when + ## comparing with POTFILES.in + foreach my $ignore ("POTFILES.skip", "POTFILES.ignore") + { + (-s "$SRCDIR/$ignore") or next; + + if ("$ignore" eq "POTFILES.ignore") + { + print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n". + "content of this file to POTFILES.skip.\n"; + } + + print "Found $ignore: Ignoring files...\n" if $VERBOSE; + open FILE, "<$SRCDIR/$ignore" or die "ERROR: Failed to open $SRCDIR/$ignore!\n"; + + while () + { + push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/; + } + close FILE; + + @buf_potfiles_ignore_sorted = sort (@buf_potfiles_ignore); + } + + foreach my $file (@buf_i18n_plain) + { + my $in_comment = 0; + my $in_macro = 0; + + open FILE, "<$file"; + while () + { + # Handle continued multi-line comment. + if ($in_comment) + { + next unless s-.*\*/--; + $in_comment = 0; + } + + # Handle continued macro. + if ($in_macro) + { + $in_macro = 0 unless /\\$/; + next; + } + + # Handle start of macro (or any preprocessor directive). + if (/^\s*\#/) + { + $in_macro = 1 if /^([^\\]|\\.)*\\$/; + next; + } + + # Handle comments and quoted text. + while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy + { + my $match = $1; + if ($match eq "/*") + { + if (!s-/\*.*?\*/--) + { + s-/\*.*--; + $in_comment = 1; + } + } + elsif ($match eq "//") + { + s-//.*--; + } + else # ' or " + { + if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-) + { + warn "mismatched quotes at line $. in $file\n"; + s-$match.*--; + } + } + } + + if (/\w\.GetString *\(QUOTEDTEXT/) + { + if (defined isNotValidMissing (unpack("x3 A*", $file))) { + ## Remove the first 3 chars and add newline + push @buf_allfiles, unpack("x3 A*", $file) . "\n"; + } + last; + } + + ## C_ N_ Q_ and _ are the macros defined in gi8n.h + if (/[CNQ]?_ *\(QUOTEDTEXT/) + { + if (defined isNotValidMissing (unpack("x3 A*", $file))) { + ## Remove the first 3 chars and add newline + push @buf_allfiles, unpack("x3 A*", $file) . "\n"; + } + last; + } + } + close FILE; + } + + foreach my $file (@buf_i18n_xml) + { + open FILE, "<$file"; + + while () + { + # FIXME: share the pattern matching code with intltool-extract + if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/) + { + if (defined isNotValidMissing (unpack("x3 A*", $file))) { + push @buf_allfiles, unpack("x3 A*", $file) . "\n"; + } + last; + } + } + close FILE; + } + + foreach my $file (@buf_i18n_ini) + { + open FILE, "<$file"; + while () + { + if (/_(.*)=/) + { + if (defined isNotValidMissing (unpack("x3 A*", $file))) { + push @buf_allfiles, unpack("x3 A*", $file) . "\n"; + } + last; + } + } + close FILE; + } + + foreach my $file (@buf_i18n_xml_unmarked) + { + if (defined isNotValidMissing (unpack("x3 A*", $file))) { + push @buf_allfiles, unpack("x3 A*", $file) . "\n"; + } + } + + + @buf_allfiles_sorted = sort (@buf_allfiles); + @buf_potfiles_sorted = sort (@buf_potfiles); + + my %in2; + foreach (@buf_potfiles_sorted) + { + s#^$SRCDIR/../##; + s#^$SRCDIR/##; + $in2{$_} = 1; + } + + foreach (@buf_potfiles_ignore_sorted) + { + s#^$SRCDIR/../##; + s#^$SRCDIR/##; + $in2{$_} = 1; + } + + my @result; + + foreach (@buf_allfiles_sorted) + { + my $dummy = $_; + my $srcdir = $SRCDIR; + + $srcdir =~ s#^../##; + $dummy =~ s#^$srcdir/../##; + $dummy =~ s#^$srcdir/##; + $dummy =~ s#_build/##; + if (!exists($in2{$dummy})) + { + push @result, $dummy + } + } + + my @buf_potfiles_notexist; + + foreach (@buf_potfiles_sorted) + { + chomp (my $dummy = $_); + if ("$dummy" ne "" and !(-f "$SRCDIR/../$dummy" or -f "../$dummy")) + { + push @buf_potfiles_notexist, $_; + } + } + + ## Save file with information about the files missing + ## if any, and give information about this procedure. + if (@result + @buf_potfiles_notexist > 0) + { + if (@result) + { + print "\n" if $VERBOSE; + unlink "missing"; + open OUT, ">missing"; + print OUT @result; + close OUT; + warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n". + "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n"; + print STDERR @result, "\n"; + warn "If some of these files are left out on purpose then please add them to\n". + "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n". + "of left out files has been written in the current directory.\n"; + } + if (@buf_potfiles_notexist) + { + unlink "notexist"; + open OUT, ">notexist"; + print OUT @buf_potfiles_notexist; + close OUT; + warn "\n" if ($VERBOSE or @result); + warn "\e[1mThe following files do not exist anymore:\e[0m\n\n"; + warn @buf_potfiles_notexist, "\n"; + warn "Please remove them from POTFILES.in. A file \e[1m'notexist'\e[0m\n". + "containing this list of absent files has been written in the current directory.\n"; + } + } + + ## If there is nothing to complain about, notify the user + else { + print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE; + } +} + +sub Console_WriteError_InvalidOption +{ + ## Handle invalid arguments + print STDERR "Try `${PROGRAM} --help' for more information.\n"; + exit 1; +} + +sub isProgramInPath +{ + my ($file) = @_; + # If either a file exists, or when run it returns 0 exit status + return 1 if ((-x $file) or (system("$file --version >$devnull") == 0)); + return 0; +} + +sub isGNUGettextTool +{ + my ($file) = @_; + # Check that we are using GNU gettext tools + if (isProgramInPath ($file)) + { + my $version = `$file --version`; + return 1 if ($version =~ m/.*\(GNU .*\).*/); + } + return 0; +} + +sub GenerateHeaders +{ + my $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} || "intltool-extract"; + + ## Generate the .h header files, so we can allow glade and + ## xml translation support + if (! isProgramInPath ("$EXTRACT")) + { + print STDERR "\n *** The intltool-extract script wasn't found!" + ."\n *** Without it, intltool-update can not generate files.\n"; + exit; + } + else + { + open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n"; + + while () + { + chomp; + next if /^\[\s*encoding/; + + ## Find xml files in POTFILES.in and generate the + ## files with help from the extract script + + my $gettext_type= &POFile_DetermineType ($1); + + if (/\.($xml_support|$ini_support)$/ || /^\[/) + { + s/^\[[^\[].*]\s*//; + + my $filename = "../$_"; + + if ($VERBOSE) + { + system ($EXTRACT, "--update", "--srcdir=$SRCDIR", + "--type=$gettext_type", $filename); + } + else + { + system ($EXTRACT, "--update", "--type=$gettext_type", + "--srcdir=$SRCDIR", "--quiet", $filename); + } + } + } + close FILE; + } +} + +# +# Generate .pot file from POTFILES.in +# +sub GeneratePOTemplate +{ + my $XGETTEXT = $ENV{"XGETTEXT"} || "xgettext"; + my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || ''; + chomp $XGETTEXT; + + if (! isGNUGettextTool ("$XGETTEXT")) + { + print STDERR " *** GNU xgettext is not found on this system!\n". + " *** Without it, intltool-update can not extract strings.\n"; + exit; + } + + print "Building $MODULE.pot...\n" if $VERBOSE; + + open INFILE, $POTFILES_in; + unlink "POTFILES.in.temp"; + open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing"); + + my $gettext_support_nonascii = 0; + + # checks for GNU gettext >= 0.12 + my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`; + if ($? == 0) + { + $gettext_support_nonascii = 1; + } + else + { + # urge everybody to upgrade gettext + print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n". + " strings. That means you should install a version of gettext\n". + " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n". + " or have to let non-ASCII strings untranslated. (If there is any)\n"; + } + + my $encoding = "ASCII"; + my $forced_gettext_code; + my @temp_headers; + my $encoding_problem_is_reported = 0; + + while () + { + next if (/^#/ or /^\s*$/); + + chomp; + + my $gettext_code; + + if (/^\[\s*encoding:\s*(.*)\s*\]/) + { + $forced_gettext_code=$1; + } + elsif (/\.($xml_support|$ini_support)$/ || /^\[/) + { + s/^\[.*]\s*//; + print OUTFILE "../$_.h\n"; + push @temp_headers, "../$_.h"; + $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code); + } + else + { + print OUTFILE "$SRCDIR/../$_\n"; + $gettext_code = &TextFile_DetermineEncoding ("$SRCDIR/../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code); + } + + next if (! $gettext_support_nonascii); + + if (defined $forced_gettext_code) + { + $encoding=$forced_gettext_code; + } + elsif (defined $gettext_code and "$encoding" ne "$gettext_code") + { + if ($encoding eq "ASCII") + { + $encoding=$gettext_code; + } + elsif ($gettext_code ne "ASCII") + { + # Only report once because the message is quite long + if (! $encoding_problem_is_reported) + { + print STDERR "WARNING: You should use the same file encoding for all your project files,\n". + " but $PROGRAM thinks that most of the source files are in\n". + " $encoding encoding, while \"$_\" is (likely) in\n". + " $gettext_code encoding. If you are sure that all translatable strings\n". + " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n". + " line to POTFILES.in:\n\n". + " [encoding: UTF-8]\n\n". + " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n". + "(such warning message will only be reported once.)\n"; + $encoding_problem_is_reported = 1; + } + } + } + } + + close OUTFILE; + close INFILE; + + unlink "$MODULE.pot"; + my @xgettext_argument=("$XGETTEXT", + "--add-comments", + "--directory\=.", + "--default-domain\=$MODULE", + "--flag\=g_strdup_printf:1:c-format", + "--flag\=g_string_printf:2:c-format", + "--flag\=g_string_append_printf:2:c-format", + "--flag\=g_error_new:3:c-format", + "--flag\=g_set_error:4:c-format", + "--flag\=g_markup_printf_escaped:1:c-format", + "--flag\=g_log:3:c-format", + "--flag\=g_print:1:c-format", + "--flag\=g_printerr:1:c-format", + "--flag\=g_printf:1:c-format", + "--flag\=g_fprintf:2:c-format", + "--flag\=g_sprintf:2:c-format", + "--flag\=g_snprintf:3:c-format", + "--flag\=g_scanner_error:2:c-format", + "--flag\=g_scanner_warn:2:c-format", + "--output\=$MODULE\.pot", + "--files-from\=\.\/POTFILES\.in\.temp"); + my $XGETTEXT_KEYWORDS = &FindPOTKeywords; + push @xgettext_argument, $XGETTEXT_KEYWORDS; + my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress; + push @xgettext_argument, "--msgid-bugs-address\=\"$MSGID_BUGS_ADDRESS\"" if $MSGID_BUGS_ADDRESS; + push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii); + push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS; + my $xgettext_command = join ' ', @xgettext_argument; + + # intercept xgettext error message + print "Running $xgettext_command\n" if $VERBOSE; + my $xgettext_error_msg = `$xgettext_command 2>\&1`; + my $command_failed = $?; + + unlink "POTFILES.in.temp"; + + print "Removing generated header (.h) files..." if $VERBOSE; + unlink foreach (@temp_headers); + print "done.\n" if $VERBOSE; + + if (! $command_failed) + { + if (! -e "$MODULE.pot") + { + print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE; + } + else + { + print "Wrote $MODULE.pot\n" if $VERBOSE; + } + } + else + { + if ($xgettext_error_msg =~ /--from-code/) + { + # replace non-ASCII error message with a more useful one. + print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n". + " string marked for translation. Please make sure that all strings marked\n". + " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n". + " following line to POTFILES.in and rerun $PROGRAM:\n\n". + " [encoding: UTF-8]\n\n"; + } + else + { + print STDERR "$xgettext_error_msg"; + if (-e "$MODULE.pot") + { + # is this possible? + print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n". + " Please consult error message above if there is any.\n"; + } + else + { + print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n". + " error message above if there is any.\n"; + } + } + exit (1); + } +} + +sub POFile_Update +{ + -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n"; + + my $MSGMERGE = $ENV{"MSGMERGE"} || "msgmerge"; + my ($lang, $outfile) = @_; + + if (! isGNUGettextTool ("$MSGMERGE")) + { + print STDERR " *** GNU msgmerge is not found on this system!\n". + " *** Without it, intltool-update can not extract strings.\n"; + exit; + } + + print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE; + + my $infile = "$SRCDIR/$lang.po"; + $outfile = "$SRCDIR/$lang.po" if ($outfile eq ""); + + # I think msgmerge won't overwrite old file if merge is not successful + system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot"); +} + +sub Console_WriteError_NotExisting +{ + my ($file) = @_; + + ## Report error if supplied language file is non-existing + print STDERR "$PROGRAM: $file does not exist!\n"; + print STDERR "Try '$PROGRAM --help' for more information.\n"; + exit; +} + +sub GatherPOFiles +{ + my @po_files = glob ("./*.po"); + + @languages = map (&POFile_GetLanguage, @po_files); + + foreach my $lang (@languages) + { + $po_files_by_lang{$lang} = shift (@po_files); + } +} + +sub POFile_GetLanguage ($) +{ + s/^(.*\/)?(.+)\.po$/$2/; + return $_; +} + +sub Console_Write_TranslationStatus +{ + my ($lang, $output_file) = @_; + my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; + + if (! isGNUGettextTool ("$MSGFMT")) + { + print STDERR " *** GNU msgfmt is not found on this system!\n". + " *** Without it, intltool-update can not extract strings.\n"; + exit; + } + + $output_file = "$SRCDIR/$lang.po" if ($output_file eq ""); + + system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file); +} + +sub Console_Write_CoverageReport +{ + my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; + + if (! isGNUGettextTool ("$MSGFMT")) + { + print STDERR " *** GNU msgfmt is not found on this system!\n". + " *** Without it, intltool-update can not extract strings.\n"; + exit; + } + + &GatherPOFiles; + + foreach my $lang (@languages) + { + print STDERR "$lang: "; + &POFile_Update ($lang, ""); + } + + print STDERR "\n\n * Current translation support in $MODULE \n\n"; + + foreach my $lang (@languages) + { + print STDERR "$lang: "; + system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po"); + } +} + +sub SubstituteVariable +{ + my ($str) = @_; + + # always need to rewind file whenever it has been accessed + seek (CONF, 0, 0); + + # cache each variable. varhash is global to we can add + # variables elsewhere. + while () + { + if (/^(\w+)=(.*)$/) + { + ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/; + } + } + + if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) + { + my $rest = $3; + my $untouched = $1; + my $sub = ""; + # Ignore recursive definitions of variables + $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; + + return SubstituteVariable ("$untouched$sub$rest"); + } + + # We're using Perl backticks ` and "echo -n" here in order to + # expand any shell escapes (such as backticks themselves) in every variable + return echo_n ($str); +} + +sub CONF_Handle_Open +{ + my $base_dirname = getcwd(); + $base_dirname =~ s@.*/@@; + + my ($conf_in, $src_dir); + + if ($base_dirname =~ /^po(-.+)?$/) + { + if (-f "Makevars") + { + my $makefile_source; + + local (*IN); + open (IN, ") + { + if (/^top_builddir[ \t]*=/) + { + $src_dir = $_; + $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; + + chomp $src_dir; + if (-f "$src_dir" . "/configure.ac") { + $conf_in = "$src_dir" . "/configure.ac" . "\n"; + } else { + $conf_in = "$src_dir" . "/configure.in" . "\n"; + } + last; + } + } + close IN; + + $conf_in || die "Cannot find top_builddir in Makevars."; + } + elsif (-f "$SRCDIR/../configure.ac") + { + $conf_in = "$SRCDIR/../configure.ac"; + } + elsif (-f "$SRCDIR/../configure.in") + { + $conf_in = "$SRCDIR/../configure.in"; + } + else + { + my $makefile_source; + + local (*IN); + open (IN, ") + { + if (/^top_srcdir[ \t]*=/) + { + $src_dir = $_; + $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; + + chomp $src_dir; + $conf_in = "$src_dir" . "/configure.in" . "\n"; + + last; + } + } + close IN; + + $conf_in || die "Cannot find top_srcdir in Makefile."; + } + + open (CONF, "<$conf_in"); + } + else + { + print STDERR "$PROGRAM: Unable to proceed.\n" . + "Make sure to run this script inside the po directory.\n"; + exit; + } +} + +sub FindPackageName +{ + my $version; + my $domain = &FindMakevarsDomain; + my $name = $domain || "untitled"; + + &CONF_Handle_Open; + + my $conf_source; { + local (*IN); + open (IN, "<&CONF") || return $name; + seek (IN, 0, 0); + local $/; # slurp mode + $conf_source = ; + close IN; + } + + # priority for getting package name: + # 1. GETTEXT_PACKAGE + # 2. first argument of AC_INIT (with >= 2 arguments) + # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument) + + # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m + # the \s makes this not work, why? + if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m) + { + ($name, $version) = ($1, $2); + $name =~ s/[\[\]\s]//g; + $version =~ s/[\[\]\s]//g; + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); + } + + if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) + { + ($name, $version) = ($1, $2); + $name =~ s/[\[\]\s]//g; + $version =~ s/[\[\]\s]//g; + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); + } + + # \s makes this not work, why? + $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m; + + # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value + # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables. + $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g; + + $name = $domain if $domain; + + $name = SubstituteVariable ($name); + $name =~ s/^["'](.*)["']$/$1/; + + return $name if $name; +} + + +sub FindPOTKeywords +{ + + my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_"; + my $varname = "XGETTEXT_OPTIONS"; + my $make_source; { + local (*IN); + open (IN, "; + close IN; + } + + # unwrap lines split with a trailing \ + $make_source =~ s/\\ $ \n/ /mxg; + $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m; + + return $keywords; +} + +sub FindMakevarsDomain +{ + + my $domain = ""; + my $makevars_source; { + local (*IN); + open (IN, "; + close IN; + } + + $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m; + $domain =~ s/^\s+//; + $domain =~ s/\s+$//; + + return $domain; +} + +sub FindMakevarsBugAddress +{ + + my $address = ""; + my $makevars_source; { + local (*IN); + open (IN, "; + close IN; + } + + $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m; + $address =~ s/^\s+//; + $address =~ s/\s+$//; + + return $address; +} diff --git a/lgpl-2.1.txt b/lgpl-2.1.txt new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/lgpl-2.1.txt @@ -0,0 +1,502 @@ + 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. + + + Copyright (C) + + 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. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/missing b/missing new file mode 100644 index 0000000..1c8ff70 --- /dev/null +++ b/missing @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# 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 + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +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 + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/mkinstalldirs b/mkinstalldirs new file mode 100644 index 0000000..ef7e16f --- /dev/null +++ b/mkinstalldirs @@ -0,0 +1,161 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy + +scriptversion=2006-05-11.19 + +# Original author: Noah Friedman +# Created: 1993-05-16 +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' +IFS=" "" $nl" +errstatus=0 +dirmode= + +usage="\ +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to ." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit $? + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. +case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; +esac + +for file +do + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file + shift + IFS=$oIFS + + for d + do + test "x$d" = x && continue + + pathcomp=$pathcomp$d + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr= + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp=$pathcomp/ + done +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..3c94912 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,291 @@ +2010-12-07 Jorma Karvonen + + * fi.po: Updated Finnish translation. + +2010-12-03 Leandro Regueiro + + * gl.po: Added Galician translation. + +2010-07-13 Benno Schulenberg + + * eo.po: Added Esperanto translation. + +2010-05-05 Kalman Kemenczy + + * hu.po: Updated Hungarian translation. + +2009-09-19 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2009-09-10 Jay A. Fleming + + * sr.po: Added Serbian translation. + +2009-07-30 Rihards Prieditis + + * lv.po: Updated Latvian translation. + +2009-07-06 Eivind + + * nn.po: Added Norwegian Nynorsk translation. + +2009-07-06 Alan Monfort + + * br.po: Added Breton translation. + +2009-06-28 Mario Blattermann + + * de.po: Updated German translation. + +2009-06-25 Marc Veillet + + * fr.po: Updated French translation. + +2009-06-25 Andhika Padmawan + + * id.po: Updated Indonesian translation. + +2009-06-25 Lucas Vieites + + * es.po: Updated Spanish translation. + +2009-06-25 Michal Trzebiatowski + + * pl.po: Updated Polish translation. + +2009-05-08 Alan Pepelko + + * sl.po: Added Slovenian translation. + +2008-12-07 Vincenzo Campanella + + * it.po: Updated Italian translation. + +2008-09-15 Marc Veillet + + * fr.po: Updated French translation. + +2008-08-25 Joe Hansen + + * da.po: Added Danish translation. + +2008-07-24 Andhika Padmawan + + * id.po: Added Indonesian translation. + +2008-07-21 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2008-05-08 Leslie Harlley Watter + + * pt_BR.po: Added Brazilian Portuguese translation. + +2008-03-20 Wei-Lun Chao + + * zh_TW.po: Updated Traditional Chinese translation. + +2008-01-26 LI Daobing + + * zh_CN.po: Updated Simplified Chinese translation. + +2008-01-15 Kevin Scannell + + * ga.po: Updated Irish translation. + +2008-01-15 Benno Schulenberg + + * nl.po: Updated Dutch translation. + +2008-01-15 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2008-01-15 Mikel Olasagasti + + * eu.po: Added Basque translation. + +2007-07-14 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2007-06-25 LI Daobing + + * zh_CN.po: Updated Simplified Chinese translation. + +2007-03-13 Youri Bulka + + * uk.po: Added Ukrainian translation. + +2007-02-16 Reviczky Adam Janos + + * hu.po: Updated Hungarian translation. + +2006-11-03 Seo Sanghyeon + + * ko.po: Added Korean translation. + +2006-08-29 Andreas Schweitzer + + * de.po: Updated German translation. + +2006-05-20 Yavor Doganov + + * bg.po: Updated Bulgarian translation. + +2006-05-20 Stavros Giannouris + + * el.po: Updated Greek translation. + +2006-05-04 Kevin Patrick Scannell + + * ga.po: Added Irish translation. + +2006-04-29 Eero Tamminen + + * fi.po: Added Finnish translation. + +2006-04-20 Wouter Van Hemel + + * nl.po: Added Dutch translation. + +2005-12-06 Isak Savo + + * sv.po: Updated Swedish translation. + +2005-10-13 OLS3 + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-09-03 Stavros Giannouris + + * el.po: Added Greek translation. + +2005-08-23 Alessio D'Ascanio + + * it.po: Updated Italian translation. + +2005-08-05 Kaya Oguz + + * tr.po: Added Turkish translation. + +2005-08-01 Yo'av Moshe + + * he.po: Added Hebrew translation. + +2005-07-11 Peter Chabada + + * sk.po: Added Slovak translation. + +2005-07-07 Michal Wrobel + + * pl.po: Updated Polish translation. + +2005-05-19 Carlos Z.F. Liu + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-05-15 Yavor Doganov + + * bg.po: Updated Bulgarian translation. + +2005-05-07 Quy NGUYEN DAI + + * vi.po: Added Vietnamese translation. + +2005-05-04 Michal Wrobel + + * pl.po: Updated Polish translation. + +2005-05-03 Yavor Doganov + + * bg.po: Added Bulgarian translation. + +2005-04-30 Reviczky Adam Janos + + * hu.po: Updated Hungarian translation. + +2004-12-29 Alan Kelon + + * pt.po: Added Portuguese translation. + +2004-12-21 Michal Wrobel + + * pl.po: Added Polish translation. + +2004-12-18 Isak Savo + + * sv.po: Updated Swedish translation. + +2004-12-07 Lech Jankovski + + * lt.po: Added Lithuanian translation. + +2004-11-29 Alessio D'Ascanio + + * it.po: Added Italian translation. + +2004-11-25 Vijay Durairaj + + * ta.po: Added Tamil translation. + +2004-11-23 David Rosal + + * ca.po: Added Catalan translation. + +2004-11-20 Reviczky Adam Janos + + * hu.po: Added Hungarian translation. + +2004-11-19 Petr Vyslouzil + + * cs.po: Added Czech translation. + +2004-11-14 Ruediger Arp + + * de.po: Updated German translation. + +2004-11-09 gettextize + + * Makefile.in.in: Downgrade to gettext-0.11.4. + +2004-11-09 Lucas Vieites + + * es.po: Added Spanish translation. + +2004-11-03 Luc Pionchon + + * fr.po: Added French translation. + +2004-10-28 Sebastian Stach + + * de.po: Added German translation. + +2004-10-28 Isak Savo + + * sv.po: Added Swedish translation. + +2004-10-24 Artem Vakhitov + + * ru.po: Added Russian translation. + +2004-10-04 OLS3 + + * zh_TW.po: Added Traditional Chinese translation. + +2004-09-28 Carlos Z.F. Liu + + * zh_CN.po: Added Simplified Chinese translation. + +2004-09-11 gettextize + + * Makefile.in.in: New file, from gettext-0.12.1. + * Rules-quot: New file, from gettext-0.12.1. + * boldquot.sed: New file, from gettext-0.12.1. + * en@boldquot.header: New file, from gettext-0.12.1. + * en@quot.header: New file, from gettext-0.12.1. + * insert-header.sin: New file, from gettext-0.12.1. + * quot.sed: New file, from gettext-0.12.1. + * remove-potcdate.sin: New file, from gettext-0.12.1. + diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..3f758a0 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,41 @@ +# please keep this list sorted alphabetically +# +bg +br +ca +cs +da +de +el +eo +es +eu +fi +fr +ga +gl +he +hu +id +it +ja +ko +lt +lv +nl +nn +pl +pt +pt_BR +ru +sk +sl +sr +sv +ta +tr +uk +vi +zh_CN +zh_TW + diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..402a25f --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,217 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# Copyright (C) 2004-2008 Rodney Dawes +# +# This file may be copied and used freely without restrictions. It may +# be used in projects which are not available under a GNU Public License, +# but which still want to provide support for the GNU gettext functionality. +# +# - Modified by Owen Taylor to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +# +# - Modified by Rodney Dawes for use with intltool +# +# We have the following line for use by intltoolize: +# INTLTOOL_MAKEFILE + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +datarootdir = @datarootdir@ +libdir = @libdir@ +DATADIRNAME = @DATADIRNAME@ +itlocaledir = $(prefix)/$(DATADIRNAME)/locale +subdir = po +install_sh = @install_sh@ +# Automake >= 1.8 provides @mkdir_p@. +# Until it can be supposed, use the safe fallback: +mkdir_p = $(install_sh) -d + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot + +ALL_LINGUAS = @ALL_LINGUAS@ + +PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) + +USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) + +USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) + +POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) + +DISTFILES = Makefile.in.in POTFILES.in $(POFILES) +EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS + +POTFILES = \ +# This comment gets stripped out + +CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) + +.SUFFIXES: +.SUFFIXES: .po .pox .gmo .mo .msg .cat + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(MSGFMT) -o $@ $< + +.po.gmo: + file=`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && gencat $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: $(CATALOGS) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(GENPOT) + +install: install-data +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$lang.gmo as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ + fi; \ + if test -r $$lang.gmo.m; then \ + $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + if test -r $(srcdir)/$$lang.gmo.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$lang.gmo.m as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + true; \ + fi; \ + fi; \ + done + +# Empty stubs to satisfy archaic automake needs +dvi info tags TAGS ID: + +# Define this as empty until I found a useful application. +install-exec installcheck: + +uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + +check: all $(GETTEXT_PACKAGE).pot + rm -f missing notexist + srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m + if [ -r missing -o -r notexist ]; then \ + exit 1; \ + fi + +mostlyclean: + rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp + rm -f .intltool-merge-cache + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES stamp-it + rm -f *.mo *.msg *.cat *.cat.m *.gmo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f Makefile.in.in + +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: $(DISTFILES) + dists="$(DISTFILES)"; \ + extra_dists="$(EXTRA_DISTFILES)"; \ + for file in $$extra_dists; do \ + test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ + done; \ + for file in $$dists; do \ + test -f $$file || file="$(srcdir)/$$file"; \ + ln $$file $(distdir) 2> /dev/null \ + || cp -p $$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(GETTEXT_PACKAGE).pot + tmpdir=`pwd`; \ + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + echo "$$lang:"; \ + result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ + if $$result; then \ + if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.gmo failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi; \ + done + +Makefile POTFILES: stamp-it + @if test ! -f $@; then \ + rm -f stamp-it; \ + $(MAKE) stamp-it; \ + fi + +stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..1835cf7 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,12 @@ +src/main.c +src/window.c +src/menu.c +src/callback.c +src/view.c +src/font.c +src/selector.c +src/file.c +src/search.c + +# files added by intltool-prepare +data/l3afpad.desktop.in diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..9ae5b0f --- /dev/null +++ b/po/bg.po @@ -0,0 +1,269 @@ +# Bulgarian translation of l3afpad. +# Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Yavor Doganov , 2005, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2006-05-20 13:05+0300\n" +"Last-Translator: Yavor Doganov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Файл" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Редактиране" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Търсене" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Настройки" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Помощ" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Нов" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Отваряне..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Запазване" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Запазване _като..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Преглед за печат" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Печат..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Изход" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Отмяна" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Повтаряне" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "От_рязване" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Копиране" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "По_ставяне" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Из_триване" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Избор на вси_чко" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Търсене..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Намиране на _следващ" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Намиране на п_редишен" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Замяна..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Отиване на..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Шрифт..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Относно" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Режим с _пренасяне" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Номера на редове" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Автоматичен отстъп" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Опростен текстов редактор, базиран на GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Явор Доганов \n" +"\n" +"Проектът за превод на GNOME има нужда от подкрепа.\n" +"Научете повече за нас на http://gnome.cult.bg\n" +"Докладвайте за грешки на http://gnome.cult.bg/bugs" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Запазване на промените в „%s“?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Шрифт" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Текущ локал (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Друго кодиране на символите" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Кодиране на _символите:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "„%s“ не се поддържа" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Автоматично" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Отваряне" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Запазване като" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Ко_диране на символите:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "„%s“ вече съществува, да се презапише ли?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Неозаглавено" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Превръщането в кодиране „%s“ е невъзможно" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Файлът не може да бъде отворен за запис" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Файлът не може да бъде запазен" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Търсеният низ не е намерен" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Заменяне?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d низа са заменени" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Замяна" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Търсене" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Търсене _на:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Замяна с:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "За_читане на малки/големи" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Замяна на _всички" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Отиване на" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Отиване на ред" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Ред номер:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Опростен текстов редактор" diff --git a/po/br.po b/po/br.po new file mode 100644 index 0000000..bc6559c --- /dev/null +++ b/po/br.po @@ -0,0 +1,275 @@ +# Breton translation for L3afpad +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the L3afpad package. +# +# Denis ARNAUD , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-07-04 16:58+0100\n" +"Last-Translator: Alan Monfort \n" +"Language-Team: Breton Team \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Breton\n" +"X-Poedit-Country: FRANCE\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Restr" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Embann" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Klask" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Dibarzhiou" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Skoazell" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nevez" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Digerin..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Enrollan" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Enrollan dind_an..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Alberz ar moullan" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Moullan..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Kuitaat" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Dizober" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Adober" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Troc'han" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Eilan" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Pegan" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Dilemel" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Diuzan pep tr_a" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Kavout..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Kavout an hi_ni da heul" + +# Attention avec "an hini" +# s'il s'agit d'un mot : ger g. -iou : an hini kent +# pajenn b. -ou : an hini gent +# Kent mute comme un adjectif. +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Kavout an hini ken_t" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Am_savin..." + +# [fr]aller a la ligne +# ligne de texte : arroudenn +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Mont da..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Nodrezh..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_A-zivout" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Distro emgefreek d'al linenn" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Niver al linennou/an arroudenn" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_EmDilinennan" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Embanner testennou eeun diazezet war GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Denis ARNAUD " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Enrollan ar c'hemmou dindan '%s' ?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Nodrezh" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Lec'hadur bremanel (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Spletad arouezennou all" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Spletad arouezennou :" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "Anskoret eo '%s'" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "EmZinoin" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Digerin" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Enrollan dindan" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Bonegan an _arouezenn :" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' zo anezhan endeo. Flastran ?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Hep titl" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "N'haller ket amdrein spletad arouezennou da '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "N'haller ket digerin ar restr da skrivan" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "N'haller ket enrollan ar restr " + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Klask hedad ket kavet" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Amsavin ?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d hedad arouezennou amsavet" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Amsavin" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Kavout" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Kla_sk petra :" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Am_savin gant :" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Teurel evezh eus ar pennlizherennou" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Amsavin pep tr_a" + +# [fr]aller a la ligne +# ligne de texte : arroudenn +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Mont d'al linenn" + +# [fr]aller a la ligne +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Mont d'al linenn" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Niverenn al _linenn :" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Embanner testennou eeun" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..5a952c4 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,263 @@ +# Catalan translation of L3afpad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# David Rosal 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.7.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2004-11-04 10:10+0100\n" +"Last-Translator: David Rosal \n" +"Language-Team: Catalan\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fitxer" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Cercar" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opcions" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "A_jut" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nou" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Obrir..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Guardar" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Guardar com _a..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Sortir" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Sortir" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Sortir" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Desfer" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refer" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Tallar" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copiar" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Enganxar" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Es_borrar" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Seleccionar-ho tot" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Cercar..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Cercar el _següent" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Cercar l'_anterior" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Substituir" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Saltar a la _línia..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Tipografia..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Respecte a" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Ajust de línia" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Numerar les línies" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Auto_indentació" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Editor de text simple, basat en GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "David Rosal " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Vols desar els canvis fets a '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Tipografia" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Locale actual (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Una altra codificació" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Codificació:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' no és suportat" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Autodetectar" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Obrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Guardar com a" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Codificació de c_aràcters: " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' ja existeix. Vols sobreescriure'l?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sense nom" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "No es pot convertir la codificació a '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "No es pot obrir el fitxer per a escriure" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "No es pot escriure al fitxer" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "No s'ha trobat la cadena desitjada" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Substituir?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "S'han substituit %d cadenes" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Substituir" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Cercar" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Cercar: " + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Substituir per: " + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Distingir _majúscules / minúscules" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Substituir-les _totes de cop" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Saltar a" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Saltar" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Número de _línia: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Editor de text simple" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..f31c5ca --- /dev/null +++ b/po/cs.po @@ -0,0 +1,263 @@ +# Czech translation of l3afpad. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Petr Vysloužil , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.7.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2004-11-18 23:58+0100\n" +"Last-Translator: Petr Vysloužil \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Soubor" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "Ú_pravy" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Hledat" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Nástroje" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Nápověda" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nový" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Otevřít" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Uložit" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Uložit _jako..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Konec" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Konec" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Konec" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Zpět" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Zn_ovu" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Vyjmout" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopírovat" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "V_ložit" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Odstranit" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Vybrat vše" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Hledat" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Hledat _následující" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Hledat _předchozí" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Nah_radit" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Přejít na" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Písmo" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "O _aplikaci" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Zalamovat řádky" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Čí_slovat řádky" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Automatické odsazování" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Jednoduchý GTK+ textový editor" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Petr Vyslouzil " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Uložit změny v '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Písmo" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Aktuální locale (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Jiná znaková sada" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Znaková _sada:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' není podporována" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Autodetekce" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Otevřít" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Uložit jako" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Kódování znaků:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' již existuje. Přepsat?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Nepojmenovaný" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Nemohu převést znakovou sadu na '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Nemohu otevřít soubor k zápisu" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Nemohu zapsat soubor" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Hledaný řetězec nenalezen" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Nahradit?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "nahrazeno '%d' řetězců" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Nahradit" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Hledat" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Hledat:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Nahra_dit čím:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Rozlišovat velikost písmen" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Nahradit vš_e" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Jit na _řádek" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Přejít" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Číslo řádku:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Jednoduchý textový editor" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..0fc5bd4 --- /dev/null +++ b/po/da.po @@ -0,0 +1,280 @@ +# Danish translation for L3afpad. +# Copyright (C) 2008 L3afpad. +# This file is distributed under the same license as the l3afpad package. +# Joe Hansen , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-08-24 00:00+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fil" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Rediger" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Søg" + +# Men det er jo ikke rigtigt, altså "options" +# betyder da ikke "funktioner". +# Det må være en eller anden form for specielt brug i OO, +# det kan være at OO folkene ved at det rent faktisk er funktioner der gemmer +# sig i den menu, men det er ikke rigtigt generelt. Når option står i et +# menupunkt sådan som det gør her, så oversættes det til +# "Indstillinger", hvis det ikke er i et menu-punkt er der lidt flere muligheder +# "valgmuligheder" og "indstillinger". +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Indstillinger" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Hjælp" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Ny" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Åbn..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Gem" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Gem _som..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Vis u_dskrift" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Udskriv..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Afslut" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Fortryd" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "G_endan" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "K_lip" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopier" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Sæt i_nd" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Slet" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Marker _alt" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Find..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Find _Næste" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Find _foregående" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Erstat..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Gå til..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Skrifttype..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Om" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Ordombrydning" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Linjenumre" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Automatisk indryk" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "En simpel GTK+-baseret tekstbehandler" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Joe Hansen \n" +"\n" +"Dansk-gruppen \n" +"Mere info: http://www.dansk-gruppen.dk" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Gem ændringer til »%s«?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Skrifttype" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Nuværende lokalitet (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Andre kodesæt" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Kode_sæt:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "»%s« understøttes ikke" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automatisk detektering" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Åbn" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Gem som" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Karakterkodning:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "»%s« eksisterer allerede. Overskriv?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Unavngivet" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Kan ikke konvertere kodesæt til »%s«" + +# jeg ville tilføje "..til skrivning (ikke afklaret oversættelse) +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Kan ikke åbne fil" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Kan ikke skrive fil" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Søgestrengen blev ikke fundet" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Erstat?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d strenge erstattet" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Erstat" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Søg" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Sø_g hvad:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Erstat med:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Søgestreng" + +# på en gang" ligesom i originalen (ikke afklaret oversættelse af +# den her streng. +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Erstat _alle" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Gå til" + +# Måske enkeltords-versionen virker bedre hvis du bruger +# "hop" +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Gå" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Linjenummer:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Enkel tekstbehandler" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..ab88b17 --- /dev/null +++ b/po/de.po @@ -0,0 +1,268 @@ +# German translation of L3afpad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the L3afpad package. +# Sebastian Stach , 2004. +# Ruediger Arp , 2004. +# Mario Blättermann , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-06-28 13:12+0100\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Datei" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Bearbeiten" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Suchen" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Optionen" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Hilfe" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Neu" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "Ö_ffnen" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Speichern" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Speichern _unter" + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Druck_vorschau" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Drucken …" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Beenden" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Rückgängig" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Wiederholen" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Ausschneiden" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopieren" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "E_infügen" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Löschen" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Alles markieren" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Suchen …" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "_Weitersuchen" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "_Rückwärts suchen" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Ersetzen …" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Gehe zu …" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Schriftart …" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Info" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Zeilenumbruch" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Zeilen_nummern" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Auto-Einzug" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Einfacher auf GTK+ basierender Texteditor" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Sebastian Stach \n" +"Ruediger Arp \n" +"Mario Blättermann " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Änderungen an »%s« speichern?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Schriftart" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Derzeitige Standorteinstellung (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Anderer Zeichensatz" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Zeichensatz:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "»%s« wird nicht unterstützt" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automatisch erkennen" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Öffnen" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Speichern unter" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Zeic_henkodierung: " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "»%s« existiert bereits. Überschreiben?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Unbenannt" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Der Zeichensatz kann nicht nach »%s« konvertiert werden" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Die Datei kann nicht zum Schreiben geöffnet werden" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Die Datei kann nicht geschrieben werden" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Gesuchter Text wurde nicht gefunden" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ersetzen?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d Mal gefunden und ersetzt" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Ersetzen" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Suchen" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Suchen nach: " + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Ersetzen durch: " + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Groß-/Kleinschreibung berücksichtigen" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Alles ersetzen" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Gehe zu" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Gehe zu" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Zeilen_nummer: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Einfacher Texteditor" diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..e456e2b --- /dev/null +++ b/po/el.po @@ -0,0 +1,265 @@ +# Greek translation of l3afpad.pot +# Copyright (C) 2004-2005 Tarot Osuji +# This file is distributed under the same license as the l3afpad package. +# Stavros Giannouris , 2005-2006 +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2006-04-23 00:52+0200\n" +"Last-Translator: Stavros Giannouris \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Greek\n" +"X-Poedit-Country: GREECE\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Αρχείο" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Επεξεργασία" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "Ανα_ζήτηση:" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "Ε_πιλογές" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Βοήθεια" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Νέο" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "Άν_οιγμα..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Α_ποθήκευση" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Αποθήκευση _ως..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Προεπισκόπιση εκτύπωσης" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Ε_κτύπωση..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Έξοδος" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Αναίρεση" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Ε_πανάληψη" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Αποκοπή" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "Α_ντιγραφή" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Επικόλληση" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Διαγραφή" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Επιλογή _όλων" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Εύρεση..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Εύρεση Επόμε_νου" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Εύρεση _προηγούμενου" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Αντικατάσταση..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Μετάβαση σε..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Γραμματοσειρά..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Περί" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Αναδίπλωση λέξεων" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Α_ριθμοί γραμμών" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Αυ_τόματες εσοχές" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Ένας απλός επεξεργαστής κειμένου σε GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Σταύρος Γιαννούρης " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Αποθήκευση αλλαγών στο '%s' ;" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Γραμματοσειρά" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Τρέχον Locale (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Άλλες κωδικοποίησεις" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Σετ χαρακτήρων:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "το '%s' δεν υποστηρίζεται" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Αυτόματη αναγνώριση" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Άνοιγμα" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Αποθήκευση ως" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Κωδικοποίηση χ_αρακτήρων:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Το '%s' υπάρχει ήδη. Να αντικατασταθεί;" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Χωρίς τίτλο" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Αδυναμία μετατροπής της κωδικοσελίδας σε '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Αδυναμία εγγραφής σε αυτό το αρχείο." + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Αδύνατη η εγγραφή του αρχείου" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Δεν βρέθηκε ταίρι" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Αντικατάσταση;" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d επαναλήψεις αντικαταστάθηκαν." + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Αντικατάσταση" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Εύρεση" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Εύ_ρεση κειμένου:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Α_ντικατάσταση με:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Ταίριασμα πεζών-κεφαλαίων" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Αντικατάσταση _όλων" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Μετάβαση σε" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Μετάβαση" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Αριθμός γραμμής:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Απλός επεξεργαστής κειμένου" diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..73ed963 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,262 @@ +# Esperanto translations for l3afpad. +# This file is distributed under the same license as the l3afpad package. +# +# Benno Schulenberg , 2010. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2010-07-12 20:53+0100\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Dosiero" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Redakti" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Serĉi" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Agordoj" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Helpo" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nova" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Malfermi..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Kon_servi" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Konservi _kiel..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Pres-antaŭ_vido" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Presi..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Eliri" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Malfari" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refari" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Eltondi" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopii" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Alglui" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Forigi" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Elekti ĉio_n" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Trovi..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Trovi sek_van" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Trovi a_ntaŭan" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Anstataŭigi" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Salti al..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Tiparo..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Pri" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Lini_faldo" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Lini_numeroj" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Aŭtomate krommarĝeni" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Simpla GTK+-bazita tekstredaktilo" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Benno Schulenberg " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Ĉu konservi la ŝanĝojn en '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Tiparo" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Nuna lokaĵo (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Alia signaro" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Signaro:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' ne subtenatas" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Aŭtomate detekti" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Malfermi" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Konservi kiel" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Signara kodo:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Dosiero '%s' jam ekzistas. Ĉu anstataŭigi?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sentitola" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Ne eblas konverti signaron al '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Ne eblas malfermi dosieron por skribi" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Ne eblas skribi dosieron" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Serĉata ĉeno ne trovitas" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ĉu anstataŭigi?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d ĉenoj anstataŭigitaj" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Anstataŭigi" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Serĉi" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Serĉi kion:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Anstataŭigi per:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Usklece" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Anstataŭigi ĉiuj_n sen demandi" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Salti al" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Salti" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Lini_numero:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Simpla tekstredaktilo" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..8fd94f3 --- /dev/null +++ b/po/es.po @@ -0,0 +1,263 @@ +# Spanish/Spain translation of L3afpad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Lucas Vieites ,2004-2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-06-24 21:49+0200\n" +"Last-Translator: Lucas Vieites \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Archivo" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Buscar" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opciones" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "A_yuda" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nuevo" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Abrir..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Guardar" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Guardar _como..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Vista previa" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Im_primir" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Salir" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Deshacer" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Rehacer" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Cor_tar" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copiar" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Pegar" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Borrar" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Seleccionar _todo" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Buscar" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Buscar el _siguiente" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Buscar el an_terior" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Reemplazar" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Ira a la _línea" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "Tipogra_fía..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Acerca de" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Ajus_te de línea" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Numeración de líneas" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Autoindentación" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Editor de texto simple" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Lucas Vieites " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "¿Desea guardar los cambios a «%s»?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Tipografía" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Locale actual (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Otro conjunto de códigos" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Con_junto de códigos:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "No se soporta «%s»" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Autodetectar" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Abrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Guardar como" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Codificación de c_aracteres:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "«%s» ya existe. ¿Desea sobrescribirlo?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sin nombre" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "No se puede convertir el conjunto de códigos a «%s»" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "No se puede abrir el archivo para escritura" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "No se puede escribir en el archivo" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "No se ha encontrado la cadena buscada" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "¿Desea reemplazar?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "Se han reemplazado %d cadenas" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Reemplazar" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Buscar" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Buscar: " + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Reem_plazar con:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Coi_ncidir con capitalización" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Reemplaz_ar todos" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Ir a" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Saltar" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Número de _línea:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Editor de texto simple" diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..68092ac --- /dev/null +++ b/po/eu.po @@ -0,0 +1,266 @@ +# Basque translation for l3afpad. +# Copyright (C) 2008 Free Software Foundation, Inc +# This file is distributed under the same license as the l3afpad package. +# Mikel Olasagasti Uranga , 2008. +# Inko Illarramendi Arancibia , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-01-14 21:35+0900\n" +"Last-Translator: Mikel Olasagasti \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Basque\n" +"X-Poedit-Country: SPAIN\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fitxategia" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editatu" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Bilatu" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Aukerak" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Laguntza" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Berria" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Ireki" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Gorde" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Gorde _Honela..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Inprimatze Aurre_bista" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "In_primatu" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "It_xi" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Desegin" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Be_rregin" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Eba_ki" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopiatu" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Itsatsi" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Ezabatu" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Hautatu Dena" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Bilatu" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Bilatu _hurrengoa" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Bilatu _aurrekoa" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Ordezkatu" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Jauzi Hona..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "Letra _Tipoa..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Honi buruz" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Hitz doiketa" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Lerro Zenbakiak" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Autoindentazioa" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+-n oinarritutako testu editore sinplea" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Inko Illarramendi " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Aldaketak '%s'-n gorde?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Letra tipoa" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Uneko Locale-a (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Beste Kodeketa Multzoa" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Kodeketa_multzoa:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s'-entzat ez dago sostengurik" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Auto-Detektatu" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Ireki" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Gorde Honela" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "K_araktere Kodeketa:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' badago. Gainean idatzi?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Izengabea" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Ezin da kodeketa multzoa '%s'-ra bihurtu" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Ezin da fitxategia idazketarako ireki" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Ezin da fitxategian gorde" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Bilaketa katea ez da aurkitu" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ordezkatu?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d kate ordezkatuta" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Ordezkatu" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Bilatu" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Zer _bilatu:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Zerekin _ordezkatu:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Maiuskulak/minuskulak kointziditu" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Guztiak ordezkatu" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Jauzi" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Jauzi" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Lerro zenbakia:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Testu editore sinplea" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..f513662 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,265 @@ +# Finnish messages for l3afpad. +# Copyright © 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Eero Tamminen , 2006. +# Jorma Karvonen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2010-12-07 13:02+0200\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Tiedosto" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "Muo_kkaa" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Hae" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Asetukset" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Opaste" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Uusi" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Avaa..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Talle_nna" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Tallenna ni_mellä..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "E_sikatselu" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Tu_losta..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Poistu" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "Per_u" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Uu_delleen" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "L_eikkaa" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "Kop_ioi" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Liitä" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Poista" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Valitse kaikki" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Hae..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Hae _seuraava" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Hae _edellinen" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Korvaa..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Siirry riville..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Kirjasin..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "O_hjelmasta" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Rivitys" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Rivi_numerot" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Auto_maattinen sisennys" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+-pohjainen yksinkertainen tekstieditori" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Eero Tamminen, Jorma Karvonen" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Tallenna ’%s’ muutokset?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Kirjasin" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Nykyinen paikallisasetus (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Toinen koodaus" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Koodaus:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "’%s’ ei ole tuettu" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automaattitunnistus" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Avaa" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Tallenna nimellä" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Merkistökoodaus:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "’%s’ on jo olemassa. Korvataanko?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Nimetön" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Koodaukseen ’%s’ muunnos ei onnistu" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Tiedoston avaus kirjoitusta varten ei onnistu" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Tiedoston kirjoitus ei onnistu" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Haettua merkkijonoa ei löydy" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Korvaa?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d merkkijonoa korvattu" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Korvaa" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Hae" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Etsi:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Ko_rvaa:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Tarkista pienet/ISOT" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Korvaa kaikki kerralla" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Siirry riville" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Siirry" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Rivinumero:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Yksinkertainen tekstieditori" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..65df6eb --- /dev/null +++ b/po/fr.po @@ -0,0 +1,268 @@ +# L3afpad - GTK+ based simple text editor +# Copyright (C) 2004 Tarot Osuji +# This file is distributed under the same license as the l3afpad package. +# Marc Veillet , 2008. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-06-25 10:53-0500\n" +"Last-Translator: Marc Veillet \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: French\n" +"X-Poedit-SourceCharset: iso-8859-1\n" +"X-Poedit-Country: CANADA\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fichier" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Édition" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Rechercher" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Options" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Aide" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nouveau" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Ouvrir..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Enregistrer" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Enregistrer _sous..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Aperçu avant _impression" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Im_primer" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Quitter" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Annuler" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refaire" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Co_uper" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copier" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "C_oller" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Supprimer" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Tout sélectionner" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Rechercher..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Rechercher le _suivant" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Rechercher le _précédent" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Re_mplacer..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Aller à la _ligne..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Fonte..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "À _propos" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Retour à la ligne automatique" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Numérotation des lignes" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Indentation automatique" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Un éditeur de texte tout simple, basé sur GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Luc Pionchon , Marc Veillet 2009 " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Enregistrer les changements pour '%s' ?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Fonte" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Locale courante (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Autre jeu de caractères" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Jeu de _caractères : " + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' n'est pas supporté" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Détection automatique" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Ouvrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Enregistrer sous" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Jeu de _caractères : " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "" +"Le fichier '%s' existe déjà. Voulez-vous remplacer le fichier existant par " +"celui-ci ?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sans titre" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Erreur de conversion avec le jeu de caractères '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Impossible d'ouvrir le fichier en écriture" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Impossible d'enregistrer le fichier" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Le texte recherché n'a pas été trouvé" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Remplacer ?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d occurences trouvées et remplacées." + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Remplacer" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Trouver" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Rechercher :" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Remplacer _par :" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Respecter la _casse" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Tout remplacer" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Aller à la ligne" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "Aller à la ligne" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Numéro de _ligne : " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Un éditeur de texte tout simple" diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..3190bd7 --- /dev/null +++ b/po/ga.po @@ -0,0 +1,263 @@ +# Irish translations for l3afpad. +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Kevin Patrick Scannell , 2006, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-01-15 15:46-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Comhad" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Eagar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Cuardach" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Roghanna" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Cabhair" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nua" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Oscail..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Sábháil" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Sábháil _Mar..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Réamh_amharc Priontála" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Priontáil..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Scoir" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Cealaigh" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Athdhéan" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Gearr" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "Cói_peáil" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "G_reamaigh" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Scrios" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Roghnaigh _Uile" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Aimsigh..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Ar A_ghaidh" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "_Roimhe Seo" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Ionadaigh..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Léim Go..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Cló..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Faoi seo" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Timfhilleadh" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Líne-Uimhreacha" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Eangú Uathoibríoch" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Eagarthóir simplí bunaithe ar GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Kevin Scannell " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Sábháil athruithe i '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Cló" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Logchaighdeán Reatha (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Ionchódú Eile" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Ionchódú:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "Ní thacaítear le '%s'" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Braith go hUathoibríoch" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Oscail" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Sábháil Mar" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Ionc_hódú Carachtar:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Tá '%s' ann cheana. Forscríobh?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Gan Teideal" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Ní féidir an t-ionchódú a thiontú go '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Ní féidir an comhad a oscailt chun scríobh ann" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Ní féidir an comhad a scríobh" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Teaghrán gan aimsiú" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ionadaigh?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "Ionadaíodh %d teaghrán" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Ionadaigh" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Aimsigh" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Cad is mian leat _aimsiú:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Ionadaigh le:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Comhoiriúnaigh an cás" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Ionadaigh d'aon _iarraidh" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Léim Go" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Léim" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Líne-uimhir:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Eagarthóir simplí" diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..4733d6e --- /dev/null +++ b/po/gl.po @@ -0,0 +1,272 @@ +# Galician translation for l3afpad package. +# This file is distributed under the same license as the l3afpad package. +# Copyright (C) 2010 Leandro Regueiro. +# +# Leandro Regueiro , 2010. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2010-12-02 10:22+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Ficheiro" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Buscar" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opcións" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "A_xuda" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Novo" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Abrir" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Gardar" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Gardar _como..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Pre_visualización da impresión" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Imprimir" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Saír" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Desfacer" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refacer" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Cor_tar" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copiar" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Pegar" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "E_liminar" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Seleccionar _todo" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Buscar..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Buscar segu_inte" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Buscar an_terior" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Substituír..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Ir á _liña..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Tipo de letra..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Sobre" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "A_xuste do texto" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Números de _liña" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Sangría automática" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Editor de texto sinxelo baseado en GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Leandro Regueiro , 2010.\n" +"\n" +"Proxecto Trasno - Adaptación de software libre á lingua galega: Se desexas\n" +"colaborar connosco, podes atopar máis información en " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Desexa gardar os cambios en '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Tipo de letra" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Configuración rexional actual (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Outra codificación de caracteres" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Codificación de caracteres:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "Non hai compatibilidade con '%s'" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Detectar automaticamente" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Abrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Abrir como" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Codificación de caracteres:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' xa existe. Desexa sobrescribilo?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sen nome" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Non foi posíbel converter a codificación de caracteres a '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Non foi posíbel abrir o ficheiro para escribir" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Non foi posíbel escribir o ficheiro" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Non se atopou a cadea de busca" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Desexa substituír?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d cadeas substituídas" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Substituír" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Buscar" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Buscar por:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Substituír _con:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Diferenciar maiúsculas de minúsculas" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Substituír _todo" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Ir á liña" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Ir á liña" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Número de _liña:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Editor de texto sinxelo" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..316e771 --- /dev/null +++ b/po/he.po @@ -0,0 +1,263 @@ +# Hebrew translation of L3afpad. +# Copyright (C) 2005 THE L3afpad'S COPYRIGHT HOLDER +# This file is distributed under the same license as the L3afpad package. +# Yo'av Moshe , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.8.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2005-07-31 22:54+0300\n" +"Last-Translator: Yo'av Moshe \n" +"Language-Team: Hebrew\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_קובץ" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_עריכה" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_חיפוש" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_אפשרויות" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_עזרה" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_חדש" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_פתח..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_שמור" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "שמור _בשם..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_הדפס..." + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_הדפס..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "י_ציאה" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_בטל" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "ב_צע שוב" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_גזור" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_העתק" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "ה_דבק" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_מחק" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "בחר בה_כל" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_חפש..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "מצא את ה_בא" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "מצא את ה_קודם" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_החלף" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_עבור אל" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_גופן" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_אודות" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "ג_לישת שורות" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_מספרי שורות" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_עימוד אוטומטי" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "עורך טקסט פשוט מבוסס GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Yo´av Moshe " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "לשמור שינויים לקובץ '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "גופן" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "השפה שבשימוש (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "מערך תוים אחר" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_מערך תוים:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' לא נתמך" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "זיהוי אוטומטי" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "פתח" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "שמור בשם" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "מערך תוים:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' כבר קיים. להחליף?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "ללא שם" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "אי-אפשר להמיר את מערך התוים אל '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "אי-אפשר לפתוח קובץ לכתיבה" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "אי-אפשר לכתוב קובץ" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "מחרוזת החיפוש לא נמצאה" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "להחליף?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d מחרוזות הוחלפו" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "החלף" + +#: ../src/search.c:305 +msgid "Find" +msgstr "חפש" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "מה ל_חפש:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "להח_ליף ב:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "התייחס לאותיות גדולות וקטנות" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "החלף ה_כל בבת אחת" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "עבור אל" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_עבור" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_שורה מספר:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "עורך טקסט פשוט" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..d2a3f72 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,268 @@ +# Hungarian translation of L3afpad +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the L3afpad package. +# Reviczky Ádám János , 2007. +# Kalman Kemenczy , 2010 +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2010-05-04 10:02+0200\n" +"Last-Translator: Kalman Kemenczy \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.0.2\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fájl" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "Sz_erkesztés" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "Keres_és" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Beállítások" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Súgó" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "Ú_j" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "Megny_itás..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Men_tés" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Ment Má_skent..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Ny_omtatási kép" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Nyomtatás..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Kilépés" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Visszavonás" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Ú_jra" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "K_ivágás" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "M_ásolás" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Beillesztés" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Tö_rlés" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Mindent Kije_lölés" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Keres..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "K_övetkező Keresése" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Elő_ző Keresése" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Csere..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Ugrás..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "Betütí_pus..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Névjegy" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Sortörés" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Sorszá_mok" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Automatikus Be_húzás" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+-ra épülő egyszerű szöveg szerkesztő" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Reviczky Ádám János \n" +"Kéménczy Kálmán " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Elmenti a változásokat ide: '%s' ?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Betűtípus" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Jelenlegi nyelv (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Más kódtábla" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Kód_tábla:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "A(z) '%s' nem támogatott" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automatikus felismerés" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Megnyitás" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Mentés másként" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "K_arakterkódolás:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "A(z) '%s' már létezik. Felülírja?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Névtelen" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "A kódtáblát nem lehet erre konvertálni: '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Nem lehet a fájlt írásra megnyitni" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Nem lehet a fájlt írni" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "A keresett szöveg nem található" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Kicseréli?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "A(z) %d szövegrészlet kicserélve" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Csere" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Keresés" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Keresett szöveg:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Csere erre:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Kis- és nagybetű különbözik" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Mind_et egyszerre cseréli" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Ugrás Ide" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Ugrás" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "S_orszám:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Egyszerű szöveg szerkesztő" diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..7b6d0c5 --- /dev/null +++ b/po/id.po @@ -0,0 +1,263 @@ +# Indonesian translations for l3afpad package. +# Copyright (C) 2008 THE l3afpad'S COPYRIGHT HOLDER +# This file is distributed under the same license as the l3afpad package. +# Andhika Padmawan , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-06-25 21:35+0700\n" +"Last-Translator: Andhika Padmawan \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Berkas" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Sunting" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Telusur" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opsi" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "B_antuan" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Baru" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "B_uka..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Simpan" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Simpan Se_bagai..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Pra_tayang Cetak" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Cetak..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Keluar" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Tak Jadi" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Jadi _Lagi" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Po_tong" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Salin" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Rekat" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Hapus" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Pilih Semua" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Cari..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Cari Selan_jutnya" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Cari _Sebelumnya" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Ganti..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Lompat Ke..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Fonta..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Tentang" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Pas Kata" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Nomor Baris" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Inden _Otomatis" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Penyunting teks sederhana berbasis GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Andhika Padmawan , 2008" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Simpan perubahan ke '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Fonta" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Lokalisasi saat ini (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Set Sandi Lain" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Set _sandi:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' tak didukung" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Deteksi Otomatis" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Buka" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Simpan Sebagai" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Pen_yandian Karakter:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' telah ada. Timpa?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Tak ada judul" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Tak dapat konversi set sandi ke '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Tak dapat buka berkas untuk ditulis" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Tak dapat menulis berkas" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Telusur tali tak ditemukan" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ganti?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d tali diganti!" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Ganti" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Cari" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Ca_ri apa:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Ga_nti dengan:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Cocokkan huruf" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Ganti semu_a sekaligus" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Lompat Ke" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Lompat" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Nomor baris:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Penyunting teks sederhana" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..df9fbd2 --- /dev/null +++ b/po/it.po @@ -0,0 +1,266 @@ +# ITALIAN TRANSLATION OF L3AFPAD-0.8.13 +# COPYRIGHT (C) 2008 THE L3AFPAD'S COPYRIGHT HOLDER +# This file is distributed under the same license as the l3afpad package. +# +# Alessio D'Ascanio , 2008. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-11-29 18:23+0100\n" +"Last-Translator: Vincenzo Campanella \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"First-Translator: Alessio D'Ascanio \n" +"X-Generator: KBabel 1.11.4\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_File" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Modifica" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Cerca" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opzioni" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "A_iuto" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nuovo" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Apri..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Salva" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Sa_lva come..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Antepri_ma di stampa" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Stam_pa..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Esci" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Annulla" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Ripeti" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Taglia" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copia" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Incolla" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Eli_mina" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Seleziona tutto" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "Tr_ova..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Trova successi_vo" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Trova pr_ecedente" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Sostit_uisci..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Vai a..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Carattere..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "I_nformazioni..." + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "A ca_po automatico" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Numeri di riga" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Indentazione _automatica" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Semplice editor di testi basato su GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Vincenzo Campanella (vinz65@gmail.com)" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Salvare le modifiche a «%s»?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Carattere" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Localizzazione attuale (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Altra codifica" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Co_difica:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "«%s» non è supportato" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Rilevazione automatica" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Apri" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Salva come" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Co_difica del carattere:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "«%s» esiste già. Sovrascriverlo?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Senza titolo" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Impossibile convertire la codifica in «%s»" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Impossibile aprire il file per la scrittura" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Impossibile scrivere il file" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "La stringa cercata non è stata trovata" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Sostituire?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d stringhe sostituite" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Sostituisci" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Trova" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Cerca:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Sostituisci con:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Maiuscole/minuscole" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Sostituisci _tutto" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Vai a" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Vai" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Numero di _riga:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Semplice editor di testi" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..1a1a629 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,263 @@ +# Japanese translation of L3afpad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the L3afpad package. +# Tarot Osuji , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.8.11\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2007-05-06 20:26+0900\n" +"Last-Translator: Tarot Osuji \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "ファイル(_F)" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "編集(_E)" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "検索(_S)" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "オプション(_O)" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "ヘルプ(_H)" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "新規(_N)" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "開く(_O)..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "保存(_S)" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "別名で保存(_A)..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "印刷プレビュー(_V)" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "印刷(_P)..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "終了(_Q)" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "元に戻す(_U)" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "やり直し(_R)" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "切り取り(_T)" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "コピー(_C)" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "貼り付け(_P)" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "削除(_D)" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "全て選択(_A)" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "検索(_F)..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "次を検索(_N)" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "前を検索(_P)" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "置換(_R)..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "行へジャンプ(_J)..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "フォント(_F)..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "情報(_A)" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "右端で折り返す(_W)" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "行番号を表示(_L)" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "自動インデント(_A)" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+ ベースのシンプルなテキストエディタ" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Tarot Osuji " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "'%s' の変更を保存しますか?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "フォント" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "現在のロケール (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "その他の文字コード" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "文字コード(_S):" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' はサポートされていません" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "自動検出" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "開く" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "別名で保存" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "文字コード(_H):" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' は既に存在します. 上書きしますか?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "無題" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "文字コードを '%s' に変換できませんでした" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "ファイルを作成できませんでした" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "ファイルに書きこめませんでした" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "検索文字列が見つかりません" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "置換しますか?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d 個の文字列を置換しました" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "置換" + +#: ../src/search.c:305 +msgid "Find" +msgstr "検索" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "検索する文字列(_N):" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "置換後の文字列(_P):" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "大文字と小文字を区別する(_M)" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "全て置換(_A)" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "行へジャンプ" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "ジャンプ(_J)" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "行番号(_L):" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "シンプルなテキストエディタ" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..878b68c --- /dev/null +++ b/po/ko.po @@ -0,0 +1,263 @@ +# Korean translation of L3afpad +# Copyright (C) 2006 Seo Sanghyeon +# This file is distributed under the same license as the l3afpad package. +# Seo Sanghyeon , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.8.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2006-11-01 10:50+0900\n" +"Last-Translator: Seo Sanghyeon \n" +"Language-Team: Korean\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "파일(_F)" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "편집(_E)" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "검색(_S)" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "설정(_O)" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "도움말(_H)" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "새로 만들기(_N)" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "열기(_O)..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "저장(_S)" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "다른 이름으로 저장(_A)..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "인쇄 미리보기" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "인쇄(_P)..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "끝내기(_Q)" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "실행 취소(_U)" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "다시 실행(_R)" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "잘라내기(_T)" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "복사(_C)" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "붙여넣기(_P)" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "삭제(_D)" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "모두 선택(_A)" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "찾기(_F)..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "다음 찾기(_N)" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "이전 찾기(_P)" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "바꾸기(_R)..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "이동(_J)..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "글꼴(_F)..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "정보(_A)" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "자동 줄 바꿈(_W)" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "줄 번호(_L)" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "자동 들여쓰기(_A)" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+로 만든 간단한 텍스트 편집기" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Seo Sanghyeon " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "'%s'의 변경된 내용을 저장할까요?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "글꼴" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "현재 로케일 (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "자동 선택" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "열기" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "다른 이름으로 저장" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "문자 인코딩(_H):" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s'은(는) 이미 있습니다. 덮어쓸까요?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "제목 없음" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "찾지 못했습니다" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "바꿀까요?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d번 바꿨습니다" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "바꾸기" + +#: ../src/search.c:305 +msgid "Find" +msgstr "찾기" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "찾을 내용(_N):" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "바꿀 내용(_P):" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "대/소문자 구분(_M)" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "모두 바꾸기" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "이동" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "이동(_J)" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "줄 번호(_L):" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "간단한 텍스트 편집기" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..d8b693d --- /dev/null +++ b/po/lt.po @@ -0,0 +1,263 @@ +# Lithuanian translation of l3afpad. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Lech Jankovski , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-07-20 21:29-0400\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Failas" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Keisti" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Paieška" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Nustatymai" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "P_agalba" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nauja" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Atidaryti..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Įrašyti" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Įrašyti kaip _kaip..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Spaudinio _peržiūra" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Spausdinti" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Iš_eiti" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Atšaukti" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Grąžinti" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Iškirpti" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopijuoti" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Įdė_ti" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Pašalinti" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Pažymėti _viską" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Ieškoti..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Surask _sekantį" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Surask p_raeitą" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "P_akeisti..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Peršokti į..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "Š_riftas..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "A_pie" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Teksto _laužymas" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Eilučių numeracija" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Automatinis atitraukimas" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Paprastas teksto redaktorius paremtas GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Lech Jankovski " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Išsaugoti pokyčius į '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Šriftas" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Esama lokalė (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Kitas kodavimas" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Kodavimas:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "„%s“ nepalaikomas" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automatiškai aptikti" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Atverti" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Įrašyti kaip" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Si_mbolių kodavimas:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' jau egzistuoja. Perrašyti?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Bevardis" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Nepavyko pakeisti kodavimo į „%s“" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Neįmanoma atidaryti failo rašymui" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Neįmanoma įrašyti failo" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Ieškomas tekstas nerastas" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Pakeisti?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d tekstų pakeista" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Pakeisti" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Ieškoti" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Ieškoti ko:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "P_akeisti kuo:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Skirti raidžių dydį" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Pakeisti _visus vienu metu" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Peršokti į" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Nušokti" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Eilutės numeris: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Paprastas teksto redaktorius" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..e3c30b2 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,267 @@ +# Latvain translation of l3afpad. +# Copyright (C) 2009 l3afpad +# This file is distributed under the same license as the l3afpad package. +# Arvis Lācis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-07-30 12:44+0100\n" +"Last-Translator: Rihards Priedītis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fails" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Rediģēt" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Meklēt" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Uzstādījumi" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Palīdzība" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Jauns" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Atvērt..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Saglabāt" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Saglabāt _kā..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Drukas priekšs_katījums" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Drukāt..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Iziet" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "At_saukt" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Atjaunot" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Izgriez_t" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopēt" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Ie_līmēt" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Izdzēst" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Atlasīt _visu" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Atrast..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Atrast _nākošo" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Atrast iep_riekšējo" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Ai_zstāt..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Pāriet uz..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Fonts..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Par" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Vārda aplaušana" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Rindu numuri" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Automātiska atkāpe" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Uz GTK+ balstīts vienkāršā teksta redaktors" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Arvis Lācis , 2009" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Saglabāt izmaiņas \"%s\"?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Fonts" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Pašreizējā lokāle (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Citi kodējumi" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Kodē_jums:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' netiek atbalstīts" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automātiska pamanīšana" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Atvērt" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Saglabāt kā" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Sim_bola kodējums:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' jau eksistē. Vai pārrakstīt?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Nenosaukts" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Nevar pārvērst kodējumu uz '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Nevar atvērt failu rakstīšanai" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Nevar rakstīt failu" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Meklējamā virkne netika atrasta" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Aizstāt?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d virknes aizstātas" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Aizstāt" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Atrast" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "At_rast ko:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Aizstāt a_r:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Reģistra jūtīgs" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Aizstāt _visu vienlaicīgi" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Pāriet uz" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Pāriet" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Rindas numurs:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Vienkāršā teksta redaktors" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..7d85bc0 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,268 @@ +# Translation of l3afpad-0.8.13 to Dutch. +# Copyright (C) 2004-2006 Tarot Osuji +# This file is distributed under the same license as the l3afpad package. +# +# Wouter Van Hemel , 2006. +# Benno Schulenberg , 2008. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-01-15 15:15+0100\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Bestand" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "Be_werken" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Zoeken" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opties" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Hulp" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nieuw" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Openen..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Op_slaan" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Opslaan _als..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Afdruk_voorbeeld" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Af_drukken..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "A_fsluiten" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Ongedaan maken" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Opnieu_w" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "K_nippen" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopiëren" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Plakken" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Verwijderen" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Alles selecteren" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Zoeken..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "V_olgende zoeken" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Vorig_e zoeken" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Vervangen..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Naar regel..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Lettertype..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Info" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Regel_afbreking" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Regel_nummers" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Automatisch _inspringen" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Eenvoudige teksteditor gebouwd op GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Wouter Van Hemel \n" +"Benno Schulenberg " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Wijzigingen aan '%s' opslaan?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Lettertype" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Huidige taalomgeving (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Andere tekencodering" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Teken_codering:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' wordt niet ondersteund" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automatisch detecteren" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Openen" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Opslaan als" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Teken_codering:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Bestand '%s' bestaat al. Vervangen?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Naamloos" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Kan de tekenset niet omzetten naar '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Kan het te schrijven bestand niet openen" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Kan bestand niet wegschrijven" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Zoekterm niet gevonden" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Vervangen?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "Er zijn %d vondsten vervangen" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Vervangen" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Zoeken" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Zoeken _naar:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Vervangen _door:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Hoofdlettergevoelig" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Alle v_ondsten vervangen" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Naar regel" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Spring" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Regel_nummer:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Eenvoudige teksteditor" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 0000000..9e72c1d --- /dev/null +++ b/po/nn.po @@ -0,0 +1,273 @@ +# Norwegian Nynorsk translation for l3afpad. +# This file is distributed under the same license as the l3afpad package. +# Robert Grønning , 2009. +# Åsmund Skjæveland , 2009. +# Eskild Hustvedt , 2009. +# Eivind Ødegård , 2009. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-07-03 13:59+0100\n" +"Last-Translator: Eivind Ødegård \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Norwegian Nynorsk\n" +"X-Poedit-Country: NORWAY\n" +"X-Poedit-Basepath: /home/eivind/umseting/l3afpad\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Fil" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "R_ediger" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "Søk" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Val" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Hjelp" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Ny" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Opne..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Lagre" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Lagre som..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Førehands_vising" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "S_kriv ut..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Avslu_tt" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "A_ngre" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Gje_r om" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Klypp ut" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "K_opier" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Lim inn" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Slett" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Vel _alt" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Finn..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Finn _neste" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Finn f_ørre" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Byt ut..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Gå til..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "Skrifttype..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Om" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Ordbryting" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Linjenummer" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Autoinnrykk" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Enkel tekstredigerar basert på GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Robert Grønning \n" +"Åsmund Skjæveland \n" +"Eskild Hustvedt \n" +"Eivind Ødegård " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Lagra endringar i «%s»?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Skrifttype" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Noverande lokale (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Anna teiknsett" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Teikn_sett:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "«%s» er ikkje støtta" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Finn automatisk" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Opne" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Lagre som" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "T_eiknkoding:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Fila «%s» finst allereie. Vil du overskriva ho?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Utan namn" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Kan ikkje konvertera teiknsettet til «%s»" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Klarte ikkje opna fila for lagring" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Klarer ikkje skriva fila" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Fann ikkje søkjetekst" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Byt ut?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "bytte ut %d strengar" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Byt ut" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Finn" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Fi_nn dette:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Byt ut med:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Treff på små/store bokstavar" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Byt ut _alle med ein gong" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Hopp til" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Hopp" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Linjenummer:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Enkel tekstredigering" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..863484b --- /dev/null +++ b/po/pl.po @@ -0,0 +1,342 @@ +# Polish translation of L3afpad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the L3afpad package. +# Michal Wrobel , 2005. +# Michał Trzebiatowski , 2009 +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-06-24 21:36+0100\n" +"Last-Translator: Michał Trzebiatowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Polish\n" +"X-Poedit-Country: POLAND\n" + +# src/menu.c:31 +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Plik" + +# src/menu.c:49 +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Edycja" + +# src/menu.c:69 +#: ../src/menu.c:36 +msgid "_Search" +msgstr "Wy_szukiwanie" + +# src/menu.c:83 +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opcje" + +# src/menu.c:95 +#: ../src/menu.c:38 +msgid "_Help" +msgstr "Pomo_c" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nowy" + +# src/menu.c:35 +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Otwórz..." + +# src/selector.c:305 +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Zapisz" + +# src/menu.c:39 +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Z_apisz jako..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Podgląd _wydruku" + +# src/menu.c:44 +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Wy_drukuj" + +# src/menu.c:47 +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Za_kończ" + +# src/menu.c:51 +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "Cof_nij" + +# src/menu.c:53 +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "P_onów" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Wytnij" + +# src/menu.c:59 +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "S_kopiuj" + +# src/menu.c:61 +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Wkl_ej" + +# src/menu.c:63 +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Usuń" + +# src/menu.c:67 +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "_Zaznacz wszystko" + +# src/menu.c:71 +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Znajdź..." + +# src/menu.c:73 +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Znajdź _następny" + +# src/menu.c:75 +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Znajdź _poprzedni" + +# src/search.c:256 +# src/search.c:264 +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Z_mień..." + +# src/search.c:362 +# src/search.c:370 +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Przejdź do _wiersza" + +# src/font.c:44 +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Czcionka..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_O programie" + +# src/menu.c:87 +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Zawijanie linii" + +# src/search.c:375 +# src/search.c:383 +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Numerowanie linii" + +# src/menu.c:93 +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Automatyczne wcięcia" + +# src/callback.c:286 +# src/callback.c:292 +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Prosty edytor tekstowy oparty na GTK+" + +# src/callback.c:294 +# src/callback.c:300 +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Michał Trzebiatowski " + +# src/view.c:62 +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Zachować zmiany w '%s'?" + +# src/font.c:44 +#: ../src/font.c:44 +msgid "Font" +msgstr "Czcionka" + +# src/selector.c:99 +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Bieżące ustawienia regionalne (%s)" + +# src/selector.c:130 +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Inne kodowanie znaków" + +# src/selector.c:170 +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Kodowanie znaków:" + +# src/selector.c:192 +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' nie jest obsługiwany(a)" + +# src/selector.c:253 +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Autowykrywanie" + +# src/selector.c:305 +#: ../src/selector.c:300 +msgid "Open" +msgstr "Otwórz" + +# src/selector.c:305 +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Zapisz jako" + +# src/selector.c:329 +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Kodowanie znaków:" + +# src/selector.c:400 +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' już istnieje. Czy go zastąpić?" + +# src/file.c:42 +# src/file.c:43 +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Bez nazwy" + +# src/file.c:186 +# src/file.c:189 +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Nie można przekonwertować znaków do '%s'" + +# src/file.c:199 +# src/file.c:202 +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Nie można otworzyć pliku do zapisu" + +# src/file.c:204 +# src/file.c:207 +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Nie można zapisać pliku" + +# src/search.c:132 +# src/search.c:138 +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Szukany łańcuch nie został znaleziony" + +# src/search.c:175 +# src/search.c:181 +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Zastąpić?" + +# src/search.c:210 +# src/search.c:218 +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d łańcuchów zastąpiono" + +# src/search.c:256 +# src/search.c:264 +#: ../src/search.c:298 +msgid "Replace" +msgstr "Zastąp" + +# src/search.c:263 +# src/search.c:271 +#: ../src/search.c:305 +msgid "Find" +msgstr "Znajdź" + +# src/search.c:276 +# src/search.c:284 +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Znajdź:" + +# src/search.c:292 +# src/search.c:300 +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Z_amień na:" + +# src/search.c:306 +# src/search.c:314 +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Uwzględniaj wielkość liter" + +# src/search.c:311 +# src/search.c:319 +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Zamień _wszystko" + +# src/search.c:362 +# src/search.c:370 +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Idź do" + +# src/search.c:368 +# src/search.c:376 +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Idź" + +# src/search.c:375 +# src/search.c:383 +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Numer _linii:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +# l3afpad.desktop.in.h:2 +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Prosty edytor tekstu" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..6a57cab --- /dev/null +++ b/po/pt.po @@ -0,0 +1,263 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Alan Kelon Oliveira de Moraes , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.7.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2004-12-28 19:56:59-0300\n" +"Last-Translator: Alan Kelon Oliveira de Moraes \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Arquivo" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Procurar" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opções" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Ajuda" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Novo" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Abrir" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Salvar" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Salvar _Como" + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Sa_ir" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Sa_ir" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Sa_ir" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Desfazer" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refazer" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "R_ecortar" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copiar" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "C_olar" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Apagar" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Selecionar _Tudo" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Procurar..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "P_rocurar Próximo" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Procurar _Anterior" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Substituir..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Ir para..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Fonte" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Sobre" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Quebrar linha" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Número de linhas" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Auto Indentar" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Simples editor de texto feito em GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Alan Kelon " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Salvar modificações em '%s'" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Fonte" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Localização atual (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Outro conjunto de caracteres" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Conjunto de caracteres" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' não é suportado" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Auto-detectar" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Abrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Salvar Como" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Codificação de caracteres: " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' já existe. Sobrescrever?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sem título" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Não foi possível converter o conjuntos de caracteres para '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Não foi possível abrir o arquivo para escrita" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Não foi possível escrever o arquivo" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Palavra(s) não encontrada" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Substituir?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d palavra(s) substituídas" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Substituir" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Procurar" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Procurar o que: " + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Substituir com: " + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Diferenciar maiúsculas e minúsculas" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Substituir _todas de uma vez" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Ir para" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Ir" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Número da linha: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Simples editor de texto" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..0a64a8a --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,263 @@ +# L3afpad translation done by Fábio Antunes +# Copyright (C) 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Alan Kelon Oliveira de Moraes , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-05-07 17:39-0300\n" +"Last-Translator: Leslie Harlley Watter \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Arquivo" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Procurar" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Opções" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Ajuda" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Novo" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Abrir" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Salvar" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Salvar _Como" + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Pré-_Visualizar Impressão" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Im_primir" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Sa_ir" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Desfazer" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Refazer" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "R_ecortar" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Copiar" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "C_olar" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Remover" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Selecionar _Tudo" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Procurar..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "P_rocurar Próximo" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Procurar _Anterior" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Substituir..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Ir Para..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Fonte" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Sobre" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Quebrar Linha" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Número de Linhas" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Auto Indentar" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Editor de texto simples feito em GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Fábio Antunes " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Salvar modificações em '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Fonte" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Idioma Atual (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Outro conjunto de caracteres" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Conjunto de caracteres" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' não é suportado" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Auto-detectar" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Abrir" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Salvar Como" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Codificação de Caracteres:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' já existe. Sobrescrever?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Sem Título" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Não foi possível converter o conjunto de caracteres para '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Não foi possível abrir o arquivo para escrita" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Não foi possível escrever no arquivo" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Palavra(s) não encontrada" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Substituir?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d palavra(s) substituídas" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Substituir" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Procurar" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Procurar o que:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Substituir com:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Diferenciar maiúsculas e minúsculas" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Substituir _todos de uma vez" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Ir Para" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Ir" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Número de linhas:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Editor de texto simples" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..bc639ec --- /dev/null +++ b/po/ru.po @@ -0,0 +1,263 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: L3afpad 0.7.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date:2004-10-24 00:40+0400\n" +"Last-Translator: Artem Vakhitov \n" +"Language-Team: RUSSIAN \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Файл" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Правка" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "П_оиск" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "Параметры" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Справка" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Создать" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Открыть..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "Со_хранить" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Сохранить _как..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "В_ыход" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "В_ыход" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "В_ыход" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Отменить" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Ве_рнуть" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Вырезать" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Копировать" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Вст_авить" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "У_далить" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "В_ыделить все" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Найти..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Найти след_ующее" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Найти пред_ыдущее" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "За_менить..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Перейти к _строке..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Шрифт..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_О программе" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Переносить слова" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Показывать _номера строк" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Автоматический отступ" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Простой текстовый редактор на основе GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Artem Vakhitov " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Сохранить изменения в '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Шрифт" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Текущая локаль (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Другая кодировка" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Кодировка:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' не поддерживается" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Автоопределение" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Открытие файла" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Сохранение файла" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Ко_дировка символов" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' уже существует. Переписать?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Без имени" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Не удалось преобразовать кодировку в '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Не удалось открыть файл для записи" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Не удалось записать файл" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Искомая строка не найдена" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Заменить?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d строк заменено" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Замена" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Поиск" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "На_йти: " + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "З_аменить на: " + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Учитывать _регистр" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Заменить _все" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Переход" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Перейти" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Номер строки: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Простой текстовый редактор" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..12507f9 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,263 @@ +# Slovak translation of l3afpad. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Petr Chabada , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.7.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2005-07-10 21:20+0100\n" +"Last-Translator: Peter Chabada \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Súbor" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Upraviť" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Nájsť" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Nástroje" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Pomocník" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nový" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Otvoriť" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Uložiť" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Uložiť _ako..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Tlačiť..." + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Tlačiť..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Koniec" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "Vrátiť _späť" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "O_pakovať vrátené" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Vystrihnúť" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopírovať" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "V_ložiť" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Odstrániť" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Vybr_ať všetko" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Nájsť" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "_Hľadať ďalšie" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Nájsť pre_dchádzajúce" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "N_ahradiť..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Prejsť na _riadok" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Písmo" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_O programe" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Zalamovanie textu" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Zobraziť čísla _riadkov" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Povoliť automatické _odsadzovanie" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Jednoduchý textový editor" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Peter Chabada" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Uložiť zmeny v dokumente '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Písmo" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Aktuálne lokálne nastavenie (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Iné kódovanie znakov" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Znaková _ada:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' nie je podporovaná" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Automaticky" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Otvoriť" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Uložiť ako" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Kódovanie znakov: " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Súbor '%s' už existuje. Chcete ho nahradiť?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Nepomenovaný dokument" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Nemôžem skonvertovať znakovú sadu na '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Nemôžem otvoriť súbor na zápis" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Nemôžem uložiť súbor na disk" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Hľadaný reťazec nenájdený." + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Nahradiť?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "Bolo nahradených '%d' reťazcov." + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Nahradiť" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Hľadať" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Náj_sť:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Nahradiť _s:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Rozlišovať veľkosť písmen" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Nahradiť _všetko" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Prejsť na riadok" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Prejsť na riadok" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Číslo _riadku:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Jednoduchý textový editor" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..cb26ca2 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,269 @@ +# Slovenian translations for PACKAGE package +# Slovenski prevodi paketa PACKAGE. +# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the l3afpad package. +# Alan Pepelko , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad-0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-04-28 22:31+0100\n" +"Last-Translator: Alan Pepelko \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Datoteka" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Uredi" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Iskanje" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "M_ožnosti" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Pomoč" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Nova" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Odpri ..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Shrani" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Shrani _kot ..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Pre_dogled tiskanja" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Na_tisni ..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Iz_hod" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "R_azveljavi" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Uveljavi" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Iz_reži" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopiraj" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Prilepi" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Poči_sti" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Iz_beri vse" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Najdi ..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Najdi na_slednji" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Najdi _prejšnji" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Zamenjaj ..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Poj_di na ..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Pisava ..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_O" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Prelom _besedila" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Številke vrstic" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Zamik prve vrstice" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Preprost urejevalnik besedila temelječ na GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Alan Pepelko " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Želite shraniti spremembe v '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Pisava" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Trenutne lokalne nastavitve (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Drug nabor znakov" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Nabor _znakov:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' ni podprt" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Samozaznaj" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Odpri" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Shrani kot" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Kodiranje znakov:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Datoteka '%s' že obstaja. Jo želite prepisati?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Neimenovano" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Ni mogoče pretvoriti nabora znakov v '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Ni mogoče odpreti datoteke" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Ni mogoče zapisati datoteke" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Iskanega niza ni mogoče najti" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Želite zamenjati?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d nizov zamenjanih" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Zamenjaj" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Najdi" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Najdi kaj:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Zamenjaj z:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Velikost črk mora ustrezati" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Zamenjaj _vse naenkrat" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Pojdi na" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "Po_jdi" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Števi_lka vrstice:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Preprost urejevalnik besedila" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..5a084b2 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,265 @@ +# Serbian translation for L3afpad package +# Copyright (C) 2004-2007 Tarot Osuji +# This file is distributed under the same license as the L3afpad package. +# Jay Alexander Fleming , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-08-31 12:59+0100\n" +"Last-Translator: Jay A. Fleming \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Датотека" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Уређивање" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "Прона_ђи" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "Пос_тавке" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Помоћ" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Ново" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Отвори" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Сачувај" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Сачувај _као..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Прегле_д пред штампу" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Штампај..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Изађи" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Опозови" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Понови" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Исеци" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Умножи" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "У_баци" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "Обри_ши" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Изабери _све" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "Претра_жи..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Нађи _следеће" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Нађи прет_ходно" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "Зам_ени..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Иди у _ред..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Фонт..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_О програму" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Преломи дуге линије" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Бројеви _линија" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Аутоматско увлачење" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Једноставан GTK+ заснован уређивач текста" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Serbian (sr) — Jay A. Fleming " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Сачувај промене у „%s“?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Фонт" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Текући локалитет (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Друга кодна страница" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Кодна _страница:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "„%s“ није подржан" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Аутоматско препознавање" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Отвори" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Сачувај _као..." + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Кодирање _знакова:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Датотека „%s“ већ постоји. Да" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Несачуван документ" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Не могу променити кодну страницу у „%s“" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Не могу да отворим датотеку за писање" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Не могу да пишем у датотеку" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Тражена реч не постоји" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Замени?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d речи је замењено" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Замени" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Нађи" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Шта да _тражим:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "_Замени са:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Разликуј величину _слова" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "З_амени све" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Иди у ред" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Иди" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Број _линије:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Једноставан уређивач текста" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..6f991db --- /dev/null +++ b/po/sv.po @@ -0,0 +1,264 @@ +# Swedish translation of L3afpad text editor. +# Copyright © 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Isak Savo , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2005-12-05 20:30+0100\n" +"Last-Translator: Isak Savo \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Arkiv" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Redigera" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Sök" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Inställningar" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Hjälp" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Ny" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Öppna..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Spara" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Spara so_m..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Skriv _ut..." + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Skriv _ut..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Avsluta" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Ångra" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Gör om" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Klipp _ut" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Kopiera" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Klistra _in" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Ta bort" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Markera _allt" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Sök..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Sök n_ästa" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Sök före_gående" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Ersätt..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Hoppa till..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Typsnitt..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Om" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Radbrytning" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "Rad_nummer" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Automatisk _indrag" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Enkel GTK+-baserad textredigerare" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Isak Savo " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Spara ändringar till \"%s\"?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Typsnitt" + +# Här syftar 'Locale' på teckenkodning när man sparar/öppnar dokument. +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Nuvarande lokal (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Annan teckenkodning" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Kodning:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "\"%s\" stöds inte" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Känn av automatiskt" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Öppna" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Spara som" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "Tecken_kodning: " + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "\"%s\" finns redan. Vill du skriva över?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Namnlös" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Kan inte konvertera kodning till \"%s\"" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Kan inte öppna fil att skriva till" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Kan inte skriva till fil" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Söksträngen fanns inte" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Ersätt?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d strängar har ersatts" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Ersätt" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Sök" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Sök efter:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Ersätt _med:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Gör skillnad på gemener/VERSALER" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Ändra alla på en gång" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Hoppa till" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Hoppa" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Radnummer: " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Enkel textredigerare" diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..5ba0f1b --- /dev/null +++ b/po/ta.po @@ -0,0 +1,263 @@ +# Tamil translation of l3afpad. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Vijay Durairaj , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.7.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2004-11-25 03:24-0700\n" +"Last-Translator: Vijay Durairaj \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "கோப்பு(_F)" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "தொகு(_E)" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "தேடுக(_S)" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "தேர்வுகள்(_O)" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "உதவி(_H)" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "புதிது(_N)" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "திற(_O)..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "சேமி(_S)" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "வேறு பேரில் சேமி(_A)..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "வெளிச்செல்(_Q)" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "வெளிச்செல்(_Q)" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "வெளிச்செல்(_Q)" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "கவில் செய்(_U)" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "மீண்டும்(_R)" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "வெட்டு(_T)" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "நகல்(_C)" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "ஒட்டு(_P)" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "நீக்கு(_D)" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "அனைத்தையும் தேர்வு செய்க(_A)" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "கண்டுபிடி(_F).." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "அடுத்ததை கண்டுபிடி(_N)" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "தேடலை பின்னோக்கு(_p)" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "இடமாற்று(_R)..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "இங்கு போ(_J)..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "எழுத்துரு(_F).." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "பற்றி(_A)" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "சொல் மடிப்பு(_W)" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "வரி எண்கள்(_L)" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "தன்னியக்க தள்ளல்(_A)" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+ சார்ந்த ஒரு எளிமையான உரை பதிப்பான்" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "மாற்றங்களை '%s' இல் சேமி?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "எழுத்துரு" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "தற்பொழுதுள்ள Locale (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' க்கு ஆதரவு எதுவும் இல்லை" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "தானாக கண்டுபிடி" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "திற" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "எனச் சேமி..." + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' ஏற்கனவே உள்ளது. மேல் எழுதவா?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "தலைப்பில்லாதது" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "கோப்பை எழுதுவதற்காக திறக்க முடியவில்லை" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "கோப்பை எழுத முடியவில்லை" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "தேடல் சரம் கண்டுபிடிக்க முடியவில்லை" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "மாற்றவா?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d சரங்கள் மாற்றப்பட்டுள்ளது" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "மாற்று" + +#: ../src/search.c:305 +msgid "Find" +msgstr "கண்டுபிடி" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "எதை கண்டுப்பிடிக்க: (_N)" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "எதை கொண்டு மாற்ற(_P)): " + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "எழுத்து வகை பொருத்து(_M)" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "எல்லாவற்றையும் ஒரே நேரத்தில் மாற்று(_A)" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "இங்கு போ" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "தாவு(_J)" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "வரி எண்(_L): " + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "எளிமையான உரை பதிப்பான்" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..8300635 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,265 @@ +# translation of tr.po to Türkçe +# translation of l3afpad.po to Türkçe +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# kaya oğuz , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: tr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2005-08-05 17:26+0300\n" +"Last-Translator: kaya oğuz \n" +"Language-Team: Türkçe \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Dosya" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "Dü_zenle" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Ara" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Seçenekler" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Yardım" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Yeni" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Aç..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Kaydet" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "_Farklı Kaydet..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Ya_zdır... " + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "Ya_zdır... " + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "Çı_k" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Geri Al" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "Tekrar _Yap" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "_Kes" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "K_opyala" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "Y_apıştır" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Sil" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Tümünü _Seç" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Bul..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "_Sonrakini Bul" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Ö_ncekini Bul" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "_Değiştir" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Satı_ra Git..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Yazıtipi..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Hakkında" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "_Sözcük Kaydır" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "S_atır Numaraları" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Otomatik Girinti" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "GTK+ tabanlı basit metin düzenleyicisi" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Kaya Oğuz " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Değişiklikler '%s' dosyasına kaydedilsin mi?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Yazıtipi" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Geçerli Yer Kodlaması (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Diğer kodlama" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Kodlama:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' desteklenmemektedir" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Otomatik-Belirle" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Aç" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Farklı Kaydet" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Karakter Kodlaması:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' dosyası zaten var. Üzerine yazılsın mı?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Başlıksız" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Kodlama '%s' kodlamasına dönüştürülemiyor" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Yazılacak dosya açılamıyor" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Dosyaya yazılamıyor" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Aranan dizgi bulunamadı" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Değiştir?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "%d dizgi değiştirildi" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Değiştir" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Bul" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "Bunu _bul:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Bununla _değiştir:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Büyük/küçük harf eşleştir" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Hepsini bir kerede _değiştir" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Satıra Git" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Git" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Satır Numarası:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Basit metin düzenleyicisi" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..fa968b1 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,266 @@ +# Ukrainian translations for l3afpad package +# Переклад українською для пакету l3afpad. +# Copyright (C) 2007 Free Software Foundation +# This file is distributed under the same license as the l3afpad package. +# Youri Bulka , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2007-03-13 11:38+0300\n" +"Last-Translator: Youri Bulka \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Файл" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Редагування" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Пошук" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "_Налаштування" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "_Довідка" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "_Новий" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Відкрити" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Зберегти" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Зберегти _як..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "Попередній перегляд перед друком" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_Друкувати..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "_Вийти" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Скасувати дію" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Повторити дію" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Ви_різати" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Копіювати" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "В_ставити" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Витерти" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Виділити _все" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Знайти..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Знайти _наступне" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Знайти _попереднє" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "За_мінити..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "Пере_скочити до..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Шрифт..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Про" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Авто-_поділ на рядки" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Номери лінійок" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "Авто-_відступ" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Простий текстовий редактор, базований на GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Перекладачі" + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Зберегти зміни до '%s'?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Шрифт" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Дана локаль (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Інше кодування" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "_Кодування:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "'%s' не підтримується" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Авто-визначення" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Відкрити" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Зберегти як" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Кодування знаків:" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "'%s' вже існує, переписати замість нього?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Неназваний" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Не можливо перетворити кодування в '%s'" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Не можливо відрити файл для запису" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Не можливо писати у файл" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Такого зразка не знайдено" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Замінити?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "замінено %d зразок(ів)" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Замінити" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Знайти" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Зразок:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "За_мінити на:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "Звертати увагу на реґістр" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "Замінити _всі" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Перескочити до" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "Пере_скочити" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "_Номери лінійок:" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Проситий текстовий редактор" diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..5a0f797 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,266 @@ +# Vietnamese translation for L3afpad. +# Copyright © 2009 Tarot Osuji . +# This file is distributed under the same license as the l3afpad package. +# Nguyễn Đại Quý , 2004. +# Clytie Siddall , 2007-2009. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2009-09-19 18:32+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "_Tập tin" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "_Sửa" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "_Tìm kiếm" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "Tù_y chọn" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "Trợ g_iúp" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "Mớ_i" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "_Mở..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "_Lưu" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "Lưu _dạng..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "_Xem thử bản in" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "_In..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "T_hoát" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "_Hủy bước" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "_Làm lại" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "Cắ_t" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "_Chép" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "_Dán" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "_Xoá" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "Chọn _tất cả" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "_Tìm..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "Tìm _kế" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "Tìm _lùi" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "T_hay thế..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "_Nhảy tới..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "_Phông..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "_Giới thiệu" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "Ngắt _dòng" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "_Số hiệu dòng" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "_Tự thụt lề" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "Một trình soạn thảo văn bản đơn giản dựa trên GTK+" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "Nhóm Việt hoá Phần mềm Tự do " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "Lưu các thay đổi cho « %s » không?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "Phông" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "Miền địa phương hiện tại (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "Bảng mã khác" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "Bảng _mã:" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "Không hỗ trợ « %s »" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "Tự động dò tìm" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "Mở" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "Lưu dạng" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "_Bảng mã ký tự :" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "Tập tin « %s » đã có. Ghi đè ?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "Không tên" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "Không thể chuyển đổi bảng mã sang « %s »" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "Không thể mở tập tin để ghi" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "Không thể ghi tập tin" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "Không tìm thấy" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "Thay thế ?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "Đã thay thế %d lần" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "Thay thế" + +#: ../src/search.c:305 +msgid "Find" +msgstr "Tìm" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "_Tìm kiếm:" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "Thay thế _bởi:" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "_Phân biệt chữ hoa/thường" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "_Thay thế tất cả" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "Nhảy tới" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "_Nhảy" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "Dòng _số :" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "Một trình soạn thảo văn bản đơn giản" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..b1d2e79 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,266 @@ +# Simplified Chinese translation for L3afPad +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# Carlos Z.F. Liu , 2004. +# LI Daobing , 2008. +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-01-26 10:12+0800\n" +"Last-Translator: LI Daobing \n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "文件(_F)" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "编辑(_E)" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "搜索(_S)" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "选项(_O)" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "帮助(_H)" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "新建(_N)" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "打开(_O)..." + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "保存(_S)" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "另存为(_A)..." + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "打印预览(_V)" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "打印(_P)..." + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "退出(_Q)" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "撤销(_U)" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "重复(_R)" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "剪切(_T)" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "复制(_C)" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "粘贴(_P)" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "删除(_D)" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "选择全部(_A)" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "查找(_F)..." + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "查找下一个(_N)" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "查找上一个(_P)" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "替换(_R)..." + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "跳转到(_J)..." + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "字体(_F)..." + +#: ../src/menu.c:61 +msgid "_About" +msgstr "关于(_A)" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "自动换行(_W)" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "行号(_L)" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "自动缩进(_A)" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "基于 GTK+ 的简易文字编辑器" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"Carlos Z.F. Liu \n" +"LI Daobing " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "将更改保存到“%s”吗?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "字体" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "当前区域 (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "其它编码" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "编码(_S):" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "“%s”不被支持" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "自动探测" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "打开" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "另存为" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "字符编码(_H):" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "文件“%s”已经存在。覆盖它吗?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "无标题" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "无法将编码转换到“%s”" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "无法打开要写入的文件" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "无法写入文件" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "找不到搜索字串" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "替换吗?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "替换了 %d 个字符串" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "替换" + +#: ../src/search.c:305 +msgid "Find" +msgstr "查找" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "查找(_N):" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "替换为(_P):" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "区分大小写(_M)" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "全部替换(_A)" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "跳转至" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "跳转(_J)" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "行号(_L):" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "简易文字编辑器" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..ca7466c --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,267 @@ +# Traditional Chinese translation for l3afpad. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the l3afpad package. +# OLS3 , 2005. +# Wei-Lun Chao , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: l3afpad 0.8.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-01 15:36+0800\n" +"PO-Revision-Date: 2008-03-20 20:21+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../src/menu.c:34 +msgid "_File" +msgstr "檔案(_F)" + +#: ../src/menu.c:35 +msgid "_Edit" +msgstr "編輯(_E)" + +#: ../src/menu.c:36 +msgid "_Search" +msgstr "搜尋(_S)" + +#: ../src/menu.c:37 +msgid "_Options" +msgstr "選項(_O)" + +#: ../src/menu.c:38 +msgid "_Help" +msgstr "求助(_H)" + +#: ../src/menu.c:39 +msgid "_New" +msgstr "新建(_N)" + +#: ../src/menu.c:40 +msgid "_Open..." +msgstr "開啟(_O)…" + +#: ../src/menu.c:41 +msgid "_Save" +msgstr "儲存(_S)" + +#: ../src/menu.c:42 +msgid "Save _As..." +msgstr "另存為(_A)…" + +#: ../src/menu.c:44 +msgid "Print Pre_view" +msgstr "列印預覽(_V)" + +#: ../src/menu.c:45 +msgid "_Print..." +msgstr "列印(_P)…" + +#: ../src/menu.c:47 +msgid "_Quit" +msgstr "離開(_Q)" + +#: ../src/menu.c:48 +msgid "_Undo" +msgstr "回復(_U)" + +#: ../src/menu.c:49 +msgid "_Redo" +msgstr "重做(_R)" + +#: ../src/menu.c:50 +msgid "Cu_t" +msgstr "剪下(_T)" + +#: ../src/menu.c:51 +msgid "_Copy" +msgstr "複製(_C)" + +#: ../src/menu.c:52 +msgid "_Paste" +msgstr "貼上(_P)" + +#: ../src/menu.c:53 +msgid "_Delete" +msgstr "刪除(_D)" + +#: ../src/menu.c:54 +msgid "Select _All" +msgstr "全選(_A)" + +#: ../src/menu.c:55 +msgid "_Find..." +msgstr "尋找(_F)…" + +#: ../src/menu.c:56 +msgid "Find _Next" +msgstr "尋找下一個(_N)" + +#: ../src/menu.c:57 +msgid "Find _Previous" +msgstr "尋找上一個(_P)" + +#: ../src/menu.c:58 +msgid "_Replace..." +msgstr "置換(_R)…" + +#: ../src/menu.c:59 +msgid "_Jump To..." +msgstr "跳至(_J)…" + +#: ../src/menu.c:60 +msgid "_Font..." +msgstr "字型(_F)…" + +#: ../src/menu.c:61 +msgid "_About" +msgstr "關於(_A)" + +#: ../src/menu.c:68 +msgid "_Word Wrap" +msgstr "自動換列(_W)" + +#: ../src/menu.c:69 +msgid "_Line Numbers" +msgstr "列號(_L)" + +#: ../src/menu.c:70 +msgid "_Auto Indent" +msgstr "自動縮排(_A)" + +#: ../src/callback.c:307 +msgid "GTK+ based simple text editor" +msgstr "基於 GTK+ 的簡易文字編輯器" + +#: ../src/callback.c:313 +msgid "translator-credits" +msgstr "" +"OLS3 \n" +"趙惟倫 " + +#: ../src/view.c:62 +#, c-format +msgid "Save changes to '%s'?" +msgstr "要將變更儲存到「%s」?" + +#: ../src/font.c:44 +msgid "Font" +msgstr "字型" + +#: ../src/selector.c:95 +#, c-format +msgid "Current Locale (%s)" +msgstr "目前語區 (%s)" + +#: ../src/selector.c:126 +msgid "Other Codeset" +msgstr "其它編碼" + +#: ../src/selector.c:165 +msgid "Code_set:" +msgstr "編碼(_S):" + +#: ../src/selector.c:187 +#, c-format +msgid "'%s' is not supported" +msgstr "「%s」尚未支援" + +#: ../src/selector.c:248 +msgid "Auto-Detect" +msgstr "自動偵測" + +#: ../src/selector.c:300 +msgid "Open" +msgstr "開啟" + +#: ../src/selector.c:300 +msgid "Save As" +msgstr "另存新檔" + +#: ../src/selector.c:315 +msgid "C_haracter Coding:" +msgstr "字元編碼(_H):" + +#: ../src/selector.c:373 +#, c-format +msgid "'%s' already exists. Overwrite?" +msgstr "檔案「%s」已經存在。要覆蓋它嗎?" + +#: ../src/file.c:55 +msgid "Untitled" +msgstr "未命名" + +#: ../src/file.c:210 +#, c-format +msgid "Can't convert codeset to '%s'" +msgstr "無法將編碼轉換為「%s」" + +#: ../src/file.c:223 +msgid "Can't open file to write" +msgstr "無法打開要寫入的檔案" + +#: ../src/file.c:228 +msgid "Can't write file" +msgstr "無法寫入檔案" + +#: ../src/search.c:136 +msgid "Search string not found" +msgstr "找不到搜尋字串" + +#: ../src/search.c:189 +msgid "Replace?" +msgstr "要置換嗎?" + +#: ../src/search.c:252 +#, c-format +msgid "%d strings replaced" +msgstr "置換了 %d 個字串" + +#: ../src/search.c:298 +msgid "Replace" +msgstr "置換" + +#: ../src/search.c:305 +msgid "Find" +msgstr "尋找" + +#: ../src/search.c:317 +msgid "Fi_nd what:" +msgstr "尋找(_N):" + +#: ../src/search.c:336 +msgid "Re_place with:" +msgstr "置換成(_P):" + +#: ../src/search.c:350 +msgid "_Match case" +msgstr "區分大小寫(_M)" + +#: ../src/search.c:355 +msgid "Replace _all at once" +msgstr "全部置換(_A)" + +#: ../src/search.c:406 +msgid "Jump To" +msgstr "跳至" + +#: ../src/search.c:411 +msgid "_Jump" +msgstr "跳至(_J)" + +#: ../src/search.c:418 +msgid "_Line number:" +msgstr "列號(_L):" + +#: ../data/l3afpad.desktop.in.h:1 +msgid "L3afpad" +msgstr "L3afpad" + +#: ../data/l3afpad.desktop.in.h:2 +msgid "Simple text editor" +msgstr "簡易文字編輯器" diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..3f613c5 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,28 @@ +bin_PROGRAMS = l3afpad + +INCLUDES = -DICONDIR=\"$(datadir)/pixmaps\" + +l3afpad_SOURCES = \ + l3afpad.h main.c \ + window.h window.c \ + menu.h menu.c \ + callback.h callback.c \ + view.h view.c \ + undo.h undo.c \ + font.h font.c \ + linenum.h linenum.c \ + indent.h indent.c \ + hlight.h hlight.c \ + selector.h selector.c \ + file.h file.c \ + encoding.h encoding.c \ + search.h search.c \ + dialog.h dialog.c \ + gtkprint.h gtkprint.c \ + dnd.h dnd.c \ + utils.h utils.c \ + emacs.h emacs.c \ + gtksourceiter.h gtksourceiter.c + +l3afpad_CFLAGS = $(GTK_CFLAGS) +l3afpad_LDADD = $(GTK_LIBS) $(INTLLIBS) diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..8ccd443 --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,812 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ +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 = : +bin_PROGRAMS = l3afpad$(EXEEXT) +subdir = src +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_l3afpad_OBJECTS = l3afpad-main.$(OBJEXT) l3afpad-window.$(OBJEXT) \ + l3afpad-menu.$(OBJEXT) l3afpad-callback.$(OBJEXT) \ + l3afpad-view.$(OBJEXT) l3afpad-undo.$(OBJEXT) \ + l3afpad-font.$(OBJEXT) l3afpad-linenum.$(OBJEXT) \ + l3afpad-indent.$(OBJEXT) l3afpad-hlight.$(OBJEXT) \ + l3afpad-selector.$(OBJEXT) l3afpad-file.$(OBJEXT) \ + l3afpad-encoding.$(OBJEXT) l3afpad-search.$(OBJEXT) \ + l3afpad-dialog.$(OBJEXT) l3afpad-gtkprint.$(OBJEXT) \ + l3afpad-dnd.$(OBJEXT) l3afpad-utils.$(OBJEXT) \ + l3afpad-emacs.$(OBJEXT) l3afpad-gtksourceiter.$(OBJEXT) +l3afpad_OBJECTS = $(am_l3afpad_OBJECTS) +am__DEPENDENCIES_1 = +l3afpad_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +l3afpad_LINK = $(CCLD) $(l3afpad_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(l3afpad_SOURCES) +DIST_SOURCES = $(l3afpad_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +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@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +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_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +INCLUDES = -DICONDIR=\"$(datadir)/pixmaps\" +l3afpad_SOURCES = \ + l3afpad.h main.c \ + window.h window.c \ + menu.h menu.c \ + callback.h callback.c \ + view.h view.c \ + undo.h undo.c \ + font.h font.c \ + linenum.h linenum.c \ + indent.h indent.c \ + hlight.h hlight.c \ + selector.h selector.c \ + file.h file.c \ + encoding.h encoding.c \ + search.h search.c \ + dialog.h dialog.c \ + gtkprint.h gtkprint.c \ + dnd.h dnd.c \ + utils.h utils.c \ + emacs.h emacs.c \ + gtksourceiter.h gtksourceiter.c + +l3afpad_CFLAGS = $(GTK_CFLAGS) +l3afpad_LDADD = $(GTK_LIBS) $(INTLLIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: $(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) --gnu src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +.PRECIOUS: 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__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + 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) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(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: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +l3afpad$(EXEEXT): $(l3afpad_OBJECTS) $(l3afpad_DEPENDENCIES) + @rm -f l3afpad$(EXEEXT) + $(l3afpad_LINK) $(l3afpad_OBJECTS) $(l3afpad_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-callback.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-dialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-dnd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-emacs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-encoding.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-file.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-font.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-gtkprint.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-gtksourceiter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-hlight.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-indent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-linenum.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-menu.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-search.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-selector.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-undo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-utils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-view.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l3afpad-window.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +l3afpad-main.o: main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-main.o -MD -MP -MF $(DEPDIR)/l3afpad-main.Tpo -c -o l3afpad-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-main.Tpo $(DEPDIR)/l3afpad-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='l3afpad-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +l3afpad-main.obj: main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-main.obj -MD -MP -MF $(DEPDIR)/l3afpad-main.Tpo -c -o l3afpad-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-main.Tpo $(DEPDIR)/l3afpad-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='l3afpad-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +l3afpad-window.o: window.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-window.o -MD -MP -MF $(DEPDIR)/l3afpad-window.Tpo -c -o l3afpad-window.o `test -f 'window.c' || echo '$(srcdir)/'`window.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-window.Tpo $(DEPDIR)/l3afpad-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='window.c' object='l3afpad-window.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-window.o `test -f 'window.c' || echo '$(srcdir)/'`window.c + +l3afpad-window.obj: window.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-window.obj -MD -MP -MF $(DEPDIR)/l3afpad-window.Tpo -c -o l3afpad-window.obj `if test -f 'window.c'; then $(CYGPATH_W) 'window.c'; else $(CYGPATH_W) '$(srcdir)/window.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-window.Tpo $(DEPDIR)/l3afpad-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='window.c' object='l3afpad-window.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-window.obj `if test -f 'window.c'; then $(CYGPATH_W) 'window.c'; else $(CYGPATH_W) '$(srcdir)/window.c'; fi` + +l3afpad-menu.o: menu.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-menu.o -MD -MP -MF $(DEPDIR)/l3afpad-menu.Tpo -c -o l3afpad-menu.o `test -f 'menu.c' || echo '$(srcdir)/'`menu.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-menu.Tpo $(DEPDIR)/l3afpad-menu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='menu.c' object='l3afpad-menu.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-menu.o `test -f 'menu.c' || echo '$(srcdir)/'`menu.c + +l3afpad-menu.obj: menu.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-menu.obj -MD -MP -MF $(DEPDIR)/l3afpad-menu.Tpo -c -o l3afpad-menu.obj `if test -f 'menu.c'; then $(CYGPATH_W) 'menu.c'; else $(CYGPATH_W) '$(srcdir)/menu.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-menu.Tpo $(DEPDIR)/l3afpad-menu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='menu.c' object='l3afpad-menu.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-menu.obj `if test -f 'menu.c'; then $(CYGPATH_W) 'menu.c'; else $(CYGPATH_W) '$(srcdir)/menu.c'; fi` + +l3afpad-callback.o: callback.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-callback.o -MD -MP -MF $(DEPDIR)/l3afpad-callback.Tpo -c -o l3afpad-callback.o `test -f 'callback.c' || echo '$(srcdir)/'`callback.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-callback.Tpo $(DEPDIR)/l3afpad-callback.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='callback.c' object='l3afpad-callback.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-callback.o `test -f 'callback.c' || echo '$(srcdir)/'`callback.c + +l3afpad-callback.obj: callback.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-callback.obj -MD -MP -MF $(DEPDIR)/l3afpad-callback.Tpo -c -o l3afpad-callback.obj `if test -f 'callback.c'; then $(CYGPATH_W) 'callback.c'; else $(CYGPATH_W) '$(srcdir)/callback.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-callback.Tpo $(DEPDIR)/l3afpad-callback.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='callback.c' object='l3afpad-callback.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-callback.obj `if test -f 'callback.c'; then $(CYGPATH_W) 'callback.c'; else $(CYGPATH_W) '$(srcdir)/callback.c'; fi` + +l3afpad-view.o: view.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-view.o -MD -MP -MF $(DEPDIR)/l3afpad-view.Tpo -c -o l3afpad-view.o `test -f 'view.c' || echo '$(srcdir)/'`view.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-view.Tpo $(DEPDIR)/l3afpad-view.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view.c' object='l3afpad-view.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-view.o `test -f 'view.c' || echo '$(srcdir)/'`view.c + +l3afpad-view.obj: view.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-view.obj -MD -MP -MF $(DEPDIR)/l3afpad-view.Tpo -c -o l3afpad-view.obj `if test -f 'view.c'; then $(CYGPATH_W) 'view.c'; else $(CYGPATH_W) '$(srcdir)/view.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-view.Tpo $(DEPDIR)/l3afpad-view.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view.c' object='l3afpad-view.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-view.obj `if test -f 'view.c'; then $(CYGPATH_W) 'view.c'; else $(CYGPATH_W) '$(srcdir)/view.c'; fi` + +l3afpad-undo.o: undo.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-undo.o -MD -MP -MF $(DEPDIR)/l3afpad-undo.Tpo -c -o l3afpad-undo.o `test -f 'undo.c' || echo '$(srcdir)/'`undo.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-undo.Tpo $(DEPDIR)/l3afpad-undo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='undo.c' object='l3afpad-undo.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-undo.o `test -f 'undo.c' || echo '$(srcdir)/'`undo.c + +l3afpad-undo.obj: undo.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-undo.obj -MD -MP -MF $(DEPDIR)/l3afpad-undo.Tpo -c -o l3afpad-undo.obj `if test -f 'undo.c'; then $(CYGPATH_W) 'undo.c'; else $(CYGPATH_W) '$(srcdir)/undo.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-undo.Tpo $(DEPDIR)/l3afpad-undo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='undo.c' object='l3afpad-undo.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-undo.obj `if test -f 'undo.c'; then $(CYGPATH_W) 'undo.c'; else $(CYGPATH_W) '$(srcdir)/undo.c'; fi` + +l3afpad-font.o: font.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-font.o -MD -MP -MF $(DEPDIR)/l3afpad-font.Tpo -c -o l3afpad-font.o `test -f 'font.c' || echo '$(srcdir)/'`font.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-font.Tpo $(DEPDIR)/l3afpad-font.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='font.c' object='l3afpad-font.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-font.o `test -f 'font.c' || echo '$(srcdir)/'`font.c + +l3afpad-font.obj: font.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-font.obj -MD -MP -MF $(DEPDIR)/l3afpad-font.Tpo -c -o l3afpad-font.obj `if test -f 'font.c'; then $(CYGPATH_W) 'font.c'; else $(CYGPATH_W) '$(srcdir)/font.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-font.Tpo $(DEPDIR)/l3afpad-font.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='font.c' object='l3afpad-font.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-font.obj `if test -f 'font.c'; then $(CYGPATH_W) 'font.c'; else $(CYGPATH_W) '$(srcdir)/font.c'; fi` + +l3afpad-linenum.o: linenum.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-linenum.o -MD -MP -MF $(DEPDIR)/l3afpad-linenum.Tpo -c -o l3afpad-linenum.o `test -f 'linenum.c' || echo '$(srcdir)/'`linenum.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-linenum.Tpo $(DEPDIR)/l3afpad-linenum.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='linenum.c' object='l3afpad-linenum.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-linenum.o `test -f 'linenum.c' || echo '$(srcdir)/'`linenum.c + +l3afpad-linenum.obj: linenum.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-linenum.obj -MD -MP -MF $(DEPDIR)/l3afpad-linenum.Tpo -c -o l3afpad-linenum.obj `if test -f 'linenum.c'; then $(CYGPATH_W) 'linenum.c'; else $(CYGPATH_W) '$(srcdir)/linenum.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-linenum.Tpo $(DEPDIR)/l3afpad-linenum.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='linenum.c' object='l3afpad-linenum.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-linenum.obj `if test -f 'linenum.c'; then $(CYGPATH_W) 'linenum.c'; else $(CYGPATH_W) '$(srcdir)/linenum.c'; fi` + +l3afpad-indent.o: indent.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-indent.o -MD -MP -MF $(DEPDIR)/l3afpad-indent.Tpo -c -o l3afpad-indent.o `test -f 'indent.c' || echo '$(srcdir)/'`indent.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-indent.Tpo $(DEPDIR)/l3afpad-indent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='indent.c' object='l3afpad-indent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-indent.o `test -f 'indent.c' || echo '$(srcdir)/'`indent.c + +l3afpad-indent.obj: indent.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-indent.obj -MD -MP -MF $(DEPDIR)/l3afpad-indent.Tpo -c -o l3afpad-indent.obj `if test -f 'indent.c'; then $(CYGPATH_W) 'indent.c'; else $(CYGPATH_W) '$(srcdir)/indent.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-indent.Tpo $(DEPDIR)/l3afpad-indent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='indent.c' object='l3afpad-indent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-indent.obj `if test -f 'indent.c'; then $(CYGPATH_W) 'indent.c'; else $(CYGPATH_W) '$(srcdir)/indent.c'; fi` + +l3afpad-hlight.o: hlight.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-hlight.o -MD -MP -MF $(DEPDIR)/l3afpad-hlight.Tpo -c -o l3afpad-hlight.o `test -f 'hlight.c' || echo '$(srcdir)/'`hlight.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-hlight.Tpo $(DEPDIR)/l3afpad-hlight.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hlight.c' object='l3afpad-hlight.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-hlight.o `test -f 'hlight.c' || echo '$(srcdir)/'`hlight.c + +l3afpad-hlight.obj: hlight.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-hlight.obj -MD -MP -MF $(DEPDIR)/l3afpad-hlight.Tpo -c -o l3afpad-hlight.obj `if test -f 'hlight.c'; then $(CYGPATH_W) 'hlight.c'; else $(CYGPATH_W) '$(srcdir)/hlight.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-hlight.Tpo $(DEPDIR)/l3afpad-hlight.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hlight.c' object='l3afpad-hlight.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-hlight.obj `if test -f 'hlight.c'; then $(CYGPATH_W) 'hlight.c'; else $(CYGPATH_W) '$(srcdir)/hlight.c'; fi` + +l3afpad-selector.o: selector.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-selector.o -MD -MP -MF $(DEPDIR)/l3afpad-selector.Tpo -c -o l3afpad-selector.o `test -f 'selector.c' || echo '$(srcdir)/'`selector.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-selector.Tpo $(DEPDIR)/l3afpad-selector.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selector.c' object='l3afpad-selector.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-selector.o `test -f 'selector.c' || echo '$(srcdir)/'`selector.c + +l3afpad-selector.obj: selector.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-selector.obj -MD -MP -MF $(DEPDIR)/l3afpad-selector.Tpo -c -o l3afpad-selector.obj `if test -f 'selector.c'; then $(CYGPATH_W) 'selector.c'; else $(CYGPATH_W) '$(srcdir)/selector.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-selector.Tpo $(DEPDIR)/l3afpad-selector.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selector.c' object='l3afpad-selector.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-selector.obj `if test -f 'selector.c'; then $(CYGPATH_W) 'selector.c'; else $(CYGPATH_W) '$(srcdir)/selector.c'; fi` + +l3afpad-file.o: file.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-file.o -MD -MP -MF $(DEPDIR)/l3afpad-file.Tpo -c -o l3afpad-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-file.Tpo $(DEPDIR)/l3afpad-file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file.c' object='l3afpad-file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c + +l3afpad-file.obj: file.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-file.obj -MD -MP -MF $(DEPDIR)/l3afpad-file.Tpo -c -o l3afpad-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-file.Tpo $(DEPDIR)/l3afpad-file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file.c' object='l3afpad-file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` + +l3afpad-encoding.o: encoding.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-encoding.o -MD -MP -MF $(DEPDIR)/l3afpad-encoding.Tpo -c -o l3afpad-encoding.o `test -f 'encoding.c' || echo '$(srcdir)/'`encoding.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-encoding.Tpo $(DEPDIR)/l3afpad-encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoding.c' object='l3afpad-encoding.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-encoding.o `test -f 'encoding.c' || echo '$(srcdir)/'`encoding.c + +l3afpad-encoding.obj: encoding.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-encoding.obj -MD -MP -MF $(DEPDIR)/l3afpad-encoding.Tpo -c -o l3afpad-encoding.obj `if test -f 'encoding.c'; then $(CYGPATH_W) 'encoding.c'; else $(CYGPATH_W) '$(srcdir)/encoding.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-encoding.Tpo $(DEPDIR)/l3afpad-encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoding.c' object='l3afpad-encoding.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-encoding.obj `if test -f 'encoding.c'; then $(CYGPATH_W) 'encoding.c'; else $(CYGPATH_W) '$(srcdir)/encoding.c'; fi` + +l3afpad-search.o: search.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-search.o -MD -MP -MF $(DEPDIR)/l3afpad-search.Tpo -c -o l3afpad-search.o `test -f 'search.c' || echo '$(srcdir)/'`search.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-search.Tpo $(DEPDIR)/l3afpad-search.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='search.c' object='l3afpad-search.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-search.o `test -f 'search.c' || echo '$(srcdir)/'`search.c + +l3afpad-search.obj: search.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-search.obj -MD -MP -MF $(DEPDIR)/l3afpad-search.Tpo -c -o l3afpad-search.obj `if test -f 'search.c'; then $(CYGPATH_W) 'search.c'; else $(CYGPATH_W) '$(srcdir)/search.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-search.Tpo $(DEPDIR)/l3afpad-search.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='search.c' object='l3afpad-search.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-search.obj `if test -f 'search.c'; then $(CYGPATH_W) 'search.c'; else $(CYGPATH_W) '$(srcdir)/search.c'; fi` + +l3afpad-dialog.o: dialog.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-dialog.o -MD -MP -MF $(DEPDIR)/l3afpad-dialog.Tpo -c -o l3afpad-dialog.o `test -f 'dialog.c' || echo '$(srcdir)/'`dialog.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-dialog.Tpo $(DEPDIR)/l3afpad-dialog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dialog.c' object='l3afpad-dialog.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-dialog.o `test -f 'dialog.c' || echo '$(srcdir)/'`dialog.c + +l3afpad-dialog.obj: dialog.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-dialog.obj -MD -MP -MF $(DEPDIR)/l3afpad-dialog.Tpo -c -o l3afpad-dialog.obj `if test -f 'dialog.c'; then $(CYGPATH_W) 'dialog.c'; else $(CYGPATH_W) '$(srcdir)/dialog.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-dialog.Tpo $(DEPDIR)/l3afpad-dialog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dialog.c' object='l3afpad-dialog.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-dialog.obj `if test -f 'dialog.c'; then $(CYGPATH_W) 'dialog.c'; else $(CYGPATH_W) '$(srcdir)/dialog.c'; fi` + +l3afpad-gtkprint.o: gtkprint.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-gtkprint.o -MD -MP -MF $(DEPDIR)/l3afpad-gtkprint.Tpo -c -o l3afpad-gtkprint.o `test -f 'gtkprint.c' || echo '$(srcdir)/'`gtkprint.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-gtkprint.Tpo $(DEPDIR)/l3afpad-gtkprint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtkprint.c' object='l3afpad-gtkprint.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-gtkprint.o `test -f 'gtkprint.c' || echo '$(srcdir)/'`gtkprint.c + +l3afpad-gtkprint.obj: gtkprint.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-gtkprint.obj -MD -MP -MF $(DEPDIR)/l3afpad-gtkprint.Tpo -c -o l3afpad-gtkprint.obj `if test -f 'gtkprint.c'; then $(CYGPATH_W) 'gtkprint.c'; else $(CYGPATH_W) '$(srcdir)/gtkprint.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-gtkprint.Tpo $(DEPDIR)/l3afpad-gtkprint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtkprint.c' object='l3afpad-gtkprint.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-gtkprint.obj `if test -f 'gtkprint.c'; then $(CYGPATH_W) 'gtkprint.c'; else $(CYGPATH_W) '$(srcdir)/gtkprint.c'; fi` + +l3afpad-dnd.o: dnd.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-dnd.o -MD -MP -MF $(DEPDIR)/l3afpad-dnd.Tpo -c -o l3afpad-dnd.o `test -f 'dnd.c' || echo '$(srcdir)/'`dnd.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-dnd.Tpo $(DEPDIR)/l3afpad-dnd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dnd.c' object='l3afpad-dnd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-dnd.o `test -f 'dnd.c' || echo '$(srcdir)/'`dnd.c + +l3afpad-dnd.obj: dnd.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-dnd.obj -MD -MP -MF $(DEPDIR)/l3afpad-dnd.Tpo -c -o l3afpad-dnd.obj `if test -f 'dnd.c'; then $(CYGPATH_W) 'dnd.c'; else $(CYGPATH_W) '$(srcdir)/dnd.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-dnd.Tpo $(DEPDIR)/l3afpad-dnd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dnd.c' object='l3afpad-dnd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-dnd.obj `if test -f 'dnd.c'; then $(CYGPATH_W) 'dnd.c'; else $(CYGPATH_W) '$(srcdir)/dnd.c'; fi` + +l3afpad-utils.o: utils.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-utils.o -MD -MP -MF $(DEPDIR)/l3afpad-utils.Tpo -c -o l3afpad-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-utils.Tpo $(DEPDIR)/l3afpad-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='l3afpad-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +l3afpad-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-utils.obj -MD -MP -MF $(DEPDIR)/l3afpad-utils.Tpo -c -o l3afpad-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-utils.Tpo $(DEPDIR)/l3afpad-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='l3afpad-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + +l3afpad-emacs.o: emacs.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-emacs.o -MD -MP -MF $(DEPDIR)/l3afpad-emacs.Tpo -c -o l3afpad-emacs.o `test -f 'emacs.c' || echo '$(srcdir)/'`emacs.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-emacs.Tpo $(DEPDIR)/l3afpad-emacs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='emacs.c' object='l3afpad-emacs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-emacs.o `test -f 'emacs.c' || echo '$(srcdir)/'`emacs.c + +l3afpad-emacs.obj: emacs.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-emacs.obj -MD -MP -MF $(DEPDIR)/l3afpad-emacs.Tpo -c -o l3afpad-emacs.obj `if test -f 'emacs.c'; then $(CYGPATH_W) 'emacs.c'; else $(CYGPATH_W) '$(srcdir)/emacs.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-emacs.Tpo $(DEPDIR)/l3afpad-emacs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='emacs.c' object='l3afpad-emacs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-emacs.obj `if test -f 'emacs.c'; then $(CYGPATH_W) 'emacs.c'; else $(CYGPATH_W) '$(srcdir)/emacs.c'; fi` + +l3afpad-gtksourceiter.o: gtksourceiter.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-gtksourceiter.o -MD -MP -MF $(DEPDIR)/l3afpad-gtksourceiter.Tpo -c -o l3afpad-gtksourceiter.o `test -f 'gtksourceiter.c' || echo '$(srcdir)/'`gtksourceiter.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-gtksourceiter.Tpo $(DEPDIR)/l3afpad-gtksourceiter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtksourceiter.c' object='l3afpad-gtksourceiter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-gtksourceiter.o `test -f 'gtksourceiter.c' || echo '$(srcdir)/'`gtksourceiter.c + +l3afpad-gtksourceiter.obj: gtksourceiter.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -MT l3afpad-gtksourceiter.obj -MD -MP -MF $(DEPDIR)/l3afpad-gtksourceiter.Tpo -c -o l3afpad-gtksourceiter.obj `if test -f 'gtksourceiter.c'; then $(CYGPATH_W) 'gtksourceiter.c'; else $(CYGPATH_W) '$(srcdir)/gtksourceiter.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/l3afpad-gtksourceiter.Tpo $(DEPDIR)/l3afpad-gtksourceiter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtksourceiter.c' object='l3afpad-gtksourceiter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(l3afpad_CFLAGS) $(CFLAGS) -c -o l3afpad-gtksourceiter.obj `if test -f 'gtksourceiter.c'; then $(CYGPATH_W) 'gtksourceiter.c'; else $(CYGPATH_W) '$(srcdir)/gtksourceiter.c'; fi` + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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 +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(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 $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; 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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +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-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -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-binPROGRAMS + +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 -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic ctags distclean distclean-compile \ + distclean-generic 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-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-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS + + +# 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: diff --git a/src/callback.c b/src/callback.c new file mode 100644 index 0000000..0faa3d8 --- /dev/null +++ b/src/callback.c @@ -0,0 +1,331 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include +#include +#include + +static void set_selection_bound(GtkTextBuffer *buffer, gint start, gint end) +{ + GtkTextIter start_iter, end_iter; + + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, start); + if (end < 0) + gtk_text_buffer_get_end_iter(buffer, &end_iter); + else + gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, end); + gtk_text_buffer_place_cursor(buffer, &end_iter); + gtk_text_buffer_move_mark_by_name(buffer, "selection_bound", &start_iter); +} + +void on_file_new(void) +{ + gchar *comline; + gchar *option; + + save_config_file(); + option = pub->fi->charset_flag ? + g_strdup_printf("%s%s", " --codeset=", pub->fi->charset) : ""; + comline = g_strdup_printf("%s%s", PACKAGE, option); + if (pub->fi->charset_flag) + g_free(option); + g_spawn_command_line_async(comline, NULL); + g_free(comline); +} + +void on_file_open(void) +#ifdef ENABLE_CSDI +{ // too slow... + FileInfo *fi; + gchar *comline; + gchar *option = NULL; + + fi = get_fileinfo_from_selector(pub->fi, OPEN); + if (fi) { + save_config_file(); + option = g_strdup_printf("--codeset=%s ", fi->charset); + comline = g_strdup_printf("%s %s%s", PACKAGE, + fi->charset ? option : "", + fi->filename); + g_spawn_command_line_async(comline, NULL); + g_free(option); + g_free(comline); + g_free(fi); + } +} +#else +{ + FileInfo *fi; + + if (check_text_modification()) + return; + fi = get_fileinfo_from_selector(pub->fi, OPEN); + if (fi) { + if (file_open_real(pub->mw->view, fi)) + g_free(fi); + else { + g_free(pub->fi); + pub->fi = fi; + undo_clear_all(pub->mw->buffer); +// set_main_window_title(); + force_call_cb_modified_changed(pub->mw->view); +// undo_init(sd->mainwin->textview, sd->mainwin->textbuffer, sd->mainwin->menubar); + } + } +} +#endif + +gint on_file_save(void) +{ + if (pub->fi->filename == NULL) + return on_file_save_as(); + if (check_file_writable(pub->fi->filename) == FALSE) + return on_file_save_as(); + if (file_save_real(pub->mw->view, pub->fi)) + return -1; +// set_main_window_title(); + force_call_cb_modified_changed(pub->mw->view); +// undo_reset_step_modif(); + return 0; +} + +gint on_file_save_as(void) +{ + FileInfo *fi; + + fi = get_fileinfo_from_selector(pub->fi, SAVE); + if (fi == NULL) + return -1; + if (file_save_real(pub->mw->view, fi)) { + g_free(fi); + return -1; + } + g_free(pub->fi); + pub->fi = fi; + undo_clear_all(pub->mw->buffer); +// set_main_window_title(); + force_call_cb_modified_changed(pub->mw->view); +// undo_init(sd->mainwin->textview, sd->mainwin->textbuffer, sd->mainwin->menubar); + return 0; +} +#ifdef ENABLE_PRINT +void on_file_print_preview(void) +{ + create_gtkprint_preview_session(GTK_TEXT_VIEW(pub->mw->view), + get_file_basename(pub->fi->filename, FALSE)); +} + +void on_file_print(void) +{ + create_gtkprint_session(GTK_TEXT_VIEW(pub->mw->view), + get_file_basename(pub->fi->filename, FALSE)); +} +#endif +void on_file_close(void) +{ + if (!check_text_modification()) { + force_block_cb_modified_changed(pub->mw->view); +// undo_block_signal(textbuffer); + gtk_text_buffer_set_text(pub->mw->buffer, "", 0); + gtk_text_buffer_set_modified(pub->mw->buffer, FALSE); + if (pub->fi->filename) + g_free(pub->fi->filename); + pub->fi->filename = NULL; + if (pub->fi->charset) + g_free(pub->fi->charset); + pub->fi->charset = NULL; + pub->fi->charset_flag = FALSE; + pub->fi->lineend = LF; + undo_clear_all(pub->mw->buffer); +// set_main_window_title(); + force_call_cb_modified_changed(pub->mw->view); + force_unblock_cb_modified_changed(pub->mw->view); +// undo_unblock_signal(textbuffer); +// undo_init(sd->mainwin->textview, textbuffer, sd->mainwin->menubar); + } +} + +void on_file_quit(void) +{ + if (!check_text_modification()) { + save_config_file(); + gtk_main_quit(); + } +} + +void on_edit_undo(void) +{ + undo_undo(pub->mw->buffer); +} + +void on_edit_redo(void) +{ + undo_redo(pub->mw->buffer); +} + +void on_edit_cut(void) +{ + g_signal_emit_by_name(G_OBJECT(pub->mw->view), "cut-clipboard"); +} + +void on_edit_copy(void) +{ + g_signal_emit_by_name(G_OBJECT(pub->mw->view), "copy-clipboard"); +} + +void on_edit_paste(void) +{ + g_signal_emit_by_name(G_OBJECT(pub->mw->view), "paste-clipboard"); +// TODO: Use modify signal!! +/* gtk_text_view_scroll_mark_onscreen( + GTK_TEXT_VIEW(pub->mw->view), + gtk_text_buffer_get_insert(pub->mw->buffer)); +*/} + +void on_edit_delete(void) +{ + gtk_text_buffer_delete_selection(pub->mw->buffer, TRUE, TRUE); +} + +void on_edit_select_all(void) +{ + set_selection_bound(pub->mw->buffer, 0, -1); +// g_signal_emit_by_name(G_OBJECT(pub->mw->view), "select-all"); +} + +static void activate_quick_find(void) +{ + GtkItemFactory *ifactory; + static gboolean flag = FALSE; + + if (!flag) { + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + gtk_widget_set_sensitive( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindNext"), + TRUE); + gtk_widget_set_sensitive( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindPrevious"), + TRUE); + flag = TRUE; + } +} + +void on_search_find(void) +{ + if (run_dialog_search(pub->mw->view, 0) == GTK_RESPONSE_OK) + activate_quick_find(); +} + +void on_search_find_next(void) +{ + document_search_real(pub->mw->view, 1); +} + +void on_search_find_previous(void) +{ + document_search_real(pub->mw->view, -1); +} + +void on_search_replace(void) +{ + if (run_dialog_search(pub->mw->view, 1) == GTK_RESPONSE_OK) + activate_quick_find(); +} + +void on_search_jump_to(void) +{ + run_dialog_jump_to(pub->mw->view); +} + +void on_option_font(void) +{ + change_text_font_by_selector(pub->mw->view); +} + +void on_option_word_wrap(void) +{ + GtkItemFactory *ifactory; + gboolean state; + + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + state = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/WordWrap"))); + gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pub->mw->view), + state ? GTK_WRAP_WORD : GTK_WRAP_NONE); +} + +void on_option_line_numbers(void) +{ + GtkItemFactory *ifactory; + gboolean state; + + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + state = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/LineNumbers"))); + show_line_numbers(pub->mw->view, state); +} + +void on_option_always_on_top(void) +{ + static gboolean flag = FALSE; + + flag =! flag; + gtk_window_set_keep_above(GTK_WINDOW(pub->mw->window), flag); +} + +void on_option_auto_indent(void) +{ + GtkItemFactory *ifactory; + gboolean state; + + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + state = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/AutoIndent"))); + indent_set_state(state); +} + +void on_help_about(void) +{ + const gchar *copyright = "Copyright \xc2\xa9 2004-2010 Tarot Osuji\nCopyright \xc2\xa9 2011 Wen-Yen Chuang"; + const gchar *comments = _("GTK+ based simple text editor"); + const gchar *authors[] = { + "Tarot Osuji ", + "Wen-Yen Chuang ", + NULL + }; + const gchar *translator_credits = _("translator-credits"); + + translator_credits = strcmp(translator_credits, "translator-credits") + ? translator_credits : NULL; + + const gchar *artists[] = { + "Lapo Calamandrei ", + NULL + }; + gtk_show_about_dialog(GTK_WINDOW(pub->mw->window), + "version", PACKAGE_VERSION, + "copyright", copyright, + "comments", comments, + "authors", authors, + "artists", artists, + "translator-credits", translator_credits, + "logo-icon-name", PACKAGE, + NULL); +} diff --git a/src/callback.h b/src/callback.h new file mode 100644 index 0000000..b1b9c3a --- /dev/null +++ b/src/callback.h @@ -0,0 +1,50 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _CALLBACK_H +#define _CALLBACK_H + +void on_file_new(void); +void on_file_open(void); +gint on_file_save(void); +gint on_file_save_as(void); +void on_file_print_preview(void); +void on_file_print(void); +void on_file_close(void); +void on_file_quit(void); +void on_edit_undo(void); +void on_edit_redo(void); +void on_edit_cut(void); +void on_edit_copy(void); +void on_edit_paste(void); +void on_edit_delete(void); +void on_edit_select_all(void); +void on_search_find(void); +void on_search_find_next(void); +void on_search_find_previous(void); +void on_search_replace(void); +void on_search_jump_to(void); +void on_option_font(void); +void on_option_word_wrap(void); +void on_option_line_numbers(void); +void on_option_always_on_top(void); +void on_option_auto_indent(void); +void on_help_about(void); + +#endif /* _CALLBACK_H */ diff --git a/src/dialog.c b/src/dialog.c new file mode 100644 index 0000000..3ef3908 --- /dev/null +++ b/src/dialog.c @@ -0,0 +1,95 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" + +/* GTK_MESSAGE_INFO, GTK_MESSAGE_WARNING, GTK_MESSAGE_ERROR */ +void run_dialog_message(GtkWidget *window, + GtkMessageType type, + gchar *message, ...) +{ + va_list ap; + GtkWidget *dialog; + gchar *str; + + va_start(ap, message); + str = g_strdup_vprintf(message, ap); + va_end(ap); + + dialog = gtk_message_dialog_new(GTK_WINDOW(window), + GTK_DIALOG_DESTROY_WITH_PARENT, + type, + GTK_BUTTONS_NONE, + str); + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_dialog_add_buttons(GTK_DIALOG(dialog), + GTK_STOCK_OK, GTK_RESPONSE_CANCEL, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); + g_free(str); + + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} + +GtkWidget *create_dialog_message_question(GtkWidget *window, gchar *message, ...) +{ + va_list ap; + GtkWidget *dialog; + gchar *str; + + va_start(ap, message); + str = g_strdup_vprintf(message, ap); + va_end(ap); + + dialog = gtk_message_dialog_new(GTK_WINDOW(window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + str); + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_dialog_add_buttons(GTK_DIALOG(dialog), + GTK_STOCK_NO, GTK_RESPONSE_NO, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_YES, GTK_RESPONSE_YES, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES); + g_free(str); + + return dialog; +} + +gint run_dialog_message_question(GtkWidget *window, gchar *message, ...) +{ + va_list ap; + GtkWidget *dialog; + gchar *str; + gint res; + + va_start(ap, message); + str = g_strdup_vprintf(message, ap); + va_end(ap); + + dialog = create_dialog_message_question(window, str); + g_free(str); + + res = gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + + return res; +} diff --git a/src/dialog.h b/src/dialog.h new file mode 100644 index 0000000..1702955 --- /dev/null +++ b/src/dialog.h @@ -0,0 +1,27 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _DIALOG_H +#define _DIALOG_H + +void run_dialog_message(GtkWidget *window, GtkMessageType type, gchar *message, ...); +GtkWidget *create_dialog_message_question(GtkWidget *window, gchar *message, ...); +gint run_dialog_message_question(GtkWidget *window, gchar *message, ...); + +#endif /* _DIALOG_H */ diff --git a/src/dnd.c b/src/dnd.c new file mode 100644 index 0000000..f9e7281 --- /dev/null +++ b/src/dnd.c @@ -0,0 +1,226 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2006 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include "string.h" + +#define DV(x) + +#if 0 +static void dnd_drag_data_recieved_handler(GtkWidget *widget, + GdkDragContext *context, gint x, gint y, + GtkSelectionData *selection_data, guint info, guint time); +static gboolean dnd_drag_motion_handler(GtkWidget *widget, + GdkDragContext *context, gint x, gint y, guint time); +#endif + +enum { + TARGET_SELF, + TARGET_UTF8_STRING, + TARGET_COMPOUND_TEXT, + TARGET_PLAIN, + TARGET_URI_LIST, +}; + +static GtkTargetEntry drag_types[] = +{ + { "UTF8_STRING", 0, TARGET_UTF8_STRING }, + { "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT }, + { "text/plain", 0, TARGET_PLAIN }, + { "text/uri-list", 0, TARGET_URI_LIST } +}; + +static gint n_drag_types = sizeof(drag_types) / sizeof(drag_types[0]); + +void dnd_init(GtkWidget *widget) +{ + gtk_drag_dest_set(widget, GTK_DEST_DEFAULT_ALL, + drag_types, n_drag_types, GDK_ACTION_COPY); +#if 0 + g_signal_connect(G_OBJECT(widget), "drag_data_received", + G_CALLBACK(dnd_drag_data_recieved_handler), NULL); + g_signal_connect(G_OBJECT(widget), "drag_motion", + G_CALLBACK(dnd_drag_motion_handler), NULL); +#endif +} + + +#if 0 +static void dnd_open_first_file(gchar *filename) +{ + FileInfo *fi; + + if (check_text_modification()) + return; + fi = g_malloc(sizeof(FileInfo)); + fi->filename = g_strdup(filename); + fi->charset = pub->fi->charset_flag ? g_strdup(pub->fi->charset) : NULL; + fi->charset_flag = pub->fi->charset_flag; + fi->lineend = LF; + if (file_open_real(pub->mw->view, fi)) + g_free(fi); + else { + g_free(pub->fi); + pub->fi = fi; + undo_clear_all(pub->mw->buffer); + set_main_window_title(); +// undo_init(sd->mainwin->textview, sd->mainwin->textbuffer, sd->mainwin->menubar); + } +} +#endif + +#if 0 +static void dnd_drag_data_recieved_handler(GtkWidget *widget, + GdkDragContext *context, gint x, gint y, + GtkSelectionData *selection_data, guint info, guint time) +{ + static gboolean flag_called_once = FALSE; + gchar **files; + gchar *filename; + gchar *comline; + gint i = 0, j = 0; + gchar *filename_sh; + gchar **strs; +#ifdef ENABLE_CSDI + j = 1; +#endif +DV(g_print("DND start!\n")); + +#if 0 + if (g_strcasecmp(gdk_atom_name(context->targets->data), + "GTK_TEXT_BUFFER_CONTENTS") != 0) { +#endif + if (flag_called_once) { + flag_called_once = FALSE; + g_signal_stop_emission_by_name(widget, "drag_data_received"); +DV(g_print("second drop signal killed.\n")); + return; + } else + flag_called_once = TRUE; + } + +DV({ + g_print("info = %d\n", info); + g_print("time = %d\n", time); + g_print("context->protocol = %d\n", context->protocol); + g_print("context->is_source = %d\n", context->is_source); + g_print("context->targets = %d\n", g_list_length(context->targets)); + g_print("context->target = %s\n", gdk_atom_name(context->targets->data)); +/* g_print("context->target = %s\n", gdk_atom_name(context->targets->next->data)); + g_print("context->target = %s\n", gdk_atom_name(context->targets->next->next->data)); + g_print("context->actions = %d\n", context->actions); + g_print("context->suggested_action = %d\n", context->suggested_action); + g_print("context->action = %d\n", context->action); + g_print("selection_data->selection = %s\n", gdk_atom_name(selection_data->selection)); + g_print("selection_data->target = %s\n", gdk_atom_name(selection_data->target)); +*/ g_print("selection_data->type = %s\n", gdk_atom_name(selection_data->type)); + g_print("selection_data->format = %d\n", selection_data->format); + g_print("selection_data->length = %d\n", selection_data->length); + g_print("%s\n", selection_data->data); +}); + + if (selection_data->data && info == TARGET_URI_LIST) { + files = g_strsplit((gchar *)selection_data->data, "\n" , -1); + while (files[i]) { + if (strlen(files[i]) == 0) + break; + filename = g_strstrip(parse_file_uri(files[i])); + if (i + j == 0) + dnd_open_first_file(filename); + else { + if (i + j == 1) + save_config_file(); + if (strstr(filename, " ")) { + strs = g_strsplit(filename, " ", -1); + filename_sh = g_strjoinv("\\ ", strs); + g_strfreev(strs); + } else + filename_sh = g_strdup(filename); + comline = g_strdup_printf("%s %s", PACKAGE, filename_sh); +DV(g_print(">%s\n", comline)); + g_free(filename_sh); + g_spawn_command_line_async(comline, NULL); + g_free(comline); + } + g_free(filename); + i++; + } + g_strfreev(files); + } + else { + clear_current_keyval(); + undo_set_sequency(FALSE); + if (info == TARGET_UTF8_STRING) { + undo_set_sequency_reserve(); + context->action = GDK_ACTION_MOVE; + } else if (info == TARGET_PLAIN + && g_utf8_validate((gchar *)selection_data->data, -1, NULL)) { + selection_data->type = + gdk_atom_intern("UTF8_STRING", FALSE); + } + } + + return; +} + +static gboolean dnd_drag_motion_handler(GtkWidget *widget, + GdkDragContext *context, gint x, gint y, guint time) +{ + GList *targets; + gchar *name; + gboolean flag = FALSE; + + targets = context->targets; + while (targets) { + name = gdk_atom_name(targets->data); +DV(g_print("%s\n", name)); + if (g_ascii_strcasecmp(name, "text/uri-list") == 0) + flag = TRUE; + g_free(name); + targets = targets->next; + } +/* if (flag) + context->action = GDK_ACTION_DEFAULT; + else + context->action = GDK_ACTION_COPY; +// g_signal_stop_emission_by_name(widget, "drag_motion"); +*/ +/* if (!flag) { + gint bx, by; + GtkTextIter iter; + + gtk_text_view_window_to_buffer_coords(GTK_TEXT_VIEW(widget), + GTK_TEXT_WINDOW_WIDGET, + x, y, &bx, &by); + gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(widget), &iter, bx, by); + if (!dnd_mark) { + dnd_mark = gtk_text_buffer_create_mark(GTK_TEXT_VIEW(widget)->buffer, + NULL, &iter, TRUE); + gtk_text_mark_set_visible(dnd_mark, TRUE); + } else + gtk_text_mark_set_visible(dnd_mark, FALSE); + gtk_text_buffer_move_mark(GTK_TEXT_VIEW(widget)->buffer, + dnd_mark, &iter); + gtk_text_mark_set_visible(dnd_mark, TRUE); + } +*/ + return flag; +} +#endif + diff --git a/src/dnd.h b/src/dnd.h new file mode 100644 index 0000000..f30e291 --- /dev/null +++ b/src/dnd.h @@ -0,0 +1,25 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _DND_H +#define _DND_H + +void dnd_init(GtkWidget *widget); + +#endif /* _DND_H */ diff --git a/src/emacs.c b/src/emacs.c new file mode 100644 index 0000000..e8c2177 --- /dev/null +++ b/src/emacs.c @@ -0,0 +1,221 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2006 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include + +#ifdef ENABLE_EMACS + +static void cb_key_release_event(GtkWidget *view, GdkEventKey *event) +{ +//g_print("key-release-event: 0x%X\n", event->keyval); + switch (event->keyval) { + case GDK_x: + case GDK_X: + gtk_main_quit(); + } +} + +static void cb_key_press_event(GtkWidget *view, GdkEventKey *event) +{ +//g_print("key-release-event: 0x%X\n", event->keyval); + if (event->keyval < 0x1000 || event->keyval == GDK_Escape) { + switch (event->keyval) { + case GDK_f: + case GDK_F: + case GDK_v: + case GDK_V: + if (event->state & GDK_CONTROL_MASK) + on_file_open(); + else + gdk_beep(); + break; + case GDK_d: + case GDK_D: + if (event->state & GDK_CONTROL_MASK) + gdk_beep(); + else + on_file_open(); + break; + case GDK_s: + case GDK_S: + if (GTK_WIDGET_IS_SENSITIVE(gtk_item_factory_get_widget( + gtk_item_factory_from_widget(pub->mw->menubar), "/M/File/Save") + )) + on_file_save(); + break; + case GDK_w: + case GDK_W: + if (event->state & GDK_CONTROL_MASK) + on_file_save_as(); + else + gdk_beep(); + break; + case GDK_k: + case GDK_K: + if (event->state & GDK_CONTROL_MASK) + gdk_beep(); + else + on_file_close(); + break; + case GDK_c: + case GDK_C: + if (event->state & GDK_CONTROL_MASK) + on_file_quit(); + else + gdk_beep(); + break; + case GDK_u: + case GDK_U: + if (event->state & GDK_CONTROL_MASK) + gdk_beep(); + else + on_edit_undo(); + break; + case GDK_h: + case GDK_H: + if (event->state & GDK_CONTROL_MASK) + gdk_beep(); + else + on_edit_select_all(); + break; + default: + gdk_beep(); + } + gtk_main_quit(); + } +} + +static void emacs_key_prefix(void) +{ + gulong id; + + gtk_widget_set_sensitive(pub->mw->menubar, FALSE); +// gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(pub->mw->view), FALSE); + gtk_text_view_set_editable(GTK_TEXT_VIEW(pub->mw->view), FALSE); + /* waiting for release C-x */ + id = g_signal_connect(G_OBJECT(pub->mw->window), "key-release-event", + G_CALLBACK(cb_key_release_event), NULL); + gtk_main(); + g_signal_handler_disconnect(G_OBJECT(pub->mw->window), id); + + /* waiting for input sequence */ + id = g_signal_connect(G_OBJECT(pub->mw->window), "key-press-event", + G_CALLBACK(cb_key_press_event), NULL); + gtk_main(); + g_signal_handler_disconnect(G_OBJECT(pub->mw->window), id); + + gtk_text_view_set_editable(GTK_TEXT_VIEW(pub->mw->view), TRUE); +// gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(pub->mw->view), TRUE); + gtk_widget_set_sensitive(pub->mw->menubar, TRUE); +} + +gboolean check_emacs_key_theme(GtkWindow *window, GtkItemFactory *ifactory) +{ + GtkAccelGroup *accel_group; + GSList *groups; + gchar *key_theme = NULL; + gboolean emacs_flag = FALSE; + GtkSettings *settings = gtk_settings_get_default(); + + g_object_get(settings, "gtk-key-theme-name", &key_theme, NULL); + if (key_theme) { + if (!g_ascii_strcasecmp(key_theme, "Emacs")) + emacs_flag = TRUE; + g_free(key_theme); + } + if (!emacs_flag) + return FALSE; + + groups = gtk_accel_groups_from_object(G_OBJECT(window)); + accel_group = groups->data; + if (accel_group) { + gtk_window_remove_accel_group(GTK_WINDOW(window), accel_group); + g_object_unref(accel_group); + } + accel_group = gtk_accel_group_new(); + + gtk_rc_parse_string ( + "binding \"gtk-emacs-text-entry\"" + "{\n" + "bind \"w\" { \"cut-clipboard\" () }" + "}\n" + ); + +/* gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/File/New"), + accel_group, GDK_N, GDK_CONTROL_MASK); + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/File/Open"), + accel_group, GDK_O, GDK_CONTROL_MASK); + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/File/Save"), + accel_group, GDK_S, GDK_CONTROL_MASK); + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/File/SaveAs"), + accel_group, GDK_S, GDK_SHIFT_MASK | GDK_CONTROL_MASK); +#ifdef ENABLE_PRINT + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/File/Print"), + accel_group, GDK_P, GDK_CONTROL_MASK); +#endif + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Edit/Undo"), + accel_group, GDK_Z, GDK_CONTROL_MASK); +*/ gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Edit/Undo"), + "activate", accel_group, GDK_underscore, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); +/* gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Edit/SelectAll"), + accel_group, GDK_A, GDK_CONTROL_MASK); + gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/Find"), + accel_group, GDK_F, GDK_CONTROL_MASK); +*/ gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/Find"), + "activate", accel_group, GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); +/* gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindNext"), + "activate", accel_group, GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); +*/ gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindPrevious"), + "activate", accel_group, GDK_R, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); +/* gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/Replace"), + accel_group, GDK_H, GDK_CONTROL_MASK); +*/ gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/Replace"), + "activate", accel_group, GDK_percent, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); +/* gtk_widget_remove_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/JumpTo"), + accel_group, GDK_J, GDK_CONTROL_MASK); +*/ gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/JumpTo"), + "activate", accel_group, GDK_G, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); + + gtk_accel_group_connect( + accel_group, GDK_X, GDK_CONTROL_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(emacs_key_prefix), NULL, NULL)); + + gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); + + return TRUE; +} + +#endif diff --git a/src/emacs.h b/src/emacs.h new file mode 100644 index 0000000..cfee8c6 --- /dev/null +++ b/src/emacs.h @@ -0,0 +1,25 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2006 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _EMACS_H +#define _EMACS_H + +gboolean check_emacs_key_theme(GtkWindow *window, GtkUIManager *ifactory); + +#endif /* _EMACS_H */ diff --git a/src/encoding.c b/src/encoding.c new file mode 100644 index 0000000..62b4ce4 --- /dev/null +++ b/src/encoding.c @@ -0,0 +1,485 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include "encoding.h" + +#define MAX_COUNTRY_NUM 10 + +enum { + LATIN1 = 0, + LATIN2, + LATIN3, + LATIN4, + LATINC, + LATINC_UA, + LATINC_TJ, + LATINA, + LATING, + LATINH, + LATIN5, + CHINESE_CN, + CHINESE_TW, + CHINESE_HK, + JAPANESE, + KOREAN, + VIETNAMESE, + THAI, + GEORGIAN, + END_CODE +}; + +static const gchar *country_table[][MAX_COUNTRY_NUM] = +{ + /* LATIN1 */ {NULL}, + /* LATIN2 */ {"cs", "hr", "hu", "pl", "ro", "sk", "sl", "sq", "sr", "uz"}, + /* LATIN3 */ {"eo", "mt", NULL}, + /* LATIN4 */ {"et", "lt", "lv", "mi", NULL}, + /* LATINC */ {"be", "bg", "ky", "mk", "mn", "ru", "tt", NULL}, + /* LATINC_UA */ {"uk", NULL}, + /* LATINC_TJ */ {"tg", NULL}, + /* LATINA */ {"ar", "fa", "ur", NULL}, + /* LATING */ {"el", NULL}, + /* LATINH */ {"he", "yi", NULL}, + /* LATIN5 */ {"az", "tr", NULL}, + /* CHINESE_CN */ {"zh_CN", NULL}, + /* CHINESE_TW */ {"zh_TW", NULL}, + /* CHINESE_HK */ {"zh_HK", NULL}, + /* JAPANESE */ {"ja", NULL}, + /* KOREAN */ {"ko", NULL}, + /* VIETNAMESE */ {"vi", NULL}, + /* THAI */ {"th", NULL}, + /* GEORGIAN */ {"ka", NULL}, +}; + +static const gchar *encoding_table[][ENCODING_MAX_ITEM_NUM] = +{ + /* IANA OpenI18N Codepage */ + /* LATIN1 */ { "ISO-8859-1", "ISO-8859-15", "CP1252" }, + /* LATIN2 */ { "ISO-8859-2", "ISO-8859-16", "CP1250" }, + /* LATIN3 */ { "ISO-8859-3", NULL, NULL }, + /* LATIN4 */ { "ISO-8859-4", "ISO-8859-13", "CP1257" }, + /* LATINC */ { "ISO-8859-5", "KOI8-R", "CP1251" }, + /* LATINC_UA */ { "ISO-8859-5", "KOI8-U", "CP1251" }, + /* LATINC_TJ */ { "ISO-8859-5", "KOI8-T", "CP1251" }, + /* LATINA */ { "ISO-8859-6", NULL, "CP1256" }, + /* LATING */ { "ISO-8859-7", NULL, "CP1253" }, + /* LATINH */ { "ISO-8859-8", NULL, "CP1255" }, + /* LATIN5 */ { "ISO-8859-9", NULL, "CP1254" }, + /* CHINESE_CN */ { "GB2312", "GB18030", "CP936" }, + /* CHINESE_TW */ { "BIG5", "EUC-TW", "CP950" }, + /* CHINESE_HK */ { "BIG5", "BIG5-HKSCS", "CP950" }, + /* JAPANESE */ { "ISO-2022-JP", "EUC-JP", "CP932" }, + /* KOREAN */ { "ISO-2022-KR", "EUC-KR", "CP949" }, + /* VIETNAMESE */ { NULL, "VISCII", "CP1258" }, + /* THAI */ { NULL, "TIS-620", "CP874" }, + /* GEORGIAN */ { NULL, "GEORGIAN-PS", NULL }, +}; + +guint get_encoding_code(void) +{ + static guint code = END_CODE; + const gchar *env; + guint i, j = 1; + + if (code == END_CODE) { + env = g_getenv("LC_ALL"); + if (!env) + env = g_getenv("LANG"); + if (env && strlen(env) >= 2) + while (code == END_CODE && j < END_CODE) { + for (i = 0; i < MAX_COUNTRY_NUM; i++) { + if (!country_table[j][i]) + break; + if (strncmp(env, country_table[j][i], strlen(country_table[j][i])) == 0) { + code = j; + break; + } + } + j++; + } + if (code == END_CODE) + code = 0; + } + + return code; +} + +EncArray *get_encoding_items(guint code) +{ + gint i; + static EncArray *array = NULL; + + if (!array) { + array = g_malloc(sizeof(EncArray)); + for (i = 0; i < ENCODING_MAX_ITEM_NUM; i++) + array->item[i] = encoding_table[code][i] ? + encoding_table[code][i] : NULL; + } + + return array; +} + +const gchar *get_default_charset(void) +{ + const gchar *charset; + + g_get_charset(&charset); + + return charset; +} + +/* +Imported from KEdit (for BeOS, NOT KDE). +based on +http://examples.oreilly.com/cjkvinfo/Ch7/DetectCodeType.c +*/ +void convert_line_ending_to_lf(gchar *text) +{ + gint i, j; + + for (i = 0, j = 0; TRUE; i++, j++) { + if (*(text + i) == CR) { + *(text + j) = LF; + if (*(text + i + 1) == LF) + i++; + } else { + *(text + j) = *(text + i); + if (*(text + j) == '\0') + break; + } + } +} + +void convert_line_ending(gchar **text, gint retcode) +{ + gchar *buf, *str = *text; + const gint len = strlen(str); + gint i, j, LFNum = 0; + + switch (retcode) { + case CR: + while (*str != '\0') { + if (*str == LF) + *str = CR; + str++; + } + break; + case CR+LF: + for (i = 0; *(str + i) != '\0'; i++) { + if (*(str + i) == LF) + LFNum++; + } + buf = g_new(gchar, len + LFNum + 1); + for (i= 0, j = 0;; i++, j++) { + if (*(str + j) == LF) { + *(buf + i) = CR; + *(buf + (++i)) = LF; + } else + *(buf + i) = *(str + j); + if (*(str + j) == '\0') + break; + } + g_free(*text); + *text = buf; + } +} + +gint detect_line_ending(const gchar *text) +{ + while (*(text++) != '\0') { + if (*text == LF) + break; + if (*text == CR) { + if (*(++text) == LF) + return CR+LF; + else + return CR; + } + } + return LF; +} + +static const gchar *detect_charset_cylillic(const gchar *text) +{ + guint8 c = *text; + gboolean noniso = FALSE; + guint32 xc = 0, xd = 0, xef = 0; + + const gchar *charset = get_encoding_items(get_encoding_code())->item[OPENI18N]; + + while ((c = *text++) != '\0') { + if (c >= 0x80 && c <= 0x9F) + noniso = TRUE; + else if (c >= 0xC0 && c <= 0xCF) + xc++; + else if (c >= 0xD0 && c <= 0xDF) + xd++; + else if (c >= 0xE0) + xef++; + } + + if (!noniso && ((xc + xef) < xd)) + charset = "ISO-8859-5"; + else if ((xc + xd) < xef) + charset = "CP1251"; + + return charset; +} + +static const gchar *detect_charset_chinese(const gchar *text) +{ + guint8 c = *text; + + const gchar *charset = get_encoding_items(get_encoding_code())->item[IANA]; + + while ((c = *text++) != '\0') { + if (c >= 0x81 && c <= 0x87) { + charset = "GB18030"; + break; + } + else if (c >= 0x88 && c <= 0xA0) { + c = *text++; + if ((c >= 0x30 && c <= 0x39) || (c >= 0x80 && c <= 0xA0)) { + charset = "GB18030"; + break; + } //else GBK/Big5-HKSCS cannot determine + } + else if ((c >= 0xA1 && c <= 0xC6) || (c >= 0xC9 && c <= 0xF9)) { + c = *text++; + if (c >= 0x40 && c <= 0x7E) + charset = "BIG5"; + else if ((c >= 0x30 && c <= 0x39) || (c >= 0x80 && c <= 0xA0)) { + charset = "GB18030"; + break; + } + } + else if (c >= 0xC7) { + c = *text++; + if ((c >= 0x30 && c <= 0x39) || (c >= 0x80 && c <= 0xA0)) { + charset = "GB18030"; + break; + } + } + } + + return charset; +} + +static const gchar *detect_charset_japanese(const gchar *text) +{ + guint8 c = *text; + gchar *charset = NULL; + + while (charset == NULL && (c = *text++) != '\0') { + if (c >= 0x81 && c <= 0x9F) { + if (c == 0x8E) /* SS2 */ { + c = *text++; + if ((c >= 0x40 && c <= 0xA0) || (c >= 0xE0 && c <= 0xFC)) + charset = "CP932"; + } + else if (c == 0x8F) /* SS3 */ { + c = *text++; + if (c >= 0x40 && c <= 0xA0) + charset = "CP932"; + else if (c >= 0xFD) + break; + } + else + charset = "CP932"; + } + else if (c >= 0xA1 && c <= 0xDF) { + c = *text++; + if (c <= 0x9F) + charset = "CP932"; + else if (c >= 0xFD) + break; + } + else if (c >= 0xE0 && c <= 0xEF) { + c = *text++; + if (c >= 0x40 && c <= 0xA0) + charset = "CP932"; + else if (c >= 0xFD) + break; + } + else if (c >= 0xF0) + break; + } + + if (charset == NULL) + charset = "EUC-JP"; + + return charset; +} + +static const gchar *detect_charset_korean(const gchar *text) +{ + guint8 c = *text; + gboolean noneuc = FALSE; + gboolean nonjohab = FALSE; + gchar *charset = NULL; + + while (charset == NULL && (c = *text++) != '\0') { + if (c >= 0x81 && c < 0x84) { + charset = "CP949"; + } + else if (c >= 0x84 && c < 0xA1) { + noneuc = TRUE; + c = *text++; + if ((c > 0x5A && c < 0x61) || (c > 0x7A && c < 0x81)) + charset = "CP1361"; + else if (c == 0x52 || c == 0x72 || c == 0x92 || (c > 0x9D && c < 0xA1) + || c == 0xB2 || (c > 0xBD && c < 0xC1) || c == 0xD2 + || (c > 0xDD && c < 0xE1) || c == 0xF2 || c == 0xFE) + charset = "CP949"; + } + else if (c >= 0xA1 && c <= 0xC6) { + c = *text++; + if (c < 0xA1) { + noneuc = TRUE; + if ((c > 0x5A && c < 0x61) || (c > 0x7A && c < 0x81)) + charset = "CP1361"; + else if (c == 0x52 || c == 0x72 || c == 0x92 || (c > 0x9D && c < 0xA1)) + charset = "CP949"; + else if (c == 0xB2 || (c > 0xBD && c < 0xC1) || c == 0xD2 + || (c > 0xDD && c < 0xE1) || c == 0xF2 || c == 0xFE) + nonjohab = TRUE; + } + } + else if (c > 0xC6 && c <= 0xD3) { + c = *text++; + if (c < 0xA1) + charset = "CP1361"; + } + else if (c > 0xD3 && c < 0xD8) { + nonjohab = TRUE; + c = *text++; + } + else if (c >= 0xD8) { + c = *text++; + if (c < 0xA1) + charset = "CP1361"; + } + if (noneuc && nonjohab) + charset = "CP949"; + } + + if (charset == NULL) { + if (noneuc) + charset = "CP949"; + else + charset = "EUC-KR"; + } + + return charset; +} + +static gboolean detect_noniso(const gchar *text) +{ + guint8 c = *text; + + while ((c = *text++) != '\0') { + if (c >= 0x80 && c <= 0x9F) + return TRUE; + } + return FALSE; +} + +const gchar *detect_charset(const gchar *text) +{ + guint8 c = *text; + const gchar *charset = NULL; + + if (g_utf8_validate(text, -1, NULL)) { + while ((c = *text++) != '\0') { + if (c > 0x7F) { + charset = "UTF-8"; + break; + } + if (c == 0x1B) /* ESC */ { + c = *text++; + if (c == '$') { + c = *text++; + switch (c) { + case 'B': // JIS X 0208-1983 + case '@': // JIS X 0208-1978 + charset = "ISO-2022-JP"; + continue; + case 'A': // GB2312-1980 + charset = "ISO-2022-JP-2"; + break; + case '(': + c = *text++; + switch (c) { + case 'C': // KSC5601-1987 + case 'D': // JIS X 0212-1990 + charset = "ISO-2022-JP-2"; + } + break; + case ')': + c = *text++; + if (c == 'C') + charset = "ISO-2022-KR"; // KSC5601-1987 + } + break; + } + } + } + if (!charset) + charset = get_default_charset(); + } + + if (!charset) { + switch (get_encoding_code()) { + case LATINC: + case LATINC_UA: + case LATINC_TJ: + charset = detect_charset_cylillic(text); // fuzzy... + break; + case CHINESE_CN: + case CHINESE_TW: + case CHINESE_HK: + charset = detect_charset_chinese(text); + break; + case JAPANESE: + charset = detect_charset_japanese(text); + break; + case KOREAN: + charset = detect_charset_korean(text); + break; + case VIETNAMESE: + case THAI: + case GEORGIAN: + charset = get_encoding_items(get_encoding_code())->item[OPENI18N]; + break; + default: + if (strcmp(get_default_charset(), "UTF-8") != 0) + charset = get_default_charset(); + else if (detect_noniso(text)) + charset = get_encoding_items(get_encoding_code())->item[CODEPAGE]; + else + charset = get_encoding_items(get_encoding_code())->item[OPENI18N]; + if (!charset) + charset = get_encoding_items(get_encoding_code())->item[IANA]; + } + } + + return charset; +} diff --git a/src/encoding.h b/src/encoding.h new file mode 100644 index 0000000..c82f287 --- /dev/null +++ b/src/encoding.h @@ -0,0 +1,49 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _ENCODING_H +#define _ENCODING_H + +#include // TODO: ????? It must to -> .c + +enum { + IANA = 0, + OPENI18N, + CODEPAGE, + ENCODING_MAX_ITEM_NUM +}; + +typedef struct { + const gchar *item[ENCODING_MAX_ITEM_NUM]; +} EncArray; + +enum { + LF = 0x0A, + CR = 0x0D, +}; + +guint get_encoding_code(void); +EncArray *get_encoding_items(guint code); +const gchar *get_default_charset(void); +gint detect_line_ending(const gchar *text); +void convert_line_ending_to_lf(gchar *text); +void convert_line_ending(gchar **text, gint retcode); +const gchar *detect_charset(const gchar *text); + +#endif /* _ENCODING_H */ diff --git a/src/file.c b/src/file.c new file mode 100644 index 0000000..656fd96 --- /dev/null +++ b/src/file.c @@ -0,0 +1,237 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include "file.h" +#include "view.h" +#include "encoding.h" +#include "dialog.h" +#include "menu.h" +#include +//#include "undo.h" + +gboolean check_file_writable(gchar *filename) +{ + FILE *fp; + + if ((fp = fopen(filename, "a")) != NULL) { + fclose(fp); + return TRUE; + } + return FALSE; +} + +gchar *get_file_basename(gchar *filename, gboolean bracket) +{ + gchar *basename = NULL; + gchar *tmp; + gboolean exist_flag; + + if (filename) { + tmp = g_path_get_basename( + g_filename_to_utf8(filename, -1, NULL, NULL, NULL)); + exist_flag = g_file_test( + g_filename_to_utf8(filename, -1, NULL, NULL, NULL), + G_FILE_TEST_EXISTS); + } else { + tmp = g_strdup(_("Untitled")); + exist_flag = FALSE; + } + + if (bracket) { + if (!exist_flag) { + GString *string = g_string_new(tmp); + g_string_prepend(string, "("); + g_string_append(string, ")"); + basename = g_strdup(string->str); + g_string_free(string, TRUE); + } else if (!check_file_writable(filename)) { + GString *string = g_string_new(tmp); + g_string_prepend(string, "<"); + g_string_append(string, ">"); + basename = g_strdup(string->str); + g_string_free(string, TRUE); + } + } + + if (!basename) + basename = g_strdup(tmp); + g_free(tmp); + + return basename; +} + +gchar *parse_file_uri(gchar *uri) +{ + gchar *filename; +// gchar **strs; + + if (g_strstr_len(uri, 5, "file:")) + filename = g_filename_from_uri(uri, NULL, NULL); + else { + if (g_path_is_absolute(uri)) + filename = g_strdup(uri); + else + filename = g_build_filename(g_get_current_dir(), uri, NULL); + } +/* if (strstr(filename, " ")) { + strs = g_strsplit(filename, " ", -1); + g_free(filename); + filename = g_strjoinv("\\ ", strs); + g_strfreev(strs); + } +*/ + return filename; +} + +gint file_open_real(GtkWidget *view, FileInfo *fi) +{ + gchar *contents; + gsize length; + GError *err = NULL; + const gchar *charset; + gchar *str = NULL; + GtkTextIter iter; + + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + + if (!g_file_get_contents(fi->filename, &contents, &length, &err)) { + if (g_file_test(fi->filename, G_FILE_TEST_EXISTS)) { + run_dialog_message(gtk_widget_get_toplevel(view), + GTK_MESSAGE_ERROR, err->message); + g_error_free(err); + return -1; + } + g_error_free(err); + err = NULL; + contents = g_strdup(""); + } + + fi->lineend = detect_line_ending(contents); + if (fi->lineend != LF) + convert_line_ending_to_lf(contents); + + if (fi->charset) + charset = fi->charset; + else { + charset = detect_charset(contents); + if (charset == NULL) + charset = get_default_charset(); + } + + if (length) + do { + if (err) { + charset = "ISO-8859-1"; + g_error_free(err); + err = NULL; + } + str = g_convert(contents, -1, "UTF-8", charset, NULL, NULL, &err); + } while (err); + else + str = g_strdup(""); + g_free(contents); + + if (charset != fi->charset) { + g_free(fi->charset); + fi->charset = g_strdup(charset); + if (fi->charset_flag) + fi->charset_flag = FALSE; + } + +// undo_disconnect_signal(textbuffer); +// undo_block_signal(buffer); + force_block_cb_modified_changed(view); + + gtk_text_buffer_set_text(buffer, "", 0); + gtk_text_buffer_get_start_iter(buffer, &iter); + gtk_text_buffer_insert(buffer, &iter, str, strlen(str)); + gtk_text_buffer_get_start_iter(buffer, &iter); + gtk_text_buffer_place_cursor(buffer, &iter); + gtk_text_buffer_set_modified(buffer, FALSE); + gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(view), &iter, 0, FALSE, 0, 0); + g_free(str); + + force_unblock_cb_modified_changed(view); + menu_sensitivity_from_modified_flag(FALSE); +// undo_unblock_signal(buffer); + + return 0; +} + +gint file_save_real(GtkWidget *view, FileInfo *fi) +{ + FILE *fp; + GtkTextIter start, end; + gchar *str, *cstr; + gsize rbytes, wbytes; + GError *err = NULL; + + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + + gtk_text_buffer_get_start_iter(buffer, &start); + gtk_text_buffer_get_end_iter(buffer, &end); + str = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); + + switch (fi->lineend) { + case CR: + convert_line_ending(&str, CR); + break; + case CR+LF: + convert_line_ending(&str, CR+LF); + } + + if (!fi->charset) + fi->charset = g_strdup(get_default_charset()); + cstr = g_convert(str, -1, fi->charset, "UTF-8", &rbytes, &wbytes, &err); + g_free(str); + if (err) { + switch (err->code) { + case G_CONVERT_ERROR_ILLEGAL_SEQUENCE: + run_dialog_message(gtk_widget_get_toplevel(view), + GTK_MESSAGE_ERROR, _("Can't convert codeset to '%s'"), fi->charset); + break; + default: + run_dialog_message(gtk_widget_get_toplevel(view), + GTK_MESSAGE_ERROR, err->message); + } + g_error_free(err); + return -1; + } + + fp = fopen(fi->filename, "w"); + if (!fp) { + run_dialog_message(gtk_widget_get_toplevel(view), + GTK_MESSAGE_ERROR, _("Can't open file to write")); + return -1; + } + if (fwrite(cstr, 1, wbytes, fp) != wbytes) { + run_dialog_message(gtk_widget_get_toplevel(view), + GTK_MESSAGE_ERROR, _("Can't write file")); + return -1; + } + + gtk_text_buffer_set_modified(buffer, FALSE); + fclose(fp); + g_free(cstr); + + return 0; +} diff --git a/src/file.h b/src/file.h new file mode 100644 index 0000000..6809861 --- /dev/null +++ b/src/file.h @@ -0,0 +1,36 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _FILE_H +#define _FILE_H + +typedef struct { + gchar *filename; + gchar *charset; + gboolean charset_flag; /* T:unique F:listed */ + gchar lineend; +} FileInfo; + +gboolean check_file_writable(gchar *filename); +gchar *get_file_basename(gchar *filename, gboolean bracket); +gchar *parse_file_uri(gchar *uri); +gint file_open_real(GtkWidget *view, FileInfo *fi); +gint file_save_real(GtkWidget *view, FileInfo *fi); + +#endif /* _FILE_H */ diff --git a/src/font.c b/src/font.c new file mode 100644 index 0000000..bf5fc0b --- /dev/null +++ b/src/font.c @@ -0,0 +1,71 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" + +void set_text_font_by_name(GtkWidget *widget, gchar *fontname) +{ + PangoFontDescription *font_desc; + + font_desc = pango_font_description_from_string(fontname); + gtk_widget_modify_font(widget, font_desc); + pango_font_description_free(font_desc); +} + +gchar *get_font_name_from_widget(GtkWidget *widget) /* MUST BE FREED */ +{ + GtkStyle *style; + + style = gtk_widget_get_style(widget); + return pango_font_description_to_string(style->font_desc); +} + +static gchar *get_font_name_by_selector(GtkWidget *window, gchar *current_fontname) +{ + GtkWidget *dialog; + gchar *fontname; + + dialog = gtk_font_selection_dialog_new(_("Font")); + gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window)); + gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(dialog), current_fontname); + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) + fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(dialog)); + else + fontname = NULL; + gtk_widget_destroy(dialog); + + return fontname; +} + +void change_text_font_by_selector(GtkWidget *widget) +{ + gchar *current_fontname, *fontname; + + current_fontname = get_font_name_from_widget(widget); + fontname = get_font_name_by_selector( + gtk_widget_get_toplevel(widget), current_fontname); + if (fontname) { + set_text_font_by_name(widget, fontname); + indent_refresh_tab_width(widget); + } + + g_free(fontname); + g_free(current_fontname); +} + diff --git a/src/font.h b/src/font.h new file mode 100644 index 0000000..b9289fb --- /dev/null +++ b/src/font.h @@ -0,0 +1,27 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _FONT_H +#define _FONT_H + +void set_text_font_by_name(GtkWidget *widget, gchar *fontname); +gchar *get_font_name_from_widget(GtkWidget *widget); /* MUST BE FREED */ +void change_text_font_by_selector(GtkWidget *widget); + +#endif /* _FONT_H */ diff --git a/src/gtkprint.c b/src/gtkprint.c new file mode 100644 index 0000000..3cce6ca --- /dev/null +++ b/src/gtkprint.c @@ -0,0 +1,218 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2007 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +static PangoLayout *layout; +static PangoFontDescription *font_desc; +static gint line_count, lines_per_page, text_height; +static gint n_pages; +static gdouble page_width, page_height; +static const gchar *page_title = NULL; + +static void get_tab_array(PangoTabArray **tabs, + GtkPrintContext *ctx, GtkTextView *text_view) +{ + gint xft_dpi, loc; + GtkSettings *settings = gtk_settings_get_default(); + + g_object_get(settings, "gtk-xft-dpi", &xft_dpi, NULL); + if ((*tabs = gtk_text_view_get_tabs(text_view))) { + pango_tab_array_get_tab(*tabs, 0, NULL, &loc); + pango_tab_array_set_tab(*tabs, 0, PANGO_TAB_LEFT, + loc * gtk_print_context_get_dpi_x(ctx) / (xft_dpi / PANGO_SCALE)); + } +} + +static void cb_begin_print(GtkPrintOperation *op, + GtkPrintContext *ctx, gpointer data) +{ + gint layout_height; + gchar *text; + GtkTextIter start, end; + GtkTextBuffer *buffer = gtk_text_view_get_buffer(data); + PangoTabArray *tabs; + + gtk_text_buffer_get_bounds(buffer, &start, &end); + text = g_strchomp(gtk_text_buffer_get_text(buffer, &start, &end, FALSE)); + + page_width = gtk_print_context_get_width(ctx); + page_height = gtk_print_context_get_height(ctx); + gtk_widget_style_get_property(data, font_desc, font_desc); + layout = gtk_print_context_create_pango_layout(ctx); + pango_layout_set_width(layout, page_width * PANGO_SCALE); + pango_layout_set_font_description(layout, font_desc); + pango_layout_set_text(layout, text, -1); + + get_tab_array(&tabs, ctx, data); + if (tabs) { + pango_layout_set_tabs(layout, tabs); + pango_tab_array_free(tabs); + } + pango_layout_get_size(layout, NULL, &layout_height); + + line_count = pango_layout_get_line_count(layout); + text_height = pango_font_description_get_size(font_desc) / PANGO_SCALE; + lines_per_page = page_height / text_height; + + n_pages = (line_count - 1) / lines_per_page + 1; + gtk_print_operation_set_n_pages(op, n_pages); + + g_free(text); +} + +static void cb_draw_page(GtkPrintOperation *op, + GtkPrintContext *ctx, gint page_nr, gpointer data) +{ + cairo_t *cr; + PangoLayoutLine *line; + gint n_line, i, j = 0; + + PangoLayout *layout_lh, *layout_rh; + gchar *page_text; + gint layout_width; + + cr = gtk_print_context_get_cairo_context(ctx); + + layout_lh = gtk_print_context_create_pango_layout(ctx); + pango_layout_set_font_description(layout_lh, font_desc); + pango_layout_set_text(layout_lh, page_title, -1); + cairo_move_to(cr, 0, - 72 / 25.4 * 10); + pango_cairo_show_layout(cr, layout_lh); + + page_text = g_strdup_printf("%d / %d", page_nr + 1, n_pages); + layout_rh = gtk_print_context_create_pango_layout(ctx); + pango_layout_set_font_description(layout_rh, font_desc); + pango_layout_set_text(layout_rh, page_text, -1); +// pango_layout_set_alignment(layout_rh, PANGO_ALIGN_RIGHT); + pango_layout_get_size(layout_rh, &layout_width, NULL); + cairo_move_to(cr, + page_width - layout_width / PANGO_SCALE, - 72 / 25.4 * 10); + pango_cairo_show_layout(cr, layout_rh); + g_free(page_text); + + if (line_count > lines_per_page * (page_nr + 1)) + n_line = lines_per_page * (page_nr + 1); + else + n_line = line_count; + + for (i = lines_per_page * page_nr; i < n_line; i++) { + line = pango_layout_get_line(layout, i); + cairo_move_to(cr, 0, text_height * (j + 1)); + pango_cairo_show_layout_line(cr, line); + j++; + } +} + +static void cb_end_print(GtkPrintOperation *op, + GtkPrintContext *ctx, gpointer data) +{ + g_object_unref(layout); +} + +static GtkPrintSettings *settings = NULL; + +static GtkPrintOperation *create_print_operation(GtkTextView *text_view) +{ + GtkPrintOperation *op; + static GtkPageSetup *page_setup = NULL; + + op = gtk_print_operation_new(); + + if (settings) + gtk_print_operation_set_print_settings(op, settings); + + if (!page_setup) { + page_setup = gtk_page_setup_new(); + gtk_page_setup_set_top_margin(page_setup, 25.0, GTK_UNIT_MM); + gtk_page_setup_set_bottom_margin(page_setup, 20.0, GTK_UNIT_MM); + gtk_page_setup_set_left_margin(page_setup, 20.0, GTK_UNIT_MM); + gtk_page_setup_set_right_margin(page_setup, 20.0, GTK_UNIT_MM); + } + gtk_print_operation_set_default_page_setup(op, page_setup); + + g_signal_connect(op, "begin-print", G_CALLBACK(cb_begin_print), text_view); + g_signal_connect(op, "draw-page", G_CALLBACK(cb_draw_page), NULL); + g_signal_connect(op, "end-print", G_CALLBACK(cb_end_print), NULL); + + return op; +} + +static void create_error_dialog(GtkTextView *text_view, gchar *message) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new( + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(text_view))), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_NONE, + message); + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_dialog_add_buttons(GTK_DIALOG(dialog), + GTK_STOCK_OK, GTK_RESPONSE_CANCEL, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} + +void create_gtkprint_session(GtkTextView *text_view, const gchar *title) +{ + GtkPrintOperation *op; + GtkPrintOperationResult res; + GError *err = NULL; + + page_title = title; + op = create_print_operation(text_view); + + res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(text_view))), &err); + switch (res) { + case GTK_PRINT_OPERATION_RESULT_ERROR: + create_error_dialog(text_view, err->message); + g_error_free(err); + case GTK_PRINT_OPERATION_RESULT_APPLY: + if (settings) + g_object_unref(settings); + settings = g_object_ref(gtk_print_operation_get_print_settings(op)); + default: + break; + } + + g_object_unref(op); +} + +void create_gtkprint_preview_session(GtkTextView *text_view, const gchar *title) +{ + GtkPrintOperation *op; + GtkPrintOperationResult res; + GError *err = NULL; + + page_title = title; + op = create_print_operation(text_view); + + res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PREVIEW, + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(text_view))), &err); + if (res == GTK_PRINT_OPERATION_RESULT_ERROR) { + create_error_dialog(text_view, err->message); + g_error_free(err); + } + + g_object_unref(op); +} diff --git a/src/gtkprint.h b/src/gtkprint.h new file mode 100644 index 0000000..ea73a29 --- /dev/null +++ b/src/gtkprint.h @@ -0,0 +1,26 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2007 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _GTKPRINT_H +#define _GTKPRINT_H + +void create_gtkprint_session(GtkTextView *text_view, const gchar *title); +void create_gtkprint_preview_session(GtkTextView *text_view, const gchar *title); + +#endif /* _GTKPRINT_H */ diff --git a/src/gtksourceiter.c b/src/gtksourceiter.c new file mode 100644 index 0000000..1f3b025 --- /dev/null +++ b/src/gtksourceiter.c @@ -0,0 +1,742 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * gtksourceiter.h + * + * Copyright (C) 2000, 2002 Paolo Maggi + * Copyright (C) 2002, 2003 Jeroen Zwartepoorte + * + * 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 + */ + +/* + * Parts of this file are copied from the gedit and glimmer project. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include "gtksourceiter.h" + +#define GTK_TEXT_UNKNOWN_CHAR 0xFFFC + +/* this function acts like g_utf8_offset_to_pointer() except that if it finds a + * decomposable character it consumes the decomposition length from the given + * offset. So it's useful when the offset was calculated for the normalized + * version of str, but we need a pointer to str itself. */ +static const gchar * +pointer_from_offset_skipping_decomp (const gchar *str, gint offset) +{ + gsize decomp_len; + gunichar *decomp; + const gchar *p; + + p = str; + while (offset > 0) + { + decomp = g_unicode_canonical_decomposition (g_utf8_get_char (p), &decomp_len); + g_free (decomp); + p = g_utf8_next_char (p); + offset -= decomp_len; + } + return p; +} + +static const gchar * +g_utf8_strcasestr (const gchar *haystack, const gchar *needle) +{ + gsize needle_len; + gsize haystack_len; + const gchar *ret = NULL; + gchar *p; + gchar *casefold; + gchar *caseless_haystack; + gint i; + + g_return_val_if_fail (haystack != NULL, NULL); + g_return_val_if_fail (needle != NULL, NULL); + + casefold = g_utf8_casefold (haystack, -1); + caseless_haystack = g_utf8_normalize (casefold, -1, G_NORMALIZE_DEFAULT); + g_free (casefold); + + needle_len = g_utf8_strlen (needle, -1); + haystack_len = g_utf8_strlen (caseless_haystack, -1); + + if (needle_len == 0) + { + ret = (gchar *)haystack; + goto finally_1; + } + + if (haystack_len < needle_len) + { + ret = NULL; + goto finally_1; + } + + p = (gchar*)caseless_haystack; + needle_len = strlen (needle); + i = 0; + + while (*p) + { + if ((strncmp (p, needle, needle_len) == 0)) + { + ret = pointer_from_offset_skipping_decomp (haystack, i); + goto finally_1; + } + + p = g_utf8_next_char (p); + i++; + } + +finally_1: + g_free (caseless_haystack); + + return ret; +} + +static const gchar * +g_utf8_strrcasestr (const gchar *haystack, const gchar *needle) +{ + gsize needle_len; + gsize haystack_len; + const gchar *ret = NULL; + gchar *p; + gchar *casefold; + gchar *caseless_haystack; + gint i; + + g_return_val_if_fail (haystack != NULL, NULL); + g_return_val_if_fail (needle != NULL, NULL); + + casefold = g_utf8_casefold (haystack, -1); + caseless_haystack = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + needle_len = g_utf8_strlen (needle, -1); + haystack_len = g_utf8_strlen (caseless_haystack, -1); + + if (needle_len == 0) + { + ret = (gchar *)haystack; + goto finally_1; + } + + if (haystack_len < needle_len) + { + ret = NULL; + goto finally_1; + } + + i = haystack_len - needle_len; + p = g_utf8_offset_to_pointer (caseless_haystack, i); + needle_len = strlen (needle); + + while (p >= caseless_haystack) + { + if (strncmp (p, needle, needle_len) == 0) + { + ret = pointer_from_offset_skipping_decomp (haystack, i); + goto finally_1; + } + + p = g_utf8_prev_char (p); + i--; + } + +finally_1: + g_free (caseless_haystack); + + return ret; +} + +static gboolean +g_utf8_caselessnmatch (const char *s1, const char *s2, + gssize n1, gssize n2) +{ + gchar *casefold; + gchar *normalized_s1; + gchar *normalized_s2; + gint len_s1; + gint len_s2; + gboolean ret = FALSE; + + g_return_val_if_fail (s1 != NULL, FALSE); + g_return_val_if_fail (s2 != NULL, FALSE); + g_return_val_if_fail (n1 > 0, FALSE); + g_return_val_if_fail (n2 > 0, FALSE); + + casefold = g_utf8_casefold (s1, n1); + normalized_s1 = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + casefold = g_utf8_casefold (s2, n2); + normalized_s2 = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + len_s1 = strlen (normalized_s1); + len_s2 = strlen (normalized_s2); + + if (len_s1 < len_s2) + goto finally_2; + + ret = (strncmp (normalized_s1, normalized_s2, len_s2) == 0); + +finally_2: + g_free (normalized_s1); + g_free (normalized_s2); + + return ret; +} + +static void +forward_chars_with_skipping (GtkTextIter *iter, + gint count, + gboolean skip_invisible, + gboolean skip_nontext, + gboolean skip_decomp) +{ + gint i; + + g_return_if_fail (count >= 0); + + i = count; + + while (i > 0) + { + gboolean ignored = FALSE; + + if (skip_nontext && gtk_text_iter_get_char (iter) == GTK_TEXT_UNKNOWN_CHAR) + ignored = TRUE; + + if (!ignored && skip_invisible && + /* _gtk_text_btree_char_is_invisible (iter)*/ FALSE) + ignored = TRUE; + + if (!ignored && skip_decomp) + { + /* being UTF8 correct sucks; this accounts for extra + offsets coming from canonical decompositions of + UTF8 characters (e.g. accented characters) which + g_utf8_normalize() performs */ + gunichar *decomp; + gsize decomp_len; + decomp = g_unicode_canonical_decomposition ( + gtk_text_iter_get_char (iter), &decomp_len); + i -= (decomp_len - 1); + g_free (decomp); + } + + gtk_text_iter_forward_char (iter); + + if (!ignored) + --i; + } +} + +static gboolean +lines_match (const GtkTextIter *start, + const gchar **lines, + gboolean visible_only, + gboolean slice, + GtkTextIter *match_start, + GtkTextIter *match_end) +{ + GtkTextIter next; + gchar *line_text; + const gchar *found; + gint offset; + + if (*lines == NULL || **lines == '\0') + { + if (match_start) + *match_start = *start; + if (match_end) + *match_end = *start; + return TRUE; + } + + next = *start; + gtk_text_iter_forward_line (&next); + + /* No more text in buffer, but *lines is nonempty */ + if (gtk_text_iter_equal (start, &next)) + return FALSE; + + if (slice) + { + if (visible_only) + line_text = gtk_text_iter_get_visible_slice (start, &next); + else + line_text = gtk_text_iter_get_slice (start, &next); + } + else + { + if (visible_only) + line_text = gtk_text_iter_get_visible_text (start, &next); + else + line_text = gtk_text_iter_get_text (start, &next); + } + + if (match_start) /* if this is the first line we're matching */ + { + found = g_utf8_strcasestr (line_text, *lines); + } + else + { + /* If it's not the first line, we have to match from the + * start of the line. + */ + if (g_utf8_caselessnmatch (line_text, *lines, strlen (line_text), + strlen (*lines))) + found = line_text; + else + found = NULL; + } + + if (found == NULL) + { + g_free (line_text); + return FALSE; + } + + /* Get offset to start of search string */ + offset = g_utf8_strlen (line_text, found - line_text); + + next = *start; + + /* If match start needs to be returned, set it to the + * start of the search string. + */ + forward_chars_with_skipping (&next, offset, visible_only, !slice, FALSE); + if (match_start) + { + *match_start = next; + } + + /* Go to end of search string */ + forward_chars_with_skipping (&next, g_utf8_strlen (*lines, -1), visible_only, !slice, TRUE); + + g_free (line_text); + + ++lines; + + if (match_end) + *match_end = next; + + /* pass NULL for match_start, since we don't need to find the + * start again. + */ + return lines_match (&next, lines, visible_only, slice, NULL, match_end); +} + +static gboolean +backward_lines_match (const GtkTextIter *start, + const gchar **lines, + gboolean visible_only, + gboolean slice, + GtkTextIter *match_start, + GtkTextIter *match_end) +{ + GtkTextIter line, next; + gchar *line_text; + const gchar *found; + gint offset; + + if (*lines == NULL || **lines == '\0') + { + if (match_start) + *match_start = *start; + if (match_end) + *match_end = *start; + return TRUE; + } + + line = next = *start; + if (gtk_text_iter_get_line_offset (&next) == 0) + { + if (!gtk_text_iter_backward_line (&next)) + return FALSE; + } + else + gtk_text_iter_set_line_offset (&next, 0); + + if (slice) + { + if (visible_only) + line_text = gtk_text_iter_get_visible_slice (&next, &line); + else + line_text = gtk_text_iter_get_slice (&next, &line); + } + else + { + if (visible_only) + line_text = gtk_text_iter_get_visible_text (&next, &line); + else + line_text = gtk_text_iter_get_text (&next, &line); + } + + if (match_start) /* if this is the first line we're matching */ + { + found = g_utf8_strrcasestr (line_text, *lines); + } + else + { + /* If it's not the first line, we have to match from the + * start of the line. + */ + if (g_utf8_caselessnmatch (line_text, *lines, strlen (line_text), + strlen (*lines))) + found = line_text; + else + found = NULL; + } + + if (found == NULL) + { + g_free (line_text); + return FALSE; + } + + /* Get offset to start of search string */ + offset = g_utf8_strlen (line_text, found - line_text); + + forward_chars_with_skipping (&next, offset, visible_only, !slice, FALSE); + + /* If match start needs to be returned, set it to the + * start of the search string. + */ + if (match_start) + { + *match_start = next; + } + + /* Go to end of search string */ + forward_chars_with_skipping (&next, g_utf8_strlen (*lines, -1), visible_only, !slice, TRUE); + + g_free (line_text); + + ++lines; + + if (match_end) + *match_end = next; + + /* try to match the rest of the lines forward, passing NULL + * for match_start so lines_match will try to match the entire + * line */ + return lines_match (&next, lines, visible_only, + slice, NULL, match_end); +} + +/* strsplit () that retains the delimiter as part of the string. */ +static gchar ** +strbreakup (const char *string, + const char *delimiter, + gint max_tokens) +{ + GSList *string_list = NULL, *slist; + gchar **str_array, *s, *casefold, *new_string; + guint i, n = 1; + + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (delimiter != NULL, NULL); + + if (max_tokens < 1) + max_tokens = G_MAXINT; + + s = strstr (string, delimiter); + if (s) + { + guint delimiter_len = strlen (delimiter); + + do + { + guint len; + + len = s - string + delimiter_len; + new_string = g_new (gchar, len + 1); + strncpy (new_string, string, len); + new_string[len] = 0; + casefold = g_utf8_casefold (new_string, -1); + g_free (new_string); + new_string = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + string_list = g_slist_prepend (string_list, new_string); + n++; + string = s + delimiter_len; + s = strstr (string, delimiter); + } while (--max_tokens && s); + } + + if (*string) + { + n++; + casefold = g_utf8_casefold (string, -1); + new_string = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + string_list = g_slist_prepend (string_list, new_string); + } + + str_array = g_new (gchar*, n); + + i = n - 1; + + str_array[i--] = NULL; + for (slist = string_list; slist; slist = slist->next) + str_array[i--] = slist->data; + + g_slist_free (string_list); + + return str_array; +} + +/** + * gtk_source_iter_forward_search: + * @iter: start of search + * @str: a search string + * @flags: flags affecting how the search is done + * @match_start: return location for start of match, or %NULL + * @match_end: return location for end of match, or %NULL + * @limit: bound for the search, or %NULL for the end of the buffer + * + * Searches forward for @str. Any match is returned by setting + * @match_start to the first character of the match and @match_end to the + * first character after the match. The search will not continue past + * @limit. Note that a search is a linear or O(n) operation, so you + * may wish to use @limit to avoid locking up your UI on large + * buffers. + * + * If the #GTK_SOURCE_SEARCH_VISIBLE_ONLY flag is present, the match may + * have invisible text interspersed in @str. i.e. @str will be a + * possibly-noncontiguous subsequence of the matched range. similarly, + * if you specify #GTK_SOURCE_SEARCH_TEXT_ONLY, the match may have + * pixbufs or child widgets mixed inside the matched range. If these + * flags are not given, the match must be exact; the special 0xFFFC + * character in @str will match embedded pixbufs or child widgets. + * If you specify the #GTK_SOURCE_SEARCH_CASE_INSENSITIVE flag, the text will + * be matched regardless of what case it is in. + * + * Same as gtk_text_iter_forward_search(), but supports case insensitive + * searching. + * + * Return value: whether a match was found + **/ +gboolean +gtk_source_iter_forward_search (const GtkTextIter *iter, + const gchar *str, + GtkSourceSearchFlags flags, + GtkTextIter *match_start, + GtkTextIter *match_end, + const GtkTextIter *limit) +{ + gchar **lines = NULL; + GtkTextIter match; + gboolean retval = FALSE; + GtkTextIter search; + gboolean visible_only; + gboolean slice; + + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (str != NULL, FALSE); + + if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0) + return gtk_text_iter_forward_search (iter, str, flags, + match_start, match_end, + limit); + + if (limit && gtk_text_iter_compare (iter, limit) >= 0) + return FALSE; + + if (*str == '\0') + { + /* If we can move one char, return the empty string there */ + match = *iter; + + if (gtk_text_iter_forward_char (&match)) + { + if (limit && gtk_text_iter_equal (&match, limit)) + return FALSE; + + if (match_start) + *match_start = match; + if (match_end) + *match_end = match; + return TRUE; + } + else + { + return FALSE; + } + } + + visible_only = (flags & GTK_SOURCE_SEARCH_VISIBLE_ONLY) != 0; + slice = (flags & GTK_SOURCE_SEARCH_TEXT_ONLY) == 0; + + /* locate all lines */ + lines = strbreakup (str, "\n", -1); + + search = *iter; + + do + { + /* This loop has an inefficient worst-case, where + * gtk_text_iter_get_text () is called repeatedly on + * a single line. + */ + GtkTextIter end; + + if (limit && gtk_text_iter_compare (&search, limit) >= 0) + break; + + if (lines_match (&search, (const gchar**)lines, + visible_only, slice, &match, &end)) + { + if (limit == NULL || (limit && + gtk_text_iter_compare (&end, limit) < 0)) + { + retval = TRUE; + + if (match_start) + *match_start = match; + if (match_end) + *match_end = end; + } + break; + } + } while (gtk_text_iter_forward_line (&search)); + + g_strfreev ((gchar**)lines); + + return retval; +} + +/** + * gtk_source_iter_backward_search: + * @iter: a #GtkTextIter where the search begins + * @str: search string + * @flags: bitmask of flags affecting the search + * @match_start: return location for start of match, or %NULL + * @match_end: return location for end of match, or %NULL + * @limit: location of last possible @match_start, or %NULL for start of buffer + * + * Same as gtk_text_iter_backward_search(), but supports case insensitive + * searching. + * + * Return value: whether a match was found + **/ +gboolean +gtk_source_iter_backward_search (const GtkTextIter *iter, + const gchar *str, + GtkSourceSearchFlags flags, + GtkTextIter *match_start, + GtkTextIter *match_end, + const GtkTextIter *limit) +{ + gchar **lines = NULL; + GtkTextIter match; + gboolean retval = FALSE; + GtkTextIter search; + gboolean visible_only; + gboolean slice; + + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (str != NULL, FALSE); + + if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0) + return gtk_text_iter_backward_search (iter, str, flags, + match_start, match_end, + limit); + + if (limit && gtk_text_iter_compare (iter, limit) <= 0) + return FALSE; + + if (*str == '\0') + { + /* If we can move one char, return the empty string there */ + match = *iter; + + if (gtk_text_iter_backward_char (&match)) + { + if (limit && gtk_text_iter_equal (&match, limit)) + return FALSE; + + if (match_start) + *match_start = match; + if (match_end) + *match_end = match; + return TRUE; + } + else + { + return FALSE; + } + } + + visible_only = (flags & GTK_SOURCE_SEARCH_VISIBLE_ONLY) != 0; + slice = (flags & GTK_SOURCE_SEARCH_TEXT_ONLY) == 0; + + /* locate all lines */ + lines = strbreakup (str, "\n", -1); + + search = *iter; + + while (TRUE) + { + /* This loop has an inefficient worst-case, where + * gtk_text_iter_get_text () is called repeatedly on + * a single line. + */ + GtkTextIter end; + + if (limit && gtk_text_iter_compare (&search, limit) <= 0) + break; + + if (backward_lines_match (&search, (const gchar**)lines, + visible_only, slice, &match, &end)) + { + if (limit == NULL || (limit && + gtk_text_iter_compare (&end, limit) > 0)) + { + retval = TRUE; + + if (match_start) + *match_start = match; + if (match_end) + *match_end = end; + } + break; + } + + if (gtk_text_iter_get_line_offset (&search) == 0) + { + if (!gtk_text_iter_backward_line (&search)) + break; + } + else + { + gtk_text_iter_set_line_offset (&search, 0); + } + } + + g_strfreev ((gchar**)lines); + + return retval; +} + +/* + * gtk_source_iter_find_matching_bracket is implemented in gtksourcebuffer.c + */ diff --git a/src/gtksourceiter.h b/src/gtksourceiter.h new file mode 100644 index 0000000..c62801a --- /dev/null +++ b/src/gtksourceiter.h @@ -0,0 +1,55 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * gtksourceiter.h + * + * Copyright (C) 2000, 2002 Paolo Maggi + * Copyright (C) 2002, 2003 Jeroen Zwartepoorte + * + * 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 + */ + +#ifndef __GTK_SOURCE_ITER_H__ +#define __GTK_SOURCE_ITER_H__ + +#include + +G_BEGIN_DECLS + +typedef enum +{ + GTK_SOURCE_SEARCH_VISIBLE_ONLY, + GTK_SOURCE_SEARCH_TEXT_ONLY, + GTK_SOURCE_SEARCH_CASE_INSENSITIVE + /* Possible future plans: SEARCH_REGEXP */ +} GtkSourceSearchFlags; + +gboolean gtk_source_iter_forward_search (const GtkTextIter *iter, + const gchar *str, + GtkSourceSearchFlags flags, + GtkTextIter *match_start, + GtkTextIter *match_end, + const GtkTextIter *limit); + +gboolean gtk_source_iter_backward_search (const GtkTextIter *iter, + const gchar *str, + GtkSourceSearchFlags flags, + GtkTextIter *match_start, + GtkTextIter *match_end, + const GtkTextIter *limit); + +gboolean gtk_source_iter_find_matching_bracket (GtkTextIter *iter); + +G_END_DECLS + +#endif /* __GTK_SOURCE_ITER_H__ */ diff --git a/src/hlight.c b/src/hlight.c new file mode 100644 index 0000000..df59e1d --- /dev/null +++ b/src/hlight.c @@ -0,0 +1,88 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include "l3afpad.h" +//#include + +static gboolean searched_flag = FALSE; + +static void cb_changed(GtkTextBuffer *buffer) +{ + GtkTextIter start, end; + + gtk_text_buffer_get_bounds(buffer, &start, &end); +// gtk_text_buffer_remove_tag_by_name(buffer, +// "searched", &start, &end); + gtk_text_buffer_remove_all_tags(buffer, &start, &end); + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_changed), NULL); + searched_flag = FALSE; +} + +static void cb_paste_clipboard(void) +{ + gchar *text; + + text = gtk_clipboard_wait_for_text( + gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)); + if (text) { + gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), + text, -1); + g_free(text); + } +} + +gboolean hlight_check_searched(void) +{ + return searched_flag; +} + +gboolean hlight_toggle_searched(GtkTextBuffer *buffer) +{ + if (!searched_flag) { + g_signal_handlers_unblock_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_changed), NULL); + searched_flag = TRUE; + } else { + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_changed), NULL); + searched_flag = FALSE; + } + return searched_flag; +} + +void hlight_init(GtkTextBuffer *buffer) +{ + gtk_text_buffer_create_tag(buffer, "searched", + "background", "yellow", + "foreground", "black", + NULL); + gtk_text_buffer_create_tag(buffer, "replaced", + "background", "cyan", + "foreground", "black", + NULL); + g_signal_connect(G_OBJECT(buffer), "changed", + G_CALLBACK(cb_changed), NULL); + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_changed), NULL); + + g_signal_connect(G_OBJECT(pub->mw->view), "paste-clipboard", + G_CALLBACK(cb_paste_clipboard), NULL); +} diff --git a/src/hlight.h b/src/hlight.h new file mode 100644 index 0000000..a4b205f --- /dev/null +++ b/src/hlight.h @@ -0,0 +1,27 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _HLIGHT_H +#define _HLIGHT_H + +gboolean hlight_check_searched(void); +gboolean hlight_toggle_searched(GtkTextBuffer *buffer); +void hlight_init(GtkTextBuffer *buffer); + +#endif /* _HLIGHT_H */ diff --git a/src/indent.c b/src/indent.c new file mode 100644 index 0000000..59c5848 --- /dev/null +++ b/src/indent.c @@ -0,0 +1,224 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +//#include +#include + +static gboolean auto_indent = FALSE; +static gint default_tab_width = 8; +static gint current_tab_width = 8; + +gint get_current_tab_width(void) +{ + return current_tab_width; +} + +void indent_set_state(gboolean state) +{ + auto_indent = state; +} + +gboolean indent_get_state(void) +{ + return auto_indent; +} + +static gchar *compute_indentation(GtkTextBuffer *buffer, GtkTextIter *iter, gint line) +{ + GtkTextIter start_iter, end_iter; + gunichar ch; + + gtk_text_buffer_get_iter_at_line(buffer, &start_iter, line); + end_iter = start_iter; + ch = gtk_text_iter_get_char(&end_iter); + while (g_unichar_isspace(ch) && ch != '\n') { + if (!gtk_text_iter_forward_char(&end_iter)) + break; + ch = gtk_text_iter_get_char(&end_iter); + } + if (gtk_text_iter_equal(&start_iter, &end_iter)) + return NULL; + + if (iter && gtk_text_iter_compare(iter, &end_iter) < 0) + return gtk_text_iter_get_text(&start_iter, iter); + return gtk_text_iter_get_text(&start_iter, &end_iter); +} + +void indent_real(GtkWidget *text_view) +{ + GtkTextIter iter; + gchar *ind, *str; + + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); + + g_signal_emit_by_name(G_OBJECT(buffer), "begin-user-action"); + gtk_text_buffer_delete_selection(buffer, TRUE, TRUE); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); + ind = compute_indentation(buffer, &iter, gtk_text_iter_get_line(&iter)); + str = g_strconcat("\n", ind, NULL); + gtk_text_buffer_insert(buffer, &iter, str, -1); + g_signal_emit_by_name(G_OBJECT(buffer), "end-user-action"); + g_free(str); + g_free(ind); + + gtk_text_view_scroll_mark_onscreen( + GTK_TEXT_VIEW(text_view), + gtk_text_buffer_get_insert(buffer)); +} + +static gint calculate_real_tab_width(GtkWidget *text_view, guint tab_size) //from gtksourceview +{ + PangoLayout *layout; + gchar *tab_string; + gint tab_width = 0; + + if (tab_size == 0) + return -1; + + tab_string = g_strnfill(tab_size, 0x20); + layout = gtk_widget_create_pango_layout(text_view, tab_string); + g_free (tab_string); + + if (layout != NULL) { + pango_layout_get_pixel_size(layout, &tab_width, NULL); + g_object_unref(G_OBJECT(layout)); + } else + tab_width = -1; + + return tab_width; +} + +void indent_refresh_tab_width(GtkWidget *text_view) +{ + PangoTabArray *tab_array; + + tab_array = pango_tab_array_new(1, TRUE); + pango_tab_array_set_tab(tab_array, 0, PANGO_TAB_LEFT, + calculate_real_tab_width(text_view, current_tab_width)); + gtk_text_view_set_tabs(GTK_TEXT_VIEW(text_view), tab_array); + pango_tab_array_free(tab_array); +} + +void indent_toggle_tab_width(GtkWidget *text_view) +{ + if (current_tab_width == default_tab_width) + if (default_tab_width == 8) + current_tab_width = 4; + else + current_tab_width = 8; + else + current_tab_width = default_tab_width; + indent_refresh_tab_width(text_view); +} + +void indent_set_default_tab_width(gint width) +{ + default_tab_width = width; + current_tab_width = default_tab_width; +} + +void indent_multi_line_indent(GtkTextBuffer *buffer) +{ + GtkTextIter start_iter, end_iter, iter; + gint start_line, end_line, i; + gboolean pos; + + gtk_text_buffer_get_selection_bounds(buffer, &start_iter, &end_iter); + start_line = gtk_text_iter_get_line(&start_iter); + end_line = gtk_text_iter_get_line(&end_iter); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); + pos = gtk_text_iter_equal(&iter, &start_iter); + for (i = start_line; i < end_line; i++) { + gtk_text_buffer_get_iter_at_line(buffer, &iter, i); + gtk_text_buffer_place_cursor(buffer, &iter); + g_signal_emit_by_name(G_OBJECT(buffer), "begin-user-action"); + gtk_text_buffer_insert(buffer, &iter, "\t", 1); + g_signal_emit_by_name(G_OBJECT(buffer), "end-user-action"); + undo_set_sequency(TRUE); + } + undo_set_sequency(FALSE); + + gtk_text_buffer_get_iter_at_line(buffer, &start_iter, start_line); + gtk_text_buffer_get_iter_at_line(buffer, &end_iter, end_line); + if (pos) { + gtk_text_buffer_place_cursor(buffer, &end_iter); + gtk_text_buffer_move_mark_by_name(buffer, "insert", &start_iter); + } else { + gtk_text_buffer_place_cursor(buffer, &start_iter); + gtk_text_buffer_move_mark_by_name(buffer, "insert", &end_iter); + } +} + +static gint compute_indent_offset_length(const gchar *ind) +{ + guint8 c = *ind; + gint len = 1; + + if (c == 0x20) + while ((len < current_tab_width) && (c = *++ind) == 0x20) + len++; + + return len; +} + +void indent_multi_line_unindent(GtkTextBuffer *buffer) +{ + GtkTextIter start_iter, end_iter, iter; + gint start_line, end_line, i, len; + gboolean pos; + gchar *ind; + + gtk_text_buffer_get_selection_bounds(buffer, &start_iter, &end_iter); + start_line = gtk_text_iter_get_line(&start_iter); + end_line = gtk_text_iter_get_line(&end_iter); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); + pos = gtk_text_iter_equal(&iter, &start_iter); + i = start_line; + do { + ind = compute_indentation(buffer, NULL, i); + if (ind && strlen(ind)) { + len = compute_indent_offset_length(ind); + gtk_text_buffer_get_iter_at_line(buffer, &start_iter, i); + gtk_text_buffer_place_cursor(buffer, &start_iter); + end_iter = start_iter; + gtk_text_iter_forward_chars(&end_iter, len); + gtk_text_buffer_move_mark_by_name(buffer, "insert", &end_iter); + g_signal_emit_by_name(G_OBJECT(buffer), "begin-user-action"); + gtk_text_buffer_delete(buffer, &start_iter, &end_iter); + g_signal_emit_by_name(G_OBJECT(buffer), "end-user-action"); + undo_set_sequency(TRUE); + g_free(ind); + } + i++; + } while (i < end_line); + undo_set_sequency(FALSE); + + gtk_text_buffer_get_iter_at_line(buffer, &start_iter, start_line); + gtk_text_buffer_get_iter_at_line(buffer, &end_iter, end_line); + if (pos) { + gtk_text_buffer_place_cursor(buffer, &end_iter); + gtk_text_buffer_move_mark_by_name(buffer, "insert", &start_iter); + } else { + gtk_text_buffer_place_cursor(buffer, &start_iter); + gtk_text_buffer_move_mark_by_name(buffer, "insert", &end_iter); + } +} + diff --git a/src/indent.h b/src/indent.h new file mode 100644 index 0000000..59aa8c7 --- /dev/null +++ b/src/indent.h @@ -0,0 +1,34 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _INDENT_H +#define _INDENT_H + +gint get_current_tab_width(void); +void indent_set_state(gboolean state); +gboolean indent_get_state(void); +void indent_real(GtkWidget *text_view); +void indent_refresh_tab_width(GtkWidget *text_view); +void indent_toggle_tab_width(GtkWidget *text_view); +void indent_set_default_tab_width(gint width); +void indent_multi_line_indent(GtkTextBuffer *buffer); +void indent_multi_line_unindent(GtkTextBuffer *buffer); +//void indent_init(GtkWidget *text_view); + +#endif /* _INDENT_H */ diff --git a/src/l3afpad.h b/src/l3afpad.h new file mode 100644 index 0000000..fd53bd3 --- /dev/null +++ b/src/l3afpad.h @@ -0,0 +1,86 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _L3AFPAD_H +#define _L3AFPAD_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include "window.h" +#include "menu.h" +#include "callback.h" +#include "view.h" +#include "undo.h" +#include "font.h" +#include "linenum.h" +#include "indent.h" +#include "hlight.h" +#include "selector.h" +#include "file.h" +#include "encoding.h" +#include "search.h" +#include "dialog.h" +#include "dnd.h" +#include "utils.h" +#include "emacs.h" +#ifdef ENABLE_PRINT +#include "gtkprint.h" +#endif + +#undef GTK_CHECK_MENU_ITEM +#define GTK_CHECK_MENU_ITEM +#define GtkItemFactory GtkUIManager +#define gtk_check_menu_item_get_active gtk_toggle_action_get_active +#define gtk_item_factory_from_widget (GtkUIManager*) +#define gtk_item_factory_get_item(x,y) GTK_TOGGLE_ACTION(gtk_ui_manager_get_action(x,y)) +#define gtk_item_factory_get_widget gtk_ui_manager_get_widget +#if GTK_CHECK_VERSION(3, 0, 0) +#include +#define GTK_OPTION_MENU GTK_COMBO_BOX +#define GTK_WIDGET_IS_SENSITIVE gtk_widget_is_sensitive +#define GTK_WIDGET_VISIBLE gtk_widget_get_visible +#define GtkOptionMenu GtkComboBox +#define gtk_option_menu_get_history gtk_combo_box_get_active +#define gtk_option_menu_new gtk_combo_box_text_new +#define gtk_option_menu_set_history gtk_combo_box_set_active +#define gtk_option_menu_set_menu(x,y) +#endif +#if GTK_CHECK_VERSION(3,1,12) +#undef GTK_FONT_SELECTION_DIALOG +#define GTK_FONT_SELECTION_DIALOG GTK_FONT_CHOOSER_DIALOG +#define gtk_font_selection_dialog_new(x) gtk_font_chooser_dialog_new(x, NULL) +#define gtk_font_selection_dialog_get_font_name gtk_font_chooser_dialog_get_font_name +#define gtk_font_selection_dialog_set_font_name gtk_font_chooser_dialog_set_font_name +#endif + +typedef struct { + FileInfo *fi; + MainWin *mw; +} PublicData; + +PublicData *pub; + +void save_config_file(void); + +#endif /* _L3AFPAD_H */ diff --git a/src/linenum.c b/src/linenum.c new file mode 100644 index 0000000..ca4d321 --- /dev/null +++ b/src/linenum.c @@ -0,0 +1,372 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#define DV(x) + +static gint min_number_window_width; +static gboolean line_number_visible = FALSE; +#define margin 5 +#define submargin 2 + +static gint calculate_min_number_window_width(GtkWidget *widget) +{ + PangoLayout *layout; + gchar *str; + gint width, col = 4; + + str = g_strnfill(col, 0x20); + layout = gtk_widget_create_pango_layout(widget, str); + g_free (str); + + pango_layout_get_pixel_size(layout, &width, NULL); + g_object_unref(G_OBJECT(layout)); + + return width; +} + +/* taken from gedit and gtksourceview */ +/* originated from gtk+/tests/testtext.c */ + +static void +get_lines (GtkTextView *text_view, + gint y1, + gint y2, + GArray *buffer_coords, + GArray *numbers, + gint *countp) +{ + GtkTextIter iter; + gint count; +#if 0 + gint size; +#endif + gint last_line_num; + + g_array_set_size (buffer_coords, 0); + g_array_set_size (numbers, 0); + + /* Get iter at first y */ + gtk_text_view_get_line_at_y (text_view, &iter, y1, NULL); + + /* For each iter, get its location and add it to the arrays. + * Stop when we pass y2 + */ + count = 0; +#if 0 + size = 0; +#endif + + while (!gtk_text_iter_is_end (&iter)) + { + gint y, height; + + gtk_text_view_get_line_yrange (text_view, &iter, &y, &height); + + g_array_append_val (buffer_coords, y); + last_line_num = gtk_text_iter_get_line (&iter); + g_array_append_val (numbers, last_line_num); + + ++count; + + if ((y + height) >= y2) + break; + + gtk_text_iter_forward_line (&iter); + } + + if (gtk_text_iter_is_end (&iter)) + { + gint y, height; + gint line_num; + + gtk_text_view_get_line_yrange (text_view, &iter, &y, &height); + + line_num = gtk_text_iter_get_line (&iter); + + if (line_num != last_line_num) { + g_array_append_val (buffer_coords, y); + g_array_append_val (numbers, line_num); + ++count; + } + } + + *countp = count; +} + +static gint +line_numbers_expose (GtkWidget *widget, cairo_t *event) +{ + GtkTextView *text_view; +// GtkStyle *style; + PangoLayout *layout; + PangoAttrList *alist; + PangoAttribute *attr; + GArray *numbers; + GArray *pixels; + gint y1, y2; + gint count; + gint layout_width; + gint justify_width = 0; + gint i; +// gchar *str; + gchar str [8]; /* we don't expect more than ten million lines */ +#if 0 + cairo_t *gc; + gint height; +#endif + + if (line_number_visible){{{{{ // omit calculation + + text_view = GTK_TEXT_VIEW (widget); + + /* See if this expose is on the line numbers window */ +/* left_win = gtk_text_view_get_window (text_view, + GTK_TEXT_WINDOW_LEFT); + right_win = gtk_text_view_get_window (text_view, + GTK_TEXT_WINDOW_RIGHT); + + if (event->window == left_win) + { + type = GTK_TEXT_WINDOW_LEFT; + target = event->window; + } + else if (event->window == right_win) + { + type = GTK_TEXT_WINDOW_RIGHT; + target = right_win; + } + else + return FALSE; +*/ +#if 0 + GdkWindow *win; + win = gtk_text_view_get_window (text_view, + GTK_TEXT_WINDOW_LEFT); + if (event->window != win) + return FALSE; + +// style = gtk_style_copy (widget->style); +// style = gtk_style_copy (gtk_widget_get_default_style()); + + y1 = event->area.y; + y2 = y1 + event->area.height; +#endif + + gtk_text_view_window_to_buffer_coords (text_view, + GTK_TEXT_WINDOW_LEFT, + 0, + y1, + NULL, + &y1); + + gtk_text_view_window_to_buffer_coords (text_view, + GTK_TEXT_WINDOW_LEFT, + 0, + y2, + NULL, + &y2); + + numbers = g_array_new (FALSE, FALSE, sizeof (gint)); + pixels = g_array_new (FALSE, FALSE, sizeof (gint)); + + get_lines (text_view, + y1, + y2, + pixels, + numbers, + &count); + + /* a zero-lined document should display a "1"; we don't need to worry about + scrolling effects of the text widget in this special case */ + + if (count == 0) + { + gint y = 0; + gint n = 0; + count = 1; + g_array_append_val (pixels, y); + g_array_append_val (numbers, n); + } + +DV({g_print("Painting line numbers %d - %d\n", + g_array_index(numbers, gint, 0), + g_array_index(numbers, gint, count - 1)); }); + + layout = gtk_widget_create_pango_layout (widget, ""); + +// str = g_strdup_printf ("%d", gtk_text_buffer_get_line_count(text_view->buffer)); + g_snprintf (str, sizeof (str), + "%d", MAX (99, gtk_text_buffer_get_line_count(gtk_text_view_get_buffer(text_view)))); + pango_layout_set_text (layout, str, -1); +// g_free (str); + + pango_layout_get_pixel_size (layout, &layout_width, NULL); + + min_number_window_width = calculate_min_number_window_width(widget); + if (layout_width > min_number_window_width) + gtk_text_view_set_border_window_size (text_view, + GTK_TEXT_WINDOW_LEFT, layout_width + margin + submargin); + else { +// if ((gtk_text_view_get_border_window_size (text_view, GTK_TEXT_WINDOW_LEFT) - 5) > layout_width) { + gtk_text_view_set_border_window_size (text_view, + GTK_TEXT_WINDOW_LEFT, min_number_window_width + margin + submargin); +// } + justify_width = min_number_window_width - layout_width; + } + + pango_layout_set_width (layout, layout_width); + pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT); + + alist = pango_attr_list_new(); + attr = pango_attr_foreground_new( +#if 1 + 0, + 0, + 0); +#else + widget->style->text_aa->red, + widget->style->text_aa->green, + widget->style->text_aa->blue); +#endif + attr->start_index = 0; + attr->end_index = G_MAXUINT; + pango_attr_list_insert(alist, attr); + pango_layout_set_attributes(layout, alist); + pango_attr_list_unref(alist); + + /* Draw fully internationalized numbers! */ + + i = 0; + while (i < count) + { + gint pos; + + gtk_text_view_buffer_to_window_coords (text_view, + GTK_TEXT_WINDOW_LEFT, + 0, + g_array_index (pixels, gint, i), + NULL, + &pos); + +// str = g_strdup_printf ("%d", g_array_index (numbers, gint, i) + 1); + g_snprintf (str, sizeof (str), + "%d", g_array_index (numbers, gint, i) + 1); + + pango_layout_set_text (layout, str, -1); + + gtk_paint_layout (gtk_widget_get_style(widget), + event, + gtk_widget_get_state (widget), + FALSE, + widget, + NULL, + layout_width + justify_width + margin / 2 + 1, + pos, + layout); +// g_free (str); + + ++i; + } + + g_array_free (pixels, TRUE); + g_array_free (numbers, TRUE); + + g_object_unref (G_OBJECT (layout)); +// g_object_ref (G_OBJECT (style)); + + /* don't stop emission, need to draw children */ + + }}}}} + +#if 0 + gc = gdk_gc_new(event->window); + gdk_gc_set_foreground(gc, widget->style->base); + gdk_window_get_geometry(event->window, NULL, NULL, NULL, &height, NULL); + gdk_draw_rectangle(event->window, gc, TRUE, + line_number_visible ? + layout_width + justify_width + margin : 0, + 0, submargin, + height); + + g_object_unref(gc); +#endif + + return FALSE; +} + +void show_line_numbers(GtkWidget *text_view, gboolean visible) +{ + line_number_visible = visible; + if (visible) { + gtk_text_view_set_border_window_size( + GTK_TEXT_VIEW(text_view), + GTK_TEXT_WINDOW_LEFT, + min_number_window_width + margin + submargin); + } else { + gtk_text_view_set_border_window_size( + GTK_TEXT_VIEW(text_view), + GTK_TEXT_WINDOW_LEFT, + submargin); + } +} + +void linenum_init(GtkWidget *text_view) +{ + min_number_window_width = calculate_min_number_window_width(text_view); + g_signal_connect( + G_OBJECT(text_view), + "draw", + G_CALLBACK(line_numbers_expose), + NULL); + show_line_numbers(text_view, FALSE); +} +/* +static void show_line_numbers(GtkWidget *text_view, gboolean visible) +{ + gtk_text_view_set_border_window_size( + GTK_TEXT_VIEW(text_view), + GTK_TEXT_WINDOW_LEFT, + submargin); + if (visible) { + min_number_window_width = calculate_min_number_window_width(text_view); +// gtk_text_view_set_border_window_size( +// GTK_TEXT_VIEW(text_view), +// GTK_TEXT_WINDOW_LEFT, +// min_number_window_width + margin + submargin); +// submargin); + g_signal_connect( + G_OBJECT(text_view), + "draw", + G_CALLBACK(line_numbers_expose), + NULL); + } else { +// gtk_text_view_set_border_window_size( +// GTK_TEXT_VIEW(text_view), +// GTK_TEXT_WINDOW_LEFT, +// 0); +// submargin); + g_signal_handlers_disconnect_by_func( + G_OBJECT(text_view), + G_CALLBACK(line_numbers_expose), + NULL); + } +} +*/ diff --git a/src/linenum.h b/src/linenum.h new file mode 100644 index 0000000..cb984db --- /dev/null +++ b/src/linenum.h @@ -0,0 +1,26 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _LINE_H +#define _LINE_H + +void show_line_numbers(GtkWidget *text_view, gboolean visible); +void linenum_init(GtkWidget *text_view); + +#endif /* _LINE_H */ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..338f83f --- /dev/null +++ b/src/main.c @@ -0,0 +1,292 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include +#include +#include +#include + +typedef struct { + gint width; + gint height; + gchar *fontname; + gboolean wordwrap; + gboolean linenumbers; + gboolean autoindent; +} Conf; + +static void load_config_file(Conf *conf) +{ + FILE *fp; + gchar *path; + gchar buf[BUFSIZ]; + gchar **num; + + path = g_build_filename(g_get_user_config_dir(), + PACKAGE, PACKAGE "rc", NULL); + fp = fopen(path, "r"); + g_free(path); + if (!fp) + return; + + if (fgets(buf, sizeof(buf), fp)) { + num = g_strsplit(buf, "." , 3); + if ((atoi(num[1]) >= 8) && (atoi(num[2]) >= 0)) { + fgets(buf, sizeof(buf), fp); + conf->width = atoi(buf); + fgets(buf, sizeof(buf), fp); + conf->height = atoi(buf); + fgets(buf, sizeof(buf), fp); + g_free(conf->fontname); + conf->fontname = g_strdup(buf); + fgets(buf, sizeof(buf), fp); + conf->wordwrap = atoi(buf); + fgets(buf, sizeof(buf), fp); + conf->linenumbers = atoi(buf); + fgets(buf, sizeof(buf), fp); + conf->autoindent = atoi(buf); + } + g_strfreev(num); + } + fclose(fp); +} + +void save_config_file(void) +{ + FILE *fp; + gchar *path; + GtkItemFactory *ifactory; + gint width, height; + gchar *fontname; + gboolean wordwrap, linenumbers, autoindent; + + gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height); + fontname = get_font_name_from_widget(pub->mw->view); + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + wordwrap = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, + "/M/Options/WordWrap"))); + linenumbers = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, + "/M/Options/LineNumbers"))); + autoindent = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, + "/M/Options/AutoIndent"))); + + path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL); + if (!g_file_test(path, G_FILE_TEST_IS_DIR)) + g_mkdir_with_parents(path, 0700); + g_free(path); + path = g_build_filename(g_get_user_config_dir(), + PACKAGE, PACKAGE "rc", NULL); + fp = fopen(path, "w"); + if (!fp) { + g_print("%s: can't save config file - %s\n", PACKAGE, path); + return; + } + g_free(path); + + fprintf(fp, "%s\n", PACKAGE_VERSION); + fprintf(fp, "%d\n", width); + fprintf(fp, "%d\n", height); + fprintf(fp, "%s\n", fontname); + fprintf(fp, "%d\n", wordwrap); + fprintf(fp, "%d\n", linenumbers); + fprintf(fp, "%d\n", autoindent); + fclose(fp); + + g_free(fontname); +} + +gint jump_linenum = 0; + +static void parse_args(gint argc, gchar **argv, FileInfo *fi) +{ + EncArray *encarray; + gint i; + GError *error = NULL; + + GOptionContext *context; + gchar *opt_codeset = NULL; + gint opt_tab_width = 0; + gboolean opt_jump = 0; + gboolean opt_version = FALSE; + GOptionEntry entries[] = + { + { "codeset", 0, 0, G_OPTION_ARG_STRING, &opt_codeset, "Set codeset to open file", "CODESET" }, + { "tab-width", 0, 0, G_OPTION_ARG_INT, &opt_tab_width, "Set tab width", "WIDTH" }, + { "jump", 0, 0, G_OPTION_ARG_INT, &opt_jump, "Jump to specified line", "LINENUM" }, + { "version", 0, 0, G_OPTION_ARG_NONE, &opt_version, "Show version number", NULL }, + { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL } + }; + + context = g_option_context_new("[filename]"); + g_option_context_add_main_entries(context, entries, PACKAGE); + g_option_context_add_group(context, gtk_get_option_group(TRUE)); + g_option_context_set_ignore_unknown_options(context, FALSE); + g_option_context_parse(context, &argc, &argv, &error); + g_option_context_free(context); + + if (error) { + g_print("%s: %s\n", PACKAGE, error->message); + g_error_free(error); + exit(-1); + } + if (opt_version) { + g_print("%s\n", PACKAGE_STRING); + exit(0); + } + if (opt_codeset) { + g_convert("TEST", -1, "UTF-8", opt_codeset, NULL, NULL, &error); + if (error) { + g_error_free(error); + error = NULL; + } else { + g_free(fi->charset); + fi->charset = g_strdup(opt_codeset); + } + } + if (opt_tab_width) + indent_set_default_tab_width(opt_tab_width); + if (opt_jump) + jump_linenum = opt_jump; + + if (fi->charset + && (g_strcasecmp(fi->charset, get_default_charset()) != 0) + && (g_strcasecmp(fi->charset, "UTF-8") != 0)) { + encarray = get_encoding_items(get_encoding_code()); + for (i = 0; i < ENCODING_MAX_ITEM_NUM; i++) + if (encarray->item[i]) + if (g_strcasecmp(fi->charset, encarray->item[i]) == 0) + break; + if (i == ENCODING_MAX_ITEM_NUM) + fi->charset_flag = TRUE; + } + + if (argc >= 2) + fi->filename = parse_file_uri(argv[1]); +} + +gint main(gint argc, gchar **argv) +{ + Conf *conf; + GtkItemFactory *ifactory; + gchar *stdin_data = NULL; + + bindtextdomain(PACKAGE, LOCALEDIR); + bind_textdomain_codeset(PACKAGE, "UTF-8"); + textdomain(PACKAGE); + + pub = g_malloc(sizeof(PublicData)); + pub->fi = g_malloc(sizeof(FileInfo)); + pub->fi->filename = NULL; + pub->fi->charset = NULL; + pub->fi->charset_flag = FALSE; + pub->fi->lineend = LF; + + parse_args(argc, argv, pub->fi); + + gtk_init(&argc, &argv); + g_set_application_name(PACKAGE_NAME); + + pub->mw = create_main_window(); + + conf = g_malloc(sizeof(Conf)); + conf->width = 600; + conf->height = 400; + conf->fontname = g_strdup("Monospace 12"); + conf->wordwrap = FALSE; + conf->linenumbers = FALSE; + conf->autoindent = FALSE; + + load_config_file(conf); + + gtk_window_set_default_size( + GTK_WINDOW(pub->mw->window), conf->width, conf->height); + set_text_font_by_name(pub->mw->view, conf->fontname); + gtk_window_set_icon_from_file(GTK_WINDOW(pub->mw->window), ICONDIR"/l3afpad.png", NULL); + + ifactory = gtk_item_factory_from_widget(pub->mw->menubar); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( + (GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/WordWrap")), + conf->wordwrap); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( + (GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/LineNumbers")), + conf->linenumbers); + indent_refresh_tab_width(pub->mw->view); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( + (GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/AutoIndent")), + conf->autoindent); + + gtk_widget_show_all(pub->mw->window); + g_free(conf->fontname); + g_free(conf); + +#ifdef ENABLE_EMACS + check_emacs_key_theme(GTK_WINDOW(pub->mw->window), ifactory); +#endif + + hlight_init(pub->mw->buffer); + undo_init(pub->mw->view, + gtk_item_factory_get_widget(ifactory, "/M/Edit/Undo"), + gtk_item_factory_get_widget(ifactory, "/M/Edit/Redo")); +// hlight_init(pub->mw->buffer); + dnd_init(pub->mw->view); + + if (pub->fi->filename) + file_open_real(pub->mw->view, pub->fi); +#ifdef G_OS_UNIX + else + stdin_data = gedit_utils_get_stdin(); +#endif + if (stdin_data) { + gchar *str; + GtkTextIter iter; + + str = g_convert(stdin_data, -1, "UTF-8", + get_default_charset(), NULL, NULL, NULL); + g_free(stdin_data); + +// gtk_text_buffer_set_text(buffer, "", 0); + gtk_text_buffer_get_start_iter(pub->mw->buffer, &iter); + gtk_text_buffer_insert(pub->mw->buffer, &iter, str, strlen(str)); + gtk_text_buffer_get_start_iter(pub->mw->buffer, &iter); + gtk_text_buffer_place_cursor(pub->mw->buffer, &iter); + gtk_text_buffer_set_modified(pub->mw->buffer, FALSE); + gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(pub->mw->view), &iter, 0, FALSE, 0, 0); + g_free(str); + } + + if (jump_linenum) { + GtkTextIter iter; + + gtk_text_buffer_get_iter_at_line(pub->mw->buffer, &iter, jump_linenum - 1); + gtk_text_buffer_place_cursor(pub->mw->buffer, &iter); +// gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview), &iter, 0.1, FALSE, 0.5, 0.5); + scroll_to_cursor(pub->mw->buffer, 0.25); + } + + set_main_window_title(); +// hlight_apply_all(pub->mw->buffer); + + gtk_main(); + + return 0; +} diff --git a/src/menu.c b/src/menu.c new file mode 100644 index 0000000..11a7516 --- /dev/null +++ b/src/menu.c @@ -0,0 +1,214 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * Copyright (C) 2011 Wen-Yen Chuang + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include + +#define accel_group gtk_ui_manager_get_accel_group(ifactory) + +static GtkWidget *menu_item_save; +static GtkWidget *menu_item_cut; +static GtkWidget *menu_item_copy; +static GtkWidget *menu_item_paste; +static GtkWidget *menu_item_delete; + +static GtkActionEntry menu_items[] = +{ + { "File", NULL, N_("_File"), NULL, NULL, NULL }, + { "Edit", NULL, N_("_Edit"), NULL, NULL, NULL }, + { "Search", NULL, N_("_Search"), NULL, NULL, NULL }, + { "Options", NULL, N_("_Options"), NULL, NULL, NULL }, + { "Help", NULL, N_("_Help"), NULL, NULL, NULL }, + { "New", GTK_STOCK_NEW, N_("_New"), "N", NULL, G_CALLBACK(on_file_new) }, + { "Open", GTK_STOCK_OPEN, N_("_Open..."), "O", NULL, G_CALLBACK(on_file_open) }, + { "Save", GTK_STOCK_SAVE, N_("_Save"), "S", NULL, G_CALLBACK(on_file_save) }, + { "SaveAs", GTK_STOCK_SAVE_AS, N_("Save _As..."), "S", NULL, G_CALLBACK(on_file_save_as) }, +#ifdef ENABLE_PRINT + { "PrintPreview", GTK_STOCK_PRINT_PREVIEW, N_("Print Pre_view"), "P", NULL, G_CALLBACK(on_file_print_preview) }, + { "Print", GTK_STOCK_PRINT, N_("_Print..."), "P", NULL, G_CALLBACK(on_file_print) }, +#endif + { "Quit", GTK_STOCK_QUIT, N_("_Quit"), "Q", NULL, G_CALLBACK(on_file_quit) }, + { "Undo", GTK_STOCK_UNDO, N_("_Undo"), "Z", NULL, G_CALLBACK(on_edit_undo) }, + { "Redo", GTK_STOCK_REDO, N_("_Redo"), "Z", NULL, G_CALLBACK(on_edit_redo) }, + { "Cut", GTK_STOCK_CUT, N_("Cu_t"), "X", NULL, G_CALLBACK(on_edit_cut) }, + { "Copy", GTK_STOCK_COPY, N_("_Copy"), "C", NULL, G_CALLBACK(on_edit_copy) }, + { "Paste", GTK_STOCK_PASTE, N_("_Paste"), "V", NULL, G_CALLBACK(on_edit_paste) }, + { "Delete", GTK_STOCK_DELETE, N_("_Delete"), NULL, NULL, G_CALLBACK(on_edit_delete) }, + { "SelectAll", NULL, N_("Select _All"), "A", NULL, G_CALLBACK(on_edit_select_all) }, + { "Find", GTK_STOCK_FIND, N_("_Find..."), "F", NULL, G_CALLBACK(on_search_find) }, + { "FindNext", NULL, N_("Find _Next"), "G", NULL, G_CALLBACK(on_search_find_next) }, + { "FindPrevious", NULL, N_("Find _Previous"), "G", NULL, G_CALLBACK(on_search_find_previous) }, + { "Replace", GTK_STOCK_FIND_AND_REPLACE, N_("_Replace..."), "H", NULL, G_CALLBACK(on_search_replace) }, + { "JumpTo", GTK_STOCK_JUMP_TO, N_("_Jump To..."), "J", NULL, G_CALLBACK(on_search_jump_to) }, + { "Font", GTK_STOCK_SELECT_FONT, N_("_Font..."), NULL, NULL, G_CALLBACK(on_option_font) }, + { "About", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL, G_CALLBACK(on_help_about) }, +}; + +static guint nmenu_items = G_N_ELEMENTS (menu_items); + +static GtkToggleActionEntry toggle_entries[] = +{ + { "WordWrap", NULL, N_("_Word Wrap"), NULL, NULL, G_CALLBACK (on_option_word_wrap), FALSE }, + { "LineNumbers", NULL, N_("_Line Numbers"), NULL, NULL, G_CALLBACK (on_option_line_numbers), FALSE }, + { "AutoIndent", NULL, N_("_Auto Indent"), NULL, NULL, G_CALLBACK (on_option_auto_indent), FALSE }, +}; +static guint n_toggle_entries = G_N_ELEMENTS (toggle_entries); + +static const gchar *ui_info = +"" +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +" " +""; + +static gchar *menu_translate(const gchar *path, gpointer data) +{ + gchar *str; + + str = (gchar *)_(path); + + return str; +} + +void menu_sensitivity_from_modified_flag(gboolean is_text_modified) +{ + gtk_widget_set_sensitive(menu_item_save, is_text_modified); +} + +void menu_sensitivity_from_selection_bound(gboolean is_bound_exist) +{ + gtk_widget_set_sensitive(menu_item_cut, is_bound_exist); + gtk_widget_set_sensitive(menu_item_copy, is_bound_exist); + gtk_widget_set_sensitive(menu_item_delete, is_bound_exist); +} + +//void menu_sensitivity_from_clipboard(gboolean is_clipboard_exist) +void menu_sensitivity_from_clipboard(void) +{ +//g_print("clip board checked.\n"); + gtk_widget_set_sensitive(menu_item_paste, + gtk_clipboard_wait_is_text_available( + gtk_clipboard_get(GDK_SELECTION_CLIPBOARD))); +} + +GtkWidget *create_menu_bar(GtkWidget *window) +{ + GtkItemFactory *ifactory; +#if 0 + gboolean flag_emacs = FALSE; + + gchar *key_theme = NULL; + GtkSettings *settings = gtk_settings_get_default(); + if (settings) { + g_object_get(settings, "gtk-key-theme-name", &key_theme, NULL); + if (key_theme) { + if (!g_ascii_strcasecmp(key_theme, "Emacs")) + flag_emacs = TRUE; + g_free(key_theme); + } + } +#endif + + ifactory = gtk_ui_manager_new(); + GtkActionGroup *actions = gtk_action_group_new("Actions"); + gtk_action_group_set_translate_func(actions, menu_translate, NULL, NULL); + gtk_action_group_add_actions(actions, menu_items, nmenu_items, NULL); + gtk_action_group_add_toggle_actions (actions, toggle_entries, n_toggle_entries, NULL); + gtk_ui_manager_insert_action_group(ifactory, actions, 0); + g_object_unref(actions); + gtk_ui_manager_add_ui_from_string(ifactory, ui_info, -1, NULL); + gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); + + /* hidden keybinds */ + gtk_accel_group_connect( + accel_group, GDK_W, GDK_CONTROL_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(on_file_close), NULL, NULL)); + gtk_accel_group_connect( + accel_group, GDK_T, GDK_CONTROL_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(on_option_always_on_top), NULL, NULL)); + gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Edit/Redo"), + "activate", accel_group, GDK_Y, GDK_CONTROL_MASK, 0); + gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindNext"), + "activate", accel_group, GDK_F3, 0, 0); + gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindPrevious"), + "activate", accel_group, GDK_F3, GDK_SHIFT_MASK, 0); + gtk_widget_add_accelerator( + gtk_item_factory_get_widget(ifactory, "/M/Search/Replace"), + "activate", accel_group, GDK_R, GDK_CONTROL_MASK, 0); + + /* initialize sensitivities */ + gtk_widget_set_sensitive( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindNext"), + FALSE); + gtk_widget_set_sensitive( + gtk_item_factory_get_widget(ifactory, "/M/Search/FindPrevious"), + FALSE); + + menu_item_save = gtk_item_factory_get_widget(ifactory, "/M/File/Save"); + menu_item_cut = gtk_item_factory_get_widget(ifactory, "/M/Edit/Cut"); + menu_item_copy = gtk_item_factory_get_widget(ifactory, "/M/Edit/Copy"); + menu_item_paste = gtk_item_factory_get_widget(ifactory, "/M/Edit/Paste"); + menu_item_delete = gtk_item_factory_get_widget(ifactory, "/M/Edit/Delete"); + menu_sensitivity_from_selection_bound(FALSE); + + return (GtkWidget*)ifactory; +} diff --git a/src/menu.h b/src/menu.h new file mode 100644 index 0000000..03dfd73 --- /dev/null +++ b/src/menu.h @@ -0,0 +1,29 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _MENU_H +#define _MENU_H + +void menu_sensitivity_from_modified_flag(gboolean is_text_modified); +void menu_sensitivity_from_selection_bound(gboolean is_bound_exist); +//void menu_sensitivity_from_clipboard(gboolean is_clipboard_exist); +void menu_sensitivity_from_clipboard(void); +GtkWidget *create_menu_bar(GtkWidget *window); + +#endif /* _MENU_H */ diff --git a/src/search.c b/src/search.c new file mode 100644 index 0000000..aed193c --- /dev/null +++ b/src/search.c @@ -0,0 +1,440 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "dialog.h" +#include "utils.h" +#include "view.h" +#include "undo.h" +#include "gtksourceiter.h" +#include "search.h" +#include "hlight.h" + +static gchar *string_find = NULL; +static gchar *string_replace = NULL; +static gboolean match_case, replace_all;//, replace_mode = FALSE; + +static gboolean hlight_searched_strings(GtkTextBuffer *buffer, gchar *str) +{ + GtkTextIter iter, start, end; + gboolean res, retval = FALSE; + GtkSourceSearchFlags search_flags = + GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY; + + if (!string_find) + return FALSE; + + if (!match_case) + search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE; + + gtk_text_buffer_get_bounds(buffer, &start, &end); +/* gtk_text_buffer_remove_tag_by_name(buffer, + "searched", &start, &end); + gtk_text_buffer_remove_tag_by_name(buffer, + "replaced", &start, &end); */ + gtk_text_buffer_remove_all_tags(buffer, &start, &end); + iter = start; + do { + res = gtk_source_iter_forward_search( + &iter, str, search_flags, &start, &end, NULL); + if (res) { + retval = TRUE; + gtk_text_buffer_apply_tag_by_name(buffer, + "searched", &start, &end); +// replace_mode ? "replaced" : "searched", &start, &end); + iter = end; + } + } while (res); +/* if (replace_mode) + replace_mode = FALSE; + else */ + hlight_toggle_searched(buffer); + + return retval; +} + +gboolean document_search_real(GtkWidget *textview, gint direction) +{ + GtkTextIter iter, match_start, match_end; + gboolean res; + GtkSourceSearchFlags search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY; + GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); + + if (!string_find) + return FALSE; + + if (!match_case) + search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE; + +// if (direction == 0 || !hlight_check_searched()) + if (direction == 0 || (direction != 2 && !hlight_check_searched())) + hlight_searched_strings(gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)), string_find); + + gtk_text_mark_set_visible( + gtk_text_buffer_get_selection_bound( + gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview))), FALSE); + + gtk_text_buffer_get_iter_at_mark(textbuffer, &iter, gtk_text_buffer_get_insert(textbuffer)); + if (direction < 0) { + res = gtk_source_iter_backward_search( + &iter, string_find, search_flags, &match_start, &match_end, NULL); + if (gtk_text_iter_equal(&iter, &match_end)) { + res = gtk_source_iter_backward_search( + &match_start, string_find, search_flags, &match_start, &match_end, NULL); + } + } else { + res = gtk_source_iter_forward_search( + &iter, string_find, search_flags, &match_start, &match_end, NULL); + } + /* TODO: both gtk_(text/source)_iter_backward_search works not fine for multi-byte */ + + /* wrap */ + /* TODO: define limit NULL -> proper value */ + if (!res) { + if (direction < 0) { + gtk_text_buffer_get_end_iter(textbuffer, &iter); + res = gtk_source_iter_backward_search( + &iter, string_find, search_flags, &match_start, &match_end, NULL); + } else { + gtk_text_buffer_get_start_iter(textbuffer, &iter); + res = gtk_source_iter_forward_search( + &iter, string_find, search_flags, &match_start, &match_end, NULL); + } + } + + if (res) { + gtk_text_buffer_place_cursor(textbuffer, &match_start); + gtk_text_buffer_move_mark_by_name(textbuffer, "insert", &match_end); +// gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview), &match_start, 0.1, FALSE, 0.5, 0.5); + scroll_to_cursor(textbuffer, 0.05); + } + else if (direction == 0) + run_dialog_message(gtk_widget_get_toplevel(textview), GTK_MESSAGE_WARNING, + _("Search string not found")); + + return res; +} + +static gint document_replace_real(GtkWidget *textview) +{ + GtkTextIter iter, match_start, match_end, rep_start; + GtkTextMark *mark_init = NULL; + gboolean res; + gint num = 0, offset; + GtkWidget *q_dialog = NULL; + GtkSourceSearchFlags search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY; + GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); + + if (!match_case) + search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE; + + if (replace_all) { + gtk_text_buffer_get_iter_at_mark(textbuffer, + &iter, gtk_text_buffer_get_insert(textbuffer)); + mark_init = gtk_text_buffer_create_mark(textbuffer, NULL, &iter, FALSE); + gtk_text_buffer_get_start_iter(textbuffer, &iter); + + gtk_text_buffer_get_end_iter(textbuffer, &match_end); +// gtk_text_buffer_remove_tag_by_name(textbuffer, +// "replaced", &iter, &match_end); + gtk_text_buffer_remove_all_tags(textbuffer, + &iter, &match_end); + } else { + hlight_searched_strings(textbuffer, string_find); + hlight_toggle_searched(textbuffer); + } + + do { + if (replace_all) { + res = gtk_source_iter_forward_search( + &iter, string_find, search_flags, &match_start, &match_end, NULL); + if (res) { + gtk_text_buffer_place_cursor(textbuffer, &match_start); + gtk_text_buffer_move_mark_by_name(textbuffer, "insert", &match_end); + gtk_text_buffer_get_iter_at_mark( + textbuffer, &iter, gtk_text_buffer_get_insert(textbuffer)); + } + } + else +// res = document_search_real(textview, 0); + res = document_search_real(textview, 2); + + if (res) { + if (!replace_all) { + if (num == 0 && q_dialog == NULL) + q_dialog = create_dialog_message_question( + gtk_widget_get_toplevel(textview), _("Replace?")); + GtkTextIter ins,bou; + gtk_text_buffer_get_selection_bounds(textbuffer, &ins, &bou); + switch (gtk_dialog_run(GTK_DIALOG(q_dialog))) { + case GTK_RESPONSE_YES: + gtk_text_buffer_select_range(textbuffer, &ins, &bou); + break; + case GTK_RESPONSE_NO: + continue; +// case GTK_RESPONSE_CANCEL: + default: + res = 0; + if (num == 0) + num = -1; + continue; + } + } + gtk_text_buffer_delete_selection(textbuffer, TRUE, TRUE); + if (strlen(string_replace)) { + gtk_text_buffer_get_iter_at_mark( + textbuffer, &rep_start, + gtk_text_buffer_get_insert(textbuffer)); + offset = gtk_text_iter_get_offset(&rep_start); + undo_set_sequency(TRUE); + g_signal_emit_by_name(G_OBJECT(textbuffer), + "begin-user-action"); + gtk_text_buffer_insert_at_cursor(textbuffer, + string_replace, strlen(string_replace)); + g_signal_emit_by_name(G_OBJECT(textbuffer), + "end-user-action"); + gtk_text_buffer_get_iter_at_mark( + textbuffer, &iter, + gtk_text_buffer_get_insert(textbuffer)); + gtk_text_buffer_get_iter_at_offset(textbuffer, + &rep_start, offset); + gtk_text_buffer_apply_tag_by_name(textbuffer, + "replaced", &rep_start, &iter); + } else + gtk_text_buffer_get_iter_at_mark( + textbuffer, &iter, + gtk_text_buffer_get_insert(textbuffer)); + + num++; +/* if (replace_all) + undo_set_sequency(TRUE); + else + undo_set_sequency(FALSE);*/ + undo_set_sequency(replace_all); + } + } while (res); + if (!hlight_check_searched()) + hlight_toggle_searched(textbuffer); + + if (q_dialog) + gtk_widget_destroy(q_dialog); +/* if (strlen(string_replace)) { + replace_mode = TRUE; + hlight_searched_strings(textbuffer, string_replace); + } */ + if (replace_all) { + gtk_text_buffer_get_iter_at_mark(textbuffer, &iter, mark_init); + gtk_text_buffer_place_cursor(textbuffer, &iter); + run_dialog_message(gtk_widget_get_toplevel(textview), GTK_MESSAGE_INFO, + _("%d strings replaced"), num); + undo_set_sequency(FALSE); + } + + return num; +} + + +static gint entry_len; + +static void toggle_sensitivity(GtkWidget *w, gint pos1, gint pos2, gint *pos3) +{ + if (pos3) { + if (!entry_len) + gtk_dialog_set_response_sensitive(GTK_DIALOG(gtk_widget_get_toplevel(w)), + GTK_RESPONSE_OK, TRUE); + entry_len += pos2; +// entry_len = entry_len + pos2; + } else { + entry_len = entry_len + pos1 - pos2; + if (!entry_len) + gtk_dialog_set_response_sensitive(GTK_DIALOG(gtk_widget_get_toplevel(w)), + GTK_RESPONSE_OK, FALSE); + } +} + +static void toggle_check_case(GtkWidget *widget) +{ + match_case = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); +} + +static void toggle_check_all(GtkWidget *widget) +{ + replace_all = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); +} + +gint run_dialog_search(GtkWidget *textview, gint mode) +{ + GtkWidget *dialog; + GtkWidget *table; + GtkWidget *label_find, *label_replace; + GtkWidget *entry_find, *entry_replace = NULL; + GtkWidget *check_case, *check_all; + gint res; + + if (mode) + dialog = gtk_dialog_new_with_buttons(_("Replace"), + GTK_WINDOW(gtk_widget_get_toplevel(textview)), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_FIND_AND_REPLACE, GTK_RESPONSE_OK, + NULL); + else + dialog = gtk_dialog_new_with_buttons(_("Find"), + GTK_WINDOW(gtk_widget_get_toplevel(textview)), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_FIND, GTK_RESPONSE_OK, + NULL); + + table = gtk_table_new(mode + 2, 2, FALSE); + gtk_table_set_row_spacings(GTK_TABLE(table), 8); + gtk_table_set_col_spacings(GTK_TABLE(table), 8); + gtk_container_set_border_width(GTK_CONTAINER(table), 8); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), table, FALSE, FALSE, 0); + label_find = gtk_label_new_with_mnemonic(_("Fi_nd what:")); + gtk_misc_set_alignment(GTK_MISC(label_find), 0, 0.5); + gtk_table_attach_defaults(GTK_TABLE(table), label_find, 0, 1, 0, 1); + entry_find = gtk_entry_new(); + gtk_table_attach_defaults(GTK_TABLE(table), entry_find, 1, 2, 0, 1); + gtk_label_set_mnemonic_widget(GTK_LABEL(label_find), entry_find); + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), + GTK_RESPONSE_OK, FALSE); + entry_len = 0; + g_signal_connect(G_OBJECT(entry_find), "insert-text", + G_CALLBACK(toggle_sensitivity), NULL); + g_signal_connect(G_OBJECT(entry_find), "delete-text", + G_CALLBACK(toggle_sensitivity), NULL); + if (string_find) { + gtk_entry_set_text(GTK_ENTRY(entry_find), string_find); + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), + GTK_RESPONSE_OK, TRUE); + } + if (mode) { + label_replace = gtk_label_new_with_mnemonic(_("Re_place with:")); + gtk_misc_set_alignment(GTK_MISC(label_replace), 0, 0.5); + gtk_table_attach_defaults(GTK_TABLE(table), label_replace, 0, 1, 1, 2); + entry_replace = gtk_entry_new(); + gtk_table_attach_defaults(GTK_TABLE(table), entry_replace, 1, 2, 1, 2); + gtk_label_set_mnemonic_widget(GTK_LABEL(label_replace), entry_replace); + if (string_replace) + gtk_entry_set_text(GTK_ENTRY(entry_replace), string_replace); + } + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + gtk_entry_set_activates_default(GTK_ENTRY(entry_find), TRUE); + if (mode) + gtk_entry_set_activates_default(GTK_ENTRY(entry_replace), TRUE); + + check_case = gtk_check_button_new_with_mnemonic(_("_Match case")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_case), match_case); + g_signal_connect(check_case, "toggled", G_CALLBACK(toggle_check_case), NULL); + gtk_table_attach_defaults (GTK_TABLE(table), check_case, 0, 2, 1 + mode, 2 + mode); + if (mode) { + check_all = gtk_check_button_new_with_mnemonic(_("Replace _all at once")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_all), replace_all); + g_signal_connect(check_all, "toggled", G_CALLBACK(toggle_check_all), NULL); + gtk_table_attach_defaults(GTK_TABLE(table), check_all, 0, 2, 2 + mode, 3 + mode); + } + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_widget_show_all(table); + + res = gtk_dialog_run(GTK_DIALOG(dialog)); + if (res == GTK_RESPONSE_OK) { + g_free(string_find); + string_find = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry_find))); + if (mode) { + g_free(string_replace); + string_replace = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry_replace))); + } + } + + gtk_widget_destroy(dialog); + + if (res == GTK_RESPONSE_OK) { + if (strlen(string_find)) { + if (mode) + document_replace_real(textview); + else + document_search_real(textview, 0); + } + } + + return res; +} + +void run_dialog_jump_to(GtkWidget *textview) +{ + GtkWidget *dialog; + GtkWidget *button; + GtkWidget *table; + GtkWidget *label; + GtkWidget *spinner; + GtkAdjustment *spinner_adj; + GtkTextIter iter; + gint num, max_num; + + GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); + + gtk_text_buffer_get_iter_at_mark(textbuffer, &iter, + gtk_text_buffer_get_insert(textbuffer)); + num = gtk_text_iter_get_line(&iter) + 1; + gtk_text_buffer_get_end_iter(textbuffer, &iter); + max_num = gtk_text_iter_get_line(&iter) + 1; + + dialog = gtk_dialog_new_with_buttons(_("Jump To"), + GTK_WINDOW(gtk_widget_get_toplevel(textview)), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + NULL); + button = create_button_with_stock_image(_("_Jump"), GTK_STOCK_JUMP_TO); + gtk_widget_set_can_default(button, TRUE); + gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, GTK_RESPONSE_OK); + table = gtk_table_new(1, 2, FALSE); + gtk_table_set_col_spacings(GTK_TABLE(table), 8); + gtk_container_set_border_width (GTK_CONTAINER(table), 8); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), table, FALSE, FALSE, 0); + label = gtk_label_new_with_mnemonic(_("_Line number:")); + spinner_adj = (GtkAdjustment *) gtk_adjustment_new(num, 1, max_num, 1, 1, 0); + spinner = gtk_spin_button_new(spinner_adj, 1, 0); + gtk_entry_set_width_chars(GTK_ENTRY(spinner), 8); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), spinner); + gtk_entry_set_activates_default(GTK_ENTRY(spinner), TRUE); + gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); + gtk_table_attach_defaults(GTK_TABLE(table), spinner, 1, 2, 0, 1); + + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_widget_show_all(dialog); + + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) { + gtk_text_buffer_get_iter_at_line(textbuffer, &iter, + gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)) - 1); + gtk_text_buffer_place_cursor(textbuffer, &iter); +// gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview), &iter, 0.1, FALSE, 0.5, 0.5); + scroll_to_cursor(textbuffer, 0.25); + } + + gtk_widget_destroy (dialog); +} diff --git a/src/search.h b/src/search.h new file mode 100644 index 0000000..208e3c4 --- /dev/null +++ b/src/search.h @@ -0,0 +1,27 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _SEARCH_H +#define _SEARCH_H + +gboolean document_search_real(GtkWidget *textview, gint direction); +gint run_dialog_search(GtkWidget *textview, gint mode); +void run_dialog_jump_to(GtkWidget *textview); + +#endif /* _SEARCH_H */ diff --git a/src/selector.c b/src/selector.c new file mode 100644 index 0000000..f79338a --- /dev/null +++ b/src/selector.c @@ -0,0 +1,398 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include + +#define DEFAULT_ITEM_NUM 2 + +static gint mode; +static gchar *other_codeset_title = NULL; +static gchar *lineend_str[] = { + "LF", + "CR+LF", + "CR" +}; + +static void cb_select_lineend(GtkOptionMenu *option_menu, FileInfo *selected_fi) +{ + switch (gtk_option_menu_get_history(option_menu)) { + case 1: + selected_fi->lineend = CR+LF; + break; + case 2: + selected_fi->lineend = CR; + break; + default: + selected_fi->lineend = LF; + } +} + +static GtkWidget *create_lineend_menu(FileInfo *selected_fi) +{ + GtkWidget *option_menu; + GtkWidget *menu; + GtkWidget *menu_item; + gint i; + + option_menu = gtk_option_menu_new(); + menu = gtk_menu_new(); + for (i = 0; i <= 2; i++) { + menu_item = gtk_menu_item_new_with_label(lineend_str[i]); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); + gtk_widget_show(menu_item); // <- required for width adjustment + } + gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu); + + g_signal_connect(G_OBJECT(option_menu), "changed", + G_CALLBACK(cb_select_lineend), selected_fi); + + i = 0; + switch (selected_fi->lineend) { + case CR+LF: + i = 1; + break; + case CR: + i = 2; + } + gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), i); + + return option_menu; +} + +typedef struct { + const gchar *charset[ENCODING_MAX_ITEM_NUM + DEFAULT_ITEM_NUM]; + const gchar *str[ENCODING_MAX_ITEM_NUM + DEFAULT_ITEM_NUM]; + guint num; +} CharsetTable; + +static CharsetTable *get_charset_table(void) +{ + static CharsetTable *ctable = NULL; + EncArray *encarray; + gint i; + + if (!ctable) { + ctable = g_malloc(sizeof(CharsetTable)); + ctable->num = 0; + ctable->charset[ctable->num] = get_default_charset(); + ctable->str[ctable->num] = g_strdup_printf(_("Current Locale (%s)"), get_default_charset()); + ctable->num++; + ctable->charset[ctable->num] = "UTF-8"; + ctable->str[ctable->num] = ctable->charset[ctable->num]; + ctable->num++; + encarray = get_encoding_items(get_encoding_code()); + for (i = 0; i < ENCODING_MAX_ITEM_NUM; i++) + if (encarray->item[i]) { + ctable->charset[ctable->num] = encarray->item[i]; + ctable->str[ctable->num] = encarray->item[i]; + ctable->num++; + } + } + + return ctable; +} + +static void toggle_sensitivity(GtkWidget *entry) +{ + gtk_dialog_set_response_sensitive( + GTK_DIALOG(gtk_widget_get_toplevel(entry)), GTK_RESPONSE_OK, + strlen(gtk_entry_get_text(GTK_ENTRY(entry))) ? TRUE : FALSE); +} + +static GtkWidget *menu_item_manual_charset; +static GtkWidget *init_menu_item_manual_charset(gchar *manual_charset) +{ + static GtkLabel *label; + gchar *str; + + if (other_codeset_title == NULL) + other_codeset_title = _("Other Codeset"); + + str = manual_charset + ? g_strdup_printf("%s (%s)", other_codeset_title, manual_charset) + : g_strdup_printf("%s...", other_codeset_title); + + if (!menu_item_manual_charset) { + menu_item_manual_charset = gtk_menu_item_new_with_label(str); + label = GTK_LABEL(gtk_bin_get_child(GTK_BIN(menu_item_manual_charset))); + } else +// gtk_label_set_text(GTK_LABEL(GTK_BIN(menu_item_manual_charset)->child), str); + gtk_label_set_text(label, str); + g_free(str); + + return menu_item_manual_charset; +} + +static gboolean get_manual_charset(GtkOptionMenu *option_menu, FileInfo *selected_fi) +{ + GtkWidget *dialog; + GtkWidget *vbox; + GtkWidget *label; + GtkWidget *entry; + GError *err = NULL; + gchar *str; + + dialog = gtk_dialog_new_with_buttons(other_codeset_title, + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(option_menu))), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, GTK_RESPONSE_OK, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); + + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 8); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), vbox, FALSE, FALSE, 0); + + label = gtk_label_new_with_mnemonic(_("Code_set:")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); + + entry = gtk_entry_new(); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); + gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 5); + + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK, FALSE); + g_signal_connect_after(G_OBJECT(entry), "changed", + G_CALLBACK(toggle_sensitivity), NULL); + if (selected_fi->charset_flag) + gtk_entry_set_text(GTK_ENTRY(entry), selected_fi->charset); + + gtk_widget_show_all(vbox); + + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) { + g_convert("TEST", -1, "UTF-8", gtk_entry_get_text(GTK_ENTRY(entry)), NULL, NULL, &err); + if (err) { + g_error_free(err); + gtk_widget_hide(dialog); + str = g_strdup_printf(_("'%s' is not supported"), gtk_entry_get_text(GTK_ENTRY(entry))); + run_dialog_message(gtk_widget_get_toplevel(GTK_WIDGET(option_menu)), + GTK_MESSAGE_ERROR, str); + g_free(str); + } else { + g_free(selected_fi->charset); + selected_fi->charset = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); + selected_fi->charset_flag = TRUE; + gtk_widget_destroy(dialog); + + init_menu_item_manual_charset(selected_fi->charset_flag + ? selected_fi->charset : NULL); + + return TRUE; + } + } + gtk_widget_destroy(dialog); + + return FALSE; +} + +gboolean charset_menu_init_flag; + +static void cb_select_charset(GtkOptionMenu *option_menu, FileInfo *selected_fi) +{ + CharsetTable *ctable; + static guint index_history = 0, prev_history; + + prev_history = index_history; + index_history = gtk_option_menu_get_history(option_menu); + if (!charset_menu_init_flag) { + ctable = get_charset_table(); + if (index_history < ctable->num + mode) { + if (selected_fi->charset) + g_free(selected_fi->charset); + if (index_history == 0 && mode == OPEN) + selected_fi->charset = NULL; + else { + selected_fi->charset = + g_strdup(ctable->charset[index_history - mode]); + } + } else + if (!get_manual_charset(option_menu, selected_fi)) { + index_history = prev_history; + gtk_option_menu_set_history(option_menu, index_history); + } + } +} + +static GtkWidget *create_charset_menu(FileInfo *selected_fi) +{ + GtkWidget *option_menu; + GtkWidget *menu; + GtkWidget *menu_item; + CharsetTable *ctable; + guint i; + + option_menu = gtk_option_menu_new(); + menu = gtk_menu_new(); + + if (mode == OPEN) { + menu_item = gtk_menu_item_new_with_label(_("Auto-Detect")); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); + gtk_widget_show(menu_item); // <- required for width adjustment + } + ctable = get_charset_table(); + for (i = 0; i < ctable->num; i++) { + menu_item = gtk_menu_item_new_with_label(ctable->str[i]); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); + gtk_widget_show(menu_item); // <- required for width adjustment + } + menu_item_manual_charset = NULL; + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + init_menu_item_manual_charset(selected_fi->charset_flag + ? selected_fi->charset : NULL)); + gtk_widget_show(menu_item_manual_charset); // <- required for width adjustment + + charset_menu_init_flag = TRUE; + g_signal_connect(G_OBJECT(option_menu), "changed", + G_CALLBACK(cb_select_charset), selected_fi); + gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu); + i = 0; + if (selected_fi->charset) { + do { + if (g_strcasecmp(selected_fi->charset, ctable->charset[i]) == 0) + break; + i++; + } while (i < ctable->num); + if (mode == OPEN && selected_fi->charset_flag == FALSE) { + g_free(selected_fi->charset); + selected_fi->charset = NULL; + } else if (i == ctable->num && selected_fi->charset_flag == FALSE) { + init_menu_item_manual_charset(selected_fi->charset); + } + i += mode; + } + if (mode == SAVE || selected_fi->charset_flag) + gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), i); + charset_menu_init_flag = FALSE; + + return option_menu; +} + +static GtkWidget *create_file_selector(FileInfo *selected_fi) +{ + GtkWidget *selector; + GtkWidget *align; + GtkWidget *table; + GtkWidget *label; + GtkWidget *option_menu_charset; + GtkWidget *option_menu_lineend; + const gchar *title; + + title = mode ? _("Open") : _("Save As"); + + selector = gtk_file_chooser_dialog_new(title, NULL, + mode ? GTK_FILE_CHOOSER_ACTION_OPEN : GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + mode ? GTK_STOCK_OPEN : GTK_STOCK_SAVE, GTK_RESPONSE_OK, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(selector), GTK_RESPONSE_OK); + +// align = gtk_alignment_new(0.5, 0, 0, 0); + align = gtk_alignment_new(1, 0, 0, 0); + gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(selector), align); + table = gtk_table_new(2, 2, FALSE); + gtk_container_add(GTK_CONTAINER(align), table); + option_menu_charset = create_charset_menu(selected_fi); + label = gtk_label_new_with_mnemonic(_("C_haracter Coding:")); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), option_menu_charset); + gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); +// gtk_table_set_row_spacings(GTK_TABLE(table), 5); + gtk_table_set_col_spacing(GTK_TABLE(table), 0, 8); + gtk_table_attach_defaults(GTK_TABLE(table), option_menu_charset, 1, 2, 0, 1); + if (mode == SAVE) { + option_menu_lineend = create_lineend_menu(selected_fi); + gtk_table_attach_defaults(GTK_TABLE(table), option_menu_lineend, 2, 3, 0, 1); + } + gtk_widget_show_all(align); + + if (selected_fi->filename) + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(selector), selected_fi->filename); + + return selector; +} + +FileInfo *get_fileinfo_from_selector(FileInfo *fi, gint requested_mode) +{ + FileInfo *selected_fi; + GtkWidget *selector; + gchar *basename, *str; + gint res, len; + + /* init values */ + mode = requested_mode; + selected_fi = g_malloc(sizeof(FileInfo)); + selected_fi->filename = + fi->filename ? g_strdup(fi->filename) : NULL; + selected_fi->charset = + fi->charset ? g_strdup(fi->charset) : NULL; + selected_fi->charset_flag = fi->charset_flag; + selected_fi->lineend = fi->lineend; + + selector = create_file_selector(selected_fi); + gtk_window_set_transient_for(GTK_WINDOW(selector), + GTK_WINDOW(pub->mw->window)); + + do { + res = gtk_dialog_run(GTK_DIALOG(selector)); + if (res == GTK_RESPONSE_OK) { + if (selected_fi->filename) + g_free(selected_fi->filename); + selected_fi->filename = + gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(selector)); + if (g_file_test(selected_fi->filename, G_FILE_TEST_IS_DIR)) { + len = strlen(selected_fi->filename); + if (len < 1 || selected_fi->filename[len - 1] != G_DIR_SEPARATOR) + str = g_strconcat(selected_fi->filename, G_DIR_SEPARATOR_S, NULL); + else + str = g_strdup(selected_fi->filename); + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(selector), str); + g_free(str); + continue; + } + if ((mode == SAVE) && g_file_test(selected_fi->filename, G_FILE_TEST_EXISTS)) { + basename = g_path_get_basename(selected_fi->filename); + str = g_strdup_printf(_("'%s' already exists. Overwrite?"), basename); + g_free(basename); + res = run_dialog_message_question(selector, str); + g_free(str); + switch (res) { + case GTK_RESPONSE_NO: + continue; + case GTK_RESPONSE_YES: + res = GTK_RESPONSE_OK; + } + } + } + gtk_widget_hide(selector); + } while (GTK_WIDGET_VISIBLE(selector)); + + if (res != GTK_RESPONSE_OK) { + if (selected_fi->charset) + g_free(selected_fi->charset); + selected_fi = NULL; + g_free(selected_fi); + } + + gtk_widget_destroy(selector); + + return selected_fi; +} diff --git a/src/selector.h b/src/selector.h new file mode 100644 index 0000000..cd7ac8f --- /dev/null +++ b/src/selector.h @@ -0,0 +1,33 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _SELECTOR_H +#define _SELECTOR_H + +#include "file.h" + +/* Dialog Mode */ +enum { + SAVE = 0, + OPEN +}; + +FileInfo *get_fileinfo_from_selector(FileInfo *fi, gint mode); + +#endif /* _SELECTOR_H */ diff --git a/src/undo.c b/src/undo.c new file mode 100644 index 0000000..194d79b --- /dev/null +++ b/src/undo.c @@ -0,0 +1,383 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include "view.h" +#include "undo.h" + +#define DV(x) + +//"GTK_TEXT_VIEW(view)->overwrite_mode" can get overwrite_mode state + +typedef struct { + gchar command; + gint start; + gint end; + gboolean seq; // sequency flag + gchar *str; +} UndoInfo; + +enum { + INS = 0, + BS, + DEL +}; + +static GtkWidget *undo_w = NULL; +static GtkWidget *redo_w = NULL; +static GList *undo_list = NULL; +static GList *redo_list = NULL; +static GString *undo_gstr; +static UndoInfo *ui_tmp; +static guint modified_step; +static guint prev_keyval; +static gboolean seq_reserve = FALSE; + +static void undo_flush_temporal_buffer(GtkTextBuffer *buffer); + +static GList *undo_clear_info_list(GList *info_list) +{ + while (g_list_length(info_list)) { + g_free(((UndoInfo *)info_list->data)->str); + g_free(info_list->data); + info_list = g_list_delete_link(info_list, info_list); + } + return info_list; +} + +static void undo_append_undo_info(GtkTextBuffer *buffer, gchar command, gint start, gint end, gchar *str) +{ + UndoInfo *ui = g_malloc(sizeof(UndoInfo)); + + ui->command = command; + ui->start = start; + ui->end = end; +// ui->seq = FALSE; + ui->seq = seq_reserve; + ui->str = str; + + seq_reserve = FALSE; + + undo_list = g_list_append(undo_list, ui); +DV(g_print("undo_cb: %d %s (%d-%d)\n", command, str, start, end)); +} + +static void undo_create_undo_info(GtkTextBuffer *buffer, gchar command, gint start, gint end) +{ + GtkTextIter start_iter, end_iter; + gboolean seq_flag = FALSE; + gchar *str; + gint keyval = get_current_keyval(); + + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, start); + gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, end); + str = gtk_text_buffer_get_text(buffer, &start_iter, &end_iter, FALSE); + + if (undo_gstr->len) { + if ((end - start == 1) && (command == ui_tmp->command)) { + switch (keyval) { + case GDK_BackSpace: + if (end == ui_tmp->start) + seq_flag = TRUE; + break; + case GDK_Delete: + if (start == ui_tmp->start) + seq_flag = TRUE; + break; + case GDK_Tab: + case GDK_space: + if (start == ui_tmp->end) + seq_flag = TRUE; + break; + default: + if (start == ui_tmp->end) + if (keyval && keyval < 0xF000) + switch (prev_keyval) { + case GDK_Return: + case GDK_Tab: + case GDK_space: + break; + default: + seq_flag = TRUE; + } + } + } + if (seq_flag) { + switch (command) { + case BS: + undo_gstr = g_string_prepend(undo_gstr, str); + ui_tmp->start--; + break; + default: + undo_gstr = g_string_append(undo_gstr, str); + ui_tmp->end++; + } + redo_list = undo_clear_info_list(redo_list); + prev_keyval = keyval; + gtk_widget_set_sensitive(undo_w, TRUE); + gtk_widget_set_sensitive(redo_w, FALSE); + return; + } + undo_append_undo_info(buffer, ui_tmp->command, ui_tmp->start, ui_tmp->end, g_strdup(undo_gstr->str)); + undo_gstr = g_string_erase(undo_gstr, 0, -1); + } + + if (!keyval && prev_keyval) + undo_set_sequency(TRUE); + + if (end - start == 1 && + ((keyval && keyval < 0xF000) || + keyval == GDK_BackSpace || keyval == GDK_Delete || keyval == GDK_Tab)) { + ui_tmp->command = command; + ui_tmp->start = start; + ui_tmp->end = end; + undo_gstr = g_string_erase(undo_gstr, 0, -1); + g_string_append(undo_gstr, str); + } else + undo_append_undo_info(buffer, command, start, end, g_strdup(str)); + + redo_list = undo_clear_info_list(redo_list); + prev_keyval = keyval; + clear_current_keyval(); +// keyevent_setval(0); + gtk_widget_set_sensitive(undo_w, TRUE); + gtk_widget_set_sensitive(redo_w, FALSE); +} + +static void cb_insert_text(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *str) +{ + gint start, end; + +DV( g_print("insert-text\n")); + end = gtk_text_iter_get_offset(iter); + start = end - g_utf8_strlen(str, -1); + + undo_create_undo_info(buffer, INS, start, end); +} + +static void cb_delete_range(GtkTextBuffer *buffer, GtkTextIter *start_iter, GtkTextIter *end_iter) +{ + gint start, end; + gchar command; + +DV( g_print("delete-range\n")); + start = gtk_text_iter_get_offset(start_iter); + end = gtk_text_iter_get_offset(end_iter); + + if (get_current_keyval() == GDK_BackSpace) + command = BS; + else + command = DEL; + undo_create_undo_info(buffer, command, start, end); +} + +void undo_reset_modified_step(GtkTextBuffer *buffer) +{ + undo_flush_temporal_buffer(buffer); + modified_step = g_list_length(undo_list); +DV(g_print("undo_reset_modified_step: Reseted modified_step by %d\n", modified_step)); +} + +static void undo_check_modified_step(GtkTextBuffer *buffer) +{ + gboolean flag; + + flag = (modified_step == g_list_length(undo_list)); +//g_print("%d - %d = %d\n", modified_step, g_list_length(undo_list), flag); + if (gtk_text_buffer_get_modified(buffer) == flag) + gtk_text_buffer_set_modified(buffer, !flag); +//g_print("change!\n");} +} +/* +static void undo_check_modified_step(GtkTextBuffer *buffer) +{ + if (modified_step == g_list_length(undo_list)) + gtk_text_buffer_set_modified(buffer, FALSE); +} +*//* // ????? "modified-changed" signal isn't emitted properly... +#include "window.h" +static void undo_check_modified_step(GtkTextBuffer *buffer) +{ + if (modified_step == g_list_length(undo_list)) { + gtk_text_buffer_set_modified(buffer, FALSE); + set_main_window_title(); + } +} +*/ +static void cb_begin_user_action(GtkTextBuffer *buffer) +{ + g_signal_handlers_unblock_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_insert_text), NULL); + g_signal_handlers_unblock_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_delete_range), NULL); +DV(g_print("begin-user-action(unblock_func)")); +DV(g_print(": keyval = 0x%X\n", get_current_keyval())); +} + +static void cb_end_user_action(GtkTextBuffer *buffer) +{ + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_insert_text), NULL); + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_delete_range), NULL); +DV(g_print("end-user-action(block_func)\n")); +} + +void undo_clear_all(GtkTextBuffer *buffer) +{ + undo_list = undo_clear_info_list(undo_list); + redo_list = undo_clear_info_list(redo_list); + undo_reset_modified_step(buffer); + gtk_widget_set_sensitive(undo_w, FALSE); + gtk_widget_set_sensitive(redo_w, FALSE); + + ui_tmp->command = INS; + undo_gstr = g_string_erase(undo_gstr, 0, -1); + prev_keyval = 0; +} + +void undo_init(GtkWidget *view, GtkWidget *undo_button, GtkWidget *redo_button) +{ + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + + undo_w = undo_button; + redo_w = redo_button; + + g_signal_connect_after(G_OBJECT(buffer), "insert-text", + G_CALLBACK(cb_insert_text), NULL); + g_signal_connect(G_OBJECT(buffer), "delete-range", + G_CALLBACK(cb_delete_range), NULL); + g_signal_connect_after(G_OBJECT(buffer), "begin-user-action", + G_CALLBACK(cb_begin_user_action), NULL); + g_signal_connect(G_OBJECT(buffer), "end-user-action", + G_CALLBACK(cb_end_user_action), NULL); + cb_end_user_action(buffer); + + ui_tmp = g_malloc(sizeof(UndoInfo)); + undo_gstr = g_string_new(""); + + undo_clear_all(buffer); +} + +void undo_set_sequency(gboolean seq) +{ + if (g_list_length(undo_list)) + ((UndoInfo *)g_list_last(undo_list)->data)->seq = seq; +DV(g_print("\n", seq)); +} + +void undo_set_sequency_reserve(void) +{ + seq_reserve = TRUE; +} + +static void undo_flush_temporal_buffer(GtkTextBuffer *buffer) +{ + if (undo_gstr->len) { + undo_append_undo_info(buffer, ui_tmp->command, + ui_tmp->start, ui_tmp->end, g_strdup(undo_gstr->str)); + undo_gstr = g_string_erase(undo_gstr, 0, -1); + } +} + +gboolean undo_undo_real(GtkTextBuffer *buffer) +{ + GtkTextIter start_iter, end_iter; + UndoInfo *ui; + + undo_flush_temporal_buffer(buffer); + if (g_list_length(undo_list)) { +// undo_block_signal(buffer); + ui = g_list_last(undo_list)->data; + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, ui->start); + switch (ui->command) { + case INS: + gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, ui->end); + gtk_text_buffer_delete(buffer, &start_iter, &end_iter); + break; + default: + gtk_text_buffer_insert(buffer, &start_iter, ui->str, -1); + } + redo_list = g_list_append(redo_list, ui); + undo_list = g_list_delete_link(undo_list, g_list_last(undo_list)); +DV(g_print("cb_edit_undo: undo left = %d, redo left = %d\n", +g_list_length(undo_list), g_list_length(redo_list))); +// undo_unblock_signal(buffer); + if (g_list_length(undo_list)) { + if (((UndoInfo *)g_list_last(undo_list)->data)->seq) + return TRUE; + } else + gtk_widget_set_sensitive(undo_w, FALSE); + gtk_widget_set_sensitive(redo_w, TRUE); + if (ui->command == DEL) + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, ui->start); + gtk_text_buffer_place_cursor(buffer, &start_iter); + scroll_to_cursor(buffer, 0.05); + } + undo_check_modified_step(buffer); + return FALSE; +} + +gboolean undo_redo_real(GtkTextBuffer *buffer) +{ + GtkTextIter start_iter, end_iter; + UndoInfo *ri; + + if (g_list_length(redo_list)) { +// undo_block_signal(buffer); + ri = g_list_last(redo_list)->data; + gtk_text_buffer_get_iter_at_offset(buffer, &start_iter, ri->start); + switch (ri->command) { + case INS: + gtk_text_buffer_insert(buffer, &start_iter, ri->str, -1); + break; + default: + gtk_text_buffer_get_iter_at_offset(buffer, &end_iter, ri->end); + gtk_text_buffer_delete(buffer, &start_iter, &end_iter); + } + undo_list = g_list_append(undo_list, ri); + redo_list = g_list_delete_link(redo_list, g_list_last(redo_list)); +DV(g_print("cb_edit_redo: undo left = %d, redo left = %d\n", +g_list_length(undo_list), g_list_length(redo_list))); +// undo_unblock_signal(buffer); + if (ri->seq) { + undo_set_sequency(TRUE); + return TRUE; + } + if (!g_list_length(redo_list)) + gtk_widget_set_sensitive(redo_w, FALSE); + gtk_widget_set_sensitive(undo_w, TRUE); + gtk_text_buffer_place_cursor(buffer, &start_iter); + scroll_to_cursor(buffer, 0.05); + } + undo_check_modified_step(buffer); + return FALSE; +} + +void undo_undo(GtkTextBuffer *buffer) +{ + while (undo_undo_real(buffer)) {}; +} + +void undo_redo(GtkTextBuffer *buffer) +{ + while (undo_redo_real(buffer)) {}; +} diff --git a/src/undo.h b/src/undo.h new file mode 100644 index 0000000..831b88d --- /dev/null +++ b/src/undo.h @@ -0,0 +1,31 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _UNDO_H +#define _UNDO_H + +void undo_reset_modified_step(GtkTextBuffer *buffer); +void undo_clear_all(GtkTextBuffer *buffer); +void undo_init(GtkWidget *view, GtkWidget *undo_button, GtkWidget *redo_button); +void undo_set_sequency(gboolean seq); +void undo_set_sequency_reserve(void); +void undo_undo(GtkTextBuffer *buffer); +void undo_redo(GtkTextBuffer *buffer); + +#endif /* _UNDO_H */ diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..cd25800 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,102 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include + +#define STDIN_DELAY_MICROSECONDS 100000 +#define GEDIT_STDIN_BUFSIZE 1024 + +// imported from gedit +#ifdef G_OS_UNIX +gchar *gedit_utils_get_stdin (void) +{ + GString * file_contents; + gchar *tmp_buf = NULL; + guint buffer_length; +// GnomeVFSResult res; + fd_set rfds; + struct timeval tv; + + FD_ZERO (&rfds); + FD_SET (0, &rfds); + + // wait for 1/4 of a second + tv.tv_sec = 0; + tv.tv_usec = STDIN_DELAY_MICROSECONDS; + + if (select (1, &rfds, NULL, NULL, &tv) != 1) + return NULL; + + tmp_buf = g_new0 (gchar, GEDIT_STDIN_BUFSIZE + 1); + g_return_val_if_fail (tmp_buf != NULL, FALSE); + + file_contents = g_string_new (NULL); + + while (feof (stdin) == 0) + { + buffer_length = fread (tmp_buf, 1, GEDIT_STDIN_BUFSIZE, stdin); + tmp_buf [buffer_length] = '\0'; + g_string_append (file_contents, tmp_buf); + + if (ferror (stdin) != 0) + { +// res = gnome_vfs_result_from_errno (); + + g_free (tmp_buf); + g_string_free (file_contents, TRUE); + return NULL; + } + } + + fclose (stdin); + + return g_string_free (file_contents, FALSE); +} +#endif + +GtkWidget *create_button_with_stock_image(const gchar *text, const gchar *stock_id) +{ + GtkWidget *button; + GtkWidget *hbox; + GtkWidget *image; + GtkWidget *label; + GtkWidget *align; + + hbox = gtk_hbox_new(FALSE, 2); + + image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_BUTTON); + gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0); + + label = gtk_label_new_with_mnemonic(text); + gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 0); + + align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + gtk_container_add(GTK_CONTAINER(align), hbox); + + button = gtk_button_new(); + gtk_container_add(GTK_CONTAINER(button), align); + gtk_widget_show_all(button); + + return button; +} diff --git a/src/utils.h b/src/utils.h new file mode 100644 index 0000000..864200a --- /dev/null +++ b/src/utils.h @@ -0,0 +1,28 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _UTILS_H +#define _UTILS_H + +#ifdef G_OS_UNIX +gchar *gedit_utils_get_stdin(void); +#endif +GtkWidget *create_button_with_stock_image(const gchar *text, const gchar *stock_id); + +#endif /* _UTILS_H */ diff --git a/src/view.c b/src/view.c new file mode 100644 index 0000000..4978145 --- /dev/null +++ b/src/view.c @@ -0,0 +1,371 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +#include +#include + +static gint keyval; +static gboolean view_scroll_flag = FALSE; + +gint get_current_keyval(void) +{ + return keyval; +} + +void clear_current_keyval(void) +{ + keyval = 0; +} +/* +gboolean scroll_to_cursor(GtkTextBuffer *buffer, gdouble within_margin) +{ + GtkTextIter iter; + +// gtk_text_buffer_get_start_iter(buffer, &iter); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, + gtk_text_buffer_get_insert(buffer)); + return gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(pub->mw->view), + &iter, within_margin, FALSE, 0.5, 0.5); +} +*/ +void scroll_to_cursor(GtkTextBuffer *buffer, gdouble within_margin) +{ + gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(pub->mw->view), + gtk_text_buffer_get_insert(buffer), + within_margin, FALSE, 0, 0); +} + +gint check_text_modification(void) +{ + gchar *basename, *str; + gint res; + + if (gtk_text_buffer_get_modified(pub->mw->buffer)) { + basename = get_file_basename(pub->fi->filename, FALSE); + str = g_strdup_printf(_("Save changes to '%s'?"), basename); + g_free(basename); + res = run_dialog_message_question(pub->mw->window, str); + g_free(str); + switch (res) { + case GTK_RESPONSE_NO: + return 0; + case GTK_RESPONSE_YES: + if (!on_file_save()) + return 0; + } + return -1; + } + + return 0; +} + +#if 0 +static gint check_preedit(GtkWidget *view) +{ + gint cursor_pos; + + gtk_im_context_get_preedit_string( + GTK_TEXT_VIEW(view)->im_context, NULL, NULL, &cursor_pos); + + return cursor_pos; +} +#endif + +static gboolean check_selection_bound(GtkTextBuffer *buffer) +{ + GtkTextIter start, end; + gchar *str, *p; + + if (gtk_text_buffer_get_selection_bounds(buffer, &start, &end)) { + str = gtk_text_iter_get_text(&start, &end); + p = strchr(str, '\n'); + g_free(str); + if (p) + return TRUE; + } + + return FALSE; +} + +static gboolean cb_key_press_event(GtkWidget *view, GdkEventKey *event) +{ + GtkTextBuffer *buffer; + GtkTextMark *mark; + GtkTextIter iter; + GdkRectangle prev_rect; + +#if 0 + if (check_preedit(view)) + return FALSE; +#endif + + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + mark = gtk_text_buffer_get_insert(buffer); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); + gtk_text_view_get_iter_location(GTK_TEXT_VIEW(view), &iter, &prev_rect); + + keyval = 0; +//g_print("key-press-event: 0x%X\n", event->keyval); + switch (event->keyval) { + case GDK_Up: // Try [Shift]+[Down]. it works bad. + case GDK_Down: + if (gtk_text_view_move_mark_onscreen(GTK_TEXT_VIEW(view), mark)) { + GdkRectangle iter_rect; + gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); + gtk_text_view_get_iter_location(GTK_TEXT_VIEW(view), &iter, &iter_rect); + if (iter_rect.y < prev_rect.y) { + gtk_text_view_get_line_at_y(GTK_TEXT_VIEW(view), &iter, + iter_rect.y - iter_rect.height, NULL); + gtk_text_buffer_move_mark(buffer, mark, &iter); + } + if (!(event->state & GDK_SHIFT_MASK)) { + gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); + gtk_text_buffer_place_cursor(buffer, &iter); + } + return TRUE; + } + break; + case GDK_Page_Up: + case GDK_Page_Down: + if (gtk_text_view_move_mark_onscreen(GTK_TEXT_VIEW(view), mark)) { + GdkRectangle visible_rect, iter_rect; + gint pos = 0; + gtk_text_view_get_visible_rect(GTK_TEXT_VIEW(view), &visible_rect); + gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); + gtk_text_view_get_iter_location(GTK_TEXT_VIEW(view), &iter, &iter_rect); + if (iter_rect.y < prev_rect.y) + pos = 1; + if (event->keyval == GDK_Page_Up) + gtk_text_view_get_line_at_y(GTK_TEXT_VIEW(view), &iter, + iter_rect.y - visible_rect.height + iter_rect.height, NULL); + else + gtk_text_view_get_line_at_y(GTK_TEXT_VIEW(view), &iter, + iter_rect.y + visible_rect.height - iter_rect.height, NULL); + gtk_text_buffer_move_mark(buffer, mark, &iter); + gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(view), + mark, 0, TRUE, 0, pos); + if (!(event->state & GDK_SHIFT_MASK)) { + gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark); + gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)), &iter); + } + return TRUE; + } + break; + case GDK_Return: + if (indent_get_state()) { + indent_real(view); + return TRUE; + } + break; + case GDK_Tab: + if (event->state & GDK_CONTROL_MASK) { + indent_toggle_tab_width(view); + return TRUE; + } + case GDK_ISO_Left_Tab: + if (event->state & GDK_SHIFT_MASK) + indent_multi_line_unindent(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view))); + else if (!check_selection_bound(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)))) + break; + else + indent_multi_line_indent(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view))); + return TRUE; + } + keyval = event->keyval; + if ((event->state & GDK_CONTROL_MASK) + || (event->keyval == GDK_Control_L) + || (event->keyval == GDK_Control_R)) { + keyval = keyval + 0x10000; +//g_print("=================================================\n"); + } + + return FALSE; +} + +static gboolean cb_button_press_event(GtkWidget *view, GdkEventButton *event) +{ + GtkTextIter iter, start, end; + gint x, y; + + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + + if ((event->button) == 3 && (event->type == GDK_BUTTON_PRESS)) { + gtk_text_view_window_to_buffer_coords(GTK_TEXT_VIEW(view), + gtk_text_view_get_window_type(GTK_TEXT_VIEW(view), event->window), + (gint)event->x, (gint)event->y, &x, &y); + gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(view), &iter, x, y); + gtk_text_buffer_get_selection_bounds(buffer, &start, &end); + if (!gtk_text_iter_in_range(&iter, &start, &end)) + gtk_text_buffer_place_cursor(buffer, &iter); + } + + return FALSE; +} + +static void cb_modified_changed(GtkTextBuffer *buffer, GtkWidget *view) +{ + gboolean modified_flag, exist_flag = FALSE; + gchar *filename, *title; + + modified_flag = gtk_text_buffer_get_modified(buffer); + filename = get_file_basename(pub->fi->filename, TRUE); + if (modified_flag) + title = g_strconcat("*", filename, NULL); + else { + title = g_strdup(filename); + undo_reset_modified_step(buffer); + } + g_free(filename); + gtk_window_set_title(GTK_WINDOW(gtk_widget_get_toplevel(view)), title); + g_free(title); + if (pub->fi->filename) + exist_flag = g_file_test( + g_filename_to_utf8(pub->fi->filename, -1, NULL, NULL, NULL), + G_FILE_TEST_EXISTS); + menu_sensitivity_from_modified_flag(modified_flag || !exist_flag); +} + +void force_call_cb_modified_changed(GtkWidget *view) +{ + cb_modified_changed(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)), view); +} + +void force_block_cb_modified_changed(GtkWidget *view) +{ + g_signal_handlers_block_by_func(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view))), + G_CALLBACK(cb_modified_changed), view); +} + +void force_unblock_cb_modified_changed(GtkWidget *view) +{ + g_signal_handlers_unblock_by_func(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view))), + G_CALLBACK(cb_modified_changed), view); +} +/* +static void cb_mark_set(GtkTextBuffer *buffer, GtkTextIter *iter, GtkTextMark *mark) +{ + if (gtk_text_mark_get_name(mark)) +{g_print(gtk_text_mark_get_name(mark)); +}else g_print("|"); + menu_sensitivity_from_selection_bound( + gtk_text_buffer_get_selection_bounds(buffer, NULL, NULL)); +} +*/ +static void cb_mark_changed(GtkTextBuffer *buffer) +{ + menu_sensitivity_from_selection_bound( + gtk_text_buffer_get_selection_bounds(buffer, NULL, NULL)); +} + +static void cb_focus_event(GtkWidget *view, GdkEventFocus *event) +{ + if (!gtk_text_buffer_get_selection_bounds(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)), NULL, NULL)) + gtk_text_mark_set_visible( + gtk_text_buffer_get_selection_bound( + gtk_text_view_get_buffer(GTK_TEXT_VIEW(view))), !event->in); + if (event->in) + menu_sensitivity_from_clipboard(); +} +/* +static void cb_begin_user_action(GtkTextBuffer *buffer, GtkWidget *view) +{ + g_signal_handlers_unblock_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_modified_changed), view); +// g_print("begin-user-action\n"); +} + +static void cb_end_user_action(GtkTextBuffer *buffer, GtkWidget *view) +{ + g_signal_handlers_block_by_func(G_OBJECT(buffer), + G_CALLBACK(cb_modified_changed), view); + gtk_text_view_scroll_mark_onscreen( // TODO: require? + GTK_TEXT_VIEW(view), + gtk_text_buffer_get_insert(buffer)); +// g_print("end-user-action\n"); +} +*//* +static void cb_something(GtkTextBuffer *buffer, gchar *data) +{ + g_print("%s\n", data); +} +*/ +void set_view_scroll(void) +{ + view_scroll_flag = TRUE; +} + +static void cb_end_user_action(GtkTextBuffer *buffer, GtkWidget *view) +{ + if (view_scroll_flag) { + gtk_text_view_scroll_mark_onscreen( // TODO: require? + GTK_TEXT_VIEW(view), + gtk_text_buffer_get_insert(buffer)); + view_scroll_flag = FALSE; + } +} + +GtkWidget *create_text_view(void) +{ + GtkWidget *view; + GtkTextBuffer *buffer; + + view = gtk_text_view_new(); + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + +// gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 1); +// gtk_text_view_set_right_margin(GTK_TEXT_VIEW(view), 1); + + g_signal_connect(G_OBJECT(view), "key-press-event", + G_CALLBACK(cb_key_press_event), NULL); + g_signal_connect(G_OBJECT(view), "button-press-event", + G_CALLBACK(cb_button_press_event), NULL); + g_signal_connect_after(G_OBJECT(view), "cut-clipboard", + G_CALLBACK(menu_sensitivity_from_clipboard), NULL); + g_signal_connect_after(G_OBJECT(view), "copy-clipboard", + G_CALLBACK(menu_sensitivity_from_clipboard), NULL); + g_signal_connect_after(G_OBJECT(view), "paste-clipboard", + G_CALLBACK(set_view_scroll), + gtk_text_buffer_get_insert(buffer)); +/* g_signal_connect_after(G_OBJECT(view), "paste-clipboard", + G_CALLBACK(gtk_text_view_scroll_mark_onscreen), + gtk_text_buffer_get_insert(buffer));*/ + g_signal_connect_after(G_OBJECT(view), "focus-in-event", + G_CALLBACK(cb_focus_event), NULL); + g_signal_connect_after(G_OBJECT(view), "focus-out-event", + G_CALLBACK(cb_focus_event), NULL); + + g_signal_connect(G_OBJECT(buffer), "mark-set", + G_CALLBACK(cb_mark_changed), NULL); + g_signal_connect(G_OBJECT(buffer), "mark-deleted", + G_CALLBACK(cb_mark_changed), NULL); + g_signal_connect(G_OBJECT(buffer), "modified-changed", + G_CALLBACK(cb_modified_changed), view); + g_signal_connect_after(G_OBJECT(buffer), "end-user-action", + G_CALLBACK(cb_end_user_action), view); +/* g_signal_connect(G_OBJECT(buffer), "begin-user-action", + G_CALLBACK(cb_begin_user_action), view); + g_signal_connect_after(G_OBJECT(buffer), "end-user-action", + G_CALLBACK(cb_end_user_action), view); + cb_end_user_action(buffer, view); +*/ + linenum_init(view); + + return view; +} diff --git a/src/view.h b/src/view.h new file mode 100644 index 0000000..57fd9e3 --- /dev/null +++ b/src/view.h @@ -0,0 +1,33 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _VIEW_H +#define _VIEW_H + +gint get_current_keyval(void); +void clear_current_keyval(void); +void scroll_to_cursor(GtkTextBuffer *buffer, gdouble within_margin); +void force_call_cb_modified_changed(GtkWidget *view); +void force_block_cb_modified_changed(GtkWidget *view); +void force_unblock_cb_modified_changed(GtkWidget *view); +void set_view_scroll(void); +gint check_text_modification(void); +GtkWidget *create_text_view(void); + +#endif /* _VIEW_H */ diff --git a/src/window.c b/src/window.c new file mode 100644 index 0000000..d64bce7 --- /dev/null +++ b/src/window.c @@ -0,0 +1,89 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "l3afpad.h" +/* +static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view) +{ + gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(view)); +} +*/ +MainWin *create_main_window(void) +{ + GtkWidget *window; + GtkWidget *vbox; + GtkWidget *menubar; + GtkWidget *sw; + GtkWidget *view; +// gint size; +// GtkAdjustment *hadj, *vadj; + + MainWin *mw = g_malloc(sizeof(MainWin)); + + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); +// gtk_window_set_title(GTK_WINDOW(window), PACKAGE_NAME); + gtk_widget_set_name(window, PACKAGE_NAME); + + gtk_window_set_default_icon_name(PACKAGE); + + g_signal_connect(G_OBJECT(window), "delete-event", + G_CALLBACK(on_file_quit), NULL); + g_signal_connect_after(G_OBJECT(window), "delete-event", + G_CALLBACK(gtk_widget_hide_on_delete), NULL); + + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(window), vbox); + + menubar = create_menu_bar(window); + gtk_box_pack_start(GTK_BOX(vbox), gtk_item_factory_get_widget(GTK_UI_MANAGER(menubar), "/M"), FALSE, FALSE, 0); + + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), + GTK_SHADOW_IN); + gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); + + view = create_text_view(); + gtk_container_add(GTK_CONTAINER(sw), view); +/* + hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(sw)); + vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)); + g_signal_connect_after(G_OBJECT(hadj), "value-changed", + G_CALLBACK(cb_scroll_event), view); + g_signal_connect_after(G_OBJECT(vadj), "value-changed", + G_CALLBACK(cb_scroll_event), view); +*/ + mw->window = window; + mw->menubar = menubar; + mw->view = view; + mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); + + return mw; +} + +void set_main_window_title(void) +{ + gchar *title; + + title = get_file_basename(pub->fi->filename, TRUE); + gtk_window_set_title(GTK_WINDOW(pub->mw->window), title); + g_free(title); +} + diff --git a/src/window.h b/src/window.h new file mode 100644 index 0000000..39224c2 --- /dev/null +++ b/src/window.h @@ -0,0 +1,33 @@ +/* + * L3afpad - GTK+ based simple text editor + * Copyright (C) 2004-2005 Tarot Osuji + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _WINDOW_H +#define _WINDOW_H + +typedef struct { + GtkWidget *window; + GtkWidget *menubar; + GtkWidget *view; + GtkTextBuffer *buffer; +} MainWin; + +MainWin *create_main_window(void); +void set_main_window_title(void); + +#endif /* _WINDOW_H */