pax_global_header00006660000000000000000000000064120652022240014505gustar00rootroot0000000000000052 comment=06eccce12f5630029d913ac8ee999ec3aed62b7f slrn-1.0.1/000077500000000000000000000000001206520222400124625ustar00rootroot00000000000000slrn-1.0.1/COPYING000066400000000000000000000431271206520222400135240ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. slrn-1.0.1/COPYRIGHT000066400000000000000000000024521206520222400137600ustar00rootroot00000000000000 This file is part of SLRN. Copyright (c) 1994, 1999, 2007-2012 John E. Davis For parts of it: Copyright (c) 2001-2006 Thomas Schultz For the parts in src/snprintf.c that are based on code from glib 1.2.8: Copyright (C) 1995-1998 Peter Mattis, Spencer Kimball and Josh MacDonald Modified by the GLib Team and others 1997-1999. See the AUTHORS file for a list of people on the GLib Team. See the ChangeLog files for a list of changes. These files are distributed with GLib at ftp://ftp.gtk.org/pub/gtk/. All the code in this package is distributed under the following conditions: 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. slrn-1.0.1/INSTALL.txt000066400000000000000000000015521206520222400143340ustar00rootroot00000000000000Compiling slrn from source requires a C compiler that supports C89 or later constructs. Most C compilers that are currently in use provide such support. If you do not have such a C compiler, then download and install the GNU compiler gcc from . slrn makes extensive use of version 2.X of the S-Lang programmer's library. You will need to have this library installed before you can build slrn. See for links to the library. This version of slrn has been tested on Unix and Windows systems. The code contains support for OS/2 and VMS but will most likely require additional tweaks to get it running. While it may compile without difficulty on Mac OS X, it has not been tested on that platform. To build slrn on a Unix platform (including cygwin), see doc/INSTALL.unix. For a windows platform, see doc/INSTALL.w32. slrn-1.0.1/README000066400000000000000000000070271206520222400133500ustar00rootroot00000000000000slrn is a Usenet client that supports both the Network News Transfer Protocol (NNTP) and a news spool on the local filesystem. Extensive information about slrn may be found on its home page at . Installation instructions may be found in the INSTALL file. The rest of this file provides an overview of the documentation that comes with slrn and includes pointers to additional resources. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Files in this directory = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = COPYING The "GNU GENERAL PUBLIC LICENSE" COPYRIGHT Copyright note. README This File. changes.txt Lists the changes from version to version. INSTALL.txt Installation instructions. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Files in doc/ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = FAQ Frequently Asked Questions about slrn / slrnpull. FIRST_STEPS How to setup slrn for the first time. INSTALL.os2 How to install slrn on OS/2. INSTALL.unix How to install slrn on Unix-like systems. INSTALL.vms How to install slrn on VMS. INSTALL.w32 How to install slrn on Windows. README.GroupLens Read this if you want support for GroupLens. README.SSL Read this if you want support for secure servers (SSL). README.macros Some notes on how to expand slrn using the powerful S-Lang macro language README.multiuser How to set up slrn for more than one user. THANKS Thanks to people involved in slrn's development. VMS-SLRN.HLP Help file for use on VMS systems. help.txt Source file of slrn's online help. manual.txt The slrn reference manual, explaining all command line options, environment variables, config commands and variables, as well as the interactive functions. pc-keys.txt A list of key sequences for OS/2 and Windows. score.sl A mode for editing score files with the editor jed. score.txt An explanation of slrn's scoring feature. slrn-doc.html Pointer to the online version of slrn's documentation. slrn.1 slrn's manual page for Unix-like systems. slrn.rc Documented sample slrnrc file that can be used as a template for your personal configuration. slrnfuns.txt A list of slrn's intrinsic functions and hooks that can be used from S-Lang macros. tm/ Source files of the documentation in slrnfuns.txt = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Files in doc/slrnpull/ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = README General information and usage of slrnpull. README.offline How to fetch article headers first and bodies only on request. SETUP How to install and configure slrnpull. score Sample scorefile setgid.txt Information about the "setgid" feature in slrnpull. slrn.rc Minimal sample slrnrc file for use with slrnpull. slrnpull.conf Sample configuration file for slrnpull. slrnpull.sh Sample shell script to run slrnpull from cron. slrn-1.0.1/autoconf/000077500000000000000000000000001206520222400143005ustar00rootroot00000000000000slrn-1.0.1/autoconf/Makefile000066400000000000000000000004731206520222400157440ustar00rootroot00000000000000../configure: aclocal.m4 configure.ac /bin/rm -rf autom4te.cache autoconf && mv ./configure .. update: config.sub config.guess config.guess: /usr/share/misc/config.guess /bin/cp -f /usr/share/misc/config.guess config.guess config.sub: /usr/share/misc/config.sub /bin/cp -f /usr/share/misc/config.sub config.sub slrn-1.0.1/autoconf/Makefile.am000066400000000000000000000003201206520222400163270ustar00rootroot00000000000000EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 stdint_h.m4 uintmax_t.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 slrn-1.0.1/autoconf/Makefile.in000066400000000000000000000014461206520222400163520ustar00rootroot00000000000000# -*- sh -*- #This is a UNIX-only makefile. @SET_MAKE@ all: makefiles cd src; $(MAKE) all uudecode: cd src; $(MAKE) uudecode slrnpull: slrnpull_exe slrnpull_exe: makefiles cd src; $(MAKE) slrnpull Makefile: configure autoconf/Makefile.in @echo "Makefile is older than the configure script". @echo "Please re-run the configure script." @exit 1 src/Makefile: configure src/Makefile.in src/config.hin @echo "src/Makefile is older than its dependencies". @echo "Please re-run the configure script." @exit 1 makefiles: Makefile src/Makefile clean: /bin/rm -f *~ doc/*~ macros/*~ cd src; $(MAKE) clean # distclean: cd src; $(MAKE) distclean /bin/rm -f *~ Makefile config.status config.log config.cache files.pck # install: cd src; $(MAKE) install # .PHONY: all install clean distclean makefiles slrn-1.0.1/autoconf/aclocal.m4000066400000000000000000000642561206520222400161550ustar00rootroot00000000000000dnl# -*- mode: sh; mode: fold -*- dnl# 0.2.5-1: Updated using autoupdate dnl# 0.2.5-0: M_LIB output variable created for haiku support (Scott McCreary) dnl# 0.2.4-0: Added optional 3rd argument to JD_WITH_LIBRARY for a default path dnl# 0.2.3-2: X was missing in a "test" statement (Joerg Sommer) dnl# 0.2.3-1: AC_AIX needs to be called before running the compiler (Miroslav Lichvar) dnl# 0.2.3: rewrote JD_CHECK_FOR_LIBRARY to loop over include/lib pairs dnl# 0.2.2-1: JD_WITH_LIBRARY bug-fix dnl# 0.2.2: Use ncurses5-config to search for terminfo dirs. dnl# 0.2.1: Add .dll.a to list of extensions to when searching for libs (cygwin) dnl# 0.2.0: Added install target name and more fixes for cygwin dnl# 0.1.12: Improved support for cygwin dnl# 0.1.11: Fixed elf linking on freebsd (Renato Botelho (garga at freebsd, org) dnl# Version 0.1.10: rpath support for netbsd dnl# Version 0.1.9: When searching for libs, use dylib on darwin dnl# Version 0.1.8: Add rpath support for OpenBSD dnl# Version 0.1.7: removed "-K pic" from IRIX compiler lines dnl# Version 0.1.6: Added cygwin module support dnl# Version 0.1.5: Added gcc version-script support. AC_DEFUN(JD_INIT, dnl#{{{ [ #These variable are initialized by JD init function CONFIG_DIR=`pwd` cd $srcdir if test "`pwd`" != "$CONFIG_DIR" then AC_MSG_ERROR("This software does not support configuring from another directory. See the INSTALL file") fi dnl# if test "X$PWD" != "X" dnl# then dnl# CONFIG_DIR="$PWD" dnl# fi AC_SUBST(CONFIG_DIR)dnl # Note: these will differ if one is a symbolic link if test -f /usr/bin/dirname; then JD_Above_Dir=`dirname $CONFIG_DIR` else # system is a loser JD_Above_Dir=`cd ..;pwd` fi JD_Above_Dir2=`cd ..;pwd` ]) dnl#}}} dnl# This function expand the "prefix variables. For example, it will expand dnl# values such as ${exec_prefix}/foo when ${exec_prefix} itself has a dnl# of ${prefix}. This function produces the shell variables: dnl# jd_prefix_libdir, jd_prefix_incdir AC_DEFUN(JD_EXPAND_PREFIX, dnl#{{{ [ if test "X$jd_prefix" = "X" then jd_prefix=$ac_default_prefix if test "X$prefix" != "XNONE" then jd_prefix="$prefix" fi jd_exec_prefix="$jd_prefix" if test "X$exec_prefix" != "XNONE" then jd_exec_prefix="$exec_prefix" fi dnl#Unfortunately, exec_prefix may have a value like ${prefix}, etc. dnl#Let the shell expand those. Yuk. eval `sh <>)dnl define(<<$2>>, translit($1, [a-z], [A-Z]))dnl changequote([, ])dnl ]) #}}} AC_DEFUN(JD_SIMPLE_LIB_DIR, dnl#{{{ [ JD_UPPERCASE($1,JD_UP_NAME) JD_UP_NAME[]_LIB_DIR=$JD_Above_Dir/$1/libsrc/"$ARCH"objs JD_UP_NAME[]_INCLUDE=$JD_Above_Dir/$1/libsrc if test ! -d "[$]JD_UP_NAME[]_INCLUDE" then JD_UP_NAME[]_LIB_DIR=$JD_Above_Dir/$1/src/"$ARCH"objs JD_UP_NAME[]_INCLUDE=$JD_Above_Dir/$1/src if test ! -d "[$]JD_UP_NAME[]_INCLUDE" then echo "" echo WARNING------Unable to find the JD_UP_NAME directory echo You may have to edit $CONFIG_DIR/src/Makefile. echo "" fi fi AC_SUBST(JD_UP_NAME[]_LIB_DIR)dnl AC_SUBST(JD_UP_NAME[]_INCLUDE)dnl undefine([JD_UP_NAME])dnl ]) dnl#}}} AC_DEFUN(JD_FIND_GENERIC, dnl#{{{ [ AC_REQUIRE([JD_EXPAND_PREFIX])dnl changequote(<<, >>)dnl define(<>, translit($1, [a-z], [A-Z]))dnl changequote([, ])dnl # Look for the JD_UP_NAME package #JD_UP_NAME[]_INCLUDE="" #JD_UP_NAME[]_LIB_DIR="" # This list consists of "include,lib include,lib ..." JD_Search_Dirs="$JD_Above_Dir2/$1/libsrc,$JD_Above_Dir2/$1/libsrc/"$ARCH"objs \ $JD_Above_Dir/$1/libsrc,$JD_Above_Dir/$1/libsrc/"$ARCH"objs \ $JD_Above_Dir2/$1/src,$JD_Above_Dir2/$1/src/"$ARCH"objs \ $JD_Above_Dir/$1/src,$JD_Above_Dir/$1/src/"$ARCH"objs" JD_Search_Dirs="$JD_Search_Dirs \ $jd_prefix_incdir,$jd_prefix_libdir \ $HOME/include,$HOME/lib" if test -n "$ARCH" then JD_Search_Dirs="$JD_Search_Dirs $HOME/include,$HOME/$ARCH/lib" JD_Search_Dirs="$JD_Search_Dirs $HOME/include,$HOME/sys/$ARCH/lib" fi # Now add the standard system includes. The reason for doing this is that # the other directories may have a better chance of containing a more recent # version. JD_Search_Dirs="$JD_Search_Dirs \ /usr/local/include,/usr/local/lib \ /usr/include,/usr/lib \ /usr/include/$1,/usr/lib \ /usr/include/$1,/usr/lib/$1" echo looking for the JD_UP_NAME library for include_and_lib in $JD_Search_Dirs do # Yuk. Is there a better way to set these variables?? generic_include=`echo $include_and_lib | tr ',' ' ' | awk '{print [$]1}'` generic_lib=`echo $include_and_lib | tr ',' ' ' | awk '{print [$]2}'` echo Looking for $1.h in $generic_include echo and lib$1.a in $generic_lib if test -r $generic_include/$1.h && test -r $generic_lib/lib$1.a then echo Found it. JD_UP_NAME[]_LIB_DIR="$generic_lib" JD_UP_NAME[]_INCLUDE="$generic_include" break else if test -r $generic_include/$1.h && test -r $generic_lib/lib$1.so then echo Found it. JD_UP_NAME[]_LIB_DIR="$generic_lib" JD_UP_NAME[]_INCLUDE="$generic_include" break fi fi done if test -n "[$]JD_UP_NAME[]_LIB_DIR" then jd_have_$1="yes" else echo Unable to find the $JD_UP_NAME library. echo You may have to edit $CONFIG_DIR/src/Makefile. JD_UP_NAME[]_INCLUDE=$JD_Above_Dir/$1/src JD_UP_NAME[]_LIB_DIR=$JD_Above_Dir/$1/src/"$ARCH"objs jd_have_$1="no" fi JD_UP_NAME[]_INC="-I[$]JD_UP_NAME[]_INCLUDE" JD_UP_NAME[]_LIB="-L[$]JD_UP_NAME[]_LIB_DIR" JD_SET_RPATH([$]JD_UP_NAME[]_LIB_DIR) dnl if test "X$GCC" = Xyes dnl then dnl RPATH_[]JD_UP_NAME="-Wl,-R[$]JD_UP_NAME[]_LIB_DIR" dnl else dnl RPATH_[]JD_UP_NAME="-R[$]JD_UP_NAME[]_LIB_DIR" dnl fi # gcc under solaris is often not installed correctly. Avoid specifying # -I/usr/include. if test "[$]JD_UP_NAME[]_INC" = "-I/usr/include" then JD_UP_NAME[]_INC="" fi if test "[$]JD_UP_NAME[]_LIB" = "-L/usr/lib" then JD_UP_NAME[]_LIB="" RPATH_[]JD_UP_NAME="" fi AC_SUBST(JD_UP_NAME[]_LIB)dnl AC_SUBST(JD_UP_NAME[]_INC)dnl AC_SUBST(JD_UP_NAME[]_LIB_DIR)dnl AC_SUBST(JD_UP_NAME[]_INCLUDE)dnl dnl AC_SUBST(RPATH_[]JD_UP_NAME)dnl undefine([JD_UP_NAME])dnl ]) dnl#}}} AC_DEFUN(JD_FIND_SLANG, dnl#{{{ [ JD_FIND_GENERIC(slang) ]) dnl#}}} AC_DEFUN(JD_GCC_WARNINGS, dnl#{{{ [ AC_ARG_ENABLE(warnings, [ --enable-warnings turn on GCC compiler warnings], [gcc_warnings=$enableval]) if test -n "$GCC" then #CFLAGS="$CFLAGS -fno-strength-reduce" if test -n "$gcc_warnings" then CFLAGS="$CFLAGS -Wall -W -pedantic -Winline -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith -Wcast-align -Wshadow -Wstrict-prototypes" # Now trim excess whitespace CFLAGS=`echo $CFLAGS` fi fi ]) dnl#}}} IEEE_CFLAGS="" AC_DEFUN(JD_IEEE_CFLAGS, dnl#{{{ [ case "$host_cpu" in *alpha* ) if test "$GCC" = yes then IEEE_CFLAGS="-mieee" else IEEE_CFLAGS="-ieee_with_no_inexact" fi ;; * ) IEEE_CFLAGS="" esac ]) dnl#}}} AC_DEFUN(JD_CREATE_ORULE, dnl#{{{ [ PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES \$(OBJDIR)/$1.o : \$(SRCDIR)/$1.c \$(DOT_O_DEPS) \$("$1"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("$1"_C_FLAGS) \$(SRCDIR)/$1.c " ]) dnl#}}} AC_DEFUN(JD_CREATE_ELFORULE, dnl#{{{ [ PROGRAM_ELF_ORULES="$PROGRAM_ELF_ORULES \$(ELFDIR)/$1.o : \$(SRCDIR)/$1.c \$(DOT_O_DEPS) \$("$1"_O_DEP) cd \$(ELFDIR); \$(ELFCOMPILE_CMD) \$("$1"_C_FLAGS) \$(SRCDIR)/$1.c " ]) dnl#}}} AC_DEFUN(JD_CREATE_EXEC_RULE, dnl#{{{ [ PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES $1 : \$(OBJDIR)/$1 @echo $1 created in \$(OBJDIR) \$(OBJDIR)/$1 : \$(OBJDIR)/$1.o \$("$1"_DEPS) \$(EXECDEPS) \$(CC) -o \$(OBJDIR)/$1 \$(LDFLAGS) \$(OBJDIR)/$1.o \$("$1"_LIBS) \$(EXECLIBS) \$(OBJDIR)/$1.o : \$(SRCDIR)/$1.c \$(DOT_O_DEPS) \$("$1"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("$1"_INC) \$(EXECINC) \$(SRCDIR)/$1.c " ]) dnl#}}} AC_DEFUN(JD_CREATE_MODULE_ORULES, dnl#{{{ [ for program_module in $Program_Modules; do JD_CREATE_ORULE($program_module) JD_CREATE_ELFORULE($program_module) done ]) dnl#}}} AC_DEFUN(JD_GET_MODULES, dnl#{{{ [ PROGRAM_HFILES="" PROGRAM_OFILES="" PROGRAM_CFILES="" PROGRAM_OBJECTS="" PROGRAM_ELFOBJECTS="" PROGRAM_OBJECT_RULES="" PROGRAM_ELF_ORULES="" if test -z "$1" then Program_Modules="" else comment_re="^#" Program_Modules=`grep -v '$comment_re' $1 | awk '{print [$]1}'` Program_H_Modules=`grep -v '$comment_re' $1 | awk '{print [$]2}'` for program_module in $Program_H_Modules; do PROGRAM_HFILES="$PROGRAM_HFILES $program_module" done fi for program_module in $Program_Modules; do PROGRAM_OFILES="$PROGRAM_OFILES $program_module.o" PROGRAM_CFILES="$PROGRAM_CFILES $program_module.c" PROGRAM_OBJECTS="$PROGRAM_OBJECTS \$(OBJDIR)/$program_module.o" PROGRAM_ELFOBJECTS="$PROGRAM_ELFOBJECTS \$(ELFDIR)/$program_module.o" done dnl echo $PROGRAM_OFILES dnl echo $PROGRAM_HFILES AC_SUBST(PROGRAM_OFILES)dnl AC_SUBST(PROGRAM_CFILES)dnl AC_SUBST(PROGRAM_HFILES)dnl AC_SUBST(PROGRAM_OBJECTS)dnl AC_SUBST(PROGRAM_ELFOBJECTS)dnl ]) dnl#}}} AC_DEFUN(JD_APPEND_RULES, dnl#{{{ [ echo "$PROGRAM_OBJECT_RULES" >> $1 ]) dnl#}}} AC_DEFUN(JD_APPEND_ELFRULES, dnl#{{{ [ echo "$PROGRAM_ELF_ORULES" >> $1 ]) dnl#}}} AC_DEFUN(JD_CREATE_MODULE_EXEC_RULES, dnl#{{{ [ for program_module in $Program_Modules; do JD_CREATE_EXEC_RULE($program_module) done ]) dnl#}}} AC_DEFUN(JD_TERMCAP, dnl#{{{ [ AC_PATH_PROG(nc5config, ncurses5-config, no) if test "$nc5config" = "no" then AC_PATH_PROG(nc5config, ncurses5w-config, no) fi AC_MSG_CHECKING(for terminfo) if test "$nc5config" != "no" then MISC_TERMINFO_DIRS=`$nc5config --terminfo` else MISC_TERMINFO_DIRS="" fi JD_Terminfo_Dirs="$MISC_TERMINFO_DIRS \ /usr/lib/terminfo \ /usr/share/terminfo \ /usr/share/lib/terminfo \ /usr/local/lib/terminfo" TERMCAP=-ltermcap for terminfo_dir in $JD_Terminfo_Dirs do if test -d $terminfo_dir then AC_MSG_RESULT(yes) TERMCAP="" break fi done if test "$TERMCAP"; then AC_MSG_RESULT(no) AC_DEFINE(USE_TERMCAP) fi AC_SUBST(TERMCAP)dnl AC_SUBST(MISC_TERMINFO_DIRS)dnl ]) dnl#}}} AC_DEFUN(JD_ANSI_CC, dnl#{{{ [ AC_AIX AC_PROG_CC AC_PROG_CPP AC_PROG_GCC_TRADITIONAL AC_ISC_POSIX dnl #This stuff came from Yorick config script dnl dnl # HPUX needs special stuff dnl AC_EGREP_CPP(yes, [#ifdef hpux yes #endif ], [ AC_DEFINE(_HPUX_SOURCE) if test "$CC" = cc; then CC="cc -Ae"; fi ])dnl dnl dnl #Be sure we've found compiler that understands prototypes dnl AC_MSG_CHECKING(C compiler that understands ANSI prototypes) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ extern int silly (int);]])],[ AC_MSG_RESULT($CC looks ok. Good.)],[ AC_MSG_RESULT($CC is not a good enough compiler) AC_MSG_ERROR(Set env variable CC to your ANSI compiler and rerun configure.) ])dnl ])dnl dnl#}}} AC_DEFUN(JD_ELF_COMPILER, dnl#{{{ [ dnl #------------------------------------------------------------------------- dnl # Check for dynamic linker dnl #------------------------------------------------------------------------- DYNAMIC_LINK_LIB="" AC_CHECK_HEADER(dlfcn.h,[ AC_DEFINE(HAVE_DLFCN_H) AC_CHECK_LIB(dl,dlopen,[ DYNAMIC_LINK_LIB="-ldl" AC_DEFINE(HAVE_DLOPEN) ],[ AC_CHECK_FUNC(dlopen,AC_DEFINE(HAVE_DLOPEN)) if test "$ac_cv_func_dlopen" != yes then AC_MSG_WARN(cannot perform dynamic linking) fi ])]) AC_SUBST(DYNAMIC_LINK_LIB) if test "$GCC" = yes then if test X"$CFLAGS" = X then CFLAGS="-O2" fi fi dnl #Some defaults ELFLIB="lib\$(THIS_LIB).so" ELFLIB_MAJOR="\$(ELFLIB).\$(ELF_MAJOR_VERSION)" ELFLIB_MAJOR_MINOR="\$(ELFLIB_MAJOR).\$(ELF_MINOR_VERSION)" ELFLIB_MAJOR_MINOR_MICRO="\$(ELFLIB_MAJOR_MINOR).\$(ELF_MICRO_VERSION)" dnl# This specifies the target to use in the makefile to install the shared library INSTALL_ELFLIB_TARGET="install-elf-and-links" ELFLIB_BUILD_NAME="\$(ELFLIB_MAJOR_MINOR_MICRO)" INSTALL_MODULE="\$(INSTALL_DATA)" SLANG_DLL_CFLAGS="" M_LIB="-lm" case "$host_os" in *linux*|*gnu*|k*bsd*-gnu ) DYNAMIC_LINK_FLAGS="-Wl,-export-dynamic" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-O1 -Wl,--version-script,\$(VERSION_SCRIPT) -Wl,-soname,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS="\$(DL_LIB) -lm -lc" CC_SHARED="\$(CC) \$(CFLAGS) -shared -fPIC" ;; *solaris* ) if test "$GCC" = yes then DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-ztext -Wl,-h,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS="\$(DL_LIB) -lm -lc" CC_SHARED="\$(CC) \$(CFLAGS) -G -fPIC" else DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -K PIC" ELF_LINK="\$(CC) \$(LDFLAGS) -G -h\$(ELFLIB_MAJOR)" ELF_DEP_LIBS="\$(DL_LIB) -lm -lc" CC_SHARED="\$(CC) \$(CFLAGS) -G -K PIC" fi ;; # osr5 or unixware7 with current or late autoconf *sco3.2v5* | *unixware-5* | *sco-sysv5uw7*) if test "$GCC" = yes then DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-h,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS= CC_SHARED="\$(CC) \$(CFLAGS) -G -fPIC" else DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -K pic" # ELF_LINK="ld -G -z text -h#" ELF_LINK="\$(CC) \$(LDFLAGS) -G -z text -h\$(ELFLIB_MAJOR)" ELF_DEP_LIBS= CC_SHARED="\$(CC) \$(CFLAGS) -G -K pic" fi ;; *irix6.5* ) echo "Note: ELF compiler for host_os=$host_os may not be correct" echo "double-check: 'mode_t', 'pid_t' may be wrong!" if test "$GCC" = yes then # not tested DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-h,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS= CC_SHARED="\$(CC) \$(CFLAGS) -shared -fPIC" else DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS)" # default anyhow ELF_LINK="\$(CC) \$(LDFLAGS) -shared -o \$(ELFLIB_MAJOR)" ELF_DEP_LIBS= CC_SHARED="\$(CC) \$(CFLAGS) -shared" fi ;; *darwin* ) DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fno-common" ELF_LINK="\$(CC) \$(LDFLAGS) -dynamiclib -install_name \$(install_lib_dir)/\$(ELFLIB_MAJOR) -compatibility_version \$(ELF_MAJOR_VERSION) -current_version \$(ELF_MAJOR_VERSION).\$(ELF_MINOR_VERSION)" ELF_DEP_LIBS="\$(LDFLAGS) \$(DL_LIB)" CC_SHARED="\$(CC) -bundle -flat_namespace -undefined suppress \$(CFLAGS) -fno-common" ELFLIB="lib\$(THIS_LIB).dylib" ELFLIB_MAJOR="lib\$(THIS_LIB).\$(ELF_MAJOR_VERSION).dylib" ELFLIB_MAJOR_MINOR="lib\$(THIS_LIB).\$(ELF_MAJOR_VERSION).\$(ELF_MINOR_VERSION).dylib" ELFLIB_MAJOR_MINOR_MICRO="lib\$(THIS_LIB).\$(ELF_MAJOR_VERSION).\$(ELF_MINOR_VERSION).\$(ELF_MICRO_VERSION).dylib" ;; *freebsd* ) ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" #if test "X$PORTOBJFORMAT" = "Xelf" ; then # ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-soname,\$(ELFLIB_MAJOR)" #else # ELF_LINK="ld -Bshareable -x" #fi ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-soname,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS="\$(DL_LIB) -lm" CC_SHARED="\$(CC) \$(CFLAGS) -shared -fPIC" ;; *cygwin* ) DYNAMIC_LINK_FLAGS="" ELF_CC="\$(CC)" SLANG_DLL_CFLAGS="-DSLANG_DLL=1" ELF_CFLAGS="\$(CFLAGS) -DBUILD_DLL=1" DLL_IMPLIB_NAME="lib\$(THIS_LIB)\$(ELFLIB_MAJOR_VERSION).dll.a" #ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-O1 -Wl,--version-script,\$(VERSION_SCRIPT) -Wl,-soname,\$(ELFLIB_MAJOR) -Wl,--out-implib=\$(DLL_IMPLIB_NAME) -Wl,-export-all-symbols -Wl,-enable-auto-import" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-O1 -Wl,--version-script,\$(VERSION_SCRIPT) -Wl,-soname,\$(ELFLIB_MAJOR) -Wl,--out-implib=\$(DLL_IMPLIB_NAME)" ELF_DEP_LIBS="\$(DL_LIB) -lm" CC_SHARED="\$(CC) \$(CFLAGS) -shared -DSLANG_DLL=1" dnl# CYGWIN prohibits undefined symbols when linking shared libs SLANG_LIB_FOR_MODULES="-L\$(ELFDIR) -lslang" INSTALL_MODULE="\$(INSTALL)" INSTALL_ELFLIB_TARGET="install-elf-cygwin" ELFLIB="lib\$(THIS_LIB).dll" ELFLIB_MAJOR="lib\$(THIS_LIB)\$(ELF_MAJOR_VERSION).dll" ELFLIB_MAJOR_MINOR="lib\$(THIS_LIB)\$(ELF_MAJOR_VERSION)_\$(ELF_MINOR_VERSION).dll" ELFLIB_MAJOR_MINOR_MICRO="lib\$(THIS_LIB)\$(ELF_MAJOR_VERSION)_\$(ELF_MINOR_VERSION)_\$(ELF_MICRO_VERSION).dll" ELFLIB_BUILD_NAME="\$(ELFLIB_MAJOR)" ;; *haiku* ) M_LIB="" DYNAMIC_LINK_FLAGS="-Wl,-export-dynamic" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared -Wl,-O1 -Wl,--version-script,\$(VERSION_SCRIPT) -Wl,-soname,\$(ELFLIB_MAJOR)" ELF_DEP_LIBS="\$(DL_LIB)" CC_SHARED="\$(CC) \$(CFLAGS) -shared -fPIC" ;; * ) echo "Note: ELF compiler for host_os=$host_os may be wrong" ELF_CC="\$(CC)" ELF_CFLAGS="\$(CFLAGS) -fPIC" ELF_LINK="\$(CC) \$(LDFLAGS) -shared" ELF_DEP_LIBS="\$(DL_LIB) -lm -lc" CC_SHARED="\$(CC) \$(CFLAGS) -shared -fPIC" esac AC_SUBST(ELF_CC) AC_SUBST(ELF_CFLAGS) AC_SUBST(ELF_LINK) AC_SUBST(ELF_LINK_CMD) AC_SUBST(ELF_DEP_LIBS) AC_SUBST(DYNAMIC_LINK_FLAGS) AC_SUBST(CC_SHARED) AC_SUBST(ELFLIB) AC_SUBST(ELFLIB_MAJOR) AC_SUBST(ELFLIB_MAJOR_MINOR) AC_SUBST(ELFLIB_MAJOR_MINOR_MICRO) AC_SUBST(SLANG_LIB_FOR_MODULES) AC_SUBST(DLL_IMPLIB_NAME) AC_SUBST(INSTALL_MODULE) AC_SUBST(INSTALL_ELFLIB_TARGET) AC_SUBST(ELFLIB_BUILD_NAME) AC_SUBST(SLANG_DLL_CFLAGS) AC_SUBST(M_LIB) ]) dnl#}}} AC_DEFUN(JD_F77_COMPILER, dnl#{{{ [ case "$host_os" in *linux* ) F77="g77" F77_LIBS="-lg2c" ;; *solaris*) F77=f77 #F77_LIBS="-lF77 -lM77 -L/opt/SUNWspro/SC4.0/lib -lsunmath" F77_LIBS="-lF77 -lM77 -lsunmath" ;; *) echo "" echo "WARNING: Assuming f77 as your FORTRAN compiler" echo "" F77=f77 F77_LIBS="" esac AC_SUBST(F77) AC_SUBST(F77_LIBS) ]) dnl#}}} dnl# This macro process the --with-xxx, --with-xxxinc, and --with-xxxlib dnl# command line arguments and returns the values as shell variables dnl# jd_xxx_include_dir and jd_xxx_library_dir. It does not perform any dnl# substitutions, nor check for the existence of the supplied values. AC_DEFUN(JD_WITH_LIBRARY_PATHS, dnl#{{{ [ JD_UPPERCASE($1,JD_ARG1) jd_$1_include_dir="" jd_$1_library_dir="" if test X"$jd_with_$1_library" = X then jd_with_$1_library="" fi AC_ARG_WITH($1, [ --with-$1=DIR Use DIR/lib and DIR/include for $1], [jd_with_$1_arg=$withval], [jd_with_$1_arg=unspecified]) case "x$jd_with_$1_arg" in xno) jd_with_$1_library="no" ;; x) dnl# AC_MSG_ERROR(--with-$1 requires a value-- try yes or no) jd_with_$1_library="yes" ;; xunspecified) ;; xyes) jd_with_$1_library="yes" ;; *) jd_with_$1_library="yes" jd_$1_include_dir="$jd_with_$1_arg"/include jd_$1_library_dir="$jd_with_$1_arg"/lib ;; esac AC_ARG_WITH($1lib, [ --with-$1lib=DIR $1 library in DIR], [jd_with_$1lib_arg=$withval], [jd_with_$1lib_arg=unspecified]) case "x$jd_with_$1lib_arg" in xunspecified) ;; xno) ;; x) AC_MSG_ERROR(--with-$1lib requres a value) ;; *) jd_with_$1_library="yes" jd_$1_library_dir="$jd_with_$1lib_arg" ;; esac AC_ARG_WITH($1inc, [ --with-$1inc=DIR $1 include files in DIR], [jd_with_$1inc_arg=$withval], [jd_with_$1inc_arg=unspecified]) case "x$jd_with_$1inc_arg" in x) AC_MSG_ERROR(--with-$1inc requres a value) ;; xunspecified) ;; xno) ;; *) jd_with_$1_library="yes" jd_$1_include_dir="$jd_with_$1inc_arg" ;; esac ]) dnl#}}} dnl# This function checks for the existence of the specified library $1 with dnl# header file $2. If the library exists, then the shell variables will dnl# be created: dnl# jd_with_$1_library=yes/no, dnl# jd_$1_inc_file dnl# jd_$1_include_dir dnl# jd_$1_library_dir dnl# If $3 is present, then also look in $3/include+$3/lib AC_DEFUN(JD_CHECK_FOR_LIBRARY, dnl#{{{ [ AC_REQUIRE([JD_EXPAND_PREFIX])dnl dnl JD_UPPERCASE($1,JD_ARG1) JD_WITH_LIBRARY_PATHS($1) AC_MSG_CHECKING(for the $1 library and header files $2) if test X"$jd_with_$1_library" != Xno then jd_$1_inc_file=$2 dnl# jd_with_$1_library="yes" if test "X$jd_$1_inc_file" = "X" then jd_$1_inc_file=$1.h fi if test X"$jd_$1_include_dir" = X then inc_and_lib_dirs="\ $jd_prefix_incdir,$jd_prefix_libdir \ /usr/local/$1/include,/usr/local/$1/lib \ /usr/local/include/$1,/usr/local/lib \ /usr/local/include,/usr/local/lib \ /usr/include/$1,/usr/lib \ /usr/$1/include,/usr/$1/lib \ /usr/include,/usr/lib \ /opt/include/$1,/opt/lib \ /opt/$1/include,/opt/$1/lib \ /opt/include,/opt/lib" if test X$3 != X then inc_and_lib_dirs="$3/include,$3/lib $inc_and_lib_dirs" fi case "$host_os" in *darwin* ) exts="dylib so a" ;; *cygwin* ) exts="dll.a so a" ;; * ) exts="so a" esac xincfile="$jd_$1_inc_file" xlibfile="lib$1" jd_with_$1_library="no" for include_and_lib in $inc_and_lib_dirs do # Yuk. Is there a better way to set these variables?? xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print [$]1}'` xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print [$]2}'` found=0 if test -r $xincdir/$xincfile then for E in $exts do if test -r "$xlibdir/$xlibfile.$E" then jd_$1_include_dir="$xincdir" jd_$1_library_dir="$xlibdir" jd_with_$1_library="yes" found=1 break fi done fi if test $found -eq 1 then break fi done fi fi if test X"$jd_$1_include_dir" != X -a X"$jd_$1_library_dir" != X then AC_MSG_RESULT(yes: $jd_$1_library_dir and $jd_$1_include_dir) jd_with_$1_library="yes" dnl# Avoid using /usr/lib and /usr/include because of problems with dnl# gcc on some solaris systems. JD_ARG1[]_LIB=-L$jd_$1_library_dir if test "X$jd_$1_library_dir" = "X/usr/lib" then JD_ARG1[]_LIB="" else JD_SET_RPATH($jd_$1_library_dir) fi JD_ARG1[]_INC=-I$jd_$1_include_dir if test "X$jd_$1_include_dir" = "X/usr/include" then JD_ARG1[]_INC="" fi else AC_MSG_RESULT(no) jd_with_$1_library="no" JD_ARG1[]_INC="" JD_ARG1[]_LIB="" fi AC_SUBST(JD_ARG1[]_LIB) AC_SUBST(JD_ARG1[]_INC) ]) dnl#}}} AC_DEFUN(JD_WITH_LIBRARY, dnl#{{{ [ JD_CHECK_FOR_LIBRARY($1, $2, $3) if test "$jd_with_$1_library" = "no" then AC_MSG_ERROR(unable to find the $1 library and header file $jd_$1_inc_file) fi ]) dnl#}}} AC_DEFUN(JD_SLANG_VERSION, dnl#{{{ [ slang_h=$jd_slang_include_dir/slang.h AC_MSG_CHECKING(SLANG_VERSION in $slang_h) slang_version=`grep "^#define *SLANG_VERSION " $slang_h | awk '{ print [$]3 }'` slang_major_version=`echo $slang_version | awk '{ print int([$]1/10000) }'` slang_minor_version=`echo $slang_version $slang_major_version | awk '{ print int(([$]1 - [$]2*10000)/100) }'` slang_patchlevel_version=`echo $slang_version $slang_major_version $slang_minor_version | awk '{ print ([$]1 - [$]2*10000 - [$]3*100) }'` AC_MSG_RESULT($slang_major_version.$slang_minor_version.$slang_patchlevel_version) AC_SUBST(slang_version) AC_SUBST(slang_major_version) AC_SUBST(slang_minor_version) AC_SUBST(slang_patchlevel_version) ]) #}}} AC_DEFUN(JD_SLANG_MODULE_INSTALL_DIR, dnl#{{{ [ AC_REQUIRE([JD_SLANG_VERSION]) if test "X$slang_major_version" = "X1" then MODULE_INSTALL_DIR="$libdir/slang/modules" else MODULE_INSTALL_DIR="$libdir/slang/v$slang_major_version/modules" fi SL_FILES_INSTALL_DIR=$datadir/slsh/local-packages AC_SUBST(MODULE_INSTALL_DIR) AC_SUBST(SL_FILES_INSTALL_DIR) ]) #}}} AC_DEFUN(JD_CHECK_LONG_LONG, dnl#{{{ [ AC_CHECK_TYPES(long long) AC_CHECK_SIZEOF(long long) ]) dnl#}}} AC_DEFUN(JD_LARGE_FILE_SUPPORTXXX, dnl#{{{ [ AC_REQUIRE([JD_CHECK_LONG_LONG]) AC_MSG_CHECKING(whether to explicitly activate long file support) AC_DEFINE(_LARGEFILE_SOURCE, 1) AC_DEFINE(_FILE_OFFSET_BITS, 64) jd_large_file_support=no if test X$ac_cv_type_long_long = Xyes then if test $ac_cv_sizeof_long_long -ge 8 then jd_large_file_support=yes fi fi if test $jd_large_file_support = yes then AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ]) dnl#}}} AC_DEFUN(JD_LARGE_FILE_SUPPORT, dnl#{{{ [ AC_SYS_LARGEFILE AC_FUNC_FSEEKO AC_TYPE_OFF_T AC_CHECK_SIZEOF(off_t) ]) #}}} AC_DEFUN(JD_HAVE_ISINF, dnl#{{{ [ AC_MSG_CHECKING([for isinf]) AC_LINK_IFELSE([AC_LANG_PROGRAM( [[#include ]], [[isinf (0.0);]])], [AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_ISINF, 1)]) ]) #}}} slrn-1.0.1/autoconf/config.guess000077500000000000000000001274321206520222400166310ustar00rootroot00000000000000#! /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, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a 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. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 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, 2009, 2010, 2011, 2012 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 tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/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:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-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 ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-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 ;; 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 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 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 | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-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 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-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 ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu 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 i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; 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 ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; 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: slrn-1.0.1/autoconf/config.rpath000077500000000000000000000374441206520222400166240ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | kfreebsd*-gnu | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; kfreebsd*-gnu) ;; freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; interix3*) ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; knetbsd*-gnu) ;; netbsd*) ;; newsos6) ;; nto-qnx*) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.3*) ;; sysv4*MP*) ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # 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 GNU 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. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-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/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | 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 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | 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 \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | 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-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | 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-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; 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-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -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* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -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* | -es*) # 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 ;; -nacl*) ;; -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 ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: slrn-1.0.1/autoconf/configure.ac000066400000000000000000000327421206520222400165760ustar00rootroot00000000000000dnl# -*- sh -*- AC_INIT AC_CONFIG_SRCDIR([src/slrn.c]) JD_INIT AC_CONFIG_AUX_DIR(autoconf) AC_CANONICAL_HOST AC_PROG_MAKE_SET AC_PROG_INSTALL JD_ANSI_CC # determine X include and needed libs AC_PATH_XTRA #------------------------------------------------------------------------ # Useful macros #------------------------------------------------------------------------ AC_DEFUN([CF_COMPILE_OPTION],[ optionvalue=$4 AC_ARG_ENABLE($1,[$2],[ if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi ]) AC_SUBST($3, $optionvalue) ])dnl #--------------------------------------------------------------------------- # Configure options #--------------------------------------------------------------------------- dnl# Unfortunately, autoconf lacks a --docdir option. This is a workaround: AC_ARG_WITH(docdir, [ --with-docdir=DIR Where to put the documentation], [ if test "x$withval" = xyes || test "x$withval" = xno; then docdir='${prefix}/share/doc/slrn' else docdir="$withval" fi ], [ docdir='${prefix}/share/doc/slrn' ]) AC_SUBST(docdir) AC_ARG_WITH(slrnlib, [ --with-slrnlib=DIR Place for the slrn library files]) if test -z "$with_slrnlib" || test "x$with_slrnlib" = xyes || test "x$with_slrnlib" = xno; then if test "x$prefix" = xNONE; then slrn_lib_dir="${ac_default_prefix}/share/slrn" else slrn_lib_dir="${prefix}/share/slrn" fi else slrn_lib_dir="$with_slrnlib" fi AC_SUBST(SLRN_LIB_DIR,"$slrn_lib_dir") dnl# directory where .mo (translation) files should be placed AC_ARG_WITH(localedir, [ --with-localedir=DIR Where to put locale files]) if test -z "$with_localedir" || test "x$with_localedir" = xyes || test "x$with_localedir" = xno; then if test "x$prefix" = xNONE; then LOCALEDIR="${ac_default_prefix}/share/locale" else LOCALEDIR="${prefix}/share/locale" fi else LOCALEDIR="$with_localedir" fi AC_SUBST(LOCALEDIR) optionvalue=0 SLRNPULL_ROOT_DIR="/var/spool/news/slrnpull" AC_ARG_WITH(slrnpull, [ --with-slrnpull=[[DIR]] Build slrnpull and use DIR as the slrnpull root], [if test "x$withval" != "xno" ; then optionvalue=1 SLRNPULL="slrnpull\$(EXEEXT)" MAN_SLRNPULL="../doc/slrnpull.1" if test "x$withval" != "xyes" -a "x$withval" != "x"; then SLRNPULL_ROOT_DIR="$withval" fi fi ])dnl AC_SUBST(SLRN_HAS_PULL_SUPPORT, $optionvalue) AC_SUBST(SLRNPULL) AC_SUBST(SLRNPULL_ROOT_DIR) AC_SUBST(MAN_SLRNPULL) AC_ARG_WITH(server-name, AS_HELP_STRING([--with-server-name=HOST], [Hostname of a default NNTP server]), [if test "x$withval" != "xno"; then if test "x$withval" = "xyes"; then AC_MSG_ERROR([you must pass the hostname of the server to the option --with-server-name]) fi AC_DEFINE_UNQUOTED([NNTPSERVER_NAME], "$withval") fi ]) AC_ARG_WITH(server-file, AS_HELP_STRING([--with-server-file=FILE], [File containing the hostname of an NNTP server]), [if test "x$withval" != "xno"; then if test "x$withval" = "xyes"; then AC_MSG_ERROR([you must pass the name of the file to the option --with-server-file]) fi AC_DEFINE_UNQUOTED([NNTPSERVER_FILE], "$withval") fi ]) CF_COMPILE_OPTION(nntp, [ --disable-nntp Disable NNTP support], [SLRN_HAS_NNTP_SUPPORT], 1) CF_COMPILE_OPTION(spool, [ --enable-spool Enable support for reading directly from spool], [SLRN_HAS_SPOOL_SUPPORT], 0) CF_COMPILE_OPTION(inews, [ --enable-inews Enable inews posting support], [SLRN_HAS_INEWS_SUPPORT], 0) if test "x$enable_inews" = xyes ; then dnl# find inews AC_PATH_PROG(INEWS, inews, no, $PATH:/usr/local/bin:/usr/bin) if test "x$ac_cv_path_INEWS" != xno; then dnl# AC_DEFINE_UNQUOTED(SLRN_INEWS_COMMAND, "$ac_cv_path_INEWS -S -h") AC_SUBST(SLRN_INEWS_COMMAND, "$ac_cv_path_INEWS -S -h") else AC_MSG_ERROR([ I cannnot find an inews executable. When using --enable-inews, please make sure inews can be found in your \$PATH. ]) fi else AC_SUBST(SLRN_INEWS_COMMAND, "/usr/local/bin/inews -S -h") fi CF_COMPILE_OPTION(force-inews, [ --enable-force-inews Enforce the use of inews], [SLRN_FORCE_INEWS], 0) CF_COMPILE_OPTION(strict-from, [ --enable-strict-from Disallow custom From headers], [SLRN_HAS_STRICT_FROM], 0) CF_COMPILE_OPTION(charmap, [ --disable-charmap Disable mapping ISO-Latin to native charsets], [SLRN_HAS_CHARACTER_MAP], 1) CF_COMPILE_OPTION(setgid-code, [ --enable-setgid-code Allow running slrnpull as an unpriviledged user], [SLRNPULL_USE_SETGID_POSTS], 0) CF_COMPILE_OPTION(spoilers, [ --disable-spoilers Disable spoiler support], [SLRN_HAS_SPOILERS], 1) CF_COMPILE_OPTION(emph-text, [ --disable-emph-text Disable emphasized text support], [SLRN_HAS_EMPHASIZED_TEXT], 1) CF_COMPILE_OPTION(gen-mid, [ --disable-gen-mid Prevent slrn (and user) from generating Message-IDs], [SLRN_HAS_GEN_MSGID], 1) CF_COMPILE_OPTION(mid-cache, [ --enable-mid-cache Make slrn cache Message-IDs to eliminate cross-posts (only needed when server has no xref headers)], [SLRN_HAS_MSGID_CACHE], 0) CF_COMPILE_OPTION(fake-refs, [ --disable-fake-refs Do not use In-Reply-To if References is not available], [SLRN_HAS_FAKE_REFS], 1) CF_COMPILE_OPTION(grouplens, [ --enable-grouplens Enable GroupLens support], [SLRN_HAS_GROUPLENS], 0) jd_with_uu_library=no JD_CHECK_FOR_LIBRARY(uu,uudeview.h) if test $jd_with_uu_library = yes then LINK_LIBUU="-luu" AC_DEFINE(HAVE_UUDEVIEW_H) optionvalue=1 else optionvalue=0 LINK_LIBUU="" fi AC_SUBST(LINK_LIBUU) AC_SUBST(SLRN_HAS_UUDEVIEW,$optionvalue) jd_with_canlock_library=no JD_CHECK_FOR_LIBRARY(canlock) if test $jd_with_canlock_library = yes then LINK_LIBCANLOCK="-lcanlock" AC_DEFINE(HAVE_CANLOCK_H) optionvalue=1 else optionvalue=0 LINK_LIBCANLOCK="" fi AC_SUBST(LINK_LIBCANLOCK) AC_SUBST(SLRN_HAS_CANLOCK,$optionvalue) #--------------------------------------------------------------------------- # gettext #--------------------------------------------------------------------------- m4_include([./include/gettext.m4]) m4_include([./include/iconv.m4]) m4_include([./include/nls.m4]) m4_include([./include/po.m4]) m4_include([./include/lib-ld.m4]) m4_include([./include/lib-link.m4]) m4_include([./include/lib-prefix.m4]) m4_include([./include/mkdirp.m4]) m4_include([./include/progtest.m4]) AM_ICONV AM_GNU_GETTEXT(external) AC_SUBST(INCICONV)dnl# AM_GNU_GETTEXT does not do this. Why??? AC_ARG_WITH(non-gnu-iconv, [ --with-non-gnu-iconv Local iconv is not GNU compatible], [use_non_gnu_iconv=$withval], [use_non_gnu_iconv=no]) case "x$use_non_gnu_iconv" in x|xyes) AC_DEFINE(NON_GNU_ICONV)dnl ;; esac #--------------------------------------------------------------------------- # SSL stuff #--------------------------------------------------------------------------- AC_ARG_WITH(nss-compat, [ --with-nss-compat Use NSS compat library instead of OpenSSL], [use_nss_compat=$withval], [use_nss_compat=no]) AC_ARG_WITH(gnutls, AS_HELP_STRING([--with-gnutls[=path]], [Use GNU TLS library instead of OpenSSL]), [use_gnutls=$withval; jd_use_ssl=$withval], [use_gnutls=no]) AC_CACHE_CHECK(if you want SSL support,jd_use_ssl, [ AC_ARG_WITH(ssl, [ --with-ssl[[=path]] for SSL support], [jd_use_ssl=$withval], [jd_use_ssl=no]) ]) case "x$jd_use_ssl" in xno) SSLINC= SSLLIB= ;; x|xyes) if test "x$use_nss_compat" != xno then SSLINC="-I/usr/local/include/nss_compat_ossl -I/usr/local/include/nss3 -I/usr/local/include/nspr4" SSLLIB="-L/usr/local/lib -lnss_compat_ossl" elif test "x$use_gnutls" != xno then SSLINC= SSLLIB="-lgnutls-openssl" else SSLINC="-I/usr/local/ssl/include" SSLLIB="-L/usr/local/ssl/lib -lssl -lcrypto" fi ;; *) if test "x$use_nss_compat" != xno; then SSLINC="-I$jd_use_ssl/include/nss_compat_ossl -I$jd_use_ssl/include/nss3 -I$jd_use_ssl/include/nspr4" SSLLIB="-L$jd_use_ssl/lib -lnss_compat_ossl" elif test "x$use_gnutls" != xno then SSLINC="-I$jd_use_ssl/include" SSLLIB="-L$jd_use_ssl/lib -lgnutls-extra -lgnutls -ltasn1 -lgcrypt -lgnutls-openssl" else SSLINC="-I$jd_use_ssl/include" SSLLIB="-L$jd_use_ssl/lib -lssl -lcrypto" fi esac AC_SUBST(SSLINC) AC_SUBST(SSLLIB) if test "x$SSLINC$SSLLIB" != x; then AC_DEFINE(USE_SSL) if test "x$use_nss_compat" != xno; then AC_DEFINE(USE_NSS_COMPAT) fi if test "x$use_gnutls" != xno; then AC_DEFINE(USE_GNUTLS) fi fi #--------------------------------------------------------------------------- # Check head files #--------------------------------------------------------------------------- AC_CHECK_HEADERS( \ direct.h \ stdlib.h \ unistd.h \ memory.h \ fcntl.h \ sys/fcntl.h \ sys/dir.h \ ndir.h \ sys/ndir.h \ malloc.h \ termios.h \ sys/socket.h \ sys/time.h \ socket.h \ sys/wait.h \ netinet/in.h \ arpa/inet.h \ sys/utsname.h \ locale.h langinfo.h \ ) #AC_CHECK_LIB(socket, socket, [LIBSOCKET="-lnsl -lsocket"]) dnl for Solaris #AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS #AC_SUBST(LIBSOCKET) AC_HEADER_DIRENT AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_UID_T #dnl Eventually, this should go away. We don't need long doubles. It is #dnl here for the snprintf code. AC_CHECK_TYPE(long double) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(float, 4) AC_CHECK_SIZEOF(double, 8) JD_CHECK_LONG_LONG AC_CHECK_FUNCS(\ memset \ memcpy \ memcmp \ memchr \ putenv \ getcwd \ getdomainname \ getaddrinfo \ getnameinfo \ gettimeofday \ sigaction \ sigemptyset \ sigprocmask \ sigaddset \ siglongjmp \ vsnprintf \ uname \ setlocale \ isalpha isspace isdigit isalnum ispunct \ atoll strtoll \ ) AC_MSG_CHECKING(for timezone in time.h) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[long int tz; tz = timezone % 1]])],[AC_DEFINE(HAVE_TIMEZONE) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) AC_MSG_CHECKING(for tm_gmtoff in struct tm) AH_TEMPLATE([HAVE_TM_GMTOFF], [define if you have "tm_gmtoff" in struct tm]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm t; t.tm_gmtoff = 0]])],[AC_DEFINE(HAVE_TM_GMTOFF) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) dnl # AC_CACHE_CHECK(for domain in /etc/resolv.conf, slrn_cv_domain, dnl # [if test -f /etc/resolv.conf; then dnl # slrn_cv_domain=`(grep "^domain" /etc/resolv.conf || dnl # grep "^search" /etc/resolv.conf) | dnl # awk '{ print [$]2 }' | head -1` dnl # fi dnl # if test -z "$slrn_cv_domain"; then dnl # slrn_cv_domain=no dnl # fi dnl # ]) dnl # if test "X$slrn_cv_domain" != Xno; then dnl # AC_DEFINE(USE_DOMAIN_NAME) dnl # AC_DEFINE_UNQUOTED(MY_DOMAIN_NAME, "${slrn_cv_domain}") dnl # fi AC_DEFUN(CF_VA_COPY, [ dnl# va_copy checks taken from glib 1.2.8 dnl# dnl# we currently check for all three va_copy possibilities, so we get dnl# all results in config.log for bug reports. AC_MSG_CHECKING(for an implementation of va_copy()) AC_CACHE_VAL(slrn_cv_va_copy,[ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }]])],[slrn_cv_va_copy=yes ],[slrn_cv_va_copy=no ],[]) ]) AC_MSG_RESULT($slrn_cv_va_copy) AC_MSG_CHECKING(for an implementation of __va_copy()) AC_CACHE_VAL(slrn_cv___va_copy,[ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); __va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }]])],[slrn_cv___va_copy=yes ],[slrn_cv___va_copy=no ],[]) ]) AC_MSG_RESULT($slrn_cv___va_copy) AC_MSG_CHECKING(whether va_lists can be copied by value) AC_CACHE_VAL(slrn_cv_va_val_copy,[ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); args2 = args1; if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }]])],[slrn_cv_va_val_copy=yes ],[slrn_cv_va_val_copy=no ],[]) ]) if test "x$slrn_cv_va_copy" = "xyes" then AC_DEFINE(VA_COPY, va_copy) else if test "x$slrn_cv___va_copy" = "xyes" then AC_DEFINE(VA_COPY, __va_copy) fi fi if test "x$slrn_cv_va_val_copy" = "xno" then AC_DEFINE(VA_COPY_AS_ARRAY) fi AC_MSG_RESULT($slrn_cv_va_val_copy) ]) CF_VA_COPY JD_SET_OBJ_SRC_DIR JD_TERMCAP JD_WITH_LIBRARY(slang) JD_GCC_WARNINGS JD_GET_MODULES(src/modules.lis) JD_CREATE_MODULE_ORULES AC_CONFIG_HEADER(src/sysconf.h:src/config.hin) AC_CONFIG_FILES(po/Makefile.in) AC_CONFIG_FILES([src/slrnfeat.h:src/slrnfeat.hin]) AC_OUTPUT AC_CONFIG_FILES([Makefile:autoconf/Makefile.in src/Makefile]) AC_OUTPUT AC_CONFIG_FILES([po/Makefile]) AC_OUTPUT JD_CREATE_ORULE(chkslang) JD_CREATE_ORULE(sltcp) JD_CREATE_ORULE(nntplib) JD_CREATE_EXEC_RULE(slrnpull) JD_APPEND_RULES(src/Makefile) dnl #if test "$slrn_cv_domain" != no; then dnl # echo "" dnl # echo "Your DOMAIN appears to be: $slrn_cv_domain" dnl # echo "If this is not correct, edit src/sysconf.h!!!" dnl #fi echo "" echo "For some INSTALLATION options, edit src/Makefile." echo "For INEWS, LOCAL SPOOL, GROUPLENS, SLANG, ... support, edit src/slrnfeat.h" echo "" slrn-1.0.1/autoconf/include/000077500000000000000000000000001206520222400157235ustar00rootroot00000000000000slrn-1.0.1/autoconf/include/gettext.m4000066400000000000000000000377061206520222400176660ustar00rootroot00000000000000# gettext.m4 serial 59 (gettext-0.16.1) dnl Copyright (C) 1995-2006 Free Software Foundation, 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-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;]], [[bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings]])],[eval "$gt_func_gnugettext_libc=yes"],[eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);]], [[bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")]])],[eval "$gt_func_gnugettext_libintl=yes"],[eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);]], [[bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")]])],[LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ],[]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])],[gt_cv_func_CFPreferencesCopyAppValue=yes],[gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[CFLocaleCopyCurrent();]])],[gt_cv_func_CFLocaleCopyCurrent=yes],[gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) slrn-1.0.1/autoconf/include/iconv.m4000066400000000000000000000066421206520222400173130ustar00rootroot00000000000000# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, 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 From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) will then fail, the second AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])],[am_cv_func_iconv=yes],[]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])],[am_cv_lib_iconv=yes am_cv_func_iconv=yes],[]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])],[am_cv_proto_iconv_arg1=""],[am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) slrn-1.0.1/autoconf/include/lib-ld.m4000066400000000000000000000065311206520222400173350ustar00rootroot00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, 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 Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) slrn-1.0.1/autoconf/include/lib-link.m4000066400000000000000000000642741206520222400177030ustar00rootroot00000000000000# lib-link.m4 serial 9 (gettext-0.16) dnl Copyright (C) 2001-2006 Free Software Foundation, 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 From Bruno Haible. AC_PREREQ(2.61) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_LINK_IFELSE([AC_LANG_PROGRAM([[$3]], [[$4]])],[ac_cv_lib[]Name=yes],[ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) slrn-1.0.1/autoconf/include/lib-prefix.m4000066400000000000000000000150361206520222400202330ustar00rootroot00000000000000# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, 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 From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AS_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing dnl the basename of the libdir, either "lib" or "lib64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. The current dnl practice is that on a system supporting 32-bit and 64-bit instruction dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit dnl libraries go under $prefix/lib. We determine the compiler's default dnl mode by looking at the compiler's library search path. If at least dnl of its elements ends in /lib64 or points to a directory whose absolute dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the dnl default, namely "lib". acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ]) slrn-1.0.1/autoconf/include/mkdirp.m4000066400000000000000000000051251206520222400174560ustar00rootroot00000000000000## -*- Autoconf -*- # Copyright (C) 2003, 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. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='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. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) slrn-1.0.1/autoconf/include/nls.m4000066400000000000000000000022661206520222400167670ustar00rootroot00000000000000# nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, 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.61) 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) ]) slrn-1.0.1/autoconf/include/po.m4000066400000000000000000000433671206520222400166200ustar00rootroot00000000000000# po.m4 serial 13 (gettext-0.15) dnl Copyright (C) 1995-2006 Free Software Foundation, 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.61) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. AC_PREREQ(2.61) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # 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. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done 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 ]) slrn-1.0.1/autoconf/install.sh000077500000000000000000000127361206520222400163160ustar00rootroot00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # 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. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # 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 $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 slrn-1.0.1/autoconf/mkinsdir.sh000077500000000000000000000011361206520222400164600ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d in ${1+"$@"} ; do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || errstatus=$? fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here slrn-1.0.1/changes.txt000066400000000000000000003761401206520222400146460ustar00rootroot00000000000000-*- mode: text; mode: fold -*- Changes since 1.0.0 1. An issue with the wrap_width variable was fixed. Changes since 0.9.9p1 1. src/charset.c: Avoid using CODESET if it is not defined. 2. doc/slrn.1: Remove blank line at top of file. (Ignatios Souvatzis) 3. src/Makefile.in: /bin/sh on solaris does not like empty lists in a for loop causing make install to fail. Workaround added (Petr Sumbera). 4. src/mime.c: rewrote much of the email address encoding/decoding so that only comment fields in email addresses are encoded/decoded. slrn is also smarted in encoding/decoding other headers (based on patch from Robert Grimm). 5. autoconf/Makefile.in: Added dependencies such that if the Makefile.in and config.in files have been modified, the user is told to re-run the configure script. 6. Updated the copyright years to 2009. 7. src/mime.c: Omit the mime headers if the content is pure 7bit. Also, if mime-headers already exist, do not add append additional ones. 8. configure: Added the configuration option --with-non-gnu-iconv that can be used to indicate that local version of iconv is not compatible with GNU iconv (Piotr 'aniou' Meyer). 9. src/charset.c: Upon failure, slrn_test_convert_lines will return the line that caused it to fail. 10. src/charset.c: If the --debug option is given, slrn will write the strings that iconv failed to convert to the log file. 11. src/post.c: Skip long line checks between verbatim marks. (Robert Grimm). 12. src/nntplib.h: Removed duplicate declarations of nntp_server_cmd and nntp_server_vcmd. (Li Hong). 13. src/decode.c: If an output file already exists, create a new one by appending an integer to the name. 14. src/slrn.c: work around a SLang_getkey bug that arises when the underlying read system call is interrupted, and the interrupt hook creates a different read descriptor. 15. src/misc.c: All error messages (including slang tracebacks) are logged to the --debug output file. 16. src/art.c,etc: If an article has invalid headers, clear the error but give the article an initial score of -1000. This number may be customized using the "invalid_header_score" variable. 17. src/mime.c: In slrn_mime_process_article, decode headers even if Content-Type is not understood and metamail is needed. 18. src/art.c: Avoid a buffer overflow when reconstructing huge threads. Thanks to Robert Grimm for finding the problem. 19. src/version.c: %d format was used to print a long integer. 20. src/nntplib.c: slrn user "narke" discovered that his server will disconnect if an attempt is made to post an empty body. slrn does this after authenticating with the server to verify that posting is possible. As a work-around, the response comment from the AUTHINFO command is parsed. 21. src/sltcp.c: Add support for gnutls logging functions. 22. src/chkslang.c: Fixed a sscanf format issue involving long long integers. 23. src/sltcp.c: Change 21 needed #ifdef SLTCP_HAS_GNUTLS_SUPPORT. 24. src/nntplib.c: A comparison in #20 should have used != instead of ==. 25. doc/slrn.rc: "utf8" changed to "utf-8" (Thomas Wiegner). 26. src/art_misc.c: Increased the search range for a pgp signature. 27. src/misc.c: The rline_update callback function was not handling the case where no prompt (prompt==NULL) was associated with the readline object. (M. G. Berberich) 28. src/vfile.c: Add explicit void* to char* cast for better C++ compliance. 29. doc/tm/: Updated the Makefile and rebuilt the docs 30. src/interp.c, art.c: Added support for an optional argument to the replace_article function that dictates if the article should be mime processed. 31. src/*: Updated copyright year and trimmed extra whitespace. 32. macros/mime.sl: Added initial support for multipart mime messages. See macros/mime.sl for additional information. 33. macros/mime.sl;src/*.c: More support for processing multipart mime messages, including the ability to save/view the various parts of a message. 34. src/misc.c:generic_read_input: If point is negative, regard it as an offset from the end of the string. Changes were also made to the callers of this function accordingly. 35. macros/mailcap.sl: If an executable does not exist on the search path, skip the mailcap entry. 36. src/interp.c: Added "replace_cooked_article", which is like to "replace_article", but does not affect the raw lines. mime.sl was updated to use this. 37. macros/mime.sl: Added an option to the browse menu that permits the full raw article to be viewed. 38. macros/mime.sl: Added a more informative message when a mime article is encountered. 39. src/mime.c: A couple of strncmp calls used the wrong length (Patched by Thomas Wiegner). 40. macros/mime.sl: The boundary subkeyword was not being detected in a case-insensitive way. Also the wrong filename was mentioned in the usage comments. (Christian Ebert) 41. macros/mime.sl: Add an option to view all parts of a mime multipart message. 42. Added a top-level win32 directory containing scripts for building slrn using MinGW on a Windows system. See doc/INSTALL.w32 for details. 43. src/*.c: Various win32-specific tweaks to avoid some warnings generated by MinGW's gcc. 44. win32/msinstall.sl: Use $prefix/share/man instead of $prefix/man for the directory where man pages are installed. 45. doc/THANKS updated. 46. updated autoconf/config.guess and autoconf/config.sub 47. doc/THANKS rearranged. 48. src/art_misc.c: New config variable: "wrap_width", which sets the width that will trigger wrapping. 49. doc/: Updated txt docs from slrn doc project's svn repos. 50. Version 1.0 released [Dec 21, 2012]. {{{ Previous Versions Changes since 0.9.9 1. src/misc.c: The code assumed that slrn_make_from_string returned a string of the form "From: ". If the value returned by make_from_string_hook does not start with this prefix, then it will be prepended. 2. src/misc.c: slrn_make_from_string renamed to slrn_make_from_header. 3. autoconf/*: Updated using autoupdate 4. configure: Added --with-server-name and --with-server-file options (Thomas Wiegner and Joerg Sommer) 5. doc/INSTALL.unix: Corrected a typo involving the uudeview library option. (Andrew Strong) 6. INSTALL.txt: typo corrected (Brian Salter-Duke) 7. src/decode.c, src/Makefile.in: Added changes to create a standalone uudecode executable. 8. doc/*: Updated docs from the slrn-doc team. 9. src/art.c: signed-vs-unsigned cleanups. 10. src/spool.c: A few functions were not using NNTP_Artnum_Type. 11. src/nntplib.c: _nntp_num_or_msgid_cmd was not using NNTP_Artnum_Type (Joerg Sommer) 12. src/nntp.c: Added the probe for XHDR early on instead of when first used to avoid a possible server timeout. 13. src/art.c: A few functions were limiting file sizes to 256, instead of PATH_MAX. 14. src/config.hin: NNTP_ARTNUM_TYPE_MAX was not defined. 15. src/nntp.c: Use "XHDR Path" instead of "XHDR" when probing for XHDR. 16. src/nntplib.c: Rewrote the logic in parsing the return values from the XHDR Probe. It is possible that different servers will return different codes for this probe and that further changes will have to be made. 17. src/art.c: A space was missing in a format statement in the read_article function (Christof Meerwald, Peter J. Ross). 18. src/menu.c: The length of the version string was not being considered when writing it to the top menu line, causing a long string to be truncated (Thomas Wiegner). 19. doc/: Documentation updates (doc-team). 20. src/post.c: Avoid a momentatary display of "Your message is not acceptable..." when a post/followup has a netiquette error, but the user is ignoring such errors. (Peter J. Ross) 21. src/print.c: %d was being used to print a DWORD arg (Win32 specific) 22. src/slrnconf.c: NNTP_ARTNUM_TYPE_MAX was defined as a long and not a long long (missing LL suffix at the end of the literal constant). 23. src/slrnconf.c: (Win32) SIZEOF_* values were missing. 24. src/chkslang.c: Added SIZEOF_* checks. 25. src/Makefile.g32: (Win32) Use / as the path separator when running chkslang. 26. src/spool.c: In a few debug statements, the wrong format was being using for article numbers. 27. src/slrnpull.c: Add the SLATTRIBUTE_PRINTF attribute to the log_message function. 28. src/spool.c: A %d format was used for an article number in a section of code activated by the SPOOL_ACTIVE_FOR_ART_RANGE feature, Also the XPAT code was using an unsigned int instead of an NNTP_Artnum_Type object. 29. src/art.c: An empty "From:" was not being parsed properly. 30. src/slrnconf.h: Removed references to cygwin and changed the long-long format string from %lld to %I64d on win32 systems. 31. src/chkslang.c: Added a test for the long-long format string. Changes since 0.9.8.8pl1 0. Removed the dependency on automake. As a result, the configuration options have changed. Run `./configure --help` to see the current options. 1. Reorganized the code a bit by moving some of the code in util.c to strutil.c. Eventually I want to remove ugly constructs such as '#include "score.c"' from slrnpull.c. This is a step in that direction. 2. Code simplification in various places including the use of unsigned variables where appropriate. 3. When following-up on an article with no Newsgroups header, assume it is from a mailing list and reply instead. 4. Fixed some character-set encoding issues. 5. Improved the email-address parser. I also removed the check for a domainname because some local mailing lists may not require them. Moreover a domain name should not be required when forwarding an article to a local user. 6. src/jdmacros.h: On FreeBSD do not include malloc.h 7. src/config.hin: Add __attribute__ check for printf-style functions 8. src/post.c: Some cleanup and reorganization of the post-functions 9. src/art.c: Fixed a SEGV in the cancel lock code. Slrn_Version was being used instead of Slrn_Version_String. 10. src/*.c: Renamed slrn_strchr to slrn_strbyte to emphasize that this function does not work with wide characters. 11. src/strutil.c: slrn_case_str[n]cmp were not handling NULL pointers in non-utf-8 mode (Thomas Wiegner). 12. src/art.c: non-7 bit characters were not be displayed properly in UTF-8 mode after rot13. (Thomas Wiegner). 13. src/mime.c: When decoding mime, do not allow \n characters in the header, and if they occur in the body, split lines accordingly (Thomas Wiegner). 14. src/post.c: In the prepare_header function, sizeof(buf) was being used for a char *buf. This was causing Cc addresses to get truncated to 3 characters. Also the some unchecked malloc failures were caught. 15. src/art.c: Added support for Mail-Reply-To. If it exists, it takes precedence over a Reply-To header. This header is used by mailing lists. 16. src/mime.c: Added a routine to "guess" an unknown character set. Eventually this will be replaced by a slang-hook. 17. src/post.c: User-generated message-ids were getting corrupted. 18. src/misc.c: Removed the slang-1 specific code. 19. src/mime.c: Better support for long header lines and long encoded words. Does this break X-Face? 20. src/misc.c: In the rli_self_insert function, do not call SLrline_redraw, which is buggy in slang-2.0.7. The function is not needed here anyway. 21. src/charset.c, mime.c: Add Thomas Wiegner's fallback-charset patch. 22. src/mime.c: Made the encoding functions table-driven for easier maintance and control. Change #19 caused Message-Id and References to get encoded if they were too long. This change avoids that. 23. src/mime.c: rewrote "fold_line" to fold a header even if one of the words is too long. 24. src/art.c+xover.c: Changed the way header fields are allocated to avoid some memory leaks. 25. src/post.c: large overhaul of code that converts the to-be-posted file to the linked list for conversion to mime. 26. src/hdrutils.c: new file. 27. src/mime.c: rewrote the routine that mime-enocodes the body of a post. 28. src/slrnpull.c: Updated to reflect changes in #24. NOTE: slrnpull has not been tested in any way. 29. src/mime.c: Error in fold-line permitted it to generate lines larger than the 75 character maximum. 30. src/mime.c: It appears that a mime-encoded X-Face header is not very well supported. After reviewing the source code to compface, it appears that a naive folding will work. Time will tell... 31. src/art.c: If the reply function is called with a prefix-argument of 2, then also use the Cc and To header values. 32. src/interp.c: Removed set_utf8_conversion_table since it did nothing. 33. src/mime.c: Corrected a possible memory corruption error where strcat was used instead of strcpy when decoding base64 articles. 34. src/*.c: Corrected various unchecked calls to malloc. 35. src/Makefile.in: installbin and installdirs swapped in the install target (Joerg Sommer). 36. src/mime.c: From-type headers were not being properly encoded when the first word of the header contained an 8 bit character. 37. src/win32/: new directory for win32 port 38. src/Makefile.g32: rewrote 39. autoconf/configure.ac: SLRN_LIB_DIR changed from lib/slrn to share/slrn. 40. src/startup.c: Rewrote the character-set specific code to avoid a SEGV. 41. src/snprintf.h: include jdmacros.h to ensure ATTRIBUTE_PRINTF is defined (Joerg Sommer). 42. src/startup.c,interp.c: Removed slang-specific variables from compile-time tables to run-time functions because of windows DLL limitations. 43. Modified src/Makefile.g32 to compile with the mingw32 cross-compiler. 44. macros/slrn.sl: New file. This file gets loaded when slrn runs. It sets up paths and defines some callback functions. 45. src/interp.c: Removed the slrn-specific evalfile function in favor of the stock slang function, which is aware of slang's load path. 46. src/hooks.c: Rewrote to support adding hooks via function references, e.g., register_hook ("foo_hook", &callback); 47. src/version.c: Added iconv and rewrote for easier maintenance. 48. src/startup.c: Setting macro_directory variable will invoke a callback function defined in slrn.sl. 49. src/Makefile.in: Since slrn will try to load a file called help.txt from CONFDIR, this variable was changed to $(sysconfdir)/slrn, e.g., /etc/slrn/. This change is also consistent with the recommendations of FHS 2.3. 50. src/slrn.c: If slang fails to initialize, then exit. 51. src/slrnfeat.hin: If slrnpull has been enabled, then enable spool support. 52. src/mime.c: Off by 1 bug in split_qp_lines would sometimes cause a call to realloc with a length of 0, which had the effect of freeing the buffer. 53. src/interp.c: If slrn.sl is not found, then print the value of the load-path. 54. src/Makefile.g32: mingw32 tweaks (Rudy Taraschi). 55. src/charset.c: Rewrote the high-level character-set conversion routine. Previously, the outgoing character set was not being properly handled. 56. src/art.c: Added a separate field to the article line structure for the quote-level. 57. src/charset.c: slrn_convert_substring was being called with a length of 0 instead of the length of the string. This was causing the conversion to the editor characterset to fail. 58. src/mime.c: Rewrote all the email-address encoding routines in an effort to address some encoding bugs. 59. src/misc.c: Rewrote the email address generation routines to comply with the MIME requirement that no encoding should take place in a quoted-string. 60. src/art.c: Respect MAX_QUOTE_COLORS when setting the quote color. 61. src/art.c: The color index for quotes was off by 1. 62. src/post.c: When configured with --enable-strict-from, a non-existent function append_to_header was being called instead of slrn_append_to_header. 63. src/misc.c: Allow the readline buffer to horizontally scroll when editing long lines. 64. macros/slrn.sl: slrn_get_macro_dir_hook was defined as taking an argument. 65. src/startup.c,src/slrn.c: Added a --show-config option. 66. src/slrn.c: Wrong file pointer passed to slrn_show_version, causing a SEGV. 67. src/interp.c: When setting slrn configuration variables via the set_string_variable function, use the display-character-set when not in UTF-8 mode. If in UTF-8 mode, then use UTF-8. 68. configure: probe for a timezone variable and tm_gmtoff field in a "struct tm". 69. src/slrn.c: When called with --help, exit with status=0 70. src/charset.c: An undefined variable was being referenced when compiled without iconv support (Rudy Taraschi). 71. src/Makefile.g32: clean target corrected for mingw32 build (Rudy Taraschi). 72. src/mime.c: Convert null characters ('\0') to '?' when encoded in a header (they are illegal in headers). 73. doc/help.txt: Changed "read" to "displayed" (Rudy Taraschi). 74. src/charset.c: If a charset is unknown-64 or x-user-defined, use the fallback character set. 75. src/misc.c: Replaced calls to slrn_write_nchars by calls to SLsmg_write_nstring (slrn_write_nchars did not quite work right). 76. configure: test for va_copy 77. src/startup.c,art.c: Changes to permit --show-config to print the header format strings. 78. configure: check for langinfo.h (Thomas Wiegner). 79. src/charset.c: commented out call to setlocale in slrn_init_charset since it was already called. 80. src/Makefile.in: minor cleanups (Joerg Sommer) 81. doc/slrn*.1: Escape hyphens and s-lang -> S-Lang changes (Joerg Sommer) 82. src/post.c: Strip whitespace from Newsgroups and Follow-To headers. 83. src/interp.c: re_header_search was leaking memory 84. src/mime.c: Parse a header for mime encoded 8 bit characters even if the header contains unencoded 8 bit characters. 85. doc/slrn.1: Updated (Peter J. Ross) 86. src/slrnpull.c: Fixed a couple of bugs involving the reading of previously freed or uninitialized memory. 87. configure: --with-slrnpull now takes an optional argument giving the location of the slrnpull root directory. 88. src/print.c: On Unix, if the PRINTER environment variable is NULL or empty, then do not use the "-P" lpr option. 89. src/menu.c: When drawing a box, the simulate_graphic_chars setting was not being respected. 90. autoconf/Makefile.in: distclean the subdirectories before removing the Makefile. po/Makefile.in.in: remove stamp-po in the distclean target. (Joerg Sommer) 91. src/startup.c: Check the number of arguments to the unsetkey function and exit if not the expected number. 92. src/post.c: POST_FILE_HOOK was not getting called. 93. src/post.c: After sucessfully posting a postponed file, the file was not getting removed. 94. src/group.c: A SEGV could occur if the array passed to the set_group_order function contained multiple occurances of a group name. 95. doc/slrn.rc: updated (Peter J Ross) 96. src/help.c: Updated maintainer name (Peter J Ross). 97. src/slrn.c: If SLang_getkey fails, then exit. 98. src/nntplib.c: nntp_read_line will strip the leading dot when doubled. art.c modified accordingly. (Based on a patch by Rocco Caputo). 99. src/config.hin: Added a definition for SLRN_HAS_GNUTLS_SUPPORT. 100. src/config.hin,configure: Added the appropriate checks to enable IPv6 support (Joerg Sommer) 101. src/misc.c: In queries, the default values of response characters were not being properly highlighted. 102. src/slrn.c: If an error was encountered during initialization, then exit. 103. contrib/slrnrc-conv: Updates (Joerg Sommer) 104. src/art.c: Changed the crosspost query message to something a bit less confusing. 105. src/misc.c: If OUR_ORGANIZATION is defined and looks like a filename but the file does not exist, then do not use it. (Joerg Sommer) 106. src/config.hin: Removed unused USE_DOMAIN_NAME and MY_DOMAIN_NAME variables. (Joerg Sommer) 107. autoconf/aclocal.m4: Updated to version 0.2.3 108. src/mime.c: mime-charsets with spaces in them were not being properly parsed. 109. src/sltcp.c: Added support for the nss compat library. Configure using --with-ssl --with-nss-compat (Miroslav Lichvar). 110. src/misc.c: Use getaddrinfo if available for obtaining the FQDN (Miroslav Lichvar). 111. README, doc/FIRST_STEPS, doc/score.txt: Updates (Peter J. Ross). 112. autoconf/aclocal.m4: Corrected a typo affecting a test (Joerg Sommer). 113. src/*: Apparantly some server has articles with server numbers exceeding the size of a 32 bit integer. For this reason, the code was updated to support long-long (64 bit) integer types. This involved many small changes. 114. src/group.c: Small bug introduced in #113 that affecting the count of unread articles was corrected. 115. src/art.c: If a server reports an article range such as 3132-234867280, then most likely most of the articles in the range are not present on the server. I rewrote the missing-article-list code to use far less memory for such cases. 116. src/nntplib.c, startup.c, slrnpull.c: If a username or password are associated with a server via an nnrpaccess command, then authenticate with the server even if the server does not request it. This change eliminates most, if not all, uses of the force_authentication variable. 117. src/nntplib.c: _nntp_deallocate_nntp was not closing the tcp socket. 118. src/slrnpull.c: Updates for long-long support (see #113). 119. src/*.c: Cleaned up some calls to functions that used printf style formats. 120. src/interp.c: The get_response function was not being called with the proper number of arguments. 121. doc/FAQ, doc/manual.txt, doc/FIRST_STEPS: Updates from slrn-doc.svn.sourceforge.net. 122. src/Makefile.g32,src/slrnconf.h: Some updates to allow it to be compiled under windows (Thomas Wiegner). 123. autoconf/configure.ac: Added configuration options for GNU TLS (Joerg Sommer). 124. doc/*: Updates from the slrn-doc project. 125. src/Makefile.in: Add config.h to slrnpull.o dependency (Joerg Sommer). 126. src/slrnpull.c: %d was used in a format strings to print long-long values (Joerg Sommer). 127. src/mime.c: If a long message-id in a reference cannot be folded, then omit the warning since there is nothing the user can do about it. (variation of a patch from Joerg Sommer). 128. configure: --with-ssl configure option was broken. 129. src/group.c: An error was being generated when bogus groups were found causing slrn to exit upon startup. 130. src/mime.c: The last line of a base-64 encoded message was being dropped if it was not terminated by a \n character. 131. src/decode.c: Parsing of text such as "name=foo; charset=bar;" was not using the ';' as a separator. 132. po/*.po: Recreated the files using the current source strings. 133. INSTALL: New file that contains a few words about what is required to build slrn. Changes since 0.9.8.1 0. Bug fixes include: * slrnpull fetches marked articles even if no new headers are available. * slrn would sometimes eat the last char of an article when posting. * slrnpull gives permission 600 to debugging files (may contain passwords). * Some minor usability glitches (Alain Bench) * Fixed fd leaks on some error conditions (Sami Farin) * sltcp.c wrote to stderr, messing up the screen in some cases. * Going to a numerically tagged article now faster in large groups. * Do not send trailing space after some NNTP commands (Lars Kellogg-Stedman) 1. Ported to slang-2 (patch by John E. Davis). slrn still compiles with slang-1 and I will keep this option until slang-2 is completely stable. Please see the FAQ for the current status of slang-2 support. 2. Support iconv for charset conversion (patch by Felix Schueller). 3. Introduced quit_hook, which is executed when slrn quits. 4. Symbolic key names and through added (Alain Bench). Changes since 0.9.8.0 0. Bug fixes include: * slrnpull's download statistics should work correctly in offline mode. * slrn crashed on some operating systems when posting. * slrn crashed when trying to decode base64 encoded articles without body. * Don't destroy soft links / multiple hard links when writing newsrc file. * Always apply scoring rules in the order given in the scorefile. * When reading cross-posts, slrn sometimes marked additional articles in the other group(s) as read (Joerg Lueders). * slrnpull no longer posts backup copies (*~) of files you edited manually in the out.going directory. * slrnpull tries to write .headers files on interrupts. * The "Has-Body" scoring field sometimes did not work correctly. * When retrieving article children, headers without body were not marked. * Ignore signature delimiters in verbatim text blocks. * Do not choke on long header lines when replying by email. * A workaround for a bug in INN caused problems with leafnode; only use it when the server was recognized as INN from the logon message. * Fixed crash when running in wide terminals (John E. Davis) * Email address parser is more RFC2822 compliant 1. In the config file (and the corresponding intrinsic functions), the following names now denote special function keys: and through If using these names does not seem to work for you, please make sure your terminfo settings are correct. 2. In true offline mode, slrnpull can now automatically retrieve bodies of articles that get a high score value (--fetch-score option). 3. Added Swedish translation (Johan Svedberg) 4. Make hide_pgpsignature hide GnuPGs optional "NotDashEscaped" lines. Changes since 0.9.7.4 -1. Changes when building on Un*x: * The configure script accepts new options --with-server-name and --with-server-file (Matthias Friedrich). * Upgrade to more recent versions of gettext, automake and autoconf. Please let me know if this introduces problems on your platform. * The intl/ directory is no longer included in the tarball, as most people who want NLS should already have GNU gettext installed. 0. Bug fixes include: * Setting new_subject_breaks_threads to 2 has an effect again. * Some translations (fr/ko/nl/ru) were broken and could cause segfaults. * Fixed possible buffer overrun when parsing "Xref" header lines. * Fixed memory leak when grouping scorefile entries. * No more rubbish at the end of popup window lines (Jurriaan). * subject_compare_hook leads to the expected result again (Jurriaan). * Ignore "no data found" errors when using uudeview (Chris Hanson). * Don't segfault when toggling past the 10th header_display_format. * Follow convention to use "Message-ID" instead of "Message-Id". * Use "X-Posted-To" instead of "Posted-To" (did not make it into RFC2822) * Also attempt MIME-decoding if no "Mime-Version:" header line is found. * Don't add an empty line at the end of saved articles (Alain Bench). * Use a completely unmodified copy of the article when piping / saving. This is important for some yenc-encoded and PGP-signed articles. * Sometimes, all headers were downloaded even when user set a limit. 1. Changes to the user interface: * view_scores uncollapses threads (suggested by Jurriaan W Kalkman) and can optionally be left by pressing 'q'. * By default, articles are now saved to folders with lower case names; upper case filenames are still used when the file already exists. The new hook make_save_filename allows overriding these defaults. * In header_display_format, %b choses a suitable "unit" automatically. * Browsing URLs will also use rot13 if it's toggled on in the pager. * The prompt when writing a followup to a crosspost should be more understandable and can now be turned off via "netiquette_warnings". When selecting "set Followup-To", this is announced in the message body; this can be configured with the new variable "followupto_string". * toggle_quotes now tries to find a non-blank line to leave on screen. * Defaults for "followup_string" and "followup_date_format" changed. * "postpone_directory" now defaults to "News/postponed"; if necessary, slrn will create this directory automatically (after asking the user) * Warn at startup when setting a variable that doesn't have an effect. * The score value 0 no longer has a special meaning; if you want to assign the score 0 and stop scoring for this article, use =0. * When no server name is given, slrn tries "localhost" as the default. * You now need to escape (double) % signs in custom_headers. 2. When used in combination with slrnpull, slrn now supports "true offline reading", i.e. you can tell slrnpull to download article headers only, mark interesting ones for download in slrn and fetch those article bodies during the next run of slrnpull. Please see doc/slrnpull/README.offline for details. 3. slrnpull no longer completely rewrites the overview files when expiring articles, which should speed the process up quite a bit. If you still need to rebuild the overview, you can use the new --rebuild option (based on a patch by Jurriaan W Kalkman). 4. If your terminal supports it (and you are not using Win32 or OS/2), you can now use colors and attributes at the same time. Just append them to the color lines in your config file, e.g.: color underlinetext "default" "default" "underline" 5. Set use_recommended_msg_id to 1 in your config file if you want slrn to make use of server-proposed Message-IDs; the IDs will get saved along with the article to the save_posts mbox file. (patch by Felix Schueller) 6. Added intrinsic functions article_cline_as_string, article_cline_number, article_count_lines, article_goto_line, article_line_down, article_line_up, has_parent, header_cursor_pos, raw_article_as_string, set_color_attr (see doc/slrnfuns.txt). 7. Custom sorting now allows you to use different criteria for sorting initial articles of threads and articles inside threads (see custom_sort_order in manual.txt for details). (patch by Anatoly Vorobey) 8. locate_article ignores leading "news:" (Jarek Baczynski) 9. When reading in spool mode with spool_check_up_on_nov set, slrn now finds out the number of bytes of each article, even if it is not included in the news overview file (based on a patch by Jurriaan W Kalkman). 10. Support Cancel-Locks using the canlock library (--with-canlock) that can be obtained from ; you also need to set the new variable "cansecret_file" to a file containing your Cancel-Lock password to enable this (based on a patch by Andreas Barth). 11. Support GNU TLS via its new OpenSSL compatibility layer (--with-gnutls). Please note that GNU TLS still is under heavy development and that slrn's support for it is still untested (based on a patch by Joey Hess.) 12. New command-line option "-w0" that waits on startup, but only if a warning or error is displayed. 13. Updated cleanscore, see contrib/NEWS.cleanscore (Felix Schueller) 14. Verbatim text can be hidden using toggle_verbatim_text (default binding '{') or hide_verbatim_text in the config file. (Arek Sochala) 15. The "BEGIN PGP SIGNED ARTICLE" line is displayed using the "pgpsignature" color and stripped on followups. (Emmanuele Bassi) 16. If query_read_group_cutoff is set to -n, slrn will automatically (without prompting) download n articles when more than n are present. 17. Support Turkish characters on Win32 - set charset to "ibm857" for this. With help from A. Alper ATICI 18. Re-structured the manual and added a chapter about slang's pre-processing facilities. (Matthias Friedrich) 19. The config variable cc_followup_string is obsolete; cc_post_string now covers all cases. Currently, the only supported escape sequence is "%n" for newsgroup name. 20. New translations: * be.po (Belarusian; Hleb Valoska) * fi.po (Finnish; Lauri Nurmi) * tr.po (Turkish; A. Alper ATICI) 21. Remove duplicates when browsing URLs (Ruediger Sonderfeld) 22. IPv6 support (requires getaddrinfo; patch by J.H.M. Dassen (Ray)) 23. A new, updated and more comprehensive FAQ (doc/FAQ) - it replaces the files FAQ, SCORE_FAQ and slrnpull/FAQ (written by Matthias Friedrich and me, based on John E. Davis' original files). Changes since 0.9.7.3 0. Bug fixes include: * slrn sometimes hung when reading via SSL. (Robert Dennis Manchester) * Sometimes headers were cut off during MIME encoding (Andreas Ferber) * Mouse support did not work correctly when using a translation. * Fixed a segfault while scoring. (Byrial Jensen) * Fixed rare segfault caused by broken "References:" lines. (Felix Schueller) * Fixed a segfault while browsing URLs. * get_(fg|bg)_color() mapped color names incorrectly and did not allow quotes[0-7] as an argument. * Use color object "message" for all prompts. * The high / low scoring article counters work correctly. * Don't remove _^H combinations in articles (corrupted yenc-encoded data). * Don't decode headers when writing them into the overview file (slrnpull). * The --with-libdir config option was ignored. * Work around a problem with leafnode when getting articles from a different group by Message-Id. * Recognize SN's timeout messages. * TABs in the text of popup_window()s are now expanded correctly. * Don't turn off scoring when scorefile contains a single invalid regexp. 1. New algorithm for article sorting (based on a patch by Felix Schueller). This adds a highly configurable custom sorting interface (which will completely replace the choice in sorting_method at some point). See custom_sort_order and custom_sort_by_threads in the manual. Moreover, the new code sorts "siblings" inside of threads. 2. Made confirm_actions a bitmapped value to allow more fine-grained control. The new default is 31 (confirm all actions). 3. The output of --kill-log now also shows which scorefile entries match the killed article (like view_scores; based on patch by Jurriaan W Kalkman) 4. New variable max_queued_groups to control batching of GROUP commands at startup, as some servers do not seem to like it. (Craig B. Agricola) 5. In article mode, "expunge" now triggers the newsrc autosave copy feature. 6. Added intrinsic functions bsearch_article, re_bsearch_article, re_search_article_first, search_article_first, set_ignore_quotes, set_strip_re_regexp, set_strip_sig_regexp and set_strip_was_regexp. Added a return value to register_hook (hopefully, you'll find it backwards compatible). 7. Added support for dynamically linking slang modules using the import intrinsic function (where available). 8. Added --with-mta option to the configure script to easily allow the use of alternate mail transport agents (MTAs). 9. In a Cygwin environment, slrn can (and should) now be built Unix-like. 10. More translations: * es.po (Spanish; Walter Echarri) * fr.po (French; slrn-fr project) * ko.po (Korean; Im Eunjea) 11. New config variable "hide_quotes" (see manual for details). 12. When using inews on OS/2 or Windows, the article is now written to a temporary file instead of piped into the program. Changes since 0.9.7.2 0. Bug fixes include: * Removed code that unpacks "shell archives" as it causes a serious security hole. Reported by Byrial Jensen. * Even when using read_active, slrn would enter all subscribed groups. * force_authentication was ignored when re-connecting. * In rare cases, the need to send authentication data was not recognized. * Interpret "news:" URLs enclosed in angle brackets correctly. * Scorefiles get "include"d only once (no more loops). * Unsubscribed groups are no longer moved to the bottom of the newsrc file. * Multiple '%s' in (non_)Xbrowser are handled correctly (fixes segfault). 1. Minor UI changes: * Tagging ('*') an article marks it as unread. * The new default of 'reject_long_lines' is 2. * When confirm_actions is set, catching up a group requires confirmation. * Complain if user specifies a nonexistant config file on the command line. * Made new_subject_breaks_threads a bitmapped value (see manual for details) 2. On Unix, gettext is used to translate messages. Thanks to the slrn-pl and slrn-fr projects who helped with this and provided patches. Thanks to Byrial Jensen for a lot of minor improvements. Currently, the following translations are available: - da.po (Danish; Byrial Jensen) - de.po (German; Jens Wahnes) - it.po (Italian; Emmanuele Bassi) - nl.po (Dutch; Jelmer Vernooij) - pl.po (Polish; Jarek Baczynski / Arkadiusz Sochala) - ru.po (Russian; Andy Shevchenko) Note: This feature made the source tarball grow quite a bit, but I think it is worth it. 3. Switched to automake to generate Unix Makefiles (which required renaming some source files). Please let me know if this introduces problems for you. * You can now install the contributed scripts using "make install-contrib" * "uninstall" and "dist" targets are available * New directory structure: Config files (slrn.rc and help.txt) should now be put in %sysconfdir (default: /usr/local/etc), macros go into %sharedir/slrn/macros, newsgroups.dsc in %sharedir/slrn (default of %sharedir is /usr/local/share). If slrnpull.conf is not found in $SLRNPULL_ROOT, slrnpull looks for it in %sysconfdir => Pass --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/news to ./configure to do an FHS compliant installation. 4. The new function "view_scores" (bound to 'v' in article mode) shows you which scorefile entries matched the current article. Assigning names to your entries (see score.txt for details) will make this even more useful. Based on a patch by Juergen Graefe 5. The new intrinsic functions "register_hook" and "unregister_hook" allow the definition of multiple functions for most hooks. Patch by Robin Sommer 6. An autosave copy of the newsrc file is created whenever you leave a group. This can be turned off with no_autosave. Patch by Felix Schueller. 7. Scoring on "Bytes:" (by integer value, not regexp) is possible. In header_display_format, you can use '%b' to display the number of bytes. This is available when reading overview data only (e.g. _not_ in slrnpull)! 8. In *_display_format and *_status_line, the additional modifier '*' can be used to center justify text in a field of a given width. 9. slrn accepts 8bit characters in newsgroup names. 10. Updated cleanscore, see contrib/NEWS.cleanscore (Felix Schueller) 11. The code that allows running slrnpull as an unpriviledged user can now be turned on by passing --enable-setgid-code to configure. It no longer makes outgoing postings group writeable. 12. The bottom line now has its own color object ("message"). 13. New intrinsic functions get_fg_color and get_bg_color that return the current color of an object. 14. In the readline keymap, the new functions "delbol" (^U) and "delbow" (^W) will delete to the beginning of the line or the word, respectively. 15. In selection lists (e.g. used by color.sl), pressing a letter takes you to the next (or previous, if shift was held down) entry that starts with it. 16. New descriptors in header_status_line: %h, %l and %k now stand for the number of high / low scoring / killed articles, respectively. 17. A copyright notice can now be displayed from the help window. 18. New intrinsic functions read_mini_variable (tab completes variable names) and read_mini_integer. See macros/varset.sl for an example (easy interactive setting of variables at runtime). Changes since 0.9.7.1 !!! Changes when building on Un*x: * Support for inews, slrnpull and spool is now disabled by default. * Please use --with-slrnpull instead of calling "make slrnpull". 0. Bug fixes include: * In spool mode, slrn hung when applying expensive scores immediately. * In spool mode, slrn choked on 0xFF characters in overview files. * Don't segfault when trying to decode an empty article. * The "unread articles" counter and group_unread() always work correctly. * Expensive scoring in slrnpull did not work. * "include file" in slrn.rc refers to ~/file again. 1. More changes to the user interface: * Include only visible headers when forwarding, unless a prefix arg is used. * Re-tagging an article removes the numerical tag. * Numerically tagging a collapsed thread (un-)tags all the children. * The cursor always moves down after numerically (un-)tagging. * The read_mini intrinsic function does not append a colon to the prompt any longer. This was requested to allow for greater flexibility. 2. Tab completion is available when prompting for filenames. To use this feature in your macros, call read_mini_filename. 3. slrn no longer uses the deprecated syntax in "From:" headers. Parsing and MIME encoding is also rewritten to be a bit more RFC compliant. 4. Batch initial GROUP commands (speeds up startup when read_active is 0). 5. A "Date:" header is generated when writing to mbox files and sending mail; optionally, it can be turned on for posting as well (generate_date_header). 6. Only send authentication data when the server requests it (RFC2980). If you need to volunteer authinfo (e.g. because the server does not let you post otherwise), set "force_authentication" to 1. When necessary, you are prompted for username and password even if the "nnrpaccess" command is not used. 7. Text in header lines can be emphasized (add 8 to emphasized_text_mask). 8. New flag "%P" in header_display_format that is true if article has a parent. (Leopold Toetsch) 9. New variable mail_editor_is_mua to make sure mail does not get sent twice (both by mail_editor_command and slrn). 10. On Win32 and OS/2, description files are now .dsc, not ds- 11. If $SLRNHELP is unset, slrn looks for $SLRN_LIB_DIR/help.txt 12. slrn now detects and interprets "news:" URLs. 13. Support Greek characters on Win32 - set charset to "ibm737" for this. With help from Arkadiusz Mucha 14. You can now use editors that use a different charset than slrn itself (e.g. on Win32); when doing this, set editor_uses_mime_charset to 1. 15. New intrinsic function "popup_window" to display long messages / text. 16. New group mode function "group_search_backward", by default bound to "\". 17. Added manual page for slrnpull. 18. Better support for filenames on CYGWIN (includes code contributions by Rudy Taraschi ). 19. New release of cleanscore, see contrib/README.cleanscore (Felix Schueller) 20. Header lines are saved when decoding (again). Hopefully, the uudecode routine now handles them correctly. If you have uudeview support compiled in, but want to use the builtin code, set use_uudeview to zero. Changes since 0.9.7.0a 0. Bug fixes: * Saved articles are marked as read if auto_mark_article_as_read is on. * "compatible_charsets" did not work correctly. * Fixed segfault when trying to get an expunged article back in a non-threaded sorting mode. * is_article_window_zoomed works again. * extract_article_header will search full headers again if it does not require a server query. * Only use "from_myself" if realnames match exactly. * Possible crash in external uudeview support fixed. * Fixed segfault when no regexp is given in a scorefile entry. * Fixed reply address extraction when scoring on "Reply-To:" header lines and some related problems. * skip_to_next_group will not fail when all articles in a group are killed. * IBM850 charset mapping was incorrect for some characters (fixed with help from Jens Wahnes ) * ESC 2/4 RET also work when query_read_group_cutoff is non-zero. * A minor fix for building on OS/2 (Francesco Cipriani ) 1. Platform specific improvements: * Added FreeBSD keycodes for PageUp / PageDown. (Jimmy Olgeni) * Implemented "notepad printing" for OS/2. 2. Better support for broken servers: * Ignore "new" groups which are already in our newsrc file (suggested by Alex Chiang) * Test if XHDR can be used to retrieve non-overview headers. * New option "drop_bogus_groups". 3. Minor changes to the user interface: * In anticipation of its removal, display_score is now hardcoded to 1. Edit your header_display_format if you do not want to see score values. * cc_followup can be configured to behave depending on the presence of a "Mail-Copies-To" header line. One (which is the new default) means to prompt the user in this case. * slrn -i file (or -f file) now refers to ./file instead of ~/file. * More standard bindings in article mode: "Q" for fast_quit, "[" for toggle_verbatim_marks and "ESC LEFT" / "ESC RIGHT" for "skip_to_previous_group" / "skip_to_next_group". 4. Improved documentation: * Online help (the one you see when hitting '?') is completely rewritten. Most of the work was done by Matthias Friedrich. * The manual has a new section about interactive functions (Matthias / me). * New files: README and doc/FIRST_STEPS (Felix Schueller). * Cleaned up the doc/ directory a bit (suggested by Felix Schueller). * Rewrote sample slrn.rc (section on keybindings by Matthias). * slrnpull's docs are only installed along with slrnpull itself (Matthias). 5. Support good netkeeping: * If netiquette_warnings is on (default), warn when crossposting without "Followup-To:" or to more than 4 groups, when "Followup-To:" points to multiple groups or the signature is longer than 4 lines. * Chopped Message-Ids are dropped when posting the "References:" line. * The default of followup_strip_signature is now 1. 6. All status lines (group_status_line, header_status_line, art_status_line) are now configurable; please refer to the manual for a list of accepted format descriptors. Based on a patch by Leopold Toetsch . 7. Group display can be fully customized via "group_display_format". This makes "group_dsc_start_column" and "show_descriptions" obsolete. toggle_group_display is now called toggle_group_formats. 8. If "highlight_urls" is non-zero (default), URLs are drawn in the color set with "url" and are "clickable" when mouse reporting is on. slrn prompts for changes to the URL unless the middle mouse key is used. 9. Use "LIST OVERVIEW.FMT" to make sure we score "inexpensively" on all information found in the XOVER output. 10. If available, use "LIST SUBSCRIPTIONS" to decide which groups are subscribed by default when creating a new newsrc file. 11. Use "LIST ACTIVE" instead of XGTITLE (which is not really appropriate for our cause and deprecated by RFC 2980). This makes use_xgtitle obsolete. 12. Always decode base64 / quoted-printable in article bodies. If the charset is not supported, 8bit characters are stripped. 13. Added a new way to highlight unread subjects; it is enabled by setting "highlight_unread_subjects" to 2. Please see manual.txt for details. 14. Don't quote blank lines when smart_quote is set to 2 or 3. 15. Warn user on startup if his config file contains obsolete commands or variables. Matthias Friedrich updated contrib/slrnrc-conv to correct those as well. The new command line option "-w" makes slrn wait before switching to full screen mode and lets you read the startup messages. 16. More autoconf updates. Most notably, --with-uudeview is added, the code for finding OpenSSL is completely rewritten and --with-slang* takes precedence over cached values (with help from Matthias Friedrich). By default, documentation now goes to $(prefix)/share/doc/slrn (FHS). 17. New descriptors in "header_display_format": "%T" draws the thread tree only, "%c" is the number of messages in the subthread. Unlike with "%T" and "%t", the field width of "%c" can be changed. 18. When overview files are present, reconstructing threads in spool mode is much faster (based on a patch by Jurriaan W Kalkman ). 19. By default, only visible lines are printed. To print a full, unwrapped version of the article, use a prefix argument (ESC 1 y). 20. use_mime is now a bitmapped quantity that allows you to view / save / archive / pipe messages (at your option) in encoded or decoded form. The new default is 5 (decode in pager; encode when sending and archiving). 21. Better support for multipart binary postings (Jurriaan Kalkman): subject_compare_hook can be used to put similar subjects into the same thread (see macros/multipart.sl for an example). Additionally, "subject 3" is now sorted before "subject 13". 22. ESC 2 L shows all unsubscribed groups (does not query server). 23. Added intrinsic functions hide_current_group, get_group_order and set_group_order (requires S-Lang >= 1.4.0) as well as the variables _slrn_version and _slrn_version_string. 24. clientlib.c (only needed on some VMS systems) is now packaged separately (because of its slightly more restrictive license). 25. (Un-)collapsing single threads in large groups works much faster. 26. evaluate_cmd (Ctrl-X ESC) reads a line and interprets it as S-Lang. (I hardcoded this so it's always available for debugging purposes.) 27. In spool mode, --debug will now log error messages (Jurriaan Kalkman). Changes since 0.9.7.0 0. Bug fixes: * slrn does not crash in spool mode. * S-Lang versions < 1.4.0 can be used; in this case, the set_utf8_conversion_table intrinsic is not available. Changes since 0.9.6.4 John E. Davis, author and long-time maintainer of slrn, can no longer devote enough time to the further development of slrn. Thus, he decided to entrust me, Thomas Schultz , with the task of maintaining the program. I want to thank him for all the time and effort he invested in slrn so far and I will try to fulfill the task to the best of my ability. 0. Bug fixes: * refresh_groups can now safely be aborted and will check for new groups unless check_new_groups is 0. * Expensive scoring also works when applying the scorefile in article mode, when MIME encoding is involved and when reconstructing threads. * Let user mark tagged messages unread * Saving tagged messages works correctly * Use correct charset when re-editing rejected postings * Copy "Followup-To:" header line when superseding (Andreas Riedel) * Use LDFLAGS when compiling chkslang (Garry Williams) * Fixed crash on some non-unix systems when no editor was defined * Fixed typo in ispell.sl * Handle code 480 in response to GROUP and NEWGROUPS commands. * Fixed group search when the cursor is on the group you are searching for. * When an article is not on the server, locate_header_by_msgid no longer throws an slang error instead of returning 0. * Fixed some VMS issues (with help from Tilman Linneweh) * Fixed sorting by date on non-unix systems (with help from Sylvan Butler) * uudecoding does not corrupt files that contain legal spaces. * uudecoding also works with "\r\n" line endings. * Realname is not stripped from "To:" address on replies (Felix Schueller) * Avoid race condition when posting to spool. * Correct handling of DST when finding new groups from active.times. * Fixed dozens of potential buffer overflows all over the sourcecode. * Handle formfeed when it is not on a line of its own. * Unwrap articles for replies / forwards. Re-wrap afterwards. * When user aborts followup / forward / supersede, the associated hook is not executed. * Restore old article window size when un-zooming. * Work around a bug in the XPAT implementation of Typhoon servers. * Minor fixes for building on Cygwin (with help from Rudy Taraschi) 1. In header overview, the color of subjects and scores depends on the score of the article. The new color objects "neg_score" and "pos_score" are used for scores != 0, the existing color object "high_score" for high scoring articles. This can be turned off with "color_by_score". (Collaborative patch from Felix Schueller and me.) Like most GUI newsreaders, slrn now also highlights subjects of unread articles. This can be turned off with "highlight_unread_subjects". 2. Integrated patch from Felix Schueller that introduces an improved (downward compatible) scorefile syntax that allows grouping of scoring rules. The score values 9999 and -9999 do not have a special meaning any longer. If desired, you can use the equal sign prefix for the same effect. Please refer to score.txt for details. slrn now also encloses its scorefile entries with comments marking where exactly they begin and end. This is useful for the script cleanscore. 3. Basic reading support for UTF-8. By default, it is converted to Latin 1, but you can change this by using the intrinsic set_utf8_conversion_table (see macros/latin2.sl for an example). Full UTF-8 support will be added as soon as slang 2.0 is out. 4. New descriptor "%D" in header_display_format and followup_string which prints the date formatted according to the new variables overview_date_format, followup_date_format and use_localtime. 5. New scoring keyword "Age:" to score articles which are younger / older than a given number of days. 6. The top status line is now configurable by setting "top_status_line" to a format string in which the following descriptors are recognized: %d current date (in the preferred representation for the current locale) %n name of the current newsgroup %s name of the current server %t current time (in the preferred representation for the current locale) %v version of slrn The %g descriptor works exactly like in "header_display_format". 7. When creating a scorefile entry, you can now also specify the date of expiry as N days from now. (Philipp Grau ) 8. Article bodies in base64 are decoded and displayed in the internal pager (patch from Matthias Friedrich). 9. Long words can now be wrapped at the right border of the screen. Configurable with "wrap_method". (Andreas M. Kirchwitz ) 10. More readable "smart" (aka tin-like) quoting that adds a blank between your quote_string and previously unquoted lines. Can be turned off with "smart_quote". (Matthias Friedrich ) 11. When a followup would result in a crossposting, slrn issues a warning and offers a choice of possible actions. (Felix Schueller) 12. Optionally, slrn can warn you when you write a followup and a Followup-To header line is present. New variable: warn_followup_to (Felix Schueller) 13. Current download ratio is displayed when getting or saving an article. (patch from QuoteMstr ) 14. Support for the convention of using "(was:...)" when changing the subject: "new (was: old)" and "new" are treated as equivalent when sorting. Using "strip_was_regexp", you can also automatically strip old subjects on followups and when creating scorefile entries. 15. "strip_re_regexp" can be used to strip non-standard back-references on followups (some broken user agents translate the "Re:"). 16. "strip_sig_regexp" is available to detect broken signature delimiters (based on patch by Emmanuele Bassi ). 17. Header lines can explicitly be hidden by prefixing them with a bang (`!') in visible_headers. 18. If you are used to signing off your messages before the signature, you can now use "signoff_string" to do this automatically. 19. New variable supersedes_custom_headers that works just like the existing custom_headers variables and is used when superseding a message. 20. New intrinsic functions datestring_to_unixtime, get_article_window_size, get_header_number, reload_scorefile, setlocale and sort_by_sorting_method (see docs for details). 21. ESC 2 ESC p can be used to reconstruct a thread much faster than with ESC 1 ESC p; however, in most cases it does not find all articles. 22. New option "--kill-log" in both slrn and slrnpull to keep a logfile of articles that were killed by the scorefile. New option "--kill-score" in slrnpull to change the kill treshold (default: 0). 23. In header overview, the new color object "from_myself" is used for the `From:' header line / realname if it contains your name. (patch from Andy Shevchenko ) 24. When you set "broken_xref" to 1, slrn requests articles by Message-ID instead of header number. This provides support for servers with broken "Xref:" headers. (reported by Robert Jan) 25. Print a warning if editor_command could not be executed. 26. locate_article now accepts Message-IDs without angle brackets. 27. Write "--debug" output to an unbuffered file. 28. In article mode, "expunge" ('x') will not remove tagged articles. 29. Compile-time option SLRN_GEN_FROM_EMAIL_HEADER replaced with slrnrc variable "generate_email_from" (default: 1 on IBMPC, 0 everywhere else). 30. New compile-time feature SLRN_HAS_STRICT_FROM which makes it possible to enforce correct "From:" header lines on Unix and VMS. When turned off (default), the "From:" line now appears in the editor (includes some code by Felix Schueller). 31. New slrnrc command "posting_host" which can (in some cases) be used to allow generation of Message-IDs on systems without an official hostname. 32. Added charset mapping for codepage 852 (IBM852) <-> latin2 (Arkadiusz Mucha ) 33. Changed behaviour of "move_group" to meet most people's expectations when some groups are hidden. "transpose_groups" is untouched. 34. Added variable "cc_post_string" that is used when posting ("cc_followup_string" only worked correctly on followups). Currently, it does not support any % format descriptors. 35. Expensive scoring should now be faster on servers that support XHDR. If you find the opposite to be true for you, set "prefer_head" to 1. 36. In "followup_string", %R expands to the first part of the realname. 37. Archived postings and replies look much more like the posted versions. 38. Improved "--version" output. 39. New config command "compatible_charsets", which can be set to a comma- separated list of MIME charsets your terminal is capable to display. (This is a bit of a hack, needed until we have better charset support.) 40. Some UI cleanups (includes many proposals from Matthias Friedrich): * Removed option "cancel" where it did exactly the same as "no". * Renamed some functions for better consistency: In group mode: pageup / pagedown -> page_up / page_down up / down -> line_up / line_down In article mode: art_bob / art_eob -> article_bob / article_eob left / right -> article_left / article_right art_xpunge -> expunge article_*dn / article_*up -> article_*_down / article_*_up down / up -> header_line_down / header_line_up pagedn / pageup -> header_page_down / header_page_up *prev* -> *previous* shrink/enlarge_window -> shrink/enlarge_article_window print/pipe_article -> print/pipe The old names are still working, but will be removed before 1.0 * Replaced "scorefile" .slrnrc command with a "scorefile" variable * article_eob skips to the end of the article, even if it was not yet shown * Most functions now affect the currently displayed article (if none is shown, the one associated with the current header is fetched): Interactive: article_search, cancel, create_score, decode, followup, forward, pipe, print, reply, save, supersede Intrinsic: pipe_article, re_search_article, save_current_article, search_article * ESC 2 RET retrieves old articles (like the docs suggested); ESC 4 RET only prompts when reading more than query_read_group_cutoff articles. * Removed compile time options SORT_BY_SCORE and TILDE_FEATURE, as they can be configured at runtime and don't cause significant overhead. * Put compile time options under autoconf control (based on patch by Matthias Friedrich); rewrote some autoconf macros; don't compile local hostname into the binary by default. 41. Included a much shorter, but up-to-date man page written by Matthias Friedrich. More detailed documentation can be found in the new slrn manual, which is now part of the source distribution (doc/manual.txt). Format is text/plain, but more formats are available online. I also rewrote README.w32 and updated README.macros. 42. Added contrib/ directory to the source distribution. It currently contains two helpful perl scripts: cleanscore (by Felix Schueller) can be used to purge expired scorefile entries; slrnrc-conv (by Matthias Friedrich) rewrites your slrnrc file to use the new function names. Changes since 0.9.6.3 1. src/grplens.c: Connection to grouplens server was not always being closed. (Chris Siegler ) 2. src/misc.c: Add a warning if a FQDN cannot be found. 3. Support for SSL added--- see doc/README.SSL. Changes since 0.9.6.2 0. Bug fixes: artmisc.c: If a line is marked as a PGP line, then it cannot also be a quote line. verbatum-->verbatim art.c: Only wrap/unwrap an article when the display requires it. This avoids a nasty bug in decoding MIME QP. doc/FAQ: 0 and 12 were the same (Hynek Schlawack ) art.c: Allow rot13 to apply to signature. misc.c: slrn_case_strcmp rewritten to work around a gcc bug on HPUX. uudecode.c: If a line contains a space, then skip it. art.c: get_parent_headers: avoid self-referencing articles group.c: remove arbitrary group name length limit. group.c: code added to support for arbitrarily long newsrc lines. art.c: Fix sorting methods 4 and 6. (Thomas Schultz/Felix Schueller) art.c: Add From header to forwarded emails. (Thomas Schultz/Felix Schueller) art.c: MIME process article after saving it (Thomas Schultz/Felix Schueller) art.c: have ESC-p sync line with parent (Thomas Schultz/Felix Schueller) art.c: avoid infinite loop on search_article (""); post.c: if signature is "", then do not add it. mime.c: allow whitepspace to follow `=' continuations (Thomas Schultz/Felix Schueller) art.c: update thread scores after art_xpunge (Thomas Schultz) 1. #v+/#v- verbatim marks may be hidden via `hide_verbatim_marks' variable. The article mode function "toggle_verbatim_marks" may be used to toggle the state of the marks. 2. Special characters in URLs are passed to browser in hex format. 3. BeOS system name added to version.c (Scot Hacker ). 4. line length check skipped in verbatim sections. 5. doc/README.macros: Mention post_file_hook ("Tomasz 'tsca' Sienicki" ). 6. src/xover.c: algorithm for extracting msg-id from In-Reply-To changed. 7. The thread tree depth maximum size (for the graphic) was increased from 32 to 256 after reworking how the graphic is stored. 8. doc/slrn.1,slrn.rc: typos fixed (Bill Nottingham ). 9. src/startup.c: "blue" foreground colors changed to "lightgray" to make the object standout on xterm. 10. The `Date' header may be given a color (Arkadiusz Sochala ). 11. macros/color.sl updated (Arkadiusz Sochala) 12. New slrnrc variable: 'set check_new_groups 1'. If 0, then do not check for new groups (Ada Lim ). 13. src/post.c: Allow verbatim sections to exceed 80 character line limit with no warning. Changes since 0.9.6.1 1. NULL ponter dereference fixed. Changes since 0.9.6.0 Misc bug fixes: misc.c: get_host_from_file sizeof(host)-->sizeof(line) (Russ Allbery ) art.c: toggle_headers would sometimes force an article to be downloaded. startup.c: color of "box" changed from b/b to b/w art.c: toggle_wrap with a == NULL caused a SEGV. slrn.c: Use setlocale (Klaus Alexander Seistrup) 1. Updates to slrn.rc and slrn.1. 2. DESTDIR added to Makefile.in to facilitate the creation of binary distributions (Thomas Schultz ). 3. Emphasized text may be scanned in quoted and signature portions of a message if `emphasized_text_mask' is set accordingly. 4. If process_verbatum_marks is non-zero, #v+ and #v- will be used to denote lines of verbatum text, e.g., #v+ % Some code define this () { do_that (); } #v- "set color verbatum" may be used to color such sections of an article. 5. New hook: article_mode_startup_hook. Called in article mode after headers have been read, scored, and sorted. 6. /text/ highlighted as using `italicstext' color. Changes since 0.9.5.7 0. misc bugs fixed 1. If the newsrc file indicates that articles in the range 1-N have not been read, but the server indicates that those articles are nolonger available, then mark that range as read. 2. slrn incorrectly interpreted an empty body as a server error. I think that most servers reject such messages but a few allow them. 3. Patches from Sylvan Butler : improved tin emulation macros; -s added to install to strip slrn; body added to slrn_select_prev_group function; 4. If slrn fails to initialized the terminal, it will exit gracefully. How did this fall through the cracks?? 5. If username contains a space, avoid the space when creating the message id. 6. If `use_flow_control' is non-zero, ^S/^Q processing by the terminal driver will be enabled. 7. sortdate.sl: small tweak to handle articles from the 1980s and earlier. 8. `author_display' and `display_author_realname' removed from doc/slrn.rc file. 9. slrn --version will show all compile-time options. 10. help.c: Post a postponed article reworded. 11. A score file may contain an `include' statement to include other score files. See doc/score.txt for details. (This feature suggested by Sylvain Robitaille ). 12. Small 32-vs-64 bit problem fixed where an int was used instead of a long in comparing strings. 13. There is nolonger any need to exit article mode to apply a changed score file. 14. New intrinsic functions (see docs for more info) get_visible_headers (counterpart of set_visible_headers) headers_hidden_mode (indicates whether or not some headers may be hidden) _is_article_visible (similar to is_article_visible) extract_displayed_article_header (get the header in the displayed article) 15. slrn_is_fqdn rejects names that end in a `.'. 16. `Headers Received' message modified to include group name as suggested by W M Brelsford . 17. If `read_article_hook' exists, then it will be called after an article has been read in (Marcin 'Qrczak' Kowalczyk" ). 18. Different quote levels may be assigned different colors, e.g., color quotes0 "red" "black" color quotes1 "green" "black" . . color quotes7 "yellow" "black" A maximum of 8 levels (0->7) are permitted. Make sure that your quote regular expressions match as few characters as possible. For example, use ">" and not ">*". 19. Some code in art.c moved to artmisc.c in an effort to clean it up for future improvements. 20. The toggle-quotes function maybe used with a prefix-argument to hide the nth level of quotes. 21. `toggle_signature' function suggested by Tom Friedetzky . Default binding is to "\". Also, toggle_pgp_signature added with binding "]" and a color: pgpsignature. The `hide_signature' and `hide_pgpsignature' variables may also be used. 22. If compiled with SLRN_HAS_EMPHASIZED_TEXT (default), text such as *this* and _that_ will get highlighted using "underlinetext" and "boldtext" colors, resp. This requires the variable `emphasized_text_mode' to be set to a non-zero value: if 1, do not write `_' or `*' characters; if 2, write them as spaces; if 3; write them as they are. (suggested by Dawid Kuroczko ). 23. Improved tin emulation macros from Sylvan Butler . 24. Patch from Sami Farin replace `/' characters with `_' in decoded filenames. Changes since 0.9.5.6 1. Fixed calculation of article window size in non-zoomed mode. 2. Fixed a bug in parsing of realnames that contain no alphabetical characters. 3. spool.c will check the .minmax file if no articles are present in a spool directory. 4. New intrinsic added: replace_article. This allows a macro to replace the contents of an article with a specified string. 5. slrnpull `--debug FILENAME' command line option added. 6. Some modifications to nntp.c to call the connection-lost-hook as early as possible. Changes since 0.9.5.5 1. Misc bug-fixes: a. Intrinsic function `locate_header_by_msgid' improperly interfaced to the interpreter. b. `make install' was trying to install some old, obsolete, and non-existent documentation files. c. Tiny bug fixed in new get_hostname function that manifests itself when the name server times-out. 2. With slrnpull it is now possible to specify an alternate log file via the `--logfile FILE' command line option. 3. Philipp Grau suggested using ` in the ascii thread tree instead of \. 4. Add patch from Thomas Schultz to mime-encode the real name when posting. The original patch was due to Joachim Wieland . 5. When replying, slrn adds References headers and also takes into account the To and Cc lines. This enables the newsreader to better support mailing lists. 6. If a thread has some unread headers, then it is marked with a `%' instead of a `D'. (Andrzej Radecki ). 7. When asking for a password/username, a newline character will be written first (Philipp Grau ). Changes since 0.9.5.4 0. Online documentation for slrn intrinsic functions (http://space.mit.edu/%7Edavis/doc/slrn-doc.html). See also slrn/doc/slrnfuns.txt. 1. koi8 character set from Roman Shaposhnick . 2. message_now intrinsic function added. 3. If make_from_string_hook exists, it will be called to generate `From' header lines, e.g., define make_from_string_hook () { return "My Name "; } 4. Small bug in base64 decoding of headers fixed. 5. art.c:update_ranges rewritten to avoid marking too many articles as read when one recontructs a thread via ESC-p. 6. Added patchs from Hubert Figuiere to handle some improperly mime encoded headers generated by broken software (specifically when ' ' is not converted to '_'), and to fix a potential problem with XOVER. 7. Fixed scrore file problem with groupnames containing `+'. 8. Body searching macro added to distribution (slrn/macros/search.sl). 9. article mode function locate_header_by_msgid will not uncollapse the thread unless the header is hidden in the fold. 10. New intrinsic function: locate_header_by_msgid. This takes 2 arguments: the message-id and a flag that indicates whether or not the server should be queried. 11. Semantics of cc_followup variable modified for GNKSA compliance. 12. New option: abort_unmodified_edits. Many users requested this feature. 13. `set hostname' now possible. 14. Patch from Dinko Korunic fixing a NULL pointer dereference in the Cc code. 15. Failed posting are appended to a file specified by the failed_posts_file variable. 16. Patches from Tony Houghton : supersede function and an option to strip signatures on followup: setkey article "supersede" "\e^S" % ESC Ctrl-S set followup_strip_signature 0 17. slrnpull: more verbose messages via mapping of nntp codes to strings Changes since 0.9.5.3 0. Misc bug fixes, including: * Mapping of / to \\ in Win32 and OS/2 editor variables. * slrn now honors port information encoded in hostname when refreshing newsgroups. 1. Tweak to generation of NEWGROUPS server command to make it y2k compliant. (In my opinion, the protocol is weak in this area) 2. VMS grplens.c support from Martin P.J. Zinser . 3. New configuration variable: set simulate_graphic_chars 0 Setting this to 1 will cause slrn to use simple ascii characters to represent the thread tree. 4. Patch from Hubert Figuiere to handle (broken?) knews iso-latin1 mime encoding. 5. New configuration variable: set auto_mark_article_as_read 1 If zero, reading an article will not cause it to be marked as read. 6. It is now possible to specify what headers to show via the .slrnrc line: visible_headers "From:,Subject:,Newsgroups:,Followup-To:,Reply-To:" or the slang function `set_visible_headers'. To show no headers, use "", to show only X-* headers in addition to From, use "X-,From:". (Stephane CHAZELAS provided code that was used as a basis for this feature). 7. Tweak to group.c:group_sync_group_with_server courtesy of stesch@parsec.rhein-neckar.de (Stefan Scholl). Changes since 0.9.5.2 0. Misc bug fixes 1. \n --> \r\n mapping required for the print code. 2. install target courtesy of Klaus Franken . 3. Mods to update interp.c to use some slang 1.0 features. 4. Amiga patches and MIME bug fix from Jörg Strohmayer . 5. Winsock initialization bug-fix from sgibier@mail.dotcom.fr (Stephane Gibier). 6. typo involving signals when quitting article mode corrected. 7. Bug fix so that article counts are not modified when a group read is aborted. 8. extract_article_header now trims leading whitespace. 9. New intrinsic for macros: is_article_window_zoomed () This may be used to define macros that behave differently depending upon the zoom state of the article window. 10. New printer code added (vtailor@gte.net). 11. Added slrnpull setgid patch from Sylvain Robitaille . See slrnpull/setgid.txt for more information. By default this is disabled in slrnfeat.h. 12. User-Agent header added. 13. New hook: article_mode_quit_hook 14. Added VMS patches for sltcp.c from Martin P.J. Zinser . Changes since 0.9.5.1 1. ibm850 character set made the default on Win32 and OS/2 systems. 2. New hook: post_file_hook 3. new header format descriptor: %g. This may be used to specify the column the next write to the screen should take place. Specifically, `%Xg' indicates that the cursor should be moved to column X (numbered from 0). If X is negative, the cursor will be moved X columns from the right edge of the window. To understand this, compare: header_display_format 0 "%F%-5S%-5l:%t%35s %f" to header_display_format 0 "%F%-5S%-5l:%t%35s%-24g%f" in the presence of an open thread tree. The latter form indicates that the `From' header (%f) should be written out 24 columns from the right edge of the window. 4. Andreas M. Kirchwitz suggested that scores with a value of zero be printed on the header as a blank to keep the display less busy. I took his advice. 5. doc/w32keys.txt and doc/os2keys.txt merged into one file: pc-keys.txt. 6. SLang_VMessage_Hook was set to slrn_va_message. 7. --no-post option added to slrnpull. 8. New macros files: slrn/macros/color.sl slrn/macros/posthook.sl The latter file illustrates how to use the `post_file_hook' to manipulate a message before posting it. 9. Fixed a bug in which the references appeared as blank when following up to articles whose message id exceeded the screen with and the headers were wrapped. 10. New function: print_article. This function may be customized via the `printer_name' setting. If `printer_name' is not set, then the default printer will be selected. Otherwise, the meaning of this variable will depend upon the OS: WIN32 : The name of the print queue. The default is to use the win.ini setting. UNIX : The name of a process that represents the printer, e.g., set printer_name "my_print_filter | lpr -Pmy_printer" The default is to use "lpr -P$PRINTER". OS/2, VMS: ??? needs implemented The key binding may be set via, e.g., setkey article "print_article" "y" (`y' is the default binding) Note: This function could have been defined via a macro for Unix systems, but for e.g., windows 95 this was not possible and required a built-in solution. 11. References header truncated to 998 characters to satisfy the GNKSA 2.x requirement. The real implication of this is that no header should be wrapped, nor should the total length of a header be more than 998 characters long since there are broken servers that cannot handle long lines nor can handle a wrapped header. The previous version of slrn would wrap the headers according to the NNTP protocol standards but the GNKSA forbids that. Sigh. Changes since 0.9.5.0 0. Oops. score.c contained a break statement where it should not have. Changes since 0.9.4.6 0. Misc bug fixes, e.g., the [~group, group] score bug. A silly uudecode bug was also fixed involving multi-part encoded files. 1. Watcom CC specific typo in src/slrnconf.h corrected (Bill McCarthy ). 2. version.o add to Makefile.OS2 (Bjoern Frantzen) 3. Header display format is now customizable. Up to 10 header formats are available and ESC-a will switch among them. By default there are 4 pre-defined formats: "%F%-5S%G%-5l:[%12r]%t%s" "%F%G%-5l:[%12r]%t%s" "%F%-5l:%t%s" "%F%-5S%-5l:%t%50s %r" The generic format specifier begins with the `%' character and must be of the form: %[-][w]x where the brackets indicate optional items. Here, w is a width specifier consisting of one or more digits. If the minus sign (-) is present, the item will be right justified, otherwise it will be left justified. The item specifier (x) is required and, depending on it value, has the following meaning: s : subject S : score r : author real name f : from header G : Group lens score l : Number of lines n : server number d : date t : thread tree F : flags (read/unread, `*' and `#' tags, header number) % : percent character Thus, "%F%-5l:%t%s" indicates that the header window will contain the, in order: the flags, the number of lines the article contains right justified in a 5 character field, a `:', the tree, and the subject. There are two methods of setting these formats. The first way is via a line in the .slrnrc file using the header_display_format command. This command takes two arguments: an integer that indicates the format to set, and a string that specifies the format, e.g, header_display_format 0 "%F%-5S%G%-5l:[%12r]%t%s" sets the 0th format. There are 10 formats available and the ESC-a command will switch among them. The second method is via the S-Lang macro language, e.g., set_header_display_format (0, "%F%-5S%G%-5l:[%12r]%t%s"); Finally, ESC-a may be used with a prefix argument to select a particular format, e.g., ESC-0 ESC-a will select the 0th format. 4. Added patches from http://home3.inet.tele.dk/byrial/slrn: resize patch prefix_arg patch ==> two new slrn macro intrinsics: get_prefix_arg reset_prefix_arg msgid patch ==> new slrn.rc option: set generate_message_id 1 5. If you are using slang 1.2.x, then you can change the `cursor' from "->" to a bar across the display via: set display_cursor_bar 1 6. Now score files can contains slang preprocessing constructs (patch from Jan Hlavacek ). 7. Header window will now scroll horizontally if the article window is not visible. Otherwise, the article window will be the one that horizontally scrolls. 8. New article mode keybinding: setkey article "zoom_article_window" "z" This will cause the header window to disappear with the article window zoomed to full screen (minus the top/bottom lines of the display). If the window is already zoomed, it will `un-zoom'. Changes since 0.9.4.5 1. uudecode bug fixed. 2. VMS specific NETLIB update of clientlib.c. 3. Explicitly added the GNU copyright to source code files. 4. Updated to use slang 1.0.3. For Win32 users this means you can use bright background colors and the mouse. 5. For CYGWIN32 and MINGW32 compilers, use src/Makefile.g32. Do NOT use the Unix configure script because WIN32 is NOT Unix. (Note: gcc in the CYGWIN32 distribution (b18) kept getting signal 33, so I could not compile slrn with it. However, I had no problems with MINGW32.) 6. Autoconf now checks for socket.h (Marius Groeger ). Changes since 0.9.4.4 1. Bug fix related to `system' when called from a slang macro. Changes since 0.9.4.3 0. Many, many changes to the slang interpreter. Version 1.0 of slang is now required. Some changes may affect pre-existing macros. See the slang documentation for more information (in particular, see slang/UPGRADE.txt for more information about upgrading your slang macros). There are some new intrinsics to help isolate problems by re-routing slang traceback messages to a log file: open_log_file (FILENAME); close_log_file (); log_message ("My Message\n"); You also need to set `_traceback = 1;'. 1. Small wrapping changes that permit header lines to be properly wrapped. 2. Integrated WIN32 patches. Thanks Chin Huang !!! 3. Included reject-long-lines patch from Byrial Jensen . Add set reject_long_lines 2 to be given the opportunity to post an article with long lines. 4. If slrnpull fails, it returns an error code to indicate the failure: 1 Unspecified reason 2 Bad usage 3 Failed to connect 4 Connection Lost 5 Signaled 10 Malloc Failure 20 File I/O 5. Added Andy Harper's do_netlib_read routine for VMS. Thanks Andy! Changes since 0.9.4.2 0. Bug fixes, tiny documentation corrections. In particular, one of the bug fixes concerns a somewhat nasty bug that, although unnoticed until 0.9.4.1, appears to have been around for a while. Changes since 0.9.4.1 1. Add charset tables from Mark Nowiasz . I also changed `slrn --version' to show the supported character sets. 2. New customizable color objects: box --- This objects represents the are of the screen when a box pops up. frame - The border of the box selection The currently selected text in the selection box 3. New hooks for macro customization reply_hook forward_hook followup_hook (see macros/xcomment.sl for example) post_hook post_filter_hook The post_filter_hook allows you to run the article to be posted through something such as ispell, a shell script, etc... The file to be posted is passed as a parameter to this hook. See macros/ispell.sl for an example. 4. New intrinsic macro functions: get_response set_color select_list_box get_grouplens_score set_input_chars 5. OS/2 patches from Bjoern Frantzen for OS/2 FAT file systems. 6. Support for X-Mail-Copies-To added. 7. cc_followup_string now expands %n, etc... Changes since 0.9.4.0 0. Small (nothing serious) bug fixes 1. Typo prevented slrn to compile on Non-POSIX systems corrected. 2. slrnpull ported to NeXT (flight@mathi.uni-heidelberg.de) 3. Olly's mail-copies-to patch implemented 4. A new interface to ``browse-url''. This is not the clickable interface but it does have the feature that it works on ordinary terminals. 5. I added a ``postpone'' interface. To use this, set the variable set postpone_directory "whatever" to specify where articles are to be saved. Make sure the directory exists! To post a postponed article, press `ESC P'. Use, e.g., setkey group "post_postponed" "KEY_SEQUENCE" to rebind it. 6. I integrated the NeXT character set patch from Daniel G. Kluge . 7. New color object: response_char. This is used to set the color for response characters in prompts such as: Do you really want to quit? Yes, No Here the response characters are `Y' and `N'. Changes since 0.9.3.2 0. Some bug fixes as well as slrnpull bug fixes. Also, the libc system function has been replaced. The fact is that system is broken on Linux. 1. Small change to pathname manipulation to avoid problems with \\ and / conflicts on OS/2. 2. To additions from Olly Betts that affect spool users: set spool_check_up_on_nov 1 will cause slrn to check to make sure that an article that is referred to by the overview file actually exists. The default is 0. See the slrnfeat.h variable SLRN_HAS_FAKE_REFS for the other feature. 3. New .slrnrc function: include "filename" For example, your .slrnrc file can load other files via: include ".slrn/colors" include ".slrn/keybindings" 4. Two new .slrnrc variables: set post_object "inews" % or "nntp" set server_object "spool" % or "nntp" This means that if you compiled slrn to default to nntp, you nolonger need to run slrn via slrn --spool to read from a news spool. 5. macro function extract_article_header will not fetch the article from the server if the requested header is already available. 6. Now possible to save replies to a file: set save_replies "News/Replies" and you can specify the string to be used in the reply: set reply_string "In %n, you wrote:" 7. Small improvments such as re-wrapping upon window resizing and the message-id is also saved in the save_posts file. 8. New intrinsic: get_next_art_pgdn_action. See README.macros for more information. 9. `username whatever' is not obsolete. Use `set username WHATEVER' instead. This change allows username to be changed via a macro. 10. Grouplens support changed to match current grouplens protocol. 11. Wrapping now takes place on word boundaries. frank_thieme@l2.maus.de provided a similar patch. 12. VMS patches by Ian.Miller@softel.co.uk. Changes since 0.9.3.1 0. Bug fix involving non-XOVER headers. This alone caused me to discontinue 0.9.3.1. 1. Misc bug fixes, char set tweaking 2. New variable for better compliance with standards: set reject_long_lines 1 If non-zero, slrn will reject posting articles with non-quoted lines whose length exceeds 80 characters. 3. New editor options: set post_editor_command "my_posting_editor" set mail_editor_command "my_mailing_editor" set score_editor_command "my_score_editor" These may be used to override the more generic `editor_command'. For example, I use: set score_editor_command "jed %s -g %d -f score_arrange_score" 4. Patches for display code provided by itz@rahul.net (Ian T Zimmerman). There is a new .slrnrc variable: set display_author_realname 1 It controls whether or not the real name should be displayed. 5. Spoiler patches from Olly Betts with new slrnrc variable: % set to 0 to keep the display still, and just reveal the spoiler % set to 1 to start a new page when spoiler is revealed % set to 2 to keep the display still, and reveal ALL spoilers % set to 3 to start new page and reveal ALL spoilers set spoiler_display_mode 1 Changes since 0.9.2.1 -13. Small patches from Uichi Katsuta , and uudeview patches from Mark McWhorter . -12. Re: now added to subject header of reply. -11. Fixed a bug that manifested itself when scoring on non-XOver headers. -10. If a posted article is cc'd, the message-id used for the article will also be used in the email. -9. `slrn --nntp --debug FILE' may be used to write out the dialog between slrn and the nntpserver to FILE. This is a debugging aid. -8. Sort by date added: set sorting_method 8 % most recent first set sorting_method 9 % thread with most recent first set sorting_method 10 % most recent last set sorting_method 11 % thread with most recent last -7. If slrn is run in NNTP mode, the preprocessor symbol NNTP will be defined while processing the .slrnrc file. If it is run in spool mode, SPOOL will be defined. -6. Patches from Justus Pendleton enabling slrn to work with uudeview. -5. More OS/2 patches from Bjoern Frantzen enabling slrn to work with other mailers. -4. New slrnrc variable: set metamail_command "metamail" -3. Workaround for XHDR bug in DNEWS -2. slrn/doc/os2keys.txt describes OS/2 key sequences. They differ from the standard ANSI escape sequences. -1. Distribution reorganized. Autoconf config files are in autoconf directory and documentation in doc dir. 0. Offline reading possible by using the new `slrnpull' program. See the slrnpull documentation for details. `make slrnpull' should be sufficient to compile it. 1. Small CC: problem under OS/2 fixed by Marko Teittinen (marko@tekamah.com). 3. New slrn.rc variable to control scrolling behavior: set scroll_by_page 1 to have slrn automatically perform a pagedown/up at window boundaries. This requires slang 0.99-38 otherwise this does nothing. 4. New .slrnrc options: % Start new thread if subject changes set new_subject_breaks_threads 0 5. New charcter set mapping code. The idea is to translate incoming and outgoing articles from isolatin to the ``native'' character set. For example, under OS/2, the native character set is assumed to be "ibm850". The character set may be specified by the slrnrc line: set charset "ibm850" % default for OS/2 set charset "isolatin" % default for Unix and VMS Currently only ibm850 and isolatin are supported. I suspect a future version of slrn will be more precise in the specification of isolatin and support more chatacter sets. But the current idea is that there is one ``usenet'' character set called ``isolatin'' and selecting isolatin as the host character set will essentually turn of the mapping since isolatin --> isolatin is just the identity map. I am grateful to Bjoern Frantzen, bjoff@bgnett.no for the original code as well as other OS/2 fixes. 6. Small tweak to MIME encoding. Changes since 0.9.2.0 0. Bug causing slrn to hang on VMS fixed. The bug was tracked down with the help of Andrew Brennan . 1. man page and slrn.rc updated to reflect the fact that `art_header_bob' and `art_header_eob' functions were renamed to simply `header_bob' and `header_eob', resp. Also, the functions `goto_beginning' and `goto_end' are being phased out in favor of `art_bob' and `art_eob', resp. 2. Fixed a compilation problem on NeXT. mching@inow.com submitted OS/2 makefile and config patches for EMX compiler, and cardio@orsola.med.unibo.it (cardio) submitted patches for Ultrix. 3. The default for min_high_score was incorrectly set to 0. It has been changed to 1. 4. New intrinsics for macros: get_header_score set_header_score 5. New feature: SLRN_HAS_END_OF_THREAD See src/slrnfeat.h for more information. This feature is enabled by default. In the current implementation, it is a compile-time option-- there is nothing to disable it at run-time. 6. Some of the documentation updated. Changes since 0.9.1.0 0. The macro functions read_mini and read_mini_no_echo now take three arguments. See README.macros for more information. This change was necessary because the ``read input from user'' routines are now more flexible and support recall of previously entered text. 1. Renamed `group_mode_hook' to `group_mode_startup_hook'. Added a new hook `group_mode_hook' that is called every time group mode is re-entered. 2. Oops. A horrible bug that manifested itself when the quote string was not specified via `set quote_string' has been fixed. 3. `set use_color' added so that `set use_color 0' may be used to turn off color support. 4. The name of a header and its value may be be given a different colors using, e.g., color headers "green" "white" color header_name "red" "white" This means that the header 'From: davis@space.mit.edu' will appear with 'From:' in red/white and the rest will appear as green/white. 5. It is now possible to customize the keybindings of the command prompt. The defaults are: setkey readline bol "^A" % Beginning of line setkey readline eol "^E" % End of line setkey readline right "\e[C" % Move right setkey readline left "\e[D" % Move left setkey readline bdel "^H" % Delete backward setkey readline bdel "^?" % Delete Backward setkey readline del "^D" % Delete Foreword setkey readline deleol "^K" % Delete to End of line setkey readline trim "\e/" % Trim whitespace setkey readline quoted_insert "^Q" % Quoted insert The name of the keymap is `readline'. 6. New intrinsic functions for macros include: thread_size % Returns number of headers in thread collapse_thread % Collapse current thread uncollapse_thread % Uncollapse current thread is_thread_collapsed % Returns non-zero if current thread is collapsed get_header_tag_number article_as_string % Returns whole article as a string tt_send % Send argument to terminal header_next_unread % goto next unread header input_pending % Wait for input or timeout getkey % read keyboard character ungetkey % push back keyboard character set_input_string % provide answer to prompt get_yes_no_cancel % get response from user See README.macros for more information. 7. New .slrnrc variable macro_directory controls where macro file are loaded from. For example, set macro_directory "News/macros,/usr/local/lib/slrn/macros" interpret "util.sl" interpret "tin.sl" will search for the macro files in $HOME/News/macros, /usr/local/lib/slrn/macros, and, as a last resort, in the home directory ($HOME). 8. Now possible to add custom headers to followups and replies. The actual headers are controlled by new slrn.rc variables: set reply_custom_headers "X-Bla: Bla bla" set followup_custom_headers "X-Bla: Bla bla" The string assigned to these variables may contain the format specifiers of the 'followup' variable. This idea was presented to me by John Goerzen . 9. Several people have sent me patches for customization of high/low score thresholds. The following .slrnrc variables are now available: set min_high_score 1 set max_low_score 0 set kill_score -9999 One might want to set these on a group by group basis. This is possible via a macro. The best way to do this is to put the appropriate statements in a 'pre_article_mode_hook' described below. 10. New hooks for macros: resize_screen_hook : called when screen size changes pre_article_mode_hook: called before grabbing headers from server in article mode. Changes since 0.9.0.0 -1. features.h changed to slrnfeat.h to avoid GNU C problems. 0. Misc bug-fixes, e.g., xgtitle operational again. In addition, I rewrote the lowlevel tcp/ip code so that slrn should now be more responsive to Ctrl-G abortion and suspension. 1. The following .slrnrc commands are obsolete and will not be supported for too much longer: "quote_string" "realname" "replyto" "organization" "followup" "cc_followup_string" "decode_directory" "editor_command" These are now `set' type variables. That is, the new usage is: set quote_string ">" etc... 2. If a piece of authentication information is supplied as an empty string as in nnrpaccess "news.mit.edu" "davis" "" slrn will prompt for the information. 3. It is now possible to specify the ``help'' string that is displayed at the bottom of the display via the variables: set art_help_line "bla bla" set header_help_line "more bla bla" set group_help_line "and even more" 4. Scrolling improvements. 5. It is now possible to use, e.g., setkey article "digit_arg" "\eOP1" setkey group "digit_arg" "\eOP1" to bind a key to the prefix argument function. 6. Group search also search group description 7. `set use_tilde 0' may be used to turn off tilde feature. 8. New interpreter intrinsics: get_group_flags set_group_flags is_article_visible is_group_mode extract_article_header set_article_window_size read_mini_no_echo save_current_article select_group group_search group_down_n group_up_n group_unread Changes since 0.8.8.4 0. Tiny problem with server timeout fixed. 1. GroupLens support added. See README.GroupLens 2. Sort by score implemented. See src/features.h to disable it. To sort by score, add: set sorting_method 5 set display_score 1 to your .slrnrc file. Set display_score to 0 to disable displaying the score value. If the score value is displayed, the number of lines in the article will not be displayed. Thanks go to Olly Betts for this feature. 3. Score file lines such as: [~rec.crafts.*, rec.hobbies.*] are now supported. The `~' character means that the set of scores implied by this line applies to any group EXCEPT rec.crafts.* and rec.hobbies.*. That is, the `~' character may be used as a NOT operator in this context. 4. New slrnrc configuration option: set custom_headers "X-Whatever: bla\nX-Misc: bla bla" 5. New group mode function: move_group. This will allow you to use the up/down arrow keys to move a group to a different location. It has a default binding of `m'. 6. Added Felix von Leitner's cross posting and tilde patches. The cross posting patch is enabled via the SLRN_HAS_MSGID_CACHE feature. Similarly, the tilde patch is available via SLRN_HAS_TILDE_FEATURE. Thanks Felix. 7. S-Lang interpreter available. Set SLRN_HAS_SLANG in features.h to enable it. See also README.slang and slrn.sl for more information. The 0.9 series of slrn releases will feature more and more interpreter capabilities. Changes since 0.8.8.3 0. Bug fix release and patches to get it to compile under VMS again. Changes since 0.8.8.2 0. Misc bug fixes 1. Support for INEWS and LOCAL NEWS SPOOL. The INEWS patches were originally provided by Erik Manders . Olly Betts is responsible for the local spool support. Edit src/features.h to enable these options. The following slrn.rc variables are are related to the spool support: set spool_inn_root "/export/opt/inn" set spool_root "/export/news" set spool_nov_root "/export/news" % -- The following filenames are relative to spool_root set spool_nov_file ".overview" set spool_active_file "data/active" set spool_activetimes_file "data/active.times" set spool_newsgroups_file "data/newsgroups" Of course default values for these files may be hard-coded. See src/features.h. In addition, new command line arguments have been added: --inews ==> use inews for posting --nntp ==> use nntp --spool ==> use local news spool --version 2. Score files now allow more than one newsgroup pattern to be specified, e.g., [sci.*, comp.*] . . Changes since 0.8.8.1 1. base 64 decoding support 2. On VMS, the personal slrn configuration file has been renamed to slrn.rc. See features.h for changing this. Also, many thanks to Andy Harper (A.HARPER@kcl.ac.uk) for work on DCL make files. 3. Small bug fixes Changes since 0.8.8.0 0. Bug fixes (hangup, connection aborts, article/header percentage counts, etc..) 1. Oops. Forgot to provide a way to turn off video attributes. Now you can use `none', e.g., mono headers none 2. New variable for group descriptions: group_dsc_start_column set group_dsc_start_column 40 causes descriptions to start in column 40. 3. Now possible to color descriptions via: color description blue white mono description bold 4. ^G abort of header retrieval. 5. New variable: set lines_per_update 50 sets the granularity of slrn's percentage meters. 6. Spoiler support provided by Olly Betts (olly@mantis.co.uk). The .slrnrc variable `spoiler_char' may be used to specify the character used to hide the text. The default is '*': set spoiler_char '*' 7. .slrnrc `ignore_quotes' specifier can take up to 5 regular expression patterns, e.g., ignore_quotes "^ *[:=|+>]" "^ *[A-Za-z]>" specifies two patterns. 8. Certain compiler symbols such as NO_DECODE have been renamed and moved to the new file: features.h Changes since 0.8.7 0. Misc bug fixes 1. Use of the XGTITLE command is turned off by default. Use the variable `use_xgtitle' to turn it on. 2. New configuration settings for your .slrnrc file set Xbrowser "netscape %s &" set non_Xbrowser "lynx %s" Press the `U' key (browse_url) for slrn to search for a URL and call the appropriate browser. Thanks go to Justus Pendleton for the patches. 3. When creating a score from within article mode, you will be prompted for whether or not the score is local or global. This patch was the idea of Colin Perkins . 4. Use `set query_reconnect 0' in your .slrnrc file to turn off reconnection confirmation. 5. `ESC 1 *' now removes all `*' marks. 6. If `cc_followup' is -1, slrn will prompt whether or not to cc the followup message. 7. If linked against slang version 0.99-30 or later, it is possible to customize the video attributes on mono-chrome terminals, e.g., mono cursor reverse blink mono headers bold mono author bold blink . . The above lines will cause the author part of the header to blink in bold, the cursor will blink in reverse video, etc... 8. New variable to set: write_newsrc_flags % If 0, save all groups when writing newsrc file % if 1, do not save any unsubscribed groups % if 2, do not save any unread-unsubscribed groups set write_newsrc_flags 0 9. Better checking of articles before posting. Now, a new screen will appear with error messages if the article appears badly formatted. 10. Modified scrolling behavior when the article window is open. Now the next and previous headers are always visible. Changes since 0.8.6 0. Under Unix there is a new `configure' script for building slrn. 1. ``Header Numbers'' add for more efficient article selection. This is enabled by default and may be disabled by adding set use_header_numbers 0 in your .slrnrc file. In addition, the color of these numbers may be controlled via something like color header_number "green" "white" The numbers appear at the left margin of the header window. To goto a particular numbered header, e.g., 12, simply press `1' then `2' followed by RETURN, SPACE, etc... 2. The function ``xpunge'' has been added for article mode. The default binding of this function is to the `x' key. It removes already read articles from the list. 3. If slrn does not read the active file, then it will now attempt to use the `xgtitle' command to query the server for newsgroups matching a pattern. (This affects the `L' key in group-mode). Changes since 0.8.5 -1. New distribution structure 0. Thanks to Jay Maynard (jmaynard@nwpros.com), slrn now runs under OS/2. Since this is the first OS/2 version, it should be regarded as ALPHA. 1. New .slrnrc configuration variable: prompt_next_group. If 0, slrn will not provide the opportunity to use up/down arrow keys to select the next group. Instead, pressing a key that performs a goto next group action, e.g., the Next-Group mouse button, will simply put you in the headers of the next group in the group list. 2. When the mouse is clicked on a button at the top of the display, the button will ``flash''. The color that is used to simulate the flash may be specified by using, e.g., set color menu_press blue yellow in your .slrnrc file. 3. New groups are displayed with an `N' in the flags column. 4. `ESC 1 L' will hide unsubscribed groups (`L' with a prefix argument). 5. The `?' key may be used in help mode to re-start help. 6. OS/2 port thanks to Jay Maynard . Note: this port is still considered to be in its alpha stage. 7. slrn will nolonger run unless the user has a username and a FQDN. 8. New article mode functions (Thanks to Alain.Knaff@imag.fr (Alain Knaff)): fast_quit % quit news reader from article mode skip_to_prev_group % None of these function have default bindings. 9. When replying, slrn will warn the user if the email address appears invalid. 10. New configuration variable: set use_metamail 0 If non-zero, metamail will be called to process MIME articles that slrn does not support. Changes since 0.8.4 1. Small bug fixes (nothing major). 2. Cosmetic change where one can more easily see the progress of the download of tagged articles. In addition the server name is printed on the top status line. 3. The `*' (toggle_header_tag) function has been changed. If used on a collapsed thread, it will tag the entire thread. In addition, after pressing `*', the pointer moves down one header. 4. -m command line option forces XTerm mouse reporting to be turned on. 5. When the mouse is enabled, ``buttons'' also appear on the top status line. Simply click on them with the mouse. Perhaps in the future, these buttons will become menus. Changes since 0.8.3 0. The slrn makefile has changed. Now it asks for a location to put slrn object files and it asks for the location of the slang library file. The nice thing about this is that it is easy to compile slrn under multiple architectures. The down side is that some makes will not work with the Makefile. If your make fails, use Makefile.old. Since I do not plan to continue support for Makefile.old, please look into installing GNUmake. 1. .newsrc file is now created in mode where only user has read permission to it. 2. If a prefix argument is given to the subscribe/unsubscribe commands, the user will be prompted for a group pattern which will be used, e.g., pressing `ESC 1 s' and entering `*linux*' at the prompt will result in a subscription to all newsgroups of form `*linux*'. 3. If a prefix argument is given to the `K' (create_score) function, the editor will be called to edit the score file-- no questions asked. 4. New .slrnrc variable: query_read_group_cutoff Whenever slrn enters a group with `query_read_group_cutoff' or more unread articles in it, it will prompt for how many to read. The default is 100. If set to 0 or less than 0, slrn will not prompt at all, i.e., set query_read_group_cutoff 0 5. It is now possible to have articles automatically wrapped by adding 4 to the wrap flags value. See the slrn.rc file. 6. VMS changes: some patches added, ``makefiles'' fixed Changes since 0.8.2 1. If slrn cannot find a fully qualified domain name, it will not run. This name can be specified in the .slrnrc file so there is no excuse for not having one. There are too many articles already floating around usenet with bad hostnames and I do not want slrn to contribute to this. 2. Bug in authorization fixed 3. Oops. If one were editing a file from within slrn and the window was resized, slrn would re-draw the window! That is fixed. 4. article wrapping added-- press `w' in article mode to wrap/unwrap. The variable `wrap_flags' may be used to control whether or not headers or quoted material is wrapped, e.g., set wrap_flags 1 % Wrap headers set wrap_flags 2 % Wrap quoted material set wrap_flags 3 % Wrap headers and quoted material The default is to wrap everything (3). 5. slrn may be started as in `slrn -h server.name:XXX' where XXX in an integer that represents a port number. 6. `set sendmail_command' may be used in the .slrnrc file to specify an alternative mail program. The default is: "/usr/lib/sendmail -oi -t -oem -odb" See config.h for selecting a different default. 7. ESC u in group mode may be used to Un-Catchup on a group. Changes since 0.8.1 1. Misc bug fixes: MIME re-worked some VMS problems ironed out VMS: callable mail support Changes since 0.8.0 1. The `toggle_sort' function bound to `ESC s' in article mode has been modifed. Now, it prompts for the sorting method. 2. New variables for the .slrnrc file: % If 0, do not sort. If 1, perform threading. If 2, sort by subject % If 3, thread then sort result by subject set sorting_method 3 % If non-zero, threads will be uncollapsed when a group is entered set uncollapse_threads 0 Note: methods 2 and 3 were not available in previous versions of slrn. This is why the `toggle_sort' function needed to be modified. 3. It is now possible to have all posted articles saved in a file. The file is specified in the .slrnrc with a line like: set save_posts "News/My_Posts" 4. slrn now generates its own message id provided that it can find the machines fully qualified domain name (FQDN). The reason for this is that one can easily more efficiently score follow-ups to the user's posted articles. For example, if the FQDN is `machine.my.domain' and the user's name is `user' then simply put: [*] Score: 100 (or whatever) References: user@machine.my.domain> in the score file. (The first part of the generated message-id is composed of a base 32 representation of the current time and process-id). 5. Default values available at all yes/no prompts. 6. Saving an article is slightly different but simpler. The new bindings are: `:' uudecode file `o' save a file-- no decoding Use "decode" and "save_article" to re-bind these. See the FAQ for more detailed help on uudecoding articles. 7. New variable: 'save_directory' may be used to specify where files are saved. The default is 'News'. Use something in your .slrnrc file: set save_directory "News" 8. There is now an option for slrn to read the active file upon startup. Using this option may result in faster startup times. Using the active file also has the advantage that the `L' key will list all groups available at the server. There are two ways of enabling this option: a. Startup slrn with the -a switch: slrn -a b. Add the line: set read_active 1 to your .slrnrc file. 9. The `Expires' date may be given in one of the following formats: MM/DD/YYYY DD-MM-YYYY Previous versions only allowed the first format. 10. MIME support add by Michael Elkins . To enable MIME support, add: set use_mime 1 to your .slrnrc file. In addition, you may select a character set by adding something like: set mime_charset "iso-8859-1" to your .slrnrc file. The MIME code is still in the testing phase but it appears to be ok. Changes since 0.7.9.0 1. If Cc: header appears in a followup, the message will also be email to the addresses listed on the line. The address `poster' will be considered as an alias for the original poster. This header will automatically be generated if the line: set cc_followup 1 appears in the .slrnrc file. By default, the body of an email message generated this way will be prefixed by the string: [This message has also been posted.] To change it, use a line of the form: cc_followup_string "[Note: Even though I posted this, here is a copy.]" in your .slrnrc file. 2. Broken threads are now collaped together. 3. In replies, the In-Reply-To header is generated with the message-id of the original post. 4. New variable for .slrnrc: `set confirm_actions 1'. If set to 1 (default is 0), confirmation on quitting, followup, reply, etc... is not performed. 5. Arbitrary header keywords are now allowed for Score files. Keep in mind that a score that is based on such keywords take ALOT longer to process. The command line option -k0 will suppress expensive scores. In addition, the K key (bound to `toggle_scoring') may be used at the group level to set the scoring mode. 6. Enhanced score file syntax: a. If Score:: (TWO colons) is used to denote a score, all expressions that it covers will be considered as OR type expressions. That is, Score:: 20 Subject: larry Subject: curly is (almost) equivalent to Score: 20 Subject: larry Score: 20 Subject: curly Homework: What do I mean by ``almost''? Note: Scores with only one colon are AND scores. b. If a score value is prefixed with the `=' sign, e.g., Score: =30 Then scoring on the article is regarded as finished and a value of 30 will be assigned to the article. See score.txt and KILL_FAQ for more information. 7. Article mode keybindings of `<' and `>' have been changed to goto the beginning and end of the article, resp. 8. The `#' key may be used to NUMERICALLY tag articles. The save operation now saves tagged articles in their numerically tagged order. The key sequence `ESC #' will remove all numerical tags. 9. The save function is now more sophisticated. It can now save tagged articles, the current thread, or a single article. After it saves, it prompts for decoding. The present version of slrn can only decode uuencoded files or share archives. If decoding is selected, slrn will prompt for whether or not he save file should be deleted. The variable `decode_directory' may be used to control where decoded files are placed. 10. If a line of the form: set use_tmpdir 1 appears in the .slrnrc file, a tmp directory will be used for posting and replying. The directory /tmp will be used unless the environment variable TMPDIR exists. 11. It is now possible to set the editor command in the .slrnrc file, e.g., editor_command "jed %s -g %d -tmp" Changes since 0.7.8.2 1. Score files added-- See score.txt for score file syntax. To use score files you must add a line such as: scorefile "News/Score" to you .slrnrc file. slrn assumes no default value for this file. With this defined, you may either edit the file by hand or press the `K' key in article mode to automatically add ``scores'' to this file. If you edit it by hand and you use the jed editor, see `score.sl' for a syntax highlighting and indentation mode for score files. A new commad line option `-k' may be used to turn OFF score file processing. 2. In article mode, `=' key will now follow articles of a specified subject. In addition, the `!' key will go to articles with high scores. Changes since 0.7.8.1 1. Threads are now collapsed. An individual thread may be un-collapsed by pressing `ESC t'. Pressing `ESC t' will re-collapse it. In addition, simply reading the first article in a thread will un-collapse it. Deleting a collapsed thread will delete all articles in th thread. Hopefully, this interface will seem intuitive. Note: `ESC 1 ESC t' will toggle collapsing of ALL threads. To bind this to a different key, use the function `toggle_collapse_threads'. Of course the thread number has to have a color. The default is: `color thread_number "blue" "white"' 2. New configuration variables for your .slrnrc file (defaults shown) set query_next_article 1 set query_next_group 1 For example, setting query_next_article to 0 will result in the next article being read when the end of the current one is reached. 3. Parse error messages while parsing .slrnrc file are now more meaningful. Changes since 0.7.8.0 1. Additional support for XTerm mouse (Thanks Mark). These include: Article mode: Left Button: Help bar: return help Header status: header page down Article status: Next unread Article window: Article page down Middle Button: Help bar: toggle show author Header status: hide article Article status: toggle quotes Article window: nothing Right Button: Help bar: help Header status: header page up Article status: Prev unread Article window: Article page up Similar functionality for group mode. 2. VMS makefile fixed 3. New group mode function: transpose_groups. The default binding is ^X^T. This will transpose the position of two groups. This may be used to rearrange groups. 4. man page updated 5. `set color signature' now supported. (Thanks to combee@ptsg-austin.sps.mot.com (Ben Combee)) 6. Misc bug fixes. 7. `hide article' will now toggle. Changes since 0.7.7 0. Misc bug fixes 1. slrn calling syntax changed: The -D parameter has changed to lowercase -d. Now, a new -Ddefine-something is available. 2. If using slang0.99-20 or newer, it is possible to use slang preprocessing in your .slrnrc file. Use the -D flag to define a token. 3. Oops! Previous version broke art_lineup, art_linedn functions. 4. Problem with "unknown" as username fixed. 5. Suspension now allowed during lengthy transfers. This requires slang version 0.99-20 or greater. 6. New article mode function: "toggle_header_tag". A header that is ``tagged'' is marked with a `*' in the left column. The default binding is to the `*' key (Shift-8). A tagged article will not change its read status by the `catchup' series of functions. There may be more uses later. 7. If a `prefix' argument is given to the `get_parent_header' function, the entire tree will be reconstructed. This means that the whole tree can be reconstructed by pressing: ESC 1 ESC p 8. Another oops. -create flag was not working in 0.7.7. 9. `set unsubscribe_new_groups' added to slrn.rc file. If this is non-zero, newgroups will not automatically be subscribed to, e.g., if you desire this behavior, put the following in your .slrnrc file: set unsubscribe_new_groups 1 10. In an effort to make the article screen look less busy, a new configuration variable `show_thread_subject' has been made available. If zero, only the parent thread's subject will be displayed. If you do not like this, add: set show_thread_subject 1 to your .slrnrc file. 11. By default, articles are saved in folders with names beginning with a capital letter. If a folder with a lower case name already exists, slrn will use that. That is, it is backward compatable. 12. Improved man page (Thanks to Howard Goldstein ) 13. XTerm mouse support added. This option requires slang version 0.99-21. Use `set mouse 1' in your .slrnrc file to enable. Note: mouse reporting is disabled at all slrn prompts so the mouse will be available for cut/paste in such contexts. Changes since 0.7.6 1. Improvements for VMS. Now supports NETLIB (Thanks Andrew). 2. Improved detection of supercite 3. The article mode functions `catchup' and `uncatchup' have changed slightly in a way that may be more useful. Now, they function on all headers from the top of the header list to the current header. Previously they functioned on all headers from the current one to the end of the list. Of course the functions `catchup_all' and `uncatchup_all' are still available. 4. New `config.h' file that allows HOSTNAME, ORGANIZATION, etc... to be compiled into the executable. 5. Slightly improved FAQ. Changes since 0.7.5 0. VMS port thanks to Andrew Greer (Andrew.Greer@vuw.ac.nz) 1. Small bug in help.c corrected that caused problems on some systems if a custom help file was used. 2. New function: repeat_last_key. The default binding is `.'. The function that `.' used to be bound to has been moved to `;'. 3. slrn.rc may be placed in SLRN_LIB_DIR to provide defaults for all users, e.g., organization, hostname, ... See INSTALL. 4. Catchup bindings changed in article mode. (By popular demand). 5. Misc improvements. Changes since 0.7.4 1. Oops! It was possible to cancel any article in the old version. I forgot to add a `return' statement after checking to make sure that the person cancelling actually posted the article. 2. Missing comma between two strings in help.c added. 3. `delete_thread' function added to article mode keybindings 4. `followup' added to slrn.rc. This allows the user to set the followup string. For example, I use: followup "On %d, %r <%f> wrote:" See slrn.rc for more information. 5. It is now possible to concatenate newsrc files. slrn will now ignore repetitions. For example, suppose that you have an old newsrc file that you wish to bring uptodate. Let's call it `old'. Suppose that another one, `new' is much more extensive. Then do: % mv old old~ % cat old~ new > old % slrn -f old If you have no idea how this may be useful, then you do not need it. 6. Group mode searches will automatically wrap. 7. Some support for automatic detection of ``super-cited'' articles so that quoted lines are handled properly. This works most of the time. 8. If `set no_backups 1' appears in the .slrnrc file, backups of the .newsrc file is turned off. 9. `g' in article mode will skip to the next digest. 10. User is now prompted for chance to re-edit a message after editing. 11. `set beep 0' may now be used to turn off the bell. See slrn.rc. Changes since 0.7.3 1. -i init-file command option added. This allows a different slrn.rc file to be specified (default: .slrnrc). 2. Silly problem fixed when -create option used but .newsrc does not exist. 3. A line read in from the server that begins with two periods is stripped of one of them as RFC977 requires. 4. Using a prefix argument to the followup command will insert the original headers into the followup. 5. If server drops the connection, an attempt is made to reconnect. (ljz@panix.com) Changes since 0.7.2 1. Slight modification to extract real name routine so that if the name is not available, the address is used. 2. Now possible to specifiy a color for quoted text via `color quotes'. The default is: color quotes red white This really does improve readability of an article with quoted material! 3. NNRP authentification support added. In .slrnrc, use a line like: nnrpaccess HOSTNAME USERNAME PASSWORD Changes since 0.7.1 0. The XPAT server command is exploited if it is available. Not all servers support it even though it is pretty standard. 1. ESC Ctrl-P will find all children of current header by querying the server. 2. Confirm Follow-up when poster sets the followup line to poster. 3. ESC-d will now mark the current thread as read-- that is, current header plus all children. 4. SPACE in article mode can be used to read next article or go to next group if pressed twice at the end of the current article. Changes since 0.7.0 1. Typo in the `unsetkey' function corrected. The typo was a serious one. 2. Small change in the Top/Bottom/Percentage calculation for the status line. 3. Misc bug fixes 4. See help.txt for creating your own custom help screen. Changes since 0.6.3 1. Added `realname' to slrn.rc file. 2. TRUE referenced based threading added. Subject sorting has been abandoned. A tree in drawn showing how articles are threaded. The color of the tree may be specified by `color tree' in your .slrnrc file. ESC-p will got to the parent of the current header. Note: If the terminal cannot support line drawing characters, the tree will not appear. Changes since 0.6.2 1. Xref mark as read now takes advantage of group name hashing. 2. Fixed problem with getlogin on some systems. Changes since 0.6.1 1. `N' in article mode will now skip on to next group. Lowercase `n' still retains its previous meaning. 2. Bug fixed in catchup-all in article mode. Previously, it did not mark all as read. 3. A description of each newsgroup can be displayed next to the group name. Use ESC-a to toggle it on/off. 4. New environment variable SLRN_LIB_DIR determines where to load files that may be shared by all users, e.g., the group description file. By default, it is /usr/local/lib/slrn. See INSTALL for more details. Changes since 0.6.0 1. The `G' key at group mode may be used to retrieve new news from the server. In addition, `X' will force the newsrc file to be saved. 2. Small bug corrected that manifests itself when no groups are subscribed to (a very rare situation). 3. The one-line help at the bottom of the screen is always visible now. Of course, the full on-line help is still available. 4. The Makefile has been modified so that slrn may be easily termified under Linux. 5. Fixed a silly bug that made the -C color flag do nothing. Changes since 0.5.3 1. Selecting a group with an ESC prefix digit argument will now select unread articles too. 2. My uudecode program can also unpack shell archives. No need to edit those headers either. 3. When replying, the user defined quote string is used to quote the article. 4. ESC-r from article mode will toggle rot13 decryption. 5. `|' in article mode will pipe article to an external command (e.g., lpr) 6. Some cosmetic improvements by ljz@ingress.com (Lloyd Zusman). 7. ESC-U, ESC-u, ESC-C, ESC-c added by ljz@ingress.com (Lloyd Zusman). These functions may be used to catchup and un-catchup on articles in article mode. 8. IF the line: `set show_article 1' appears in your .slrnrc file, the article is displayed when article mode is entered. Changes since 0.5.2 1. Path header added when posting 2. When the newsrc file is written, a backup is made of the previous version. Changes since 0.5.1 1. ESC-a toggles showing author's name on/off in the header window. This provides a wider display for the subject. Changes since 0.5.0 1. Improved help screen for beginners. 2. ESC-s now toggles header sorting on/off. Changes since 0.4.0 1. LOGNAME environment variable now checked to get the user's login name. Previously, only USER was checked. 2. newsrc file locking added. 3. TAB key now moves past quoted text 4. `autobaud' keyword in .slrnrc file may be used to incicate that the output rate to the terminal should be synchronized to the terminal baud rate. This behavior was always the default in previous versions. Now, it is off by default. 5. The `L' key in the group menu may now be used to toggle the display of unsubscribed groups on and off. }}} slrn-1.0.1/configure000077500000000000000000016677671206520222400144270ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 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=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 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=: 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 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/slrn.c" gt_needs= # 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='RPATH SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias CONFIG_DIR build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GREP EGREP XMKMF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS SLRN_LIB_DIR LOCALEDIR SLRN_HAS_PULL_SUPPORT SLRNPULL SLRNPULL_ROOT_DIR MAN_SLRNPULL SLRN_HAS_NNTP_SUPPORT SLRN_HAS_SPOOL_SUPPORT SLRN_HAS_INEWS_SUPPORT INEWS SLRN_INEWS_COMMAND SLRN_FORCE_INEWS SLRN_HAS_STRICT_FROM SLRN_HAS_CHARACTER_MAP SLRNPULL_USE_SETGID_POSTS SLRN_HAS_SPOILERS SLRN_HAS_EMPHASIZED_TEXT SLRN_HAS_GEN_MSGID SLRN_HAS_MSGID_CACHE SLRN_HAS_FAKE_REFS SLRN_HAS_GROUPLENS UU_LIB UU_INC LINK_LIBUU SLRN_HAS_UUDEVIEW CANLOCK_LIB CANLOCK_INC LINK_LIBCANLOCK SLRN_HAS_CANLOCK LIBICONV LTLIBICONV mkdir_p USE_NLS MSGFMT GMSGFMT MSGFMT_015 GMSGFMT_015 XGETTEXT XGETTEXT_015 MSGMERGE INTL_MACOSX_LIBS INTLLIBS LIBINTL LTLIBINTL POSUB INCICONV SSLINC SSLLIB SRCDIR OBJDIR ELFDIR nc5config TERMCAP MISC_TERMINFO_DIRS SLANG_LIB SLANG_INC PROGRAM_OFILES PROGRAM_CFILES PROGRAM_HFILES PROGRAM_OBJECTS PROGRAM_ELFOBJECTS LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP XMKMF' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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}' 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=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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. 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 case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 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 .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # 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 -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | 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 .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } 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 this package 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/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nntp Disable NNTP support --enable-spool Enable support for reading directly from spool --enable-inews Enable inews posting support --enable-force-inews Enforce the use of inews --enable-strict-from Disallow custom From headers --disable-charmap Disable mapping ISO-Latin to native charsets --enable-setgid-code Allow running slrnpull as an unpriviledged user --disable-spoilers Disable spoiler support --disable-emph-text Disable emphasized text support --disable-gen-mid Prevent slrn (and user) from generating Message-IDs --enable-mid-cache Make slrn cache Message-IDs to eliminate cross-posts (only needed when server has no xref headers) --disable-fake-refs Do not use In-Reply-To if References is not available --enable-grouplens Enable GroupLens support --disable-rpath do not hardcode runtime library paths --disable-nls do not use Native Language Support --enable-warnings turn on GCC compiler warnings Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-x use the X Window System --with-docdir=DIR Where to put the documentation --with-slrnlib=DIR Place for the slrn library files --with-localedir=DIR Where to put locale files --with-slrnpull=[DIR] Build slrnpull and use DIR as the slrnpull root --with-server-name=HOST Hostname of a default NNTP server --with-server-file=FILE File containing the hostname of an NNTP server --with-uu=DIR Use DIR/lib and DIR/include for uu --with-uulib=DIR uu library in DIR --with-uuinc=DIR uu include files in DIR --with-canlock=DIR Use DIR/lib and DIR/include for canlock --with-canlocklib=DIR canlock library in DIR --with-canlockinc=DIR canlock include files in DIR --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-non-gnu-iconv Local iconv is not GNU compatible --with-nss-compat Use NSS compat library instead of OpenSSL --with-gnutls=path Use GNU TLS library instead of OpenSSL --with-ssl[=path] for SSL support --with-slang=DIR Use DIR/lib and DIR/include for slang --with-slanglib=DIR slang library in DIR --with-slanginc=DIR slang include files in DIR 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 C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor XMKMF Path to xmkmf, Makefile generator for X Window System Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _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" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 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 configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 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 $as_me, which was generated by GNU Autoconf 2.61. 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=. 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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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 cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" 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'; { (exit 1); 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 # 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 # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " # 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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 #These variable are initialized by JD init function CONFIG_DIR=`pwd` cd $srcdir if test "`pwd`" != "$CONFIG_DIR" then { { echo "$as_me:$LINENO: error: \"This software does not support configuring from another directory. See the INSTALL file\"" >&5 echo "$as_me: error: \"This software does not support configuring from another directory. See the INSTALL file\"" >&2;} { (exit 1); exit 1; }; } fi # Note: these will differ if one is a symbolic link if test -f /usr/bin/dirname; then JD_Above_Dir=`dirname $CONFIG_DIR` else # system is a loser JD_Above_Dir=`cd ..;pwd` fi JD_Above_Dir2=`cd ..;pwd` ac_aux_dir= for ac_dir in autoconf "$srcdir"/autoconf; 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 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf \"$srcdir\"/autoconf" >&5 echo "$as_me: error: cannot find install-sh or install.sh in autoconf \"$srcdir\"/autoconf" >&2;} { (exit 1); exit 1; }; } 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. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.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 { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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" 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu 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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$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 ac_count=`expr $ac_count + 1` 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 fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" 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 ac_count=`expr $ac_count + 1` 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 fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef _AIX yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define _ALL_SOURCE 1 _ACEOF else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f conftest* 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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" 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu 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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { echo "$as_me:$LINENO: checking for library containing strerror" >&5 echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; } if test "${ac_cv_search_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_strerror=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 echo "${ECHO_T}$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef hpux yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then cat >>confdefs.h <<\_ACEOF #define _HPUX_SOURCE 1 _ACEOF if test "$CC" = cc; then CC="cc -Ae"; fi fi rm -f conftest* { echo "$as_me:$LINENO: checking C compiler that understands ANSI prototypes" >&5 echo $ECHO_N "checking C compiler that understands ANSI prototypes... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern int silly (int); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then { echo "$as_me:$LINENO: result: $CC looks ok. Good." >&5 echo "${ECHO_T}$CC looks ok. Good." >&6; } else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: $CC is not a good enough compiler" >&5 echo "${ECHO_T}$CC is not a good enough compiler" >&6; } { { echo "$as_me:$LINENO: error: Set env variable CC to your ANSI compiler and rerun configure." >&5 echo "$as_me: error: Set env variable CC to your ANSI compiler and rerun configure." >&2;} { (exit 1); exit 1; }; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # determine X include and needed libs { echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 echo "$as_me: error: Cannot use X directory names containing '" >&2;} { (exit 1); exit 1; }; };; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /lib) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # We can compile using X headers with no special include directory. ac_x_includes= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS=$ac_save_LIBS for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { echo "$as_me:$LINENO: result: $have_x" >&5 echo "${ECHO_T}$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. cat >>confdefs.h <<\_ACEOF #define X_DISPLAY_MISSING 1 _ACEOF X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$ac_xsave_LIBS -R $x_libraries" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: neither works" >&5 echo "${ECHO_T}neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6; } if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test $ac_cv_lib_dnet_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6; } if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dnet_stub_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. { echo "$as_me:$LINENO: checking for gethostbyname" >&5 echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; } if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gethostbyname to an innocuous variant, in case declares gethostbyname. For example, HP-UX 11i declares gettimeofday. */ #define gethostbyname innocuous_gethostbyname /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gethostbyname /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); /* 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_gethostbyname || defined __stub___gethostbyname choke me #endif int main () { return gethostbyname (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; } if test $ac_cv_func_gethostbyname = no; then { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_nsl_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } if test $ac_cv_lib_nsl_gethostbyname = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6; } if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_bsd_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6; } if test $ac_cv_lib_bsd_gethostbyname = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. { echo "$as_me:$LINENO: checking for connect" >&5 echo $ECHO_N "checking for connect... $ECHO_C" >&6; } if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define connect to an innocuous variant, in case declares connect. For example, HP-UX 11i declares gettimeofday. */ #define connect innocuous_connect /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef connect /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); /* 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_connect || defined __stub___connect choke me #endif int main () { return connect (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 echo "${ECHO_T}$ac_cv_func_connect" >&6; } if test $ac_cv_func_connect = no; then { echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_socket_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; } if test $ac_cv_lib_socket_connect = yes; then X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. { echo "$as_me:$LINENO: checking for remove" >&5 echo $ECHO_N "checking for remove... $ECHO_C" >&6; } if test "${ac_cv_func_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define remove to an innocuous variant, in case declares remove. For example, HP-UX 11i declares gettimeofday. */ #define remove innocuous_remove /* System header to define __stub macros and hopefully few prototypes, which can conflict with char remove (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef remove /* 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 remove (); /* 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_remove || defined __stub___remove choke me #endif int main () { return remove (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_remove=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 echo "${ECHO_T}$ac_cv_func_remove" >&6; } if test $ac_cv_func_remove = no; then { echo "$as_me:$LINENO: checking for remove in -lposix" >&5 echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6; } if test "${ac_cv_lib_posix_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 remove (); int main () { return remove (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_posix_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6; } if test $ac_cv_lib_posix_remove = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. { echo "$as_me:$LINENO: checking for shmat" >&5 echo $ECHO_N "checking for shmat... $ECHO_C" >&6; } if test "${ac_cv_func_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shmat to an innocuous variant, in case declares shmat. For example, HP-UX 11i declares gettimeofday. */ #define shmat innocuous_shmat /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shmat (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shmat /* 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 shmat (); /* 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_shmat || defined __stub___shmat choke me #endif int main () { return shmat (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shmat=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 echo "${ECHO_T}$ac_cv_func_shmat" >&6; } if test $ac_cv_func_shmat = no; then { echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6; } if test "${ac_cv_lib_ipc_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 shmat (); int main () { return shmat (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ipc_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6; } if test $ac_cv_lib_ipc_shmat = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6; } if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 IceConnectionNumber (); int main () { return IceConnectionNumber (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ICE_IceConnectionNumber=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi #------------------------------------------------------------------------ # Useful macros #------------------------------------------------------------------------ #--------------------------------------------------------------------------- # Configure options #--------------------------------------------------------------------------- # Check whether --with-docdir was given. if test "${with_docdir+set}" = set; then withval=$with_docdir; if test "x$withval" = xyes || test "x$withval" = xno; then docdir='${prefix}/share/doc/slrn' else docdir="$withval" fi else docdir='${prefix}/share/doc/slrn' fi # Check whether --with-slrnlib was given. if test "${with_slrnlib+set}" = set; then withval=$with_slrnlib; fi if test -z "$with_slrnlib" || test "x$with_slrnlib" = xyes || test "x$with_slrnlib" = xno; then if test "x$prefix" = xNONE; then slrn_lib_dir="${ac_default_prefix}/share/slrn" else slrn_lib_dir="${prefix}/share/slrn" fi else slrn_lib_dir="$with_slrnlib" fi SLRN_LIB_DIR="$slrn_lib_dir" # Check whether --with-localedir was given. if test "${with_localedir+set}" = set; then withval=$with_localedir; fi if test -z "$with_localedir" || test "x$with_localedir" = xyes || test "x$with_localedir" = xno; then if test "x$prefix" = xNONE; then LOCALEDIR="${ac_default_prefix}/share/locale" else LOCALEDIR="${prefix}/share/locale" fi else LOCALEDIR="$with_localedir" fi optionvalue=0 SLRNPULL_ROOT_DIR="/var/spool/news/slrnpull" # Check whether --with-slrnpull was given. if test "${with_slrnpull+set}" = set; then withval=$with_slrnpull; if test "x$withval" != "xno" ; then optionvalue=1 SLRNPULL="slrnpull\$(EXEEXT)" MAN_SLRNPULL="../doc/slrnpull.1" if test "x$withval" != "xyes" -a "x$withval" != "x"; then SLRNPULL_ROOT_DIR="$withval" fi fi fi SLRN_HAS_PULL_SUPPORT=$optionvalue # Check whether --with-server-name was given. if test "${with_server_name+set}" = set; then withval=$with_server_name; if test "x$withval" != "xno"; then if test "x$withval" = "xyes"; then { { echo "$as_me:$LINENO: error: you must pass the hostname of the server to the option --with-server-name" >&5 echo "$as_me: error: you must pass the hostname of the server to the option --with-server-name" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <<_ACEOF #define NNTPSERVER_NAME "$withval" _ACEOF fi fi # Check whether --with-server-file was given. if test "${with_server_file+set}" = set; then withval=$with_server_file; if test "x$withval" != "xno"; then if test "x$withval" = "xyes"; then { { echo "$as_me:$LINENO: error: you must pass the name of the file to the option --with-server-file" >&5 echo "$as_me: error: you must pass the name of the file to the option --with-server-file" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <<_ACEOF #define NNTPSERVER_FILE "$withval" _ACEOF fi fi optionvalue=1 # Check whether --enable-nntp was given. if test "${enable_nntp+set}" = set; then enableval=$enable_nntp; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_NNTP_SUPPORT=$optionvalue optionvalue=0 # Check whether --enable-spool was given. if test "${enable_spool+set}" = set; then enableval=$enable_spool; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_SPOOL_SUPPORT=$optionvalue optionvalue=0 # Check whether --enable-inews was given. if test "${enable_inews+set}" = set; then enableval=$enable_inews; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_INEWS_SUPPORT=$optionvalue if test "x$enable_inews" = xyes ; then # Extract the first word of "inews", so it can be a program name with args. set dummy inews; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INEWS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INEWS in [\\/]* | ?:[\\/]*) ac_cv_path_INEWS="$INEWS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/local/bin:/usr/bin" for as_dir in $as_dummy 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_INEWS="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INEWS" && ac_cv_path_INEWS="no" ;; esac fi INEWS=$ac_cv_path_INEWS if test -n "$INEWS"; then { echo "$as_me:$LINENO: result: $INEWS" >&5 echo "${ECHO_T}$INEWS" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_cv_path_INEWS" != xno; then SLRN_INEWS_COMMAND="$ac_cv_path_INEWS -S -h" else { { echo "$as_me:$LINENO: error: I cannnot find an inews executable. When using --enable-inews, please make sure inews can be found in your \$PATH. " >&5 echo "$as_me: error: I cannnot find an inews executable. When using --enable-inews, please make sure inews can be found in your \$PATH. " >&2;} { (exit 1); exit 1; }; } fi else SLRN_INEWS_COMMAND="/usr/local/bin/inews -S -h" fi optionvalue=0 # Check whether --enable-force-inews was given. if test "${enable_force_inews+set}" = set; then enableval=$enable_force_inews; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_FORCE_INEWS=$optionvalue optionvalue=0 # Check whether --enable-strict-from was given. if test "${enable_strict_from+set}" = set; then enableval=$enable_strict_from; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_STRICT_FROM=$optionvalue optionvalue=1 # Check whether --enable-charmap was given. if test "${enable_charmap+set}" = set; then enableval=$enable_charmap; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_CHARACTER_MAP=$optionvalue optionvalue=0 # Check whether --enable-setgid-code was given. if test "${enable_setgid_code+set}" = set; then enableval=$enable_setgid_code; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRNPULL_USE_SETGID_POSTS=$optionvalue optionvalue=1 # Check whether --enable-spoilers was given. if test "${enable_spoilers+set}" = set; then enableval=$enable_spoilers; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_SPOILERS=$optionvalue optionvalue=1 # Check whether --enable-emph-text was given. if test "${enable_emph_text+set}" = set; then enableval=$enable_emph_text; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_EMPHASIZED_TEXT=$optionvalue optionvalue=1 # Check whether --enable-gen-mid was given. if test "${enable_gen_mid+set}" = set; then enableval=$enable_gen_mid; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_GEN_MSGID=$optionvalue optionvalue=0 # Check whether --enable-mid-cache was given. if test "${enable_mid_cache+set}" = set; then enableval=$enable_mid_cache; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_MSGID_CACHE=$optionvalue optionvalue=1 # Check whether --enable-fake-refs was given. if test "${enable_fake_refs+set}" = set; then enableval=$enable_fake_refs; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_FAKE_REFS=$optionvalue optionvalue=0 # Check whether --enable-grouplens was given. if test "${enable_grouplens+set}" = set; then enableval=$enable_grouplens; if test "x$enableval" = "xyes" ; then optionvalue=1 else optionvalue=0 fi fi SLRN_HAS_GROUPLENS=$optionvalue jd_with_uu_library=no if test "X$jd_prefix" = "X" then jd_prefix=$ac_default_prefix if test "X$prefix" != "XNONE" then jd_prefix="$prefix" fi jd_exec_prefix="$jd_prefix" if test "X$exec_prefix" != "XNONE" then jd_exec_prefix="$exec_prefix" fi eval `sh <&5 echo "$as_me: error: --with-uulib requres a value" >&2;} { (exit 1); exit 1; }; } ;; *) jd_with_uu_library="yes" jd_uu_library_dir="$jd_with_uulib_arg" ;; esac # Check whether --with-uuinc was given. if test "${with_uuinc+set}" = set; then withval=$with_uuinc; jd_with_uuinc_arg=$withval else jd_with_uuinc_arg=unspecified fi case "x$jd_with_uuinc_arg" in x) { { echo "$as_me:$LINENO: error: --with-uuinc requres a value" >&5 echo "$as_me: error: --with-uuinc requres a value" >&2;} { (exit 1); exit 1; }; } ;; xunspecified) ;; xno) ;; *) jd_with_uu_library="yes" jd_uu_include_dir="$jd_with_uuinc_arg" ;; esac { echo "$as_me:$LINENO: checking for the uu library and header files uudeview.h" >&5 echo $ECHO_N "checking for the uu library and header files uudeview.h... $ECHO_C" >&6; } if test X"$jd_with_uu_library" != Xno then jd_uu_inc_file=uudeview.h if test "X$jd_uu_inc_file" = "X" then jd_uu_inc_file=uu.h fi if test X"$jd_uu_include_dir" = X then inc_and_lib_dirs="\ $jd_prefix_incdir,$jd_prefix_libdir \ /usr/local/uu/include,/usr/local/uu/lib \ /usr/local/include/uu,/usr/local/lib \ /usr/local/include,/usr/local/lib \ /usr/include/uu,/usr/lib \ /usr/uu/include,/usr/uu/lib \ /usr/include,/usr/lib \ /opt/include/uu,/opt/lib \ /opt/uu/include,/opt/uu/lib \ /opt/include,/opt/lib" if test X != X then inc_and_lib_dirs="/include,/lib $inc_and_lib_dirs" fi case "$host_os" in *darwin* ) exts="dylib so a" ;; *cygwin* ) exts="dll.a so a" ;; * ) exts="so a" esac xincfile="$jd_uu_inc_file" xlibfile="libuu" jd_with_uu_library="no" for include_and_lib in $inc_and_lib_dirs do # Yuk. Is there a better way to set these variables?? xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` found=0 if test -r $xincdir/$xincfile then for E in $exts do if test -r "$xlibdir/$xlibfile.$E" then jd_uu_include_dir="$xincdir" jd_uu_library_dir="$xlibdir" jd_with_uu_library="yes" found=1 break fi done fi if test $found -eq 1 then break fi done fi fi if test X"$jd_uu_include_dir" != X -a X"$jd_uu_library_dir" != X then { echo "$as_me:$LINENO: result: yes: $jd_uu_library_dir and $jd_uu_include_dir" >&5 echo "${ECHO_T}yes: $jd_uu_library_dir and $jd_uu_include_dir" >&6; } jd_with_uu_library="yes" UU_LIB=-L$jd_uu_library_dir if test "X$jd_uu_library_dir" = "X/usr/lib" then UU_LIB="" else if test "X$jd_uu_library_dir" != "X" then if test "X$RPATH" = "X" then case "$host_os" in *linux*|*solaris* ) if test "X$GCC" = Xyes then if test "X$ac_R_nospace" = "Xno" then RPATH="-Wl,-R," else RPATH="-Wl,-R" fi else if test "X$ac_R_nospace" = "Xno" then RPATH="-R " else RPATH="-R" fi fi ;; *osf*|*openbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-rpath," else RPATH="-rpath " fi ;; *netbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-R" fi ;; esac if test "X$RPATH" != "X" then RPATH="$RPATH$jd_uu_library_dir" fi else RPATH="$RPATH:$jd_uu_library_dir" fi fi fi UU_INC=-I$jd_uu_include_dir if test "X$jd_uu_include_dir" = "X/usr/include" then UU_INC="" fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } jd_with_uu_library="no" UU_INC="" UU_LIB="" fi if test $jd_with_uu_library = yes then LINK_LIBUU="-luu" cat >>confdefs.h <<\_ACEOF #define HAVE_UUDEVIEW_H 1 _ACEOF optionvalue=1 else optionvalue=0 LINK_LIBUU="" fi SLRN_HAS_UUDEVIEW=$optionvalue jd_with_canlock_library=no jd_canlock_include_dir="" jd_canlock_library_dir="" if test X"$jd_with_canlock_library" = X then jd_with_canlock_library="" fi # Check whether --with-canlock was given. if test "${with_canlock+set}" = set; then withval=$with_canlock; jd_with_canlock_arg=$withval else jd_with_canlock_arg=unspecified fi case "x$jd_with_canlock_arg" in xno) jd_with_canlock_library="no" ;; x) jd_with_canlock_library="yes" ;; xunspecified) ;; xyes) jd_with_canlock_library="yes" ;; *) jd_with_canlock_library="yes" jd_canlock_include_dir="$jd_with_canlock_arg"/include jd_canlock_library_dir="$jd_with_canlock_arg"/lib ;; esac # Check whether --with-canlocklib was given. if test "${with_canlocklib+set}" = set; then withval=$with_canlocklib; jd_with_canlocklib_arg=$withval else jd_with_canlocklib_arg=unspecified fi case "x$jd_with_canlocklib_arg" in xunspecified) ;; xno) ;; x) { { echo "$as_me:$LINENO: error: --with-canlocklib requres a value" >&5 echo "$as_me: error: --with-canlocklib requres a value" >&2;} { (exit 1); exit 1; }; } ;; *) jd_with_canlock_library="yes" jd_canlock_library_dir="$jd_with_canlocklib_arg" ;; esac # Check whether --with-canlockinc was given. if test "${with_canlockinc+set}" = set; then withval=$with_canlockinc; jd_with_canlockinc_arg=$withval else jd_with_canlockinc_arg=unspecified fi case "x$jd_with_canlockinc_arg" in x) { { echo "$as_me:$LINENO: error: --with-canlockinc requres a value" >&5 echo "$as_me: error: --with-canlockinc requres a value" >&2;} { (exit 1); exit 1; }; } ;; xunspecified) ;; xno) ;; *) jd_with_canlock_library="yes" jd_canlock_include_dir="$jd_with_canlockinc_arg" ;; esac { echo "$as_me:$LINENO: checking for the canlock library and header files " >&5 echo $ECHO_N "checking for the canlock library and header files ... $ECHO_C" >&6; } if test X"$jd_with_canlock_library" != Xno then jd_canlock_inc_file= if test "X$jd_canlock_inc_file" = "X" then jd_canlock_inc_file=canlock.h fi if test X"$jd_canlock_include_dir" = X then inc_and_lib_dirs="\ $jd_prefix_incdir,$jd_prefix_libdir \ /usr/local/canlock/include,/usr/local/canlock/lib \ /usr/local/include/canlock,/usr/local/lib \ /usr/local/include,/usr/local/lib \ /usr/include/canlock,/usr/lib \ /usr/canlock/include,/usr/canlock/lib \ /usr/include,/usr/lib \ /opt/include/canlock,/opt/lib \ /opt/canlock/include,/opt/canlock/lib \ /opt/include,/opt/lib" if test X != X then inc_and_lib_dirs="/include,/lib $inc_and_lib_dirs" fi case "$host_os" in *darwin* ) exts="dylib so a" ;; *cygwin* ) exts="dll.a so a" ;; * ) exts="so a" esac xincfile="$jd_canlock_inc_file" xlibfile="libcanlock" jd_with_canlock_library="no" for include_and_lib in $inc_and_lib_dirs do # Yuk. Is there a better way to set these variables?? xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` found=0 if test -r $xincdir/$xincfile then for E in $exts do if test -r "$xlibdir/$xlibfile.$E" then jd_canlock_include_dir="$xincdir" jd_canlock_library_dir="$xlibdir" jd_with_canlock_library="yes" found=1 break fi done fi if test $found -eq 1 then break fi done fi fi if test X"$jd_canlock_include_dir" != X -a X"$jd_canlock_library_dir" != X then { echo "$as_me:$LINENO: result: yes: $jd_canlock_library_dir and $jd_canlock_include_dir" >&5 echo "${ECHO_T}yes: $jd_canlock_library_dir and $jd_canlock_include_dir" >&6; } jd_with_canlock_library="yes" CANLOCK_LIB=-L$jd_canlock_library_dir if test "X$jd_canlock_library_dir" = "X/usr/lib" then CANLOCK_LIB="" else if test "X$jd_canlock_library_dir" != "X" then if test "X$RPATH" = "X" then case "$host_os" in *linux*|*solaris* ) if test "X$GCC" = Xyes then if test "X$ac_R_nospace" = "Xno" then RPATH="-Wl,-R," else RPATH="-Wl,-R" fi else if test "X$ac_R_nospace" = "Xno" then RPATH="-R " else RPATH="-R" fi fi ;; *osf*|*openbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-rpath," else RPATH="-rpath " fi ;; *netbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-R" fi ;; esac if test "X$RPATH" != "X" then RPATH="$RPATH$jd_canlock_library_dir" fi else RPATH="$RPATH:$jd_canlock_library_dir" fi fi fi CANLOCK_INC=-I$jd_canlock_include_dir if test "X$jd_canlock_include_dir" = "X/usr/include" then CANLOCK_INC="" fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } jd_with_canlock_library="no" CANLOCK_INC="" CANLOCK_LIB="" fi if test $jd_with_canlock_library = yes then LINK_LIBCANLOCK="-lcanlock" cat >>confdefs.h <<\_ACEOF #define HAVE_CANLOCK_H 1 _ACEOF optionvalue=1 else optionvalue=0 LINK_LIBCANLOCK="" fi SLRN_HAS_CANLOCK=$optionvalue #--------------------------------------------------------------------------- # gettext #--------------------------------------------------------------------------- # gettext.m4 serial 59 (gettext-0.16.1) # iconv.m4 serial AM4 (gettext-0.11.3) # nls.m4 serial 3 (gettext-0.15) # po.m4 serial 13 (gettext-0.15) # lib-ld.m4 serial 3 (gettext-0.13) # lib-link.m4 serial 9 (gettext-0.16) # lib-prefix.m4 serial 5 (gettext-0.15) ## -*- Autoconf -*- # Copyright (C) 2003, 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. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) # progtest.m4 serial 4 (gettext-0.14.2) # Search path for a program which passes the given test. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${acl_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { echo "$as_me:$LINENO: result: $LD" >&5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } if test "${acl_cv_rpath+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 echo "${ECHO_T}$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBICONV= LTLIBICONV= INCICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { echo "$as_me:$LINENO: checking for iconv" >&5 echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } if test "${am_cv_func_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 _ACEOF fi if test "$am_cv_lib_iconv" = yes; then { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $LIBICONV" >&5 echo "${ECHO_T}$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { echo "$as_me:$LINENO: checking for iconv declaration" >&5 echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6; } if test "${am_cv_proto_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then am_cv_proto_iconv_arg1="" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { echo "$as_me:$LINENO: result: ${ac_t:- }$am_cv_proto_iconv" >&5 echo "${ECHO_T}${ac_t:- }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='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. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6; } # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done 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 { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 echo "${ECHO_T}$MSGMERGE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' ac_config_commands="$ac_config_commands po-directories" { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; } if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then gt_cv_func_CFPreferencesCopyAppValue=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_CFPREFERENCESCOPYAPPVALUE 1 _ACEOF fi { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; } if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then gt_cv_func_CFLocaleCopyCurrent=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_CFLOCALECOPYCURRENT 1 _ACEOF fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$gt_func_gnugettext_libc=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$gt_func_gnugettext_libc'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { echo "$as_me:$LINENO: checking for iconv" >&5 echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } if test "${am_cv_func_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 _ACEOF fi if test "$am_cv_lib_iconv" = yes; then { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $LIBICONV" >&5 echo "${ECHO_T}$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBINTL= LTLIBINTL= INCINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$gt_func_gnugettext_libintl=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi ac_res=`eval echo '${'$gt_func_gnugettext_libintl'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF else USE_NLS=no fi fi { echo "$as_me:$LINENO: checking whether to use NLS" >&5 echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { echo "$as_me:$LINENO: result: $gt_source" >&5 echo "${ECHO_T}$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { echo "$as_me:$LINENO: checking how to link with libintl" >&5 echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $LIBINTL" >&5 echo "${ECHO_T}$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi POSUB=po fi INTLLIBS="$LIBINTL" # Check whether --with-non-gnu-iconv was given. if test "${with_non_gnu_iconv+set}" = set; then withval=$with_non_gnu_iconv; use_non_gnu_iconv=$withval else use_non_gnu_iconv=no fi case "x$use_non_gnu_iconv" in x|xyes) cat >>confdefs.h <<\_ACEOF #define NON_GNU_ICONV 1 _ACEOF ;; esac #--------------------------------------------------------------------------- # SSL stuff #--------------------------------------------------------------------------- # Check whether --with-nss-compat was given. if test "${with_nss_compat+set}" = set; then withval=$with_nss_compat; use_nss_compat=$withval else use_nss_compat=no fi # Check whether --with-gnutls was given. if test "${with_gnutls+set}" = set; then withval=$with_gnutls; use_gnutls=$withval; jd_use_ssl=$withval else use_gnutls=no fi { echo "$as_me:$LINENO: checking if you want SSL support" >&5 echo $ECHO_N "checking if you want SSL support... $ECHO_C" >&6; } if test "${jd_use_ssl+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then withval=$with_ssl; jd_use_ssl=$withval else jd_use_ssl=no fi fi { echo "$as_me:$LINENO: result: $jd_use_ssl" >&5 echo "${ECHO_T}$jd_use_ssl" >&6; } case "x$jd_use_ssl" in xno) SSLINC= SSLLIB= ;; x|xyes) if test "x$use_nss_compat" != xno then SSLINC="-I/usr/local/include/nss_compat_ossl -I/usr/local/include/nss3 -I/usr/local/include/nspr4" SSLLIB="-L/usr/local/lib -lnss_compat_ossl" elif test "x$use_gnutls" != xno then SSLINC= SSLLIB="-lgnutls-openssl" else SSLINC="-I/usr/local/ssl/include" SSLLIB="-L/usr/local/ssl/lib -lssl -lcrypto" fi ;; *) if test "x$use_nss_compat" != xno; then SSLINC="-I$jd_use_ssl/include/nss_compat_ossl -I$jd_use_ssl/include/nss3 -I$jd_use_ssl/include/nspr4" SSLLIB="-L$jd_use_ssl/lib -lnss_compat_ossl" elif test "x$use_gnutls" != xno then SSLINC="-I$jd_use_ssl/include" SSLLIB="-L$jd_use_ssl/lib -lgnutls-extra -lgnutls -ltasn1 -lgcrypt -lgnutls-openssl" else SSLINC="-I$jd_use_ssl/include" SSLLIB="-L$jd_use_ssl/lib -lssl -lcrypto" fi esac if test "x$SSLINC$SSLLIB" != x; then cat >>confdefs.h <<\_ACEOF #define USE_SSL 1 _ACEOF if test "x$use_nss_compat" != xno; then cat >>confdefs.h <<\_ACEOF #define USE_NSS_COMPAT 1 _ACEOF fi if test "x$use_gnutls" != xno; then cat >>confdefs.h <<\_ACEOF #define USE_GNUTLS 1 _ACEOF fi fi #--------------------------------------------------------------------------- # Check head files #--------------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF 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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in \ direct.h \ stdlib.h \ unistd.h \ memory.h \ fcntl.h \ sys/fcntl.h \ sys/dir.h \ ndir.h \ sys/ndir.h \ malloc.h \ termios.h \ sys/socket.h \ sys/time.h \ socket.h \ sys/wait.h \ netinet/in.h \ arpa/inet.h \ sys/utsname.h \ locale.h langinfo.h \ do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done #AC_CHECK_LIB(socket, socket, [LIBSOCKET="-lnsl -lsocket"]) dnl for Solaris #AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS #AC_SUBST(LIBSOCKET) ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { echo "$as_me:$LINENO: checking for mode_t" >&5 echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; } if test "${ac_cv_type_mode_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef mode_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_mode_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mode_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 echo "${ECHO_T}$ac_cv_type_mode_t" >&6; } if test $ac_cv_type_mode_t = yes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi { echo "$as_me:$LINENO: checking for pid_t" >&5 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef pid_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } if test $ac_cv_type_pid_t = yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; } if test "${ac_cv_type_uid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 echo "${ECHO_T}$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then cat >>confdefs.h <<\_ACEOF #define uid_t int _ACEOF cat >>confdefs.h <<\_ACEOF #define gid_t int _ACEOF fi #dnl Eventually, this should go away. We don't need long doubles. It is #dnl here for the snprintf code. { echo "$as_me:$LINENO: checking for long double" >&5 echo $ECHO_N "checking for long double... $ECHO_C" >&6; } if test "${ac_cv_type_long_double+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long double ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long_double=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_double=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long_double" >&5 echo "${ECHO_T}$ac_cv_type_long_double" >&6; } { echo "$as_me:$LINENO: checking for short" >&5 echo $ECHO_N "checking for short... $ECHO_C" >&6; } if test "${ac_cv_type_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_short=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_short=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 echo "${ECHO_T}$ac_cv_type_short" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of short" >&5 echo $ECHO_N "checking size of short... $ECHO_C" >&6; } if test "${ac_cv_sizeof_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_short=$ac_lo;; '') if test "$ac_cv_type_short" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_short=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef short ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_short=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_short" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_short=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 echo "${ECHO_T}$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF { echo "$as_me:$LINENO: checking for int" >&5 echo $ECHO_N "checking for int... $ECHO_C" >&6; } if test "${ac_cv_type_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_int=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 echo "${ECHO_T}$ac_cv_type_int" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of int" >&5 echo $ECHO_N "checking size of int... $ECHO_C" >&6; } if test "${ac_cv_sizeof_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; '') if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 echo "${ECHO_T}$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF { echo "$as_me:$LINENO: checking for long" >&5 echo $ECHO_N "checking for long... $ECHO_C" >&6; } if test "${ac_cv_type_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 echo "${ECHO_T}$ac_cv_type_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long" >&5 echo $ECHO_N "checking size of long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; '') if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF { echo "$as_me:$LINENO: checking for float" >&5 echo $ECHO_N "checking for float... $ECHO_C" >&6; } if test "${ac_cv_type_float+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_float=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_float=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_float" >&5 echo "${ECHO_T}$ac_cv_type_float" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of float" >&5 echo $ECHO_N "checking size of float... $ECHO_C" >&6; } if test "${ac_cv_sizeof_float+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_float=$ac_lo;; '') if test "$ac_cv_type_float" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (float) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (float) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_float=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef float ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_float=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_float" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (float) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (float) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_float=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_float" >&5 echo "${ECHO_T}$ac_cv_sizeof_float" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_FLOAT $ac_cv_sizeof_float _ACEOF { echo "$as_me:$LINENO: checking for double" >&5 echo $ECHO_N "checking for double... $ECHO_C" >&6; } if test "${ac_cv_type_double+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_double=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_double=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_double" >&5 echo "${ECHO_T}$ac_cv_type_double" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of double" >&5 echo $ECHO_N "checking size of double... $ECHO_C" >&6; } if test "${ac_cv_sizeof_double+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_double=$ac_lo;; '') if test "$ac_cv_type_double" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (double) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (double) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_double=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef double ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_double=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_double" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (double) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (double) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_double=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_double" >&5 echo "${ECHO_T}$ac_cv_sizeof_double" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_DOUBLE $ac_cv_sizeof_double _ACEOF { echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6; } if test "${ac_cv_type_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 echo "${ECHO_T}$ac_cv_type_long_long" >&6; } if test $ac_cv_type_long_long = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG 1 _ACEOF fi { echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6; } if test "${ac_cv_type_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 echo "${ECHO_T}$ac_cv_type_long_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long long" >&5 echo $ECHO_N "checking size of long long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_long=$ac_lo;; '') if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF for ac_func in \ memset \ memcpy \ memcmp \ memchr \ putenv \ getcwd \ getdomainname \ getaddrinfo \ getnameinfo \ gettimeofday \ sigaction \ sigemptyset \ sigprocmask \ sigaddset \ siglongjmp \ vsnprintf \ uname \ setlocale \ isalpha isspace isdigit isalnum ispunct \ atoll strtoll \ do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for timezone in time.h" >&5 echo $ECHO_N "checking for timezone in time.h... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { long int tz; tz = timezone % 1 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then cat >>confdefs.h <<\_ACEOF #define HAVE_TIMEZONE 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext { echo "$as_me:$LINENO: checking for tm_gmtoff in struct tm" >&5 echo $ECHO_N "checking for tm_gmtoff in struct tm... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { struct tm t; t.tm_gmtoff = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then cat >>confdefs.h <<\_ACEOF #define HAVE_TM_GMTOFF 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext { echo "$as_me:$LINENO: checking for an implementation of va_copy()" >&5 echo $ECHO_N "checking for an implementation of va_copy()... $ECHO_C" >&6; } if test "${slrn_cv_va_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then slrn_cv_va_copy=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) slrn_cv_va_copy=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $slrn_cv_va_copy" >&5 echo "${ECHO_T}$slrn_cv_va_copy" >&6; } { echo "$as_me:$LINENO: checking for an implementation of __va_copy()" >&5 echo $ECHO_N "checking for an implementation of __va_copy()... $ECHO_C" >&6; } if test "${slrn_cv___va_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); __va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then slrn_cv___va_copy=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) slrn_cv___va_copy=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $slrn_cv___va_copy" >&5 echo "${ECHO_T}$slrn_cv___va_copy" >&6; } { echo "$as_me:$LINENO: checking whether va_lists can be copied by value" >&5 echo $ECHO_N "checking whether va_lists can be copied by value... $ECHO_C" >&6; } if test "${slrn_cv_va_val_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); args2 = args1; if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then slrn_cv_va_val_copy=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) slrn_cv_va_val_copy=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test "x$slrn_cv_va_copy" = "xyes" then cat >>confdefs.h <<\_ACEOF #define VA_COPY va_copy _ACEOF else if test "x$slrn_cv___va_copy" = "xyes" then cat >>confdefs.h <<\_ACEOF #define VA_COPY __va_copy _ACEOF fi fi if test "x$slrn_cv_va_val_copy" = "xno" then cat >>confdefs.h <<\_ACEOF #define VA_COPY_AS_ARRAY 1 _ACEOF fi { echo "$as_me:$LINENO: result: $slrn_cv_va_val_copy" >&5 echo "${ECHO_T}$slrn_cv_va_val_copy" >&6; } #--------------------------------------------------------------------------- # Set the source directory and object directory. The makefile assumes an # absolute path name. This is because src/Makefile cds to OBJDIR and compiles # the src file which is in SRCDIR #--------------------------------------------------------------------------- SRCDIR=$CONFIG_DIR if test "" != "." then if test -z "" then SRCDIR=$SRCDIR/src else SRCDIR=$SRCDIR/ fi fi OBJDIR=$SRCDIR/"$ARCH"objs ELFDIR=$SRCDIR/elf"$ARCH"objs # Extract the first word of "ncurses5-config", so it can be a program name with args. set dummy ncurses5-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_nc5config+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $nc5config in [\\/]* | ?:[\\/]*) ac_cv_path_nc5config="$nc5config" # 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_nc5config="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_nc5config" && ac_cv_path_nc5config="no" ;; esac fi nc5config=$ac_cv_path_nc5config if test -n "$nc5config"; then { echo "$as_me:$LINENO: result: $nc5config" >&5 echo "${ECHO_T}$nc5config" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$nc5config" = "no" then # Extract the first word of "ncurses5w-config", so it can be a program name with args. set dummy ncurses5w-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_nc5config+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $nc5config in [\\/]* | ?:[\\/]*) ac_cv_path_nc5config="$nc5config" # 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_nc5config="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_nc5config" && ac_cv_path_nc5config="no" ;; esac fi nc5config=$ac_cv_path_nc5config if test -n "$nc5config"; then { echo "$as_me:$LINENO: result: $nc5config" >&5 echo "${ECHO_T}$nc5config" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi { echo "$as_me:$LINENO: checking for terminfo" >&5 echo $ECHO_N "checking for terminfo... $ECHO_C" >&6; } if test "$nc5config" != "no" then MISC_TERMINFO_DIRS=`$nc5config --terminfo` else MISC_TERMINFO_DIRS="" fi JD_Terminfo_Dirs="$MISC_TERMINFO_DIRS \ /usr/lib/terminfo \ /usr/share/terminfo \ /usr/share/lib/terminfo \ /usr/local/lib/terminfo" TERMCAP=-ltermcap for terminfo_dir in $JD_Terminfo_Dirs do if test -d $terminfo_dir then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } TERMCAP="" break fi done if test "$TERMCAP"; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } cat >>confdefs.h <<\_ACEOF #define USE_TERMCAP 1 _ACEOF fi jd_slang_include_dir="" jd_slang_library_dir="" if test X"$jd_with_slang_library" = X then jd_with_slang_library="" fi # Check whether --with-slang was given. if test "${with_slang+set}" = set; then withval=$with_slang; jd_with_slang_arg=$withval else jd_with_slang_arg=unspecified fi case "x$jd_with_slang_arg" in xno) jd_with_slang_library="no" ;; x) jd_with_slang_library="yes" ;; xunspecified) ;; xyes) jd_with_slang_library="yes" ;; *) jd_with_slang_library="yes" jd_slang_include_dir="$jd_with_slang_arg"/include jd_slang_library_dir="$jd_with_slang_arg"/lib ;; esac # Check whether --with-slanglib was given. if test "${with_slanglib+set}" = set; then withval=$with_slanglib; jd_with_slanglib_arg=$withval else jd_with_slanglib_arg=unspecified fi case "x$jd_with_slanglib_arg" in xunspecified) ;; xno) ;; x) { { echo "$as_me:$LINENO: error: --with-slanglib requres a value" >&5 echo "$as_me: error: --with-slanglib requres a value" >&2;} { (exit 1); exit 1; }; } ;; *) jd_with_slang_library="yes" jd_slang_library_dir="$jd_with_slanglib_arg" ;; esac # Check whether --with-slanginc was given. if test "${with_slanginc+set}" = set; then withval=$with_slanginc; jd_with_slanginc_arg=$withval else jd_with_slanginc_arg=unspecified fi case "x$jd_with_slanginc_arg" in x) { { echo "$as_me:$LINENO: error: --with-slanginc requres a value" >&5 echo "$as_me: error: --with-slanginc requres a value" >&2;} { (exit 1); exit 1; }; } ;; xunspecified) ;; xno) ;; *) jd_with_slang_library="yes" jd_slang_include_dir="$jd_with_slanginc_arg" ;; esac { echo "$as_me:$LINENO: checking for the slang library and header files " >&5 echo $ECHO_N "checking for the slang library and header files ... $ECHO_C" >&6; } if test X"$jd_with_slang_library" != Xno then jd_slang_inc_file= if test "X$jd_slang_inc_file" = "X" then jd_slang_inc_file=slang.h fi if test X"$jd_slang_include_dir" = X then inc_and_lib_dirs="\ $jd_prefix_incdir,$jd_prefix_libdir \ /usr/local/slang/include,/usr/local/slang/lib \ /usr/local/include/slang,/usr/local/lib \ /usr/local/include,/usr/local/lib \ /usr/include/slang,/usr/lib \ /usr/slang/include,/usr/slang/lib \ /usr/include,/usr/lib \ /opt/include/slang,/opt/lib \ /opt/slang/include,/opt/slang/lib \ /opt/include,/opt/lib" if test X != X then inc_and_lib_dirs="/include,/lib $inc_and_lib_dirs" fi case "$host_os" in *darwin* ) exts="dylib so a" ;; *cygwin* ) exts="dll.a so a" ;; * ) exts="so a" esac xincfile="$jd_slang_inc_file" xlibfile="libslang" jd_with_slang_library="no" for include_and_lib in $inc_and_lib_dirs do # Yuk. Is there a better way to set these variables?? xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` found=0 if test -r $xincdir/$xincfile then for E in $exts do if test -r "$xlibdir/$xlibfile.$E" then jd_slang_include_dir="$xincdir" jd_slang_library_dir="$xlibdir" jd_with_slang_library="yes" found=1 break fi done fi if test $found -eq 1 then break fi done fi fi if test X"$jd_slang_include_dir" != X -a X"$jd_slang_library_dir" != X then { echo "$as_me:$LINENO: result: yes: $jd_slang_library_dir and $jd_slang_include_dir" >&5 echo "${ECHO_T}yes: $jd_slang_library_dir and $jd_slang_include_dir" >&6; } jd_with_slang_library="yes" SLANG_LIB=-L$jd_slang_library_dir if test "X$jd_slang_library_dir" = "X/usr/lib" then SLANG_LIB="" else if test "X$jd_slang_library_dir" != "X" then if test "X$RPATH" = "X" then case "$host_os" in *linux*|*solaris* ) if test "X$GCC" = Xyes then if test "X$ac_R_nospace" = "Xno" then RPATH="-Wl,-R," else RPATH="-Wl,-R" fi else if test "X$ac_R_nospace" = "Xno" then RPATH="-R " else RPATH="-R" fi fi ;; *osf*|*openbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-rpath," else RPATH="-rpath " fi ;; *netbsd*) if test "X$GCC" = Xyes then RPATH="-Wl,-R" fi ;; esac if test "X$RPATH" != "X" then RPATH="$RPATH$jd_slang_library_dir" fi else RPATH="$RPATH:$jd_slang_library_dir" fi fi fi SLANG_INC=-I$jd_slang_include_dir if test "X$jd_slang_include_dir" = "X/usr/include" then SLANG_INC="" fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } jd_with_slang_library="no" SLANG_INC="" SLANG_LIB="" fi if test "$jd_with_slang_library" = "no" then { { echo "$as_me:$LINENO: error: unable to find the slang library and header file $jd_slang_inc_file" >&5 echo "$as_me: error: unable to find the slang library and header file $jd_slang_inc_file" >&2;} { (exit 1); exit 1; }; } fi # Check whether --enable-warnings was given. if test "${enable_warnings+set}" = set; then enableval=$enable_warnings; gcc_warnings=$enableval fi if test -n "$GCC" then #CFLAGS="$CFLAGS -fno-strength-reduce" if test -n "$gcc_warnings" then CFLAGS="$CFLAGS -Wall -W -pedantic -Winline -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith -Wcast-align -Wshadow -Wstrict-prototypes" # Now trim excess whitespace CFLAGS=`echo $CFLAGS` fi fi PROGRAM_HFILES="" PROGRAM_OFILES="" PROGRAM_CFILES="" PROGRAM_OBJECTS="" PROGRAM_ELFOBJECTS="" PROGRAM_OBJECT_RULES="" PROGRAM_ELF_ORULES="" if test -z "src/modules.lis" then Program_Modules="" else comment_re="^#" Program_Modules=`grep -v '$comment_re' src/modules.lis | awk '{print $1}'` Program_H_Modules=`grep -v '$comment_re' src/modules.lis | awk '{print $2}'` for program_module in $Program_H_Modules; do PROGRAM_HFILES="$PROGRAM_HFILES $program_module" done fi for program_module in $Program_Modules; do PROGRAM_OFILES="$PROGRAM_OFILES $program_module.o" PROGRAM_CFILES="$PROGRAM_CFILES $program_module.c" PROGRAM_OBJECTS="$PROGRAM_OBJECTS \$(OBJDIR)/$program_module.o" PROGRAM_ELFOBJECTS="$PROGRAM_ELFOBJECTS \$(ELFDIR)/$program_module.o" done for program_module in $Program_Modules; do PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES \$(OBJDIR)/$program_module.o : \$(SRCDIR)/$program_module.c \$(DOT_O_DEPS) \$("$program_module"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("$program_module"_C_FLAGS) \$(SRCDIR)/$program_module.c " PROGRAM_ELF_ORULES="$PROGRAM_ELF_ORULES \$(ELFDIR)/$program_module.o : \$(SRCDIR)/$program_module.c \$(DOT_O_DEPS) \$("$program_module"_O_DEP) cd \$(ELFDIR); \$(ELFCOMPILE_CMD) \$("$program_module"_C_FLAGS) \$(SRCDIR)/$program_module.c " done ac_config_headers="$ac_config_headers src/sysconf.h:src/config.hin" ac_config_files="$ac_config_files po/Makefile.in" ac_config_files="$ac_config_files src/slrnfeat.h:src/slrnfeat.hin" 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 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= 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=`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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## 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=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 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=: 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 # 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 $as_me, which was generated by GNU Autoconf 2.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # 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_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) 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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "src/sysconf.h") CONFIG_HEADERS="$CONFIG_HEADERS src/sysconf.h:src/config.hin" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/slrnfeat.h") CONFIG_FILES="$CONFIG_FILES src/slrnfeat.h:src/slrnfeat.hin" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF RPATH!$RPATH$ac_delim SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CONFIG_DIR!$CONFIG_DIR$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim SET_MAKE!$SET_MAKE$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim XMKMF!$XMKMF$ac_delim X_CFLAGS!$X_CFLAGS$ac_delim X_PRE_LIBS!$X_PRE_LIBS$ac_delim X_LIBS!$X_LIBS$ac_delim X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim SLRN_LIB_DIR!$SLRN_LIB_DIR$ac_delim LOCALEDIR!$LOCALEDIR$ac_delim SLRN_HAS_PULL_SUPPORT!$SLRN_HAS_PULL_SUPPORT$ac_delim SLRNPULL!$SLRNPULL$ac_delim SLRNPULL_ROOT_DIR!$SLRNPULL_ROOT_DIR$ac_delim MAN_SLRNPULL!$MAN_SLRNPULL$ac_delim SLRN_HAS_NNTP_SUPPORT!$SLRN_HAS_NNTP_SUPPORT$ac_delim SLRN_HAS_SPOOL_SUPPORT!$SLRN_HAS_SPOOL_SUPPORT$ac_delim SLRN_HAS_INEWS_SUPPORT!$SLRN_HAS_INEWS_SUPPORT$ac_delim INEWS!$INEWS$ac_delim SLRN_INEWS_COMMAND!$SLRN_INEWS_COMMAND$ac_delim SLRN_FORCE_INEWS!$SLRN_FORCE_INEWS$ac_delim SLRN_HAS_STRICT_FROM!$SLRN_HAS_STRICT_FROM$ac_delim SLRN_HAS_CHARACTER_MAP!$SLRN_HAS_CHARACTER_MAP$ac_delim SLRNPULL_USE_SETGID_POSTS!$SLRNPULL_USE_SETGID_POSTS$ac_delim SLRN_HAS_SPOILERS!$SLRN_HAS_SPOILERS$ac_delim SLRN_HAS_EMPHASIZED_TEXT!$SLRN_HAS_EMPHASIZED_TEXT$ac_delim SLRN_HAS_GEN_MSGID!$SLRN_HAS_GEN_MSGID$ac_delim SLRN_HAS_MSGID_CACHE!$SLRN_HAS_MSGID_CACHE$ac_delim SLRN_HAS_FAKE_REFS!$SLRN_HAS_FAKE_REFS$ac_delim SLRN_HAS_GROUPLENS!$SLRN_HAS_GROUPLENS$ac_delim UU_LIB!$UU_LIB$ac_delim UU_INC!$UU_INC$ac_delim LINK_LIBUU!$LINK_LIBUU$ac_delim SLRN_HAS_UUDEVIEW!$SLRN_HAS_UUDEVIEW$ac_delim CANLOCK_LIB!$CANLOCK_LIB$ac_delim CANLOCK_INC!$CANLOCK_INC$ac_delim LINK_LIBCANLOCK!$LINK_LIBCANLOCK$ac_delim SLRN_HAS_CANLOCK!$SLRN_HAS_CANLOCK$ac_delim LIBICONV!$LIBICONV$ac_delim LTLIBICONV!$LTLIBICONV$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF mkdir_p!$mkdir_p$ac_delim USE_NLS!$USE_NLS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim MSGFMT_015!$MSGFMT_015$ac_delim GMSGFMT_015!$GMSGFMT_015$ac_delim XGETTEXT!$XGETTEXT$ac_delim XGETTEXT_015!$XGETTEXT_015$ac_delim MSGMERGE!$MSGMERGE$ac_delim INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim INTLLIBS!$INTLLIBS$ac_delim LIBINTL!$LIBINTL$ac_delim LTLIBINTL!$LTLIBINTL$ac_delim POSUB!$POSUB$ac_delim INCICONV!$INCICONV$ac_delim SSLINC!$SSLINC$ac_delim SSLLIB!$SSLLIB$ac_delim SRCDIR!$SRCDIR$ac_delim OBJDIR!$OBJDIR$ac_delim ELFDIR!$ELFDIR$ac_delim nc5config!$nc5config$ac_delim TERMCAP!$TERMCAP$ac_delim MISC_TERMINFO_DIRS!$MISC_TERMINFO_DIRS$ac_delim SLANG_LIB!$SLANG_LIB$ac_delim SLANG_INC!$SLANG_INC$ac_delim PROGRAM_OFILES!$PROGRAM_OFILES$ac_delim PROGRAM_CFILES!$PROGRAM_CFILES$ac_delim PROGRAM_HFILES!$PROGRAM_HFILES$ac_delim PROGRAM_OBJECTS!$PROGRAM_OBJECTS$ac_delim PROGRAM_ELFOBJECTS!$PROGRAM_ELFOBJECTS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 32; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`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 || 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then 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. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi ac_config_files="$ac_config_files Makefile:autoconf/Makefile.in src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 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= 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=`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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## 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=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 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=: 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 # 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 $as_me, which was generated by GNU Autoconf 2.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # 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_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) 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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "src/sysconf.h") CONFIG_HEADERS="$CONFIG_HEADERS src/sysconf.h:src/config.hin" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/slrnfeat.h") CONFIG_FILES="$CONFIG_FILES src/slrnfeat.h:src/slrnfeat.hin" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile:autoconf/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF RPATH!$RPATH$ac_delim SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CONFIG_DIR!$CONFIG_DIR$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim SET_MAKE!$SET_MAKE$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim XMKMF!$XMKMF$ac_delim X_CFLAGS!$X_CFLAGS$ac_delim X_PRE_LIBS!$X_PRE_LIBS$ac_delim X_LIBS!$X_LIBS$ac_delim X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim SLRN_LIB_DIR!$SLRN_LIB_DIR$ac_delim LOCALEDIR!$LOCALEDIR$ac_delim SLRN_HAS_PULL_SUPPORT!$SLRN_HAS_PULL_SUPPORT$ac_delim SLRNPULL!$SLRNPULL$ac_delim SLRNPULL_ROOT_DIR!$SLRNPULL_ROOT_DIR$ac_delim MAN_SLRNPULL!$MAN_SLRNPULL$ac_delim SLRN_HAS_NNTP_SUPPORT!$SLRN_HAS_NNTP_SUPPORT$ac_delim SLRN_HAS_SPOOL_SUPPORT!$SLRN_HAS_SPOOL_SUPPORT$ac_delim SLRN_HAS_INEWS_SUPPORT!$SLRN_HAS_INEWS_SUPPORT$ac_delim INEWS!$INEWS$ac_delim SLRN_INEWS_COMMAND!$SLRN_INEWS_COMMAND$ac_delim SLRN_FORCE_INEWS!$SLRN_FORCE_INEWS$ac_delim SLRN_HAS_STRICT_FROM!$SLRN_HAS_STRICT_FROM$ac_delim SLRN_HAS_CHARACTER_MAP!$SLRN_HAS_CHARACTER_MAP$ac_delim SLRNPULL_USE_SETGID_POSTS!$SLRNPULL_USE_SETGID_POSTS$ac_delim SLRN_HAS_SPOILERS!$SLRN_HAS_SPOILERS$ac_delim SLRN_HAS_EMPHASIZED_TEXT!$SLRN_HAS_EMPHASIZED_TEXT$ac_delim SLRN_HAS_GEN_MSGID!$SLRN_HAS_GEN_MSGID$ac_delim SLRN_HAS_MSGID_CACHE!$SLRN_HAS_MSGID_CACHE$ac_delim SLRN_HAS_FAKE_REFS!$SLRN_HAS_FAKE_REFS$ac_delim SLRN_HAS_GROUPLENS!$SLRN_HAS_GROUPLENS$ac_delim UU_LIB!$UU_LIB$ac_delim UU_INC!$UU_INC$ac_delim LINK_LIBUU!$LINK_LIBUU$ac_delim SLRN_HAS_UUDEVIEW!$SLRN_HAS_UUDEVIEW$ac_delim CANLOCK_LIB!$CANLOCK_LIB$ac_delim CANLOCK_INC!$CANLOCK_INC$ac_delim LINK_LIBCANLOCK!$LINK_LIBCANLOCK$ac_delim SLRN_HAS_CANLOCK!$SLRN_HAS_CANLOCK$ac_delim LIBICONV!$LIBICONV$ac_delim LTLIBICONV!$LTLIBICONV$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF mkdir_p!$mkdir_p$ac_delim USE_NLS!$USE_NLS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim MSGFMT_015!$MSGFMT_015$ac_delim GMSGFMT_015!$GMSGFMT_015$ac_delim XGETTEXT!$XGETTEXT$ac_delim XGETTEXT_015!$XGETTEXT_015$ac_delim MSGMERGE!$MSGMERGE$ac_delim INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim INTLLIBS!$INTLLIBS$ac_delim LIBINTL!$LIBINTL$ac_delim LTLIBINTL!$LTLIBINTL$ac_delim POSUB!$POSUB$ac_delim INCICONV!$INCICONV$ac_delim SSLINC!$SSLINC$ac_delim SSLLIB!$SSLLIB$ac_delim SRCDIR!$SRCDIR$ac_delim OBJDIR!$OBJDIR$ac_delim ELFDIR!$ELFDIR$ac_delim nc5config!$nc5config$ac_delim TERMCAP!$TERMCAP$ac_delim MISC_TERMINFO_DIRS!$MISC_TERMINFO_DIRS$ac_delim SLANG_LIB!$SLANG_LIB$ac_delim SLANG_INC!$SLANG_INC$ac_delim PROGRAM_OFILES!$PROGRAM_OFILES$ac_delim PROGRAM_CFILES!$PROGRAM_CFILES$ac_delim PROGRAM_HFILES!$PROGRAM_HFILES$ac_delim PROGRAM_OBJECTS!$PROGRAM_OBJECTS$ac_delim PROGRAM_ELFOBJECTS!$PROGRAM_ELFOBJECTS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 32; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`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 || 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then 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. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi ac_config_files="$ac_config_files po/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 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= 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=`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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## 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=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 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=: 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 # 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 $as_me, which was generated by GNU Autoconf 2.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # 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_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) 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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "src/sysconf.h") CONFIG_HEADERS="$CONFIG_HEADERS src/sysconf.h:src/config.hin" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/slrnfeat.h") CONFIG_FILES="$CONFIG_FILES src/slrnfeat.h:src/slrnfeat.hin" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile:autoconf/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF RPATH!$RPATH$ac_delim SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CONFIG_DIR!$CONFIG_DIR$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim SET_MAKE!$SET_MAKE$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim XMKMF!$XMKMF$ac_delim X_CFLAGS!$X_CFLAGS$ac_delim X_PRE_LIBS!$X_PRE_LIBS$ac_delim X_LIBS!$X_LIBS$ac_delim X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim SLRN_LIB_DIR!$SLRN_LIB_DIR$ac_delim LOCALEDIR!$LOCALEDIR$ac_delim SLRN_HAS_PULL_SUPPORT!$SLRN_HAS_PULL_SUPPORT$ac_delim SLRNPULL!$SLRNPULL$ac_delim SLRNPULL_ROOT_DIR!$SLRNPULL_ROOT_DIR$ac_delim MAN_SLRNPULL!$MAN_SLRNPULL$ac_delim SLRN_HAS_NNTP_SUPPORT!$SLRN_HAS_NNTP_SUPPORT$ac_delim SLRN_HAS_SPOOL_SUPPORT!$SLRN_HAS_SPOOL_SUPPORT$ac_delim SLRN_HAS_INEWS_SUPPORT!$SLRN_HAS_INEWS_SUPPORT$ac_delim INEWS!$INEWS$ac_delim SLRN_INEWS_COMMAND!$SLRN_INEWS_COMMAND$ac_delim SLRN_FORCE_INEWS!$SLRN_FORCE_INEWS$ac_delim SLRN_HAS_STRICT_FROM!$SLRN_HAS_STRICT_FROM$ac_delim SLRN_HAS_CHARACTER_MAP!$SLRN_HAS_CHARACTER_MAP$ac_delim SLRNPULL_USE_SETGID_POSTS!$SLRNPULL_USE_SETGID_POSTS$ac_delim SLRN_HAS_SPOILERS!$SLRN_HAS_SPOILERS$ac_delim SLRN_HAS_EMPHASIZED_TEXT!$SLRN_HAS_EMPHASIZED_TEXT$ac_delim SLRN_HAS_GEN_MSGID!$SLRN_HAS_GEN_MSGID$ac_delim SLRN_HAS_MSGID_CACHE!$SLRN_HAS_MSGID_CACHE$ac_delim SLRN_HAS_FAKE_REFS!$SLRN_HAS_FAKE_REFS$ac_delim SLRN_HAS_GROUPLENS!$SLRN_HAS_GROUPLENS$ac_delim UU_LIB!$UU_LIB$ac_delim UU_INC!$UU_INC$ac_delim LINK_LIBUU!$LINK_LIBUU$ac_delim SLRN_HAS_UUDEVIEW!$SLRN_HAS_UUDEVIEW$ac_delim CANLOCK_LIB!$CANLOCK_LIB$ac_delim CANLOCK_INC!$CANLOCK_INC$ac_delim LINK_LIBCANLOCK!$LINK_LIBCANLOCK$ac_delim SLRN_HAS_CANLOCK!$SLRN_HAS_CANLOCK$ac_delim LIBICONV!$LIBICONV$ac_delim LTLIBICONV!$LTLIBICONV$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF mkdir_p!$mkdir_p$ac_delim USE_NLS!$USE_NLS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim MSGFMT_015!$MSGFMT_015$ac_delim GMSGFMT_015!$GMSGFMT_015$ac_delim XGETTEXT!$XGETTEXT$ac_delim XGETTEXT_015!$XGETTEXT_015$ac_delim MSGMERGE!$MSGMERGE$ac_delim INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim INTLLIBS!$INTLLIBS$ac_delim LIBINTL!$LIBINTL$ac_delim LTLIBINTL!$LTLIBINTL$ac_delim POSUB!$POSUB$ac_delim INCICONV!$INCICONV$ac_delim SSLINC!$SSLINC$ac_delim SSLLIB!$SSLLIB$ac_delim SRCDIR!$SRCDIR$ac_delim OBJDIR!$OBJDIR$ac_delim ELFDIR!$ELFDIR$ac_delim nc5config!$nc5config$ac_delim TERMCAP!$TERMCAP$ac_delim MISC_TERMINFO_DIRS!$MISC_TERMINFO_DIRS$ac_delim SLANG_LIB!$SLANG_LIB$ac_delim SLANG_INC!$SLANG_INC$ac_delim PROGRAM_OFILES!$PROGRAM_OFILES$ac_delim PROGRAM_CFILES!$PROGRAM_CFILES$ac_delim PROGRAM_HFILES!$PROGRAM_HFILES$ac_delim PROGRAM_OBJECTS!$PROGRAM_OBJECTS$ac_delim PROGRAM_ELFOBJECTS!$PROGRAM_ELFOBJECTS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 32; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`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 || 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then 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. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; 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 INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES \$(OBJDIR)/chkslang.o : \$(SRCDIR)/chkslang.c \$(DOT_O_DEPS) \$("chkslang"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("chkslang"_C_FLAGS) \$(SRCDIR)/chkslang.c " PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES \$(OBJDIR)/sltcp.o : \$(SRCDIR)/sltcp.c \$(DOT_O_DEPS) \$("sltcp"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("sltcp"_C_FLAGS) \$(SRCDIR)/sltcp.c " PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES \$(OBJDIR)/nntplib.o : \$(SRCDIR)/nntplib.c \$(DOT_O_DEPS) \$("nntplib"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("nntplib"_C_FLAGS) \$(SRCDIR)/nntplib.c " PROGRAM_OBJECT_RULES="$PROGRAM_OBJECT_RULES slrnpull : \$(OBJDIR)/slrnpull @echo slrnpull created in \$(OBJDIR) \$(OBJDIR)/slrnpull : \$(OBJDIR)/slrnpull.o \$("slrnpull"_DEPS) \$(EXECDEPS) \$(CC) -o \$(OBJDIR)/slrnpull \$(LDFLAGS) \$(OBJDIR)/slrnpull.o \$("slrnpull"_LIBS) \$(EXECLIBS) \$(OBJDIR)/slrnpull.o : \$(SRCDIR)/slrnpull.c \$(DOT_O_DEPS) \$("slrnpull"_O_DEP) cd \$(OBJDIR); \$(COMPILE_CMD) \$("slrnpull"_INC) \$(EXECINC) \$(SRCDIR)/slrnpull.c " echo "$PROGRAM_OBJECT_RULES" >> src/Makefile echo "" echo "For some INSTALLATION options, edit src/Makefile." echo "For INEWS, LOCAL SPOOL, GROUPLENS, SLANG, ... support, edit src/slrnfeat.h" echo "" slrn-1.0.1/contrib/000077500000000000000000000000001206520222400141225ustar00rootroot00000000000000slrn-1.0.1/contrib/NEWS.cleanscore000066400000000000000000000040731206520222400167420ustar00rootroot00000000000000============================================================================= Cleanscore - changes.txt ============================================================================= 0.9.8.0 -> 0.9.8.1 [2002-04-09] * Complete code-cleanup (e.g. setting 'use strict'). * the '-e' option now works better, but a little slower. * New, improved README. * New file INDEX.TXT ----------------------------------------------------------------------------- 0.9.7.4 -> 0.9.8.0 [2001-09-14] * Added an option to cut multiple empty lines down. (suggested by Guido Ostkamp) * Cleanscore now can clean all files in a directory. * The extention for the backupfiles is now configurable. * The original file is only copyed to a backupfile if there's really a change. * Moved changes from README to changes.txt. ----------------------------------------------------------------------------- 0.9.7.3 -> 0.9.7.4 [2001-08-10] * Added savefile option. (suggested by Sven Guckes) ----------------------------------------------------------------------------- 0.9.7.2 -> 0.9.7.3 [2001-02-17] * Cleanscore now uses "flock" to lock the scorefile. (suggested by "The Joneses ") * Some cleanup in the code. ----------------------------------------------------------------------------- 0.9.7.1 -> 0.9.7.2 [2001-01-05] Small bugfix: Newer versions of perl want an explizit declaration of each function. ----------------------------------------------------------------------------- 0.9.7 -> 0.9.7.1 [2000-11-30] Small bugfix: cleanscore used GMT to calculate expired entries. Cleanscore now uses your *local* time to find expired entries. ----------------------------------------------------------------------------- 0.9.6 -> 0.9.7 [2000-11-26] * Added: Option "-d". The "debug" mode gives now output in a usefull form. * Added: Option "-t". Cleanscore can work test-only now. ----------------------------------------------------------------------------- 0.9.5.1 -> 0.9.6 [2000-03-19] Added: Copyright notice. Changed: Distribution format. slrn-1.0.1/contrib/README.cleanscore000066400000000000000000000151501206520222400171210ustar00rootroot00000000000000============================================================================= C L E A N S C O R E ============================================================================= 1. What is it? ============== Cleanscore is a perl-script to remove expired score entries from the newsreader slrn's scorefile (usually $HOME/News/Score). 2. How to install it? ===================== Its quite simple. Just copy the script into a directory in your $PATH. If you in doubt where the right place is just try the directory "$HOME/bin". Now you can run cleanscore, but at least the '-f ' argument is needed. 3. How does it work? ==================== 3.1 Basics: ----------- Cleanscore opens the scorefile given with the '-f ' option and reads every line in it. If the given filename is a directory, cleanscore successively opens every file in it (except its own backup-files). While reading, cleanscore has to phrase every line, trying to see whether this line is the beginning or the end of a single entry. And here is the problem. Because the syntax of slrn's scorefiles is not designed for automatic cleaning, it's hard for the script to decide where exactly an entry starts or ends (i.e., to decide to which entry comment lines before/after it belong.) That's why cleanscore links every empty or comment line after the last "active" line of an entry to the following entry. But there's a way to protect comments that should not get removed and to avoid trouble with automatically generated entries (which often contain some comments after them). Cleanscore knows the tags '%BOS' (for 'Beginning of Score') and '%EOS' (for 'End of Score'). Just put those tags around your entries (entries generated by slrn are marked with these tags since slrn-version 0.9.7.0) Checking whether the entry is expired or not is much more simple then finding the borders of it. Cleanscore phrases the 'Expires:' line and compares it with the local time. ('Expires:' after a comment-sign ('%' or '#') is ignored, of course) If you don't want to remove expired entrys on the same day, the commandline-option '-k ' is your friend. With this option set, cleanscore will keep your entries 'n' days longer (to be exact, it will calculate with the date 'n' days before). That way, you can easily reactivate an entry simply by changing the 'Expires:' line in these 'n' days. If an entry is expired, it will quietly be deleted (unless you invoke cleanscore with its '-v' or the '-d' flag). If you want to save your valuable entries, you can instruct cleanscore to save all removed entries into a file. This is done via the commandline-option '-s '. If cleanscore removes many entries, one problems occurs often: there's a large block of empty lines. To remove them, there's the '-e ' commandline-option. With this option set, cleanscore only allows 'n' empty lines in a block, every additional empty line is removed. If you want to see what cleanscore will remove without risks, use the '-t' option. With this, cleanscore opens the file read-only and prints everything that would be removed (except empty line from the '-e' switch) to stdout. 3.2 Other nice things: ---------------------- If slrn generates a entry, it writes every line it could base an entry on into your scorefile and puts a '%'-commentsign before those it does not need in this case. If you generate many entries this way, your scorefile gets bloated. cleanscore has the option '-r' to remove all lines beginning with the '%'-sign. Comments beginning with the '#'-sign are not removed, so you can write your own comments beginning with that sign. If you don't like cleanscore's default backup-extension '.bak', you can change it with the '-b ' option. Backup-files are ignored if cleanscore cleans a directory of scorefiles. If you want cleanscore to ignore files with other extensions too, you can tell cleanscore via the '-i ' option. If this option is set, every file ending with '' is ignored. 3.3 How to use it: ------------------ I recommend running cleanscore on a daily basis (or whenever you read news if you don't read every day ;)). On a Unix system, there are many ways to do this. One possible solution is a script that first runs cleanscore and then starts slrn. Another way is a little cronjob. On my system, I put the entry | 0 3 * * * cleanscore -v -i '~' -k 3 -f ~/news/score into my user crontab (this means run the command 'cleanscore -v -i '~' -k 3 -f ~/news/score' every day at 03:00H -- see 'man 8 cron' and 'man 5 crontab' if this is new for you). A short description of the options I use: -v Be verbose (I like to know what is going on ;)) -i '~' Ignore backup-files from my $EDITOR (vim) -k 3 Keep entries 3 days longer, so I can easily reactivate it if it is still needed. -f ~/news/score Clean '~/news/score'. That is the directory where all my scorefiles are. 4. Commandline options ====================== Required Options: -f "File". Chose "filename" for cleaning. If "filename" is a directory, clean all files in it. Standard Options for "help" and "version": -V "Version". Print Version and exit. -h "Help". Prints a help message. Other Options: -b "Backup extension". Overwrites the default backup- extension ('.bak'). -d "Debug". Prints dates and status for each entry. -e N "Empty lines". Cut multiple empty lines down to N. -i "Ignore pattern". When scanning through a directory, ignore files with names matching "pattern". The "backup extension" is matched automaticly. -k N "Keep for N days". Do not remove expired entries immediately; instead, hold them for N more days. This allows to keep expired entries so you can still edit them, eg. change the expire date. -r "Remove". Removes comment lines, i.e. lines beginning with '%'. (i.e. remove slrn generated comments if you use '#' for your own comments) -s "Save to". Save removed entries to "filename". -t "Test". Just check for expired entries, but do not change the scorefile. Prints "removed" entries to stdout. -v "Verbose". Prints all expired entries to stdout. 3. Copying ========== Cleanscore is distributed under the terms of the GNU General Public License. 4. Changes ========== See NEWS.cleanscore 5. Author ========= Felix Schueller slrn-1.0.1/contrib/README.slrnrc-conv000066400000000000000000000012441206520222400172500ustar00rootroot00000000000000In slrn 0.9.7.0, some functions were renamed (see changes.txt for details). Although the old names are currently still working, they will be removed before version 1.0, so you will need to update your configuration file at some point. Matthias Friedrich provided slrnrc-conv, a short perl script that does the job automatically for you. It preserves both comments and indentation and is very easy to use: perl slrnrc-conv ~/.slrnrc > new_config You can then replace ~/.slrnrc with new_config. If you have problems with the script, please contact . Previous versions of slrnrc-conv did not run with perl <= 5.003 - this should now be fixed. slrn-1.0.1/contrib/cleanscore000077500000000000000000000305541206520222400161750ustar00rootroot00000000000000#!/usr/bin/perl -w # cleanscore - Remove expired entrys from slrn's Scorefile. # Copyright (c) 1999 - 2002 Felix Schueller # # 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. use warnings; use strict; use Fcntl qw(:DEFAULT :flock); use Getopt::Std; # Functions sub help(); sub reset_vars(%); sub insert_comment(%%); sub end_of_score(%$); sub clean_file($); # globals variables. our $Version="0.9.8.1"; our $Debug = 0; our $Remove_Comments = 0; our $Max_Empty_Lines = -1; our $Verbose = 0; our $Backup_Extension = ".bak"; our $Ignore_File_Pattern = ""; our $Test_Mode = 0; our $Keep_Days = 0; our $Save_File = ""; # # # Phrase commandline-options. my $target; my %option; getopts('b:de:f:hi:k:hrs:tVv', \%option); if (defined($option{b})) {$Backup_Extension = $option{b};} if (defined($option{d})) {$Debug = $option{d};} if (defined($option{e})) {$Max_Empty_Lines = $option{e};} if (defined($option{h})) {help(); exit(0);} if (defined($option{i})) {$Ignore_File_Pattern = $option{i};} if (defined($option{r})) {$Remove_Comments = $option{r};} if (defined($option{s})) {$Save_File = $option{s};} if (defined($option{t})) {$Test_Mode = $option{t};} if (defined($option{k})) {$Keep_Days = $option{k};} if (defined($option{v})) {$Verbose = $option{v};} if (defined($option{V})) {print ("cleanscore - Version: $Version (bugreports to: fschueller\@netcologne.de)\n"); exit(0);} if (defined($option{f})) { ($target = $option{f}) =~ s#/$##g; } else { print("You must specify a scorefile with the '-f scorefile' option.\n"); print("Try 'cleanscore -h' for a more detailed help\n"); exit 1; } # # # # # Start the show if ($Debug) { print ("Version: $Version\n"); if ($Keep_Days) {print ("Keep: $Keep_Days\n");} print ("\n"); } if (-f $target) # $target is a file -> clean it. { clean_file($target); } elsif (-d $target) # $target is a directory -> clean some files in it. { my $backup_pattern=$Backup_Extension; opendir(SCOREDIR, $target) || die ("Can't open $target: $!"); # escape characters with special meaning. $backup_pattern=~ s/\./\\./g; foreach (readdir(SCOREDIR)) { if (/^\.\.?$/) {next;} # skip '.' and '..' if (/$backup_pattern$/o) {next;} # skip $Backup_Extension if ($Ignore_File_Pattern) { if (/$Ignore_File_Pattern$/o) {next;} }; unless ( -f "$target/$_") {next;} # skip everything that is not a normal file. clean_file("$target/$_"); } } ############################ END OF MAIN ############################### sub clean_file($) { my $score_file = shift; my $prev_empty_lines=0; my $group_line= -1; my $file_is_changed=0; my %today; my %this_entry; my %comment; if ($Debug) { print ("\nScorefile: $score_file\n"); print ("Dates: Entry / System"); if ($Keep_Days) {print (" - $Keep_Days Days");} print ("\n\n"); } if ($Test_Mode) { print ("\nFollowing lines would removed from Scorefile \"$score_file\":\n\n"); } @{$today{raw}} = localtime (time - ($Keep_Days * 86400)); $today{year} = ($today{raw}[5] + 1900); $today{month} = ($today{raw}[4] + 1); $today{day} = $today{raw}[3]; unless ($Test_Mode) { sysopen (SCORE, "$score_file", O_RDWR) || die ("Can't open $score_file: $!"); flock (SCORE, LOCK_EX | LOCK_NB) || die ("Can't lock $score_file: $!"); sysopen (OUT, "$score_file.cs", O_RDWR | O_CREAT) || die ("Can't open $score_file.cs: $!"); $file_is_changed=0; } else { open (SCORE, "$score_file") || die ("Can't read $score_file: $!"); } reset_vars(\%this_entry); $comment{lines} = 0; @{$comment{data}} = ""; #Magic starts here while () { # Removing empty lines is a problem, we don't know to whitch entrie they belong. # So we provide the an option to cut multiple empty lines down to $Max_Empty_Lines if ($Max_Empty_Lines >= 0) { if (/^\s*$/) { if ($prev_empty_lines==$Max_Empty_Lines) { $file_is_changed=1; next; } else { $prev_empty_lines++; } } else { if ($prev_empty_lines) { $prev_empty_lines=0; } } } if ($Remove_Comments) # Remove '%' comments { if (/^\s*\%/) { if ($Verbose || $Debug || $Test_Mode) {print ($_);} $file_is_changed=1; next; } } if (/\%EOS/ || /#EOS/) { $comment{data}[$comment{lines}] = $_; $comment{lines}++; insert_comment(\%comment, \%this_entry); end_of_score(\%this_entry, \$file_is_changed); next; } if (/\%BOS/ || /#BOS/) { insert_comment(\%comment, \%this_entry); end_of_score(\%this_entry, \$file_is_changed); $this_entry{seen_bos} = 1; } if (/^\s*\%/ || /^\s*#/ || /^\s*$/) # put comments in an extra array { $comment{data}[$comment{lines}] = $_; $comment{lines}++; next; } if (/^\S*\[.*\]\S*$/) # Found a new groupexpression - entry ends here { unless ($this_entry{seen_bos}) { end_of_score(\%this_entry, \$file_is_changed); insert_comment(\%comment, \%this_entry); } $group_line=$this_entry{line}; } if (/Score:/i) { if ($this_entry{seen_score}) #there was a 'Score:' before entry ends here { if ($this_entry{is_expired} && $group_line >= 0) # Save Groupexp if necessary { unless ($Test_Mode) {print (OUT $this_entry{data}[$group_line]);} } end_of_score(\%this_entry, \$file_is_changed); insert_comment(\%comment, \%this_entry); $group_line = -1; } $this_entry{seen_score} = 1; } if (/Expires:/i) { if (/\d{1,2}-\d{1,2}-\d{4}/) { ($this_entry{day}, $this_entry{month}, $this_entry{year}) = /(\d{1,2})-(\d{1,2})-(\d{4})/; } else { ($this_entry{month}, $this_entry{day}, $this_entry{year}) = m#(\d{1,2})/(\d{1,2})/(\d{4})#; } if ($Debug) { print ("Year: $this_entry{year} / $today{year}\n"); print ("Month: $this_entry{month} / $today{month}\n"); print ("Day: $this_entry{day} / $today{day}\n"); } if ($this_entry{year} < $today{year}) { $this_entry{is_expired} = 1; } elsif ($this_entry{year} == $today{year}) { if ($this_entry{month} < $today{month}) { $this_entry{is_expired} = 1; } elsif ($this_entry{month} == $today{month}) { if ($this_entry{day} <= $today{day}) {$this_entry{is_expired} = 1;} } } if ($Debug && $this_entry{is_expired}) {print ("Entry is expired\n");} } insert_comment(\%comment, \%this_entry); $this_entry{data}[$this_entry{line}] = $_; $this_entry{line}++; } #while () end_of_score(\%this_entry, \$file_is_changed); insert_comment(\%comment, \%this_entry); end_of_score(\%this_entry, \$file_is_changed); unless ($Test_Mode) { if ($file_is_changed) { # $score_file.cs contains the new scorefile $score_file the old. # copy $score_file to $score_file$Backup_Extension seek (SCORE, 0, 0) || die ("Can't rewind $score_file: $!"); open (DEST, ">$score_file$Backup_Extension") || die ("Can't write $score_file$Backup_Extension: $!"); while () {print (DEST $_);} close (DEST); # copy $score_file.cs to $score_file seek (SCORE, 0, 0) || die ("Can't rewind $score_file: $!"); truncate (SCORE, 0); seek (OUT, 0, 0) || die ("Can't rewind $score_file.cs: $!"); while () { # Removing empty lines is a problem, we don't know to whitch entrie they belong. # So we provide the an option to cut multiple empty lines down to $Max_Empty_Lines if ($Max_Empty_Lines >= 0) { if (/^\s*$/) { if ($prev_empty_lines==$Max_Empty_Lines) { next; } else { $prev_empty_lines++; } } else { if ($prev_empty_lines) { $prev_empty_lines=0; } } } print (SCORE $_); } } close (OUT); if (-e "$score_file.cs") { unlink("$score_file.cs")}; } close (SCORE); } #sub clean_file($) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub end_of_score(%$) { my $entry = shift; my $file_is_changed = shift; unless ($$entry{is_expired}) { # entry is not expired unless ($Test_Mode) { print (OUT @{$$entry{data}}); } } else { # entry is expired $$file_is_changed=1; if ($Save_File && $$entry{is_expired}) { open (SAVE, ">>$Save_File") || die ("Can't append to $Save_File: $!"); print (SAVE @{$$entry{data}}); close (SAVE); } if ($Verbose || $Debug || $Test_Mode) { print (@{$$entry{data}}); print ("\nNext Entry:\n\n"); } } reset_vars($entry); } #sub end_of_score() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub insert_comment(%%) { my $comment=shift; my $entry=shift; my $i; if ($$comment{lines}) { for ($i=0; $i < $$comment{lines}; $i++) { $$entry{data}[$$entry{line}] = $$comment{data}[$i]; $$entry{line}++; } } $$comment{lines} = 0; @{$$comment{data}} = ""; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub reset_vars(%) { my $entry=shift; @{$$entry{data}} =""; $$entry{is_expired} = 0; $$entry{seen_bos} = 0; $$entry{seen_score} = 0; $$entry{line} = 0; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub help() { print < "File". Chose "filename" for cleaning. If "filename" is a directory, clean all files in it. Standard Options for "help" and "version": -V "Version". Print Version and exit. -h "Help". Prints a help message. Other Options: -b "Backup extension". Overwrites the default backup- extension ('.bak'). -d "Debug". Prints dates and status for each entry. -e N "Empty lines". Cut multiple empty lines down to N. -i "Ignore pattern". When scanning through a directory, ignore files with names matching "pattern". The "backup extension" is matched automaticly. -k N "Keep for N days". Do not remove expired entries immediately; instead, hold them for N more days. This allows to keep expired entries so you can still edit them, eg. change the expire date. -r "Remove". Removes comment lines, i.e. lines beginning with '%'. (i.e. remove slrn generated comments if you use '#' for your own comments) -s "Save to". Save removed entries to "filename". -t "Test". Just check for expired entries, but do not change the scorefile. Prints "removed" entries to stdout. -v "Verbose". Prints all expired entries to stdout. EOF } slrn-1.0.1/contrib/slrnrc-conv000077500000000000000000000106311206520222400163170ustar00rootroot00000000000000#! /usr/bin/perl -w # # slrnrc-conv - converts an old ~/.slrnrc file to new format # # by Matthias Friedrich # # Usage: perl slrnrc-conv ~/.slrnrc > new_config # use strict; # # group functions conversation table # my %group = ( down => 'line_down', group_bob => 'bob', group_eob => 'eob', group_search => 'group_search_forward', pagedown => 'page_down', pageup => 'page_up', toggle_group_display => 'toggle_group_formats', uncatch_up => 'uncatchup', up => 'line_up' ); # # article functions conversation table # my %article = ( art_bob => 'article_bob', art_eob => 'article_eob', art_xpunge => 'expunge', article_linedn => 'article_line_down', article_line_dn => 'article_line_down', article_lineup => 'article_line_up', article_pagedn => 'article_page_down', article_pageup => 'article_page_up', down => 'header_line_down', enlarge_window => 'enlarge_article_window', goto_beginning => 'article_bob', goto_end => 'article_eob', left => 'article_left', locate_header_by_msgid => 'locate_article', pagedn => 'header_page_down', pageup => 'header_page_up', pipe_article => 'pipe', prev => 'previous', print_article => 'print', right => 'article_right', scroll_dn => 'article_page_down', scroll_up => 'article_page_up', scroll_page_dn => 'scroll_page_down', shrink_window => 'shrink_article_window', skip_to_prev_group => 'skip_to_previous_group', toggle_show_author => 'toggle_header_formats', up => 'header_line_up' ); # # variable conversation table # my %variables = ( process_verbatum_marks => 'process_verbatim_marks', followup => 'followup_string' ); # # obsolete variables that can't be rewritten automatically # they will be commented out and an explanatory message is printed to stderr # my %obsolete_variables = ( prompt_next_group => 'The feature controlled by this variable has been removed.', query_reconnect => 'There is no need to confirm reconnects anymore.', use_xgtitle => 'slrn does not use XGTITLE anymore.', author_display => 'Please use the %f escape of header_display_format.', display_author_realname => 'Please use the %r escape of header_display_format.', display_score => 'Please use the %S escape of header_display_format.', group_dsc_start_column => 'Please customize group_display_format instead.', show_descriptions => 'Please use the %d escape of group_display_format.' ); # # colors conversation table # my %colors = ( verbatum => 'verbatim' ); # # obsolete commands, rewrite them to variables # my @commands = ( 'hostname', 'username', 'replyto', 'organization', 'scorefile', 'signature', 'realname', 'followup', 'cc_followup_string', 'quote_string', 'decode_directory', 'editor_command' ); # regexps that match a (possibly quoted) string my $str_rx = '\S+'; my $qstr_rx = '"(?:\\\\|\\.|.)*"|\S+'; # read input file line by line while ( <> ) { # rewrite key bindings if ( m/^(\s*setkey\s*"?)(group|article)("?\s*"?)([^\s"]+)(\s*.*)$/ ) { if ( $2 eq 'group' and $group{$4} ) { $_ = "$1$2$3$group{$4}$5\n"; } elsif ( $2 eq 'article' and $article{$4} ) { $_ = "$1$2$3$article{$4}$5\n"; } } # rewrite color names elsif ( m/^(\s*color\s*)(${qstr_rx})(.*)$/ ) { my $name = $colors{$2} || $2; $_ = "$1${name}$3\n"; } # rewrite variable names elsif ( m/^(\s*set\s*)(${qstr_rx})(.*)$/ ) { my $why; my $name = $variables{$2} || $2; $_ = "$1${name}$3\n"; if ( $why = $obsolete_variables{$name} ) { print STDERR "The variable $name is obsolete.\n", "\t$why\n"; print "% slrnrc-conv: The variable $name ", "is obsolete.\n", "% $why\n"; $_ = '% ' . $_; } } # probably this is a command, rewriting doesn't even need a table elsif ( m/^(\s*)(${str_rx})(.*)$/ ) { my $cmd = $2; my $set = ''; $set = 'set ' if grep {m/$cmd/} @commands; $_ = "$set$1$2$3\n"; redo if $set; # maybe the resulting variable needs rewriting } # no else case needed, simply print line print; } slrn-1.0.1/doc/000077500000000000000000000000001206520222400132275ustar00rootroot00000000000000slrn-1.0.1/doc/FAQ000066400000000000000000001507351206520222400135740ustar00rootroot00000000000000 The slrn FAQ John E. Davis Matthias Friedrich Thomas Schultz Thomas Wiegner Peter J Ross Version pre1.0.0, November 2008 Frequently asked questions about the slrn newsreader. ______________________________________________________________________ Table of Contents 1. General questions about slrn 1.1 What is slrn ? 1.2 Where can I download slrn ? 1.3 Where is slrn 's documentation? 1.4 Are there any mailing lists and/or newsgroups about slrn ? 1.5 slrn appears quite stable. Why don't you call it version 1.0? 1.6 How well are slang-2 and Unicode supported right now? 1.7 I upgraded from version 0.9.8.1 to 0.9.9 or 1.0.0. What do I have to change in my slrnrc? 2. Configuration 2.1 Is it possible to set my ``From:'' header line for postings? 2.2 How can I set my ``Message-ID:'' header? 2.3 How can I set the size of the article pager? 2.4 What charset settings should I use under Windows? 2.5 How can I use an external e-mail program for replies? 2.6 The thread tree is not drawn properly. Why? 2.7 Can I use the mouse with slrn ? 2.8 How can I rotate signatures in slrn ? 3. Usage 3.1 What is a prefix argument? 3.2 Treatment of read articles 3.2.1 How can I never mark articles as read? 3.2.2 How can I get slrn to show both read and unread articles? 3.2.3 How can I retrieve read articles from the same thread? 3.2.4 How can I retrieve other read articles? 3.2.5 I want to see full threads as soon as they contain at least one unread article. Can slrn do this? 3.3 Handling of binary postings 3.3.1 How do I uudecode articles? 3.3.2 What are the advantages of using uudeview ? 3.3.3 What about yEnc? 3.3.4 Can I put multipart binary postings into one thread? 3.4 How can I mark cross-posts as read in other groups as well? 3.5 Why doesn't the ``L'' command work as advertised? 3.6 How do I cross-post an article? 3.7 How do I use the mouse in an XTerm to copy/paste? 3.8 How can I sort the list of newsgroups? 4. Scoring 4.1 What is scoring? 4.2 How can I killfile with slrn ? 4.3 How do I set up slrn to read a scorefile? 4.4 What is the format of an slrn scorefile? 4.5 Where can I get a full description of slrn 's regular expressions? 4.6 How can I test whether my regular expressions do what I expect them to do? 4.7 Is there an easy way to watch or kill threads / authors? 4.8 Do I need to remove expired entries from my scorefile manually? 4.9 How do I score on a specific ``Subject'' line, e.g., ``test'' messages? 4.10 How do I score articles from a specific person? 4.11 How do I score articles from a specific site? 4.12 How do I score followups? 4.13 Is it possible to score followups to my own postings? 4.14 How do I kill cross-posts from a specific group? 4.15 How do I score all cross-posts? 4.16 How do I make it so I read only articles from a specific person? 4.17 How do I score articles that have no ``References'' line but whose ``Subject'' line starts with ``Re:''? 4.18 How do I score subjects that contain only uppercase characters? 4.19 How can I filter people without a real name? 5. slrnpull 5.1 What is slrnpull ? 5.2 Why can't I post when using slrnpull ? 5.3 How do I get a full list of newsgroups? 6. I found a bug in slrn !!! 6.1 slrn hangs infinitely when I press the delete key 6.2 Non US-ASCII characters are displayed incorrectly. 6.3 The bug I found is not listed here. What do I do now? 6.3.1 Some additional notes for the advanced user 7. About this document 7.1 History ______________________________________________________________________ 1. General questions about slrn 1.1. What is slrn ? slrn (``S-Lang read news'') is a Usenet newsreader that runs in text mode on various Unix and Unix-like operating systems (including Linux), Windows, OS/2, BeOS, MacOS X and VMS. It supports scoring rules to highlight, sort or kill articles to make reading news more efficient. Furthermore it is highly customizable, allows free key-bindings and can be extended using the S-Lang macro language. Offline reading is possible using either slrnpull (shipped with slrn) or a local newsserver like Leafnode or INN. 1.2. Where can I download slrn ? If you run Linux, your distribution probably contains a slrn package that might not offer the latest version, but is more or less ``ready to go''. If you wish to obtain a more current version of slrn for Linux or another supported OS, details can be found at Additional resources are available at . Note: Upgrading is especially recommended if you are currently using a 0.9.8.1pl1 or pl2 version, in which significant bugs exist. 1.3. Where is slrn 's documentation? The source distribution contains a lot of documentation; on Unix-like systems, it is likely to be installed somewhere in /usr/share/doc or /usr/doc. It contains manpages (type man slrn at the command prompt), the slrn Reference Manual (manual.txt) and several other useful resources like a sample slrnrc (configuration) file. If you are new to slrn, please make sure to read the file FIRST_STEPS. It should get you started. If you cannot find this documentation on your system, you can find it online via . 1.4. Are there any mailing lists and/or newsgroups about slrn ? If you have general questions about slrn that are not covered by its documentation, please make use of the appropriate newsgroups or mailing list rather than writing to the maintainer directly: The appropriate newsgroup for questions about slrn is news.software.readers. There is also a German speaking equivalent (de.comm.software.newsreader). slrn-user is a mailing list for discussion of the use, development and extension of slrn. You can subscribe to it through the web interface at . To keep track of slrn's development, simply subscribe to slrn- announce. It is a low-traffic moderated list that informs you about new releases, important bugfixes or major changes to the website. The subscription address is . All announcements are also mailed to slrn-user, so there is no need to read both lists. 1.5. slrn appears quite stable. Why don't you call it version 1.0? The main reason for the sub-1.0 version number is the poor handling of different character sets. Users of a modern newsreader expect it to support Unicode as well as legacy character sets. So, you'll see slrn 1.0 as soon as slrn is ported to the new slang-2 library and running reasonably stable. 1.6. How well are slang-2 and Unicode supported right now? Since version 0.9.8.1pl1, slrn compiles against slang-2. Since version 0.9.8.1pl2, slrn uses iconv for internal charset handling and supports UTF-8, with some bugs left. Both versions were never officially released, although some Linux distributions shipped them. In version 0.9.9 a lot of bugs in the UTF-8 handling were fixed. A current drawback of slang-2 is that its regexp engine lacks UTF-8 support. When you run slrn in UTF-8 mode, you should have your score file in UTF-8 as well. You may still encounter surprising results; in particular, regexp matching has no error handling for invalid UTF-8. 1.7. I upgraded from version 0.9.8.1 to 0.9.9 or 1.0.0. What do I have to change in my slrnrc? Since there were fundamental changes in the internal character set handling, the configuration of this has also changed. The configuration variables charset, editor_uses_mime_charset, fold_headers, mime_charset and use_mime, and the configuration command compatible_charsets are no longer valid. To set character sets for display, editor and posting, use the new charset command instead. 2. Configuration 2.1. Is it possible to set my ``From:'' header line for postings? On (properly configured) Unix-like systems, slrn should be able to determine a valid ``From:'' header line itself. However, you can also set one explicitly using the following variables in your slrnrc file: set realname "Your Real Name" set username "username" set hostname "your.host.name" This will cause slrn to generate a ``From:'' header line of the form: From: Your Real Name Note: It is possible that your system administrator disabled this feature to make sure everybody uses his or her correct name and address when posting. To find out whether this is the case, type slrn --version and look for strict_from in the feature list. If it is enabled (indicated by a plus sign), you cannot set your ``From:'' header line yourself. 2.2. How can I set my ``Message-ID:'' header? First of all, slrn will only attempt to create the ``Message-ID:'' header line if it was not compiled with the --disable-gen-mid option (check gen_msgid in the output of slrn --version) and the generate_message_id config variable has not been set to ``0''. To create a valid Message-ID, slrn needs to know the fully qualified domain name (FQDN) of the host it is running on. In most cases, slrn can find it by querying the system. In case this does not work properly, you can alternatively set the domain (right-hand) part of your Message-IDs via the posting_host command. If you think you need this feature, please read the corresponding entry in the reference manual carefully. Note: Some Linux distributions (e.g. Ubuntu) do not provide the option of giving the system a fully qualified domain name during installation. This can be fixed by editing the /etc/hosts file. E.g., Before: 127.0.0.1 localhost 127.0.1.1 desktop After: 127.0.0.1 localhost 127.0.1.1 desktop.your.domain desktop 2.3. How can I set the size of the article pager? Unless you ``zoom'' the article pager (using ``z''), slrn will split the screen and display some article headers at the top. By default, it gives about 75% of the lines to the article pager, but leaves at least four lines for the header overview. At runtime, you can change this using enlarge_article_window (bound to ``^'') and shrink_article_window (bound to ``CTRL-^''). There is no config variable you could use to make permanent changes to this; fortunately, it is very easy to set it using a simple S-Lang macro. For example, ______________________________________________________________________ define set_size_of_article_pager () { set_article_window_size (int(SCREEN_HEIGHT*0.8)); } !if (register_hook ("resize_screen_hook", "set_size_of_article_pager")) message ("Warning: Could not register set_size_of_article_pager" + " for resize_screen_hook"); ______________________________________________________________________ would give about 80% of the screen to the pager. If you want the header overview to have a fixed size, you can use an argument like SCREEN_HEIGHT-10 instead, which would make it six lines high (after the command, the article pager has SCREEN_HEIGHT-10 lines; four lines are used by status bars). 2.4. What charset settings should I use under Windows? As on any other operating system, this depends on the character set your terminal uses. When using slrn on Windows, two problems connected with character sets frequently appear: 1. The terminal may not use the character set used in the Usenet articles you are trying to read. In this case, you depend on slrn to convert between the two character sets to display certain (8bit) characters correctly. You can enable this by setting the config command charset to use the appropriate value (all supported character sets are listed in the reference manual), for example: charset display "ibm850" 2. Your editor may use a different character set than your terminal. This is often the case with GUI editors that have their own window, e.g. gvim. In this case, you may want slrn to convert character sets when displaying messages, but not when calling the editor on them, so you should put a line like this into your slrnrc file: charset editor "utf-8" 3. To enable utf-8 display for slrn in windows you need at least slang 2.1.4. You'll have to change the font in the console to a TrueType font which is capable of displaying utf-8 characters. To active slrn utf-8 mode you'll have to type one of the following commands in the console: chcp 65001 set LANG=en_US.UTF-8 2.5. How can I use an external e-mail program for replies? You can use the config variable mail_editor_command for this. The following example will use mutt as an external e-mail program for replies: set mail_editor_command "/usr/bin/mutt -H '%s'" set mail_editor_is_mua 1 Setting mail_editor_is_mua to 1 tells slrn not to try and send any e- mail, because the external program used as the e-mail editor will han- dle this itself. 2.6. The thread tree is not drawn properly. Why? There are a couple of reasons for this. The most simple may be that the font that you are using does not support line drawing characters. Simply switching fonts to a dec-vt220 compatible font may solve the problem. This is usually the case with Windows telnet applications. If you see strings like ``mq>'' or ``tq>'' instead of a thread tree make sure that your terminal or terminal emulator supports vt100 escape sequences. This is the case for most emulators like the Linux console, NetBSD's wscons, xterm, rxvt and others. Set the TERM environment variable to vt100 and start slrn to see if the thread is drawn correctly. If this isn't the case, you have to fix your termcap/terminfo file. For termcap based systems, the ``ac'', ``as'' and ``ae'' capabilities have to be set correctly. On terminfo based systems, the ``acsc'', ``smacs'' and ``rmacs'' capabilities need adjustment. If you can't solve the problem that way because your terminal setup or your terminal emulator is severely broken, consider setting set simulate_graphic_chars 1 in your slrnrc file. It restricts slrn to plain ASCII characters for drawing the tree. A major drawback of the vt100 solution is, that vt100 terminals can't display colors. Since most terminal emulators support ANSI colors, you could start slrn with the ``-C'' command line switch or use the following configuration command to force the use of colors: set use_color 1 But if you want to use colors with other programs as well, you need a real solution to this problem. Try the following: Find a $TERM setting that supports line drawing characters like the vt100 or vt220. Then create a new termcap entry based on that terminal with additional color capabilities and save it to ~/.termcap. It might look like this: myterm:\ :Co#8:NC#3:pa#64:\ :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:\ :mb=\E[5m:md=\E[1m:me=\E[0m:mk=\E[8m:mr=\E[7m:\ :cl=\E[H\E[J:vi=\E[?25l:ve=\E[?25h:\ :tc=vt100: On some systems, you can then set $TERM to 'myterm' and the settings apply. On others, you need to do something like this: TERMCAP=$HOME/.termcap export TERMCAP eval `tset -s myterm` 2.7. Can I use the mouse with slrn ? xterm (and some compatible terminal emulation programs) have a feature called ``mouse reporting'' that slrn can turn on to support using the mouse. To enable this whenever the terminal offers it, put set mouse 1 into your slrnrc file. To force the mouse to be used, startup slrn using the -m command line option - of course, this will not have the desired effect if your terminal really does not have this feature ;-) If you want to know what exactly you can do with the mouse, please see the entry on the variable mouse in the reference manual. 2.8. How can I rotate signatures in slrn ? There are different ways to do this - chose one: The easiest way is probably to call a sig rotation program in the post_editor_command in your slrnrc file. In the following example, the program fortune is called and its output gets written to ~/.signature. After that, the editor jed is called: set post_editor_command "fortune -s > ~/.signature; jed '%s' -g %d -tmp" If you want to chose the signature depending on the group you are posting to, you can set the config variable signature using a macro; in the following example, .signature.german gets selected for all newsgroups in de.* and .signature.english gets selected for any other group. Call this macro from post_hook and article_mode_hook to switch the signature automatically. ______________________________________________________________________ define set_signature () { variable signature_file = ".signature.english"; if (0 == strncmp (current_newsgroup(), "de.", 3)) signature_file = ".signature.german"; set_string_variable ("signature", signature_file); } ______________________________________________________________________ If you want more sophisticated per-group settings, we recommend the macro identity.sl from Emanuele Bassi's slrn page: . Note: slrn itself does not have an option to execute a program and use its output as the signature. Such an option would require piping, which is not available on all platforms. If you're on a Unix-like system and still want to use pipes, you can make ~/.signature a named pipe and attach a daemon sig randomizer to it. Various programs that do this are available on the net - one example is the program autosig. 3. Usage 3.1. What is a prefix argument? Many key-bindings accept prefix arguments. A prefix argument is a number that is generated prior to a key sequence and is used as a way of controlling the behavior of that key sequence. It is generated by pressing the ``ESC'' key and then pressing the keys that correspond to the number. For example, to generate a prefix argument of 314, simply press the 4 keys: ``ESC 3 1 4''. Some functions use such arguments as repeat factors. That is, the function bound to the key sequence that they modify will be repeated the number of times specified by the prefix argument. Other functions may simply use it as a way of slightly modifying the behavior of the function. For example, if ``1'' is used as a prefix argument for the ``followup'' function, the original article's headers will be included in the followup message; if ``2'' is used, the article also does not get modified (i.e. slrn does not insert quoting characters and neither attaches nor strips signatures). Without a prefix argument, you get a ``regular'' followup without the original article's headers. 3.2. Treatment of read articles By default, slrn does not display articles that were previously marked as read. In most cases, this makes entering groups a lot faster, especially as slrn currently does not cache the headers locally and thus would have to download all the header information from the server again, each time you enter a group. At first, most people who are used to a newsreader that always shows all available messages are often disappointed by this. After some time, they might find that slrn's default way of doing things allows them to read their news efficiently, because it keeps their mind on articles they did not yet deal with. However, others still prefer to see everything and even if you don't, you still need to re-read an old article now and then. The following questions deal with these cases: 3.2.1. How can I never mark articles as read? There is an option for it - you just need to set ``auto_mark_article_as_read'' to 0 in your slrnrc file. In most cases, you will find that this is not what you really wanted to do, as it will make it difficult to find the ``new'' articles (i.e. the ones you did not yet read), so you might want to consider the answers to the following questions. 3.2.2. How can I get slrn to show both read and unread articles? If you want to see all articles in a group (read and unread ones), simply set a ``prefix argument'' before entering a newsgroup. Using the default bindings, you can do this by pressing ``ESC 1 RETURN'' in group mode. There are variations of this; the online help or the manual will tell you more about them. If you always want to enter groups that way, pressing three keys instead of one is annoying. You can avoid this using a special keybinding in your slrnrc file. Here is an example: setkey group "set_prefix_argument(4); () = select_group();" " " With this line, pressing ``SPACE'' in group mode will enter the selected group with four as the prefix argument. However, you might find it sufficient to make use of the following ways to display specific articles that were previously marked as read: 3.2.3. How can I retrieve read articles from the same thread? If you want to read the ``parent'' of the article you are currently reading (e.g. because the author did not quote enough material to understand his message), ``ESC p'' will attempt to find it, using the ``References'' header line. It is also possible to find all ``children'' of a given article using ``ESC Ctrl-P'' (note that this does not work with all servers) and, using a recursive combination of both, to reconstruct the entire thread tree. This is done by pressing either ``ESC 1 ESC p'' or ``ESC 2 ESC p'' - the second alternative can be much faster, but the first is more likely to find all articles even if some articles contain incomplete ``References''. 3.2.4. How can I retrieve other read articles? You can locate any article if it is available on your server and you know its Message-ID. Pressing ``ESC l'' will produce the necessary prompt. 3.2.5. I want to see full threads as soon as they contain at least one unread article. Can slrn do this? This is currently not implemented, although it should be possible to achieve such an effect using a macro. For many, this behaviour would be a useful compromise between the two extremes of seeing all messages and seeing unread ones only, so this feature might be added in a future version of slrn. 3.3. Handling of binary postings slrn is primarily designed as a newsreader (i.e. for reading and processing text messages); it is not a dedicated agent for downloading and decoding binary postings from Usenet. However, there is some basic functionality for decoding binary postings and there are some ways to make handling them a bit more convenient: 3.3.1. How do I uudecode articles? Fortunately, the easiest way is also the most efficient. Basically this involves using the ``#'' key to numerically tag articles that you want to decode and then the ``:'' key to start the decode process. The only restriction is that multi-part uuencoded articles must be tagged in their proper order (see the next question if you think this is too much trouble). There is no need to uudecode one article at a time. Simply mark everything that you would like to decode and then press ``:''. Here is an actual example taken from alt.binaries.pictures.fractals: - 9:[Mike In Indy] Kaboom! - kaboom.gif (0/1) - 3078:[Mike In Indy] Kaboom! - kaboom.gif (1/1) - 23:[Gumbycat ] lucifer.gif (0/7) - 433:[Gumbycat ] lucifer.gif - for Halloween (5/7) - 433:[Gumbycat ] lucifer.gif - for Halloween (3/7) - 433:[Gumbycat ] lucifer.gif - for Halloween (4/7) - 433:[Gumbycat ] lucifer.gif - for Halloween (6/7) - 244:[Gumbycat ] lucifer.gif - for Halloween (7/7) - 434:[Gumbycat ] lucifer.gif - for Halloween (1/7) - 433:[Gumbycat ] lucifer.gif - for Halloween (2/7) - 16:[Paul Carlson] My Halloween Fractal - devil.gif (0/1) - 4310:[Paul Carlson] My Halloween Fractal - devil.gif (1/1) As you can see, 3 files have been posted: kaboom.gif, lucifer.gif, and devil.gif (At the time of this writing, it is Halloween weekend). Both kaboom.gif and devel.gif are single part files whereas lucifer.gif is a seven part series. Since lucifer.gif is displayed out of order, care must be exercised when tagging it (slrn will sort threads by subject and in this case the poster used an inconsistent subject format -- usually, sorting will result in the correct order- ing). Assuming that we wish to decode these three gif images, the ``#'' key will be used to tag them. The result of using the ``#'' key is shown below: - 9:[Mike In Indy] Kaboom! - kaboom.gif (0/1) 1- 3078:[Mike In Indy] Kaboom! - kaboom.gif (1/1) - 23:[Gumbycat ] lucifer.gif (0/7) 6- 433:[Gumbycat ] lucifer.gif - for Halloween (5/7) 4- 433:[Gumbycat ] lucifer.gif - for Halloween (3/7) 5- 433:[Gumbycat ] lucifer.gif - for Halloween (4/7) 7- 433:[Gumbycat ] lucifer.gif - for Halloween (6/7) 8- 244:[Gumbycat ] lucifer.gif - for Halloween (7/7) 2- 434:[Gumbycat ] lucifer.gif - for Halloween (1/7) 3- 433:[Gumbycat ] lucifer.gif - for Halloween (2/7) - 16:[Paul Carlson] My Halloween Fractal - devil.gif (0/1) 9- 4310:[Paul Carlson] My Halloween Fractal - devil.gif (1/1) Now nine headers have been numerically tagged. To decode these, simply press the ``:'' key. slrn will prompt for a filename to save the arti- cles to and after saving, it will prompt to go ahead and decode. The decoded files will be placed in the directory specified by the ``decode_directory'' variable that one can set in the slrnrc file. The end result is that after tagging with the ``#'' key, one presses ``:'' and hits return twice. To un-tag articles, press ``ESC #''. 3.3.2. What are the advantages of using uudeview ? slrn can be linked against the uudeview library; in this case, it will use the library functions to decode uuencoded articles. Unlike slrn's internal routines, uudeview is usually able to decode multipart messages even if you did not tag them in the correct order. Another advantage of (current versions of) uudeview is that it supports yEnc (see next question for details). A disadvantage is that it needs a lot more memory for decoding than slrn. I got reports that uudeview decoded files for which slrn's code failed (and vice versa), so if you run into problems with a particular binary posting, it might be worth trying both - to allow this, there is the config variable ``use_uudeview'' which can be set to zero in case you have uudeview support compiled in, but want to use the builtin code nonetheless. To link against uudeview, you need to have the library installed on your system; one way to get it is its homepage at . You also need to pass ``--with-uu'' to the configure script when building slrn (on Unix-like systems). If you did not compile your copy of slrn yourself, you can still find out whether it has uudeview support by looking for a ``+'' sign in front of ``uudeview'' in the output of ``slrn --version''. 3.3.3. What about yEnc? yEnc is a way to encode binaries that makes use of 8bit characters, thus creating less overhead than the traditional uuencode and base64 methods. For this reason, it has become increasingly popular in certain binary groups. slrn does not have native support for yEnc: one reason for this is that I do not need this feature myself and so far, no patches for it have been contributed; besides, yEnc is still under development and still has some drawbacks which I'd like to see solved first. However, there already are two ways to decode such messages: Prior to 0.9.7.4, slrn would corrupt some yEnc-encoded postings (by removing backspace-letter combinations traditionally used for formatting text messages). As this code has now been removed, you can pipe yEnc-encoded messages to external decoding programs from slrn; if you want to decode them from within slrn, you can link against a current version of uudeview, which now also supports yEnc (see previous question for details on this). However, uudeview sometimes generates ``no data found'' error messages when dealing with yEnc- encoded postings (even if it does decode them correctly); if you want to avoid them, you need at least version 0.9.8.0 of slrn, which simply ignores them. 3.3.4. Can I put multipart binary postings into one thread? That option has been added in slrn 0.9.7.1. To use it, you need to define a macro that can compare two subjects and tell slrn whether or not they should be put into the same thread. An implementation of such a macro that should work for most cases and can serve as a starting point for your own experiments can be found in macros/multipart.sl in the source distribution. 3.4. How can I mark cross-posts as read in other groups as well? For slrn to mark an article as read in more than one group, it needs information about what groups the article was cross-posted to. This information is provided by the ``Xref'' header. Not all servers provide this header so this feature will not work with those servers. Now suppose that your server provides the ``Xref'' header as one of the headers of the article and at the same time, provides support for the NOV database (via the ``XOVER'' NNTP command). In this case, unless the server has been configured to provide the ``Xref'' header as part of the NOV database, slrn will not be able to get the header without accessing the article. Unfortunately, ``Xref'' is optional under NOV so many systems do not automatically provide it even though it is one of the recommended headers. To summarize, make sure that your server provides the ``Xref'' header AND if it supports NOV, make sure that the ``Xref'' header is part of the NOV database. 3.5. Why doesn't the ``L'' command work as advertised? Capital ``L'' lists all un-subscribed groups that slrn knows about. slrn gets this information through one of three sources. It tries the following in order and stops when one is successful: 1. From the server via the active file. It only does this if the line ``set read_active 1'' is in your slrnrc file. By default, slrn does not read the active file. 2. By querying the server using the ``LIST ACTIVE'' NNTP command with a wildmat argument. Please note that not all servers support this kind of query. 3. From the groups listed in your newsrc file. In that case, the ``L'' command will only list unsubscribed groups that are present in this file. The last one always succeeds with results that may be less than desirable. If you have a fast network connection to your server, simply put set read_active 1 in your slrnrc file. If you do not want slrn to read the active file because your connection is slow, see whether or not your server sup- ports ``LIST ACTIVE'' with a wildmat argument. As a last resort, try to keep a full list of newsgroups in your newsrc file. 3.6. How do I cross-post an article? There are two ways: 1. When slrn prompts for a newsgroup, simply specify a comma-separated list of newsgroups. Do not use spaces! 2. Edit the ``Newsgroups'' header line when editing the message. Again, the list of newsgroups must be comma separated with no whitespace. Also make sure that you do not wrap this line. Note: When crossposting, it is often polite to set a ``Followup-To'' header. 3.7. How do I use the mouse in an XTerm to copy/paste? If mouse reporting is turned on (via the ``-m'' command line switch or the ``mouse'' config variable), you need to hold down the shift key to mark text for copy/paste. 3.8. How can I sort the list of newsgroups? Depending on what exactly you want to do, there are different possibilities: First of all, you can use the interactive ``move_group'' command (by default bound to ``m'') to move a single newsgroup to a different position. Before doing this, I recommend you display all subscribed groups (using ``toggle_hidden'', usually bound to ``l'', if necessary) so you won't be surprised by the result. However, if you want to sort all groups alphabetically, you don't have to do this manually. slrn comes with a simple macro that does the job for you (gsort.sl) and you can find a more sophisticated one on the macro page of J.B. Nicholson-Owens. On Unix-like systems, you can also use the sort command to sort your /newsrc file (do this while slrn is not running). For example, if you use .jnewsrc as your newsrc file: sort .jnewsrc > .jnewsrc-sorted mv .jnewsrc-sorted .jnewsrc Note: Simply doing sort -o .jnewsrc .jnewsrc may or may not work depending on your version of sort. 4. Scoring 4.1. What is scoring? Scoring is a method to give articles a score based on user-defined rules. The idea behind this is to give articles with a high score a higher priority while articles with a low score (less than zero) are marked as read. When entering a group, all articles are given a score of ``0''. Then the list of scoring rules, the ``scorefile'', is applied to each article. The scorefile might give articles from ``John Doe'' a higher score, while articles with the word ``Gnus'' in their subjects get a negative score. More than one rule may apply cumulatively to the same article. In the end, threads with high-score articles appear at the top of your screen and can be read before other, possibly less interesting, articles. 4.2. How can I killfile with slrn ? slrn has no killfile, but the same effect can be achieved with its scorefile. Assigning a particularly low score will do the trick: [news.software.readers] Score: =-9999 % I'm not interested in articles on gnus Subject: gnus In this example, all articles in news.software.readers that have the substring ``gnus'' in their Subject lines are assigned a negative score. The equals sign before the score value tells slrn to assign the score -9999 and to skip all other tests for the affected article; oth- erwise, the score would be added to the score value of all previous matching rules and subsequent rules could increase the score again. If the score of an article is equal to or less than kill_score (which happens to be -9999 if you didn't change it), the article does not even get displayed, so the above scoring rule effectively killfiles all articles that have ``gnus'' in their subject line. 4.3. How do I set up slrn to read a scorefile? In order for slrn to read a scorefile, it must know the name of the scorefile. This is specified by putting the appropriate line in your slrnrc file. For example, if the name of the scorefile is ``Score'' and it is located in the ``News'' subdirectory, then add the line: set scorefile "News/Score" to your slrnrc file. 4.4. What is the format of an slrn scorefile? The format of slrn's scorefiles is described in the file score.txt which is part of the documentation that comes with the source package. That file also contains some examples. 4.5. Where can I get a full description of slrn 's regular expres- sions? slrn makes use of the regexp engine built into the S-Lang programmer's library. Thus, a full description of the regexp syntax that can be used in slrn's scorefiles can be found in the documentation of S-Lang. In version 2.1, this is chapter 22 of the file slang.txt (also available online). Please note that in slrn, the default is \C (case insensitive), not \c. 4.6. How can I test whether my regular expressions do what I expect them to do? The grep-like utility rgrep that comes with the editor jed uses the same regexp engine as slrn, so you can use it. Alternatively, Matthias Friedrich wrote a small program that can be used to make such tests. He posted the source to de.comm.software.newsreader (Message-ID is ); you can get the article from Google Groups. 4.7. Is there an easy way to watch or kill threads / authors? Editing the scorefile and adding entries manually can become quite time-consuming if you want to score on threads or authors regularly. The interactive command create_score (default binding is ``K'' in article mode) makes it easy to create a new scorefile entry based on the currently selected article. If you want to watch or kill subthreads via a single keystroke, you may like the ``one-key scoring macro'' that is available from the macro section of the slrn website: . 4.8. Do I need to remove expired entries from my scorefile manually? Using the ``Expires:'' keyword, you can specify that a certain scoring rule should only be valid until a given date. After that, slrn ignores it and will warn you on startup, but does not remove the entry from the scorefile. If you often use this keyword, expired entries will clutter up your scorefile and make it difficult to read. Fortunately, Felix Schueller wrote a perl script called cleanscore that can remove expired entries from your scorefile automatically for you. On Unix-like systems, it can even be called as a cron job, so you don't need to worry about expired entries at all. cleanscore is included in the contrib directory of slrn's source distribution and can also be downloaded from the slrn website: . 4.9. How do I score on a specific ``Subject'' line, e.g., ``test'' messages? The most simple version is Score: -9999 Subject: test This matches all ``Subject'' lines which contain the substring ``test'' case insensitively. The above matches ``test'', ``TEST'', ``teSt'',``Kerneltest'', ``protesting'', etc. In order to limit this to all ``Subject'' lines containing the word ``test'' rather than the substring use this: Score: -9999 Subject: \ The following will score articles whose ``Subject'' line is exactly ``test'': Score: -9999 Subject: ^test$ Finally, a score entry that filters all test-postings to non-test groups: [~*.test] Score: -9999 Subject: ^test$ 4.10. How do I score articles from a specific person? The following rule Score: -9999 From: name@who\.knows\.where assigns a score of -9999 to the person with the email address ``name@who.knows.where''. 4.11. How do I score articles from a specific site? Score: -9999 From: @who\.knows\.where will give a score of -9999 to a ``From'' line that contains ``@who.knows.where''. An alternative would be to score on the Message- ID header field: Score: -9999 Message-Id: @who\.knows\.where> 4.12. How do I score followups? We're assuming that a followup contains a ``Subject'' line starting with ``Re:'' and/or has a ``References'' header line. To assign a score of -9999 to such an article use: Score:: -9999 Subject: ^Re: References: . Note the use of the double colon following the score keyword. This indicates that the score is an OR type expression. This means that the above score will pick out articles with subjects that begin with ``Re:'' OR have a ``References'' line (OR both). To score articles that have both a ``Subject'' line starting with ``Re:'' and a ``References'' header line, use the single colon form: Score: -9999 Subject: ^Re: References: . Single colon forms are AND expressions. 4.13. Is it possible to score followups to my own postings? Scoring followups to your own postings is quite easy if slrn generates the Message-IDs of your articles (see the question on ``generating Message-IDs'' for details). In this case, all you have to do is to look for username@your.hosts.fqdn in the ``References'' header line. Of course, you need to replace username and your.hosts.fqdn with the strings that are correct for your setup - if in doubt, look at the Message-ID of one of your own articles to find out. Score: 1000 References: username@your\.hosts\.fqdn> Note that this will catch articles that reference one of your articles directly or indirectly (e.g. a followup to a followup to your arti- cle). If you only want to score direct followups, make sure to check the last ID in the ``References'' header line only (note the trailing dollar sign): Score: 1000 References: username@your\.hosts\.fqdn>$ 4.14. How do I kill cross-posts from a specific group? You have two choices: either use the ``Xref'' header line or the ``Newsgroups'' header line. If possible, you should avoid the ``Newsgroups'' line in your scorefiles, as it is usually not included in the NOV (news overview) data, so retrieving it requires extra server communication that may slow down scoring (and thus entering groups) significantly. So if your server provides ``Xref'' header lines, use them. Assume that you want to score any article that was cross-posted to an ``astrology'' newsgroup. Then use one of the following forms: Score: -9999 Xref: astrology Score: -9999 Newsgroups: astrology To say it again, the latter version is usually much slower, and should be avoided whenever the necessary pattern is available from ``Xref''. 4.15. How do I score all cross-posts? Like the previous answer you have two choices: to use the ``Xref'' line (preferred) or the ``Newsgroups'' line. The first choice uses the fact that a cross-posted article will have two colons in the ``Xref'' header field. So, use a score of the form: Score: -9999 Xref: :.*: If you do not have the option of using the ``Xref'' line, use: Score: -9999 Newsgroups: , However, you may want to tolerate cross-posts if a ``Followup-To'' header line is set. The following rule scores articles that are cross- posted into many groups (e.g. more than 2) and have no ``Followup-To'' line (note that this rule is ``expensive'', as usually neither ``News- groups'' nor ``Followup-To'' are included in the NOV data). Score: -9999 Newsgroups: ,.*, ~Followup-To: . 4.16. How do I make it so I read only articles from a specific per- son? The answer is simple: kill articles by everyone else. Assume that you want to read only articles by someone whose ``From'' line contains: ``someone@i.like''. Then use a score of the form: Score: -9999 ~From: someone@i\.like Note the use of the NOT indicator (~). 4.17. How do I score articles that have no ``References'' line but whose ``Subject'' line starts with ``Re:''? Define a score based on the ``References'' line and the ``Subject'' line, e.g., Score: -9999 ~References: . Subject: ^Re: Here the ``References'' pattern simply says that the article must not have a ``References'' line. The ``Subject'' pattern uses a regular expression that says ``Re:'' must occur at the beginning of the ``Sub- ject''. This will match the strings ``Re:'', ``re:'', ``rE:'', and ``RE:''. To match only ``Re:'', use the regular expression Subject: ^\cRe: Here, ``\c'' turns on case-sensitivity. To turn it off (which is the default), use ``\C'', e.g.: Subject: ^\cRe:.*\Ctest 4.18. How do I score subjects that contain only uppercase characters? Use something like: Score: -9999 ~Subject: \c[a-z] This will assign a score of -9999 to any article whose ``Subject'' header line does not contain a lowercase character. If you also want to kill followups to such articles use: Score: -9999 Subject: ^Re: \c[^a-z]*$ ~Subject: ^Re: * The last one says that the article will be killed if the ``Subject'' satisfies the two conditions: 1. It begins with ``Re: '' and the rest of the line does not contain a lowercase character. 2. It does not begin with ``Re:'', followed by blanks only. The last constraint is necessary to avoid killing articles that are followups to articles with an empty ``Subject'' line. Of course, one might want to kill such articles as well. 4.19. How can I filter people without a real name? Some people dislike posters who don't post under their full real name. Of course, slrn has no way of knowing whether a given name is a real name or not; however, a name that does not contain a space is most probably not a full real name, so a commonly used rule is to check for the ``From'' header line to contain at least two spaces (one inside the name and one between the name and the address), separated by non- blank characters: [*] Score: -9999 ~From: [ ]+[^ ]+[ ]+ 5. slrnpull 5.1. What is slrnpull ? slrnpull is a program that pulls a small newsfeed from an NNTP server and saves it to a local spool. slrn can subsequently read from this spool without needing to contact the server, so you can use both programs together to read your news offline (e.g. because you pay for your Internet connection by the second). Since version 0.9.8.0, slrnpull optionally allows you to pull only the article headers first, mark those you are interested in for download inside of slrn and get only the marked article bodies later. This can reduce download cost and disk space for groups in which you only want to read a small percentage of all articles. If you are interested in this functionality, please read slrnpull/README.offline. 5.2. Why can't I post when using slrnpull ? In order to post an article via slrnpull, slrn needs to place the article in slrnpull's out.going directory. Two things are necessary for this to happen: First of all, slrn must know that you are using the slrnpull out.going directory for posts. Make sure the line set use_slrnpull 1 is in your slrnrc file. This indicates to slrn that the news spool is an slrnpull news spool. The second point is, you must have write permission to the out.going directory in order for slrn to place your article in that directory. The permissions may be changed via the Unix command: chmod ugo+rwxt out.going Do not put this in your slrnrc file! 5.3. How do I get a full list of newsgroups? You will have to go online for that. Run slrn as follows: slrn --nntp -h YOUR.NEWS.SERVER -a -f groups.dat --create This will start slrn and download the groups and put them in the file groups.dat. Before actually doing this, modify your slrnrc file to make sure write_newsrc_flags has its default setting set write_newsrc_flags 0 so that all groups will be written out to groups.dat. 6. I found a bug in slrn !!! First, please check whether the bug you discovered is already discussed here: 6.1. slrn hangs infinitely when I press the delete key This is a known bug; however, it's not a problem in slrn, so I cannot fix it. slrn uses a library called S-Lang for its screen input/output and some Linux distributions (including RedHat) patch that library to get Unicode support. Unfortunately, the patch they use makes S-Lang unstable. To get rid of this program, you can get the vanilla S-Lang sources from the public FTP space of its author, John E. Davis and compile them yourself. However, simply uninstalling the S-Lang package that came with your distribution and replacing it with your own version might break dependencies in your system's package management - even if you build your own RPM package: Some packages explicitly depend on the patched version! For this reason, you may have to install the unpatched version in a different directory than the patched one that came with your distro, e.g. in /usr/local/. To make sure slrn uses the right one, point the configure script to it using --with-slang-library=/path/to/lib and --with-slang-includes=/path/to/includes. Additionally, you either need to specify --enable-hardcode-libs or point the environment variable LD_LIBRARY_PATH to the library path when running slrn. If you experience such a problem, please also report it as a bug to your distributor, so we will hopefully see no more broken S-Lang packages in the future. For RedHat, I got a report that it already got fixed in version 8. Also, slang 2.0 includes Unicode support, so these kinds of problems are hopefully gone for good. 6.2. Non US-ASCII characters are displayed incorrectly. Most such problems should disappear after upgrading to current versions of both slrn (0.9.9 or higher) and the S-Lang library (2.1 or higher). 6.3. The bug I found is not listed here. What do I do now? The bug might already be fixed, so please consider upgrading to the latest release of slrn or at least check whether the problem is listed in the current changes file. If you find that the bug is still unreported, send a bug report either to John E. Davis or to the slrn-user mailing list. Please give a detailed description of what you did, how you expected slrn to behave and what slrn did instead; also include the exact error messages (in case you got any) and information that might be needed to reproduce the bug or that might make it easier to find it, such as o Which actions make the bug appear o The output of ``slrn --version'' o If a certain article caused the problem, the Message-ID of that article (or even the article itself, if it is not too long) o Details of your configuration that might be relevant, like config files (after deleting personal data like passwords). The output of ``slrn --show-config'' would be especially useful here 6.3.1. Some additional notes for the advanced user If you have an idea what piece of code is causing the bug and how to fix it, comments on this (or even a patch) are of course welcome, too. If you think the problem might be on the server side, the command line switch --debug can be used to log the dialog with the server to a file. Note that the resulting file may become quite large and may contain your password! Keep this in mind when attaching it to bug reports: Delete personal data, shorten it to the significant portion (if you have some basic knowledge about NNTP) or use bzip2 and ask before sending large session transcripts. If slrn crashes (i.e. gets terminated because of a segmentation fault), it may also be helpful if you can provide a stack backtrace. If you're willing to do this, try the following steps to get one (assuming you use a Unix-like environment and have script and gdb installed): At the command line, type: script gdb slrn Then, at the prompt of gdb, type: run [command line arguments here] [do whatever leads to the crash here] bt quit Finally, type exit to leave the shell opened by script. This should have lead to a file called typescript; please include the portion of it that starts with (gdb) bt in your bug report. 7. About this document The latest version of this FAQ is available from the slrn documentation page : . Suggestions for improvements are always welcome. 7.1. History 2008-07-20: Revision 1.3 Updated, mostly by TW and PJR, for changes in version 0.9.9. 2004-10-04: Revision 1.2 Added a note on the version numbering. 2003-08-25: Revision 1.1 Minor corrections before the release of 0.9.8.0. 2003-08-19: Revision 1.0 The first version of this FAQ documents slrn 0.9.8.0. It merges the three files FAQ, SCORE_FAQ and slrnpull/FAQ written by John E. Davis. Matthias Friedrich and Thomas Schultz updated the existing entries and wrote some new ones. slrn-1.0.1/doc/FIRST_STEPS000066400000000000000000000146131206520222400150240ustar00rootroot00000000000000 slrn - First Steps Felix Schueller Peter J Ross Version pre1.0.0, November 2008 This document explains the first things you have to do after having installed slrn. It doesn't matter how you installed slrn (from source or using a binary package), the first steps remain the same on any Unix system. If you installed slrn as a binary package, however, it is possible that your distributor has already done some work for you. ______________________________________________________________________ Table of Contents 1. Checking the ``rc'' file 2. Choosing a newsserver 3. Connecting for the first time 4. Getting the newsgroups descriptions (optional) 5. Choosing an editor 6. Subscribing to newsgroups 7. Getting more information 8. About this document ______________________________________________________________________ 1. Checking the ``rc'' file The first thing we want to do is to customize slrn's configuration file. If you installed slrn from source, you'll find an example slrn.rc at $INSTALL_PREFIX/share/doc/slrn/slrn.rc. If you installed slrn from a binary package, have a look whether your distributor has included a global slrn.rc and/or an example slrn.rc. If you cannot find a file named ``slrn.rc'' or any other file which seems to be a configuration file for slrn, you can get an example from . If a global configuration file exists, it will also be read before your personal one on each startup, so you might want to look at the default settings it makes for you. If you don't have a configuration file for slrn yet (check your home directory), you may copy the example configuration file and edit it with your favourite editor: cp /path/to/slrn.rc ~/.slrnrc vi ~/.slrnrc For the exact syntax and descriptions of all variables, have a look at the ``slrn reference manual'' which comes with slrn, named ``manual.txt''. An HTML version is also available from . If your ``From:'' header cannot be generated from your local account, you should at least set the following variables: set hostname "doe.com" % sets the domain of your address to % ``doe.com'' set username "john" % sets the localpart of your address to % ``john'' set realname "John Doe" % sets your realname to ``John Doe'' In this example, the resulting ``From:'' header is ``John Doe ''. The sample slrn.rc file is well documented; feel free to make more changes to it if you like. 2. Choosing a newsserver The second thing we want to do is to choose a newsserver to connect to. The easiest way to tell slrn which server to use is to set the environment variable ``$NNTPSERVER'' to the hostname of your preferred newsserver. In most cases, this is a server on a machine you have a permanent network connection to (or even localhost, if you are running a local server like Leafnode). To set it permanently, add one of the following lines to the configuration file of your favourite shell: NNTPSERVER='server_name' && export NNTPSERVER (for sh/ksh/bash/zsh) setenv NNTPSERVER 'server_name' (for csh/tcsh) If you want to use more than one newsserver set the $NNTPSERVER to your primary server and access the other server by starting slrn with ``slrn -h server.name''. Note: When using different servers, you need to specify separate newsrc files using the ``server'' configuration command or the ``-f'' command line switch. If your newsserver requires authentication, you also need to use the ``nnrpaccess'' command. ``nnrpaccess'' and ``server'' are described in detail in the reference manual. 3. Connecting for the first time Run ``slrn --create'' at your shell prompt to start slrn and retrieve a list of all active newsgroups from the server. This can take some time if your connection is slow; future startups (without that flag) are much faster. Note: If using multiple servers, you will need to use the ``--create'' option for each of them. When slrn switches to full screen mode, you can press ``q'' to exit it again. 4. Getting the newsgroups descriptions (optional) Note: You only need to do this if you want to see the newsgroup descriptions in slrn. It works only if your newsserver has the group descriptions in its database. Run ``slrn -d'' at your shell prompt and wait until slrn quits. This usually results in a large download which takes even longer than the ``--create'' step described before. 5. Choosing an editor slrn has no builtin editor. That way, you can use any editor you like. There are two ways to tell slrn which editor it should use. If you want to use the same editor for all applications on your system, just set the enviroment variables ``$EDITOR'' and/or ``$VISUAL'' to your preferred editor (if you haven't done this already). slrn will heed this. If you want to use a special editor or just pass special arguments to it, set the variable ``editor_command'' in your .slrnrc, e.g.: set editor_command "vim '+set tw=72' +%d '%s'" starts vim with a textwidth of 72 columns and the cursor on the first line of the message's body. For a more detailed discussion of this, see the entry ``editor_command'' in the reference manual. 6. Subscribing to newsgroups Start slrn from your shellprompt. Some groups which are useful for Usenet / slrn beginners should already be subscribed. You can now subscribe to any group you are interested in: Press the ``L'' (capital-L!) key to list all groups matching a specified pattern, e.g. comp.*unix*; then, go through the list and use the ``s'' key to subscribe. Now, you can start reading your news. To see the online help, press ``?''. 7. Getting more information At first, you should have a look at the ``README'' file from the source distribution. It gives an overview of all the documentation distributed with slrn. If you cannot find this file, is a good point to start. 8. About this document This document was written by Felix Schueller and has been updated for slrn versions 0.9.9+ and reformatted in SGML by Peter J Ross. slrn-1.0.1/doc/INSTALL.os2000066400000000000000000000071611206520222400147670ustar00rootroot00000000000000This version of slrn can run under OS/2 as well as Unix or VMS. The compiled binaries and some useful utilities can be found on To install the binaries, here are the steps needed; 1. Get a copy of the EMX runtime libraries, emxrt.zip (version 0.9d or later required). emxrt.zip are available from most OS/2 archives, for example: ftp.leo.org: /pub/comp/os/os2/leo/gnu/emx+gcc hobbes.nmsu.edu: /pub/os2/dev/emx/v0.9d 2. Append the following line to config.sys as a minimum, see notes about variables below. set NNTPSERVER=my.news.server set HOME=d:\home\sweet\home 3. Copy the file slrn.rc into the home-directory and edit it to your needs, it should be pretty well documented. 4. First time you start slrn, start it with the following parameters "slrn.exe --create", this will create a jnews.rc. After that you can start it without parameters. 5. If you want to use the "offline-mode", you have to start slrn.exe with "slrn.exe --spool". Also please read documentation in the slrnpull dir. ABOUT VARIABLES: slrn knows the following ENVIRONMENT variables; TMP: Directory for temporary files, this should be set when you installed OS/2 to something like x:\TMP. USER or LOGNAME: This should be the same as the first part in your email-address (until @) REPLYTO: If you have another emailaddress than the account you're posting from you can set this to the preffered email-address. HOSTNAME: The name of your computer without domain-name. NAME: Your real name ORGANIZATION: Organization to put in the header. EDITOR or VISUAL: Editor used if not defined in slrn.rc. (if none of these are defined we use e.exe. Most of these can be overridden in the slrn.rc file. BUGS - Some of the char-translation is probably wrong, I need feedback about this one. Preferable with a Message-ID so I can test it out myself. Scoring: regexp's doesn't match the ibm850 chars, this requires changing the S-Lang code, so it won't be done anytime soon. :-( TODO - Adding config-option to hide configuration files and newsrc like dotfiles under *nix. I don't think slrn.exe still can be used on a fat-only system, there is still some filenames that don't conform to the 8+3 filnameing scheme. The OS/2 version of slrn will use the full extent of the OS/2 command window it's run in. You can do "mode co80,50", and it will use all 50 lines. You can also specify a wider window and it will use the extra width. (If you use a wide window, please take care that your postings don't exceed 80 characters per line. The net will thank you.) To mail a reply or forward a message you need to set up a sendmail- command in slrn.rc. The default is 'sendmail -t -af'. To set up slrn to use an alternative mailer you can do something like set sendmail_command "e:/network/slrn/mailfile.cmd" or set sendmail_command "e:\\network\\slrn\\mailfile.cmd" (note that you either must use one forward slash "/" or double backslashes "\\") where mailfile.cmd contains something like: @echo off cd e:\network\mr2ice start e:\network\mr2ice\mr2i.exe /Q%1 I guess this should work with most mailers. THANKS John E. Davis, davis@space.mit.edu author of slrn Jay Maynard, jmaynard@nwpros.com much of the OS/2 port Until 1997, the OS/2 port (including this document) was maintained by Bjoern Frantzen . Now, Francesco Cipriani continues his work. slrn-1.0.1/doc/INSTALL.unix000066400000000000000000000132611206520222400152450ustar00rootroot00000000000000Installation (Unix) =================== The S-Lang library is required to build slrn. If you do not have a recent version of it installed on your system (2.1.x is needed for full features --- Version 1.x in not supported), you need to build it before you can compile slrn. S-Lang is freely available from . Slrn uses the GNU autoconf package that makes the installation quite simple. Assuming that the S-Lang library is installed in a standard location, e.g., under /usr/local, executing ./configure make make install is enough to configure, build and install slrn. All needed information will be determined automatically. If you have the S-Lang library installed in a non-standard directory or if you wish to install slrn somewhere other than under /usr/local, then you will need to use the --prefix or --with-slang configure options, e.g., ./configure --prefix=/home/bob --with-slang=/opt will install the slrn executable in /home/bob/bin/ and use the S-Lang library intalled under /opt. The configure script supports a number of options listed below. Especially, you need to specify --with-slrnpull if you plan to use slrnpull. --prefix=PREFIX Set PREFIX to the base directory where the architecture-independent part of slrn shall be installed. Default: /usr/local --with-slanglib=DIR The location of the S-Lang library (libslang.so) --with-slanginc=DIR The location of the S-Lang header file slang.h. --with-slang=DIR Using this option is equivalent to the pair of options `--with-slanglib=DIR/lib --with-slanginc=DIR/include' --with-ssl[=DIR] Include support for connections via SSL, using the OpenSSL library. You need to set DIR to the place where OpenSSL is installed. --with-gnutls[=DIR] Include support for connections via SSL, using the GNU TLS library and its OpenSSL compatibility layer. USE WITH CARE: GNU TLS is still under heavy development and slrn's support for it is untested. --with-uu[=DIR] This option tells slrn to use the uudeview library for decoding uuencoded articles instead of its builtin routines. --with-canlock[=DIR] Tells slrn to make use of the canlock library (needed to use "Cancel-Locks" when posting, see ). USE WITH CARE: libcanlock does not seem to be fully mature yet; also, the library does not have an installation routine. When installing it by hand, be careful to copy only canlock.h (and none of the other header files that come with it) into your system include directory. --with-slrnpull Build slrnpull and enable support for it in slrn. --enable-setgid-code Enables code that allows you to run slrnpull as an unpriviledged user. See doc/slrnpull/setgid.txt for details. --disable-nntp Don't include NNTP support. --enable-spool Include support for reading news directly from a news spool (enabled implicitly by --with-slrnpull). --enable-inews Enable inews support (enabled implicitly by --enable-force-inews). --enable-force-inews This option enforces the use of inews for posting. Without this option, the user is allowed to choose a posting method. --enable-strict-from This option completely disallows the user to configure his "From" header line. All attempts to change the startup values that were retrieved from the system for "hostname", "username" and "realname" will fail. make_from_string_hook does not get executed; manually added "From" headers are rejected when posting. --disable-charmap Disables the mapping between ISO-Latin and native character sets like isolatin, ibm850, NeXT and koi8 --disable-spoilers Disable the special behaviour if slrn encounters a linefeed character. --disable-emph-text Turn off the coloring of *emphasized* _text_. --disable-gen-mid This prevents slrn from generating its own Message-IDs. --enable-mid-cache Make slrn cache Message-IDs during a session and use them to eliminate cross-posts. This should not be necessary if your server supports Xref in its overview database. --disable-fake-refs Don't use the In-Reply-To header for building the thread tree if no References header is available. --enable-grouplens Enable grouplens support. Since the grouplens project seems to be dead, you probably won't need this. See README.GroupLens for further information. --enable-warnings If using gcc, enable the output of warnings during compilation. --enable-profiling If using gcc, the slrn binary will write profile data to gmon.out. Never use this option when compiling slrn for production use! --exec-prefix=EPREFIX Set EPREFIX to the base directory where the architecture-dependent part of slrn will be installed. Default: PREFIX [/usr/local] --bindir=BINDIR The directory where the slrn executable will be put. Default: EPREFIX/bin [/usr/local/bin] --mandir=MANDIR The place where man pages will be installed. Default: PREFIX/man [/usr/local/man] --datadir=DATADIR Architecture-independent read-only files such as slang macros. Default: PREFIX/share/slrn [/usr/local/share/slrn] --sysconfdir=SYSCONFDIR Directory for global configuration files (like slrn.rc). Default: PREFIX/etc [/usr/local/etc] --with-docdir=DIR The directory where slrn's documentation is placed. Default: PREFIX/share/doc/slrn [/usr/local/share/doc/slrn] --with-libdir=LIBDIR Directory where slrn will expect the global newsgroups description file. Default: PREFIX/lib/slrn [/usr/local/lib/slrn] Some rarely used compile-time options are not under autoconf control. You need to edit src/slrnfeat.h manually before running "make" to change them. slrn-1.0.1/doc/INSTALL.vms000066400000000000000000000001301206520222400150560ustar00rootroot00000000000000NOTE: 0.9.9 has not been ported to VMS. Patches to correct this situation are welcome. slrn-1.0.1/doc/INSTALL.w32000066400000000000000000000056741206520222400147060ustar00rootroot00000000000000This file is mainly intended as a quick guide for people who already know slrn and want to run it on Windows. You can find descriptions on the web that are both more comprehensive and easier to understand. Please also consult the rest of the documentation that comes with slrn. Compiling slrn on Windows using the MinGW tool-set. ==================================================== slrn depends upon version 2.2.3 of slang or later. If you do not have this version installed, including the slang interpreter SLSH, then download and install it first. You need to do so because slrn makes extensive use of the slang library and the installation of slrn requires SLSH. The slang library is available from . Build and install it first. Suppose that you have installed the slang library using an install prefix of C:\mingw\local. Then slsh should be located in C:\mingw\local\bin. Make sure the directory containing slsh is in your search path: set PATH=C:\mingw\local\bin;%PATH% Also, if mingw32-make is not in your path, you will also need to add its directory to the search path. The script win32\setpath.bat may be used to facilitate this step. The script assumes that the MinGW toolset was installed under C:\mingw. Now run the win32\m32config.sl slang script. This will create the Makefiles and configuration-specific header files: slsh win32/m32config.sl (Note that slsh also supports / as the path separator). This will configure the Makefiles to install slrn under the slang install prefix. For other config options, run: slsh win32/m32config.sl --help Now run mingw32-make to build slrn: mingw32-make Assuming that step was successful (if not, email the author), install slrn via mingw32-make install At this point, you should have a working slrn installation under C:\mingw\local. See if it runs via: C:\mingw\local\bin\slrn --version Running slrn ============ See for a nice overview of setting up slrn. Please read it. To use slrn, you will need do the following: 1. Set the following environment variables: set NNTPSERVER=my.news.server set HOME=d:\home\sweet\home (Note: Forward slashes are also ok) 3. Copy the file slrn.rc into the home-directory and edit it to your needs, it should be pretty well documented. When entering file path names here, use double backslashes (\\)! 4. The first time you start slrn, start it with the following parameters "slrn.exe --create", this will create a jnews.rc. After that you can start it without parameters. You should now see slrn in action. If you actually want to work with it, you also need an editor (if you don't have your favorite one, MS DOS edit will work) and a program like sendsmtp that can deliver email to your mail server (for forwards and replies). If you want to read your news offline, you either need a binary of slrnpull or a local server as well. slrn-1.0.1/doc/INSTFILES000066400000000000000000000002341206520222400145110ustar00rootroot00000000000000FIRST_STEPS README.GroupLens score.sl slrn.rc help.txt README.macros score.txt THANKS manual.txt README.multiuser slrn-doc.html FAQ README.SSL slrnfuns.txt slrn-1.0.1/doc/README.GroupLens000066400000000000000000000047441206520222400160350ustar00rootroot00000000000000 * Note: The information in this file is outdated. According to * , the trial of the * collaborative filtering system for Usenet is finished. * Chris Siegler told me he had a working implementation * of a BBB server. Although it's currently not online, I'll keep GroupLens * support in slrn for now. The GroupLens support should work on most Unix systems. It may even work for OS/2 or VMS. For information about GroupLens, see http://www.cs.umn.edu/Research/GroupLens/trial.html Edit src/slrnfeat.h to enable support for GroupLens, The next step is to create a file called .grplens in your home directory. This file must contain lines such as: PSEUDONYM your-pseudonym BBBHOST grouplens.cs.umn.edu BBBPORT 9000 comp.os.linux.misc . . rec.food.recipes rec.arts.movies.current-films The last lines in the file consist of newsgroup names. See http://www.cs.umn.edu/Research/GroupLens/trial.html for information about which groups are supported. The PSEUDONYM line must contain a registered pseudonym. To register a pseudonym, see http://www.cs.umn.edu/Research/GroupLens/trial.html for a registering link. Once you have created your .grplens file with a registered pseudonym, you need to add the line set use_grouplens 1 to your .slrnrc file. After doing that, simply run slrn. When you enter a supported newsgroup, slrn will retrieve rating for the newsgroup from the GroupLens server and display the ratings in the header summary window. The display format is set via the DISPLAYTYPE line in your .grplens file. Again, see the GroupLens web page for supported DISPLAYTYPE or look at the documentation in the GroupLens library directory. To rate articles that you have read, simply press `0' followed by an integer `1' through `5' where `1' is a low rating and `5' is a high rating. After leaving the newsgroup, slrn will send your ratings back to the GroupLens server. Note: Only those newsgroups that the GroupLens server supports which are also listed in your .grplens file may be rated. The header display in a group for which GroupLens ratings have been requested, will include a ratings field. The ratings field will either consist of one or more `*' characters, or a `?'. The `?' means that there is no GroupLens information for the article for which the header refers. Articles for which GroupLens information is available will contain one or more `*' characters on the header lines to indicate a rating of 1 to 5. slrn-1.0.1/doc/README.SSL000066400000000000000000000031431206520222400145500ustar00rootroot00000000000000SLRN may be used to access a secure server using SSL. To do this, SSL support must be enabled. Compiling SLRN with SSL support ------------------------------- To build slrn with SSL support, you must first obtain and install the OpenSSL library from http://www.openssl.org. Beware that some countries may have import/export regulations concerning such software. If you get arrested, do not call me! Just as important, do not contact me if you have trouble compiling OpenSSL --- I have nothing to do with the development of OpenSSL. After installing OpenSSL, configure slrn for SSL support, e.g., ./configure --with-ssl By default, OpenSSL will install itself in /usr/local/ssl. If you install it elsewhere, e.g., $HOME/ssl, then use: ./configure --with-ssl=$HOME/ssl After compiling it, `slrn --version' should indicate SSL support. Using SLRN with secure servers ------------------------------ As far as slrn is concerned, only those servers whose names are prefixed with "snews://" are secure and require SSL. So, to access a secure server such as netscape's secnews.netscape.com, simply prefix the NNTP host name with "snews://" and, if required, specify the port number. For instance, slrn -h snews://secnews.netscape.com:563 --create In your .slrnrc file, you may want to add a line such as: server "snews://secnews.netscape.com:563" ".newsrc-netscape" to indicate that the file ".newsrc-netscape" should be used for this server. If the server requires authentication, you may also want to add a line such as: nnrpaccess "snews://secnews.netscape.com:563" "username" "password" That's it! slrn-1.0.1/doc/README.macros000066400000000000000000000105141206520222400153730ustar00rootroot00000000000000-*- mode: text; mode: fold; -*- The purpose of this note is to provide some instructions on extending the newsreader in its macro language. {{{ Introduction When slrn is started, it reads the .slrnrc user initialization file. That file may contain one or more `interpret' commands causing the newsreader to load the specified S-Lang scripts, e.g., interpret ".slrn.sl" interpret "src/slrn/macros/search.sl" Each script must obey the syntax of the S-Lang language. See the slang documentation from more more information about the syntax. Several pre-written macros are included in the slrn distribution in the macro subdirectory and many more are available from various pages all over the web. }}} --------------------------------------------------------------------------- Defining Key Macros {{{ --------------------------------------------------------------------------- Although one is able to bind keys to specific functions via lines of the form setkey group "refresh_groups" "G" in the .slrnrc file, it is not possible to defined more complicated actions in this manner. However, macros can be defined by using a S-Lang script. For example, the `refresh_groups' internal function refreshes the newsgroups but it does not cause the cursor to move to the top of the newsgroup list. On the other hand, the internal function `bob' moves to the top of the list but it does not refresh the groups. One can define a S-Lang function to perform both actions: define refresh_groups_bob () { call ("refresh_groups"); call ("bob"); } and bind it to a key: definekey ("refresh_groups_bob", "g", "group"); The `definekey' function takes 3 arguments: function to execute keybinding keymap name ("article" or "group") Here is another macro that may be used in article mode. It performs a regular expression search for subjects. variable Last_Search_Str = ""; define re_subject_search_forward () { variable str; ERROR_BLOCK { () = header_up (1); } !if (header_down (1)) return; str = read_mini ("Subject re-search fwd", Last_Search_Str, ""); !if (strlen (str)) return; Last_Search_Str = str; !if (re_fsearch_subject (str)) error ("Not found."); } To bind it to, e.g., `s' in the article keymap, use: definekey ("re_subject_search_forward", "s", "article"); Some slrn keyboard functions require a ``prefix argument''. Many people find the use of prefix arguments somewhat strange. For example, instead of typing `ESC 1 ESC p' to reconstruct a thread, one can simply use the function: define my_recreate_thread () { set_prefix_argument (1); call ("get_parent_header"); } Here is a function that pipes the current article to a command called `most' (a paging program similar to more/less): define pipe_to_most () { pipe_article ("most"); } definekey ("pipe_to_most", "&", "article"); Here it has been bound to the `&' key. Most likely one will want to pipe the article to a shell script for further processing. Some of the built-in keyboard functions will prompt for a string. For example, in article mode, pressing the `:' key will prompt for an filename. The function `set_input_string' may be used to provide a response to such a prompt, e.g., % The `:' command will prompt for a filename. set_input_string ("/tmp/decoded"); call ("decode"); For functions that prompt for a single character, such as Do you really want to quit? [Y]es No a similar intrinsic function, set_input_chars, may be used to provide the answer. }}} --------------------------------------------------------------------------- Hooks and Command Reference --------------------------------------------------------------------------- The above examples used ``intrinsic'' functions such as `call', `set_integer_variable', etc. A description of all slrn intrinsic functions that are available via the interpreter is included in slrnfuns.txt. A comprehensive list of all hooks into the newsreader is now also included in that file. The S-Lang language includes many other intrinsics, such as `strcmp' and `is_substr' which are described in the file slangfun.txt that comes with S-Lang itself. slrn-1.0.1/doc/README.multiuser000066400000000000000000000060461206520222400161450ustar00rootroot00000000000000This file concerns a setup of slrn that is suitable for multiple users. The installation instructions given in this file provide information about setting up slrn with defaults that are global to all users. These defaults include such information as the name of the organization and the hostname. In addition, only one newsgroup description file is needed instead of one per user. The files that provide such "global" information are put in SYSCONFDIR/slrn.rc : global initialization file and DATADIR/slrn/newsgroups.dsc : newsgroup description file. The values of SYSCONFDIR and DATADIR can be set when building slrn (--sysconfdir and --datadir options of ./configure). On my system, the global slrn.rc file simply contains the two lines: set hostname space.mit.edu set organization "Center for Space Research" which will appear in the appropriate headers when a user posts a message. In addition to specifying these quantities in the slrn.rc file, suitable defaults may be compiled into the executable. Simply edit the slrnfeat.h file for this option. Background: When slrn runsn it looks for a file that contains the description of all the news groups. This is NOT the newsrc file. Rather, it is a file that contains a one line summary of what each group is about. This file can be quite large if there are many newsgroups. For example, on my system, the newsgroup description file is 225 Kilobytes. It is not desirable for each user to have their own private copy of this file, especially when there is more than one user of slrn on a given system. Instead, the system administrator only has to keep a copy of it in a directory that slrn knows about. Part of the installation process described in this file involves the creation of such a directory. slrn assumes that newsgroup description file will be called `newsgroups.dsc'. The directory where this file is located get hardcoded into the binary. By default, it is /usr/local/share/slrn, but you can change this with the --datadir option when running ./configure. Now, you have to obtain the newsgroup description file. You can do that in at least two ways. The easiest is to simply get the file `newsgroups.dsc' from space.mit.edu:/pub/davis/slrn. The other method is just as easy but involves slrn to create such a file for you. This is described below. With this background, the steps presented below should be clear. 0. Execute the steps outlines in README before continuing. 1. Create the directory `/usr/local/share/slrn' (or equivalent; after a successful installation of slrn, it should already exist). 2. Run slrn as follows: slrn -f SHAREDIR/slrn/newsgroups -d (Of course, make the proper substution of SHAREDIR). This will create a file newsgroups.dsc in SHAREDIR/slrn. This step may take some time to complete for slow NNTP connections. 3. If more that one person will be reading this file, make sure it is world readable, e.g., chmod go+r SHAREDIR/newsgroups.dsc That's it!! slrn-1.0.1/doc/THANKS000066400000000000000000000021351206520222400141430ustar00rootroot00000000000000I want to thank everybody who helped to develop and improve slrn by sending in code, bugreports or leading productive discussions. The list of contributors is far too long to be kept in this file; please see changes.txt for those who contributed patches. I am particularly grateful to the earliest users and contributers to software. The earliest contributers to slrn include: Michael Elkins Matthias Friedrich David Gerard Howard Goldstein Andrew Greer Sven Guckes Jan Hlavacek Jay Maynard J.B. Nicholson-Owens Mark Olesen Felix Schueller Thomas Schultz Lloyd Zusman In 2001 I no longer found time to continue slrn development. Thomas Schultz agreed to take over the job as the lead slrn developer and continued in that role until 2008. For this reason he deserves special recognition. In 2008 I returned as the lead slrn developer. I was helped by an enthusiastic group of folks who took it upon themselves to bring the documentation up to date: Peter J Ross Rudy Taraschi Thomas Wiegner Finally, I would like to thank Andrew Strong for his support of slrn under Windows. slrn-1.0.1/doc/VMS-SLRN.HLP000066400000000000000000001035401206520222400150200ustar00rootroot000000000000001 slrn slrn - An easy to use NNTP based newsreader. SYNOPSIS slrn [ -n ] [ -h nntp-server-name ] [ -f newsrc-file ] [ -- create ] [ -C ] [ -help ] 2 DESCRIPTION slrn is an easy to use but powerful NNTP based newsreader. It relies extensively on the S-Lang programmer's library for many of its features. If no server is specified on the command line using the - h option, the server specified by the NNTPSERVER environment variable will be used. The -f option specifies which newsrc file should be used. If none is specified, a default value of JNEWS.RC will be used. This value can be set on a server by server basis using the SLRN.RC initialization file. The --create option should be used the first time slrn is used for a particular server. This causes slrn to read the entire list of groups available at the server and place them in the selected newsrc file. If the NNTP connection is slow, this process may take several minutes. Fortunately, this happens only when the --create flag is used. If -C is specified on the command line, the terminal is assumed to support colors. Colors may be specified by using the initialization file. If the -n option is present, no new newsgroups will be checked for. This may result in a faster startup. 2 BASIC_OPERATION Using slrn is simple. For many, simply typing slrn will connect to a news server. After starting, slrn checks for the existence of new newsgroups and automatically subscribes to them. Then after new news is checked, slrn goes into ``full screen'' mode at which point the user can unsubscribe to one or more groups. slrn will display a list of news- groups that looks like: -> 3 sci.research.postdoc 689-705 1 comp.databases.olap 1-1 4 rec.antiques.radio+phono 1-4 1 comp.emulators.ms-windows.win 339-349 113 comp.unix.questions 74401-74513 11 gnu.ghostscript.bug 4874-4884 100 alt.music.pink-floyd 7941-8040 11 rec.sport.baseball.analysis 239-249 3 rec.sport.baseball.data 267-269 13 sci.physics.electromag 1159-1171 65 comp.sys.ibm.pc.hardware.systems 4754-4818 5 sci.physics.particle 1069-1073 2 comp.sources.x 2362-2363 2 comp.unix.user-friendly 2603-2604 Here the middle column shows the name of a newsgroup and the left column shows the number of unread articles in the group. The right column shows the range of articles present on the server. Note the presence of the -> in the first column on the `sci.research.postdoc' line. This symbol is used by slrn as a pointer to indicate the currently selected line. It may be moved up and down by using the arrow keys. Pressing the RETURN key or the SPACEBAR at this point will select the `sci.research.postdoc' group. A new screen will appear showing something like: ->- 703 (P) Lecturer in Comp. dumontet@nuri.inria.fr (dumo - 704 Research & Developnment dumontet@nuri.inria.fr (dumo - 705 Re: Example of proposal shinbrot@bart.chem-eng.nwu.e Here, each line consists of four fields and possibly the - > cursor. The first field indicates whether the article has been read or not. A hyphen ( - ) in the first field indi- cates that the article has not been read. Since a hyphen appears in the first field in all three of the lines above, none of the articles have been marked as read. A d in this field indicates that an article has been read. The currently selected article can be changed from the read to the unread state by pressing the u key. The d key may be used to mark the article as read without actually reading it. The c key may be used to mark all the articles as read (Actually this is the preferred way to use the newsreader: scan the arti- cles by eye looking for something interesting then before moving on to next newsgroup, press `c' to mark all articles as read). The second field displays the server number of the article. The third and fourth fields contain the subject and author of the article, respectively. Pressing the SPACEBAR or the RETURN key will create a second window and display the contents of the currently selected article. The screen will now consist of two windows - a large one and a small one. The large window, known as the article window, will contain the currently selected article and the small one, known as the summary window, will contain the list of articles as shown above. The space bar may be used the scroll the article forward and the DELETE key or the `B' key may be used to scroll it backward. The UP/DOWN arrow keys simply move the - > cursor from one line to another in the summary window. To hide the article window, press the h key.This will zoom the summary window to full screen. The f key may be used to post a followup to the currently selected article. To return to the list of Newsgroups, press the Q key to leave this mode. 2 DEFAULT_KEYBINDINGS These keybindings are always available: These keybindings are always available: ? Help PageUp Ctrl-U Page up PageDn Ctrl-D Page down Ctrl-Z Suspend program These keybindings may be used at the newsgroup level: SPACE Select articles for the current group. UP P Move to the previous group DOWN Move to the next group q Quit the program p Post an article l Toggle the display of groups with no unread articles on and off L Toggle display of unsubscribed groups (can also sub- scribe with this) u Unsubscribe from the current group s Subscribe to the current group c Mark all articles in the current group as read. a Subscribe to a specified group / Search for a subscribed group G Refresh groups from news server X Save .newsrc ESC > Move to last group ESC < Move to first group The following bindings are valid once a newsgroup has been selected: SPACE Select or scroll currently selected article forward DELETE, b Scroll currently selected article backward d Mark currently selected article as read and move to the next unread article. u Mark the currently selected article as unread # Numerically tag the article for multiple save (see o command) g Skip to next digest h Hide the article window by zooming the summary win- dow to full screen Ctrl-^ Decrease the size of the header window by one line. ^ Increase the size of the header window by one line. f Post follow-up to the currently selected article F Forward the currently selected article to someone r Reply directly to the author of the currently selected article o Save the currently selected article or thread to a file in a Unix mail format by appending it to the the specified file, then optionally decode the arti- cles with uudecode or unshar. If numerically tagged articles (see # ) are present, then optionally save and then decode the tagged articles. The built-in uudecoder can decode files that contain multiple multi-part uuencoded articles. However, they must be tagged in the proper order. The key ESC # may be used to un-tag articles. q Quit and go back to the list of newsgroups T Toggle quote display K Toggle scoring TAB Skip over quotes in article t Toggle the current articles headers between hidden and un-hidden states. By default, uninteresting ones are hidden UP Move to the previous article DOWN Move to the next article ESC DOWN, RETURN Scroll the article down one line < Jump to the beginning of the article ESC UP Scroll the article up one line ESC > Move to last article ESC < Move to first article RIGHT Pan the article window to the right LEFT Pan the article window to the left n Move to the next unread article o Append article to a file; optionally, decode with uudecode or shar p Move to a previously unread article PageUp, PageDn Page up and down through the header list. / Search forward in the article ? Search backward through article. a Author search forward. A Author search backward. s Subject search forward. S Subject search backward H Hide the article (make its window disappear) N Skip to next news group j Move to an article P Post an article (also see f to post a follow-up article) SEMICOLON Set a mark at the current article. COMMA Return to a previously set mark setting the mark first. * Flag the article as 'important' (prevents catchup in header window from marking the article deleted) | Pipe article to an external command ESC Ctrl-C Cancel the current article. c Mark all articles as read ESC C Mark articles to here as read ESC U Mark articles to here as UN-read Ctrl-R, Ctrl-L Redraw the screen. ESC R Toggle ROT 13 decryption on and off ESC S Toggle header threading on and off ESC T Toggle collapse of header threading ESC A Switch between header display methods ESC p Find parent header ESC Ctrl-P Find child header ? Show help Ctrl-Z Suspend the newsreader. E Edit score parameters using this article as template 2 ENVIRONMENT_VARIABLES slrn uses the following list of environment variables: NNTPSERVER NNTP Server to connect to if none specified when slrn is started. EDITOR SLANG_EDITOR Editor to use when composing messages. The '%s' and `%d' format descriptors may be used to specify the filename and line number respec- tively. For example, if `jed' is your editor, then you can use something like: DEFINE SLANG_EDITOR "jed %s - g %d " in your LOGIN.COM file. SLANG_EDITOR is the prefered environment variable since all S-Lang applica- tions that use an editor look for this variable and understand this syntax. REPLYTO Address to be inserted into the `Reply-To' field. ORGANIZATION String to be used in the `Organization' field. 2 INITIALIZATION_FILE If a file called SLRN.RC is present in the users login direc- tory, slrn will use it as an initialization file. This file can contain list of personalized keybindings as well as a list of server -- newsrc mappings. 3 BINDING_KEYS To bind a key to a particular function use the syntax: setkey keymap function key-sequence The setkey function requires three arguments.The first argu- ment specifies the keymap to be used for the bindings. Valid keymaps are: group and article. The function argument spa- cifies the function that is executed when keys in the last argument are pressed. For example, setkey group quit "x" indicates that if x is pressed at the group level, the quit function will be executed. Note that although not normally necessary, the last argument should be enclosed in double quotes since it may contain SPACE characters. The key-sequence argument can consist of several characters. For example, on many terminals, the RIGHT arrow sends the three characters ESC, `[' and `C' to the terminal. To bind the RIGHT key to `select_group' function, use: setkey group select_group "\e[C" Sometimes, it is necessary to unbind a key from a keymap before binding the key. For example, one cannot do: setkey group quit "\e" to bind the ESC key to the quit function without first unsetting it. This is because the default bindings use the ESC character as the prefix character for certain keymaps. To achieve this goal, use the unsetkey function: unsetkey group "\e" setkey group quit "\e" Here the unsetkey function has been used to remove the bind- ing for the ESC character before binding it to the `quit' function. Please note that unsetting the ESC key will also unset any key sequence been with the ESC key. This includes most function keys. See the example initialization file below for the list of functions and their meaning. 3 USING_MULTIPLE_SERVERS The easiest way to use multiple servers is through the use of the server command in the SLRN.RC file. This command sim- ple associates a server name with a newsrc file: server nntp-server newsrc-file For example, suppose that you use three servers with host- names `red.news.edu', `blue.news.edu', and `green.news.edu'. The the lines: server red.news.edu JNEWS.RC-red server blue.news.edu JNEWS.RC-blue server green.news.edu JNEWS.RC-green specify that the file JNEWS.RC-red is to be used when the server red.news.edu is connected to, etc... 3 DEFINING_COLORS Color support is enabled when suing the `-C' command line switch. Use slrn "-C" to pass an upper case C. The colors may be defined through the use of the `color' keyword in the `SLRN.RC' file. The syntax is: color OBJECT-NAME FOREGROUND-COLOR BACKGROUND-COLOR Here, OBJECT-NAME can be any one of the following items: error -- error messages status -- status line attached to windows menu -- Line at the top of the display (menu bar) group -- newsgroup names (group mode) cursor -- The --> position indicator author -- Author's name in the article mode subject -- Subject in the article mode headers -- The lines that constitute the headers of the article article -- The body of the article (not headers) normal -- anything not included above The foreground/background color names can be any of the following: black gray red brightred green brightgreen brown yellow blue brightblue magenta brightmagenta cyan brightcyan lightgray white Most terminals do not support the second group of colors for the background. 3 HIDING_QUOTED_ARTICLES Often articles contain quotes of previous articles. slrn is capable of not displaying lines in an article that match a given regular expression. The regular expression may be specified by putting a line of the form ignore_quotes REGULAR-EXPRESSION in the SLRN.RC startup file. The default regular expression is "^ ?[:>=]" which matches any line that begins with or without a space followed by either a colon, greater than sign, or an equal sign. To toggle the display of such lines on or off, press the `T' key when in article mode. 2 ARTICLE_SCORING (For a complete description of the flexibility in the slrn scorefile system, see the files KILL_FAQ and score.txt in the slrn distribution) slrn incorporates a sophisticated system for scoring arti- cles. In other newsreaders, one of slrn's scoring features would be called a " killfile ". But unlike some other news- readers, slrn provides for a great degree of flexibility and the capability to mark articles in ways other than merely killing them. Four levels of scoring are provided: -9999 The scored article is deleted (as with a common killfile) and will not appear in the header window -1 through -9998 The scored article appears with a " D " as in "Deleted" flag in the header window 0 through 9999 The scored article's header appears with a " ! " flag to indicate importance 3 CONFIGURING_THE_SCOREFILE The scorefile system is disabled until you set scorefile to the pathname of the file slrn should use to hold the scoring parameters. Once set, scorefile may be accessed through the E command at the header window, or may be edited manually. When accessed with E , slrn appends a template based upon the currently selected article to the scorefile with various parameters taken from the article and you are placed in your editor. To enable scoring, delete the % comment symbol from the first column of the header line(s) you wish to score upon. The other way to configure your scorefile is by editing the file directly, with a text editor. Here is a sample score- file (remember the KILL_FAQ and score.txt files are the definitive references for the score system): [news.software.readers] Score: 9999 % All slrn articles are good Subject: slrn Score: 9999 % This is someone I want to hear from From: davis@space.mit.edu Score = -9999 Subject: [comp.os.linux.*] Score: -10 Expires: 1/1/1996 Subject: swap Score: 20 Subject: SunOS Score: 50 From: Linus % Kill all articles cross posted to an advocacy group Score: -9999 Xref: advocacy ~From: Linus % This person I want nothing to do with unless he posts about % `gizmos' but only in comp.os.linux.development.* Score: -9999 From: someone@who.knows.where ~Subject: gizmo ~Newsgroup: development % These stooges post massive .sigs all the time. I like % to track them [alt.fan.warlord] Score:: 20 Subject: larry Subject: curly This file consists of two sections. The first section defines a set of tests applied to the news.software.readers newsgroups. The second section applies to the comp.os.linux newsgroups. The first section consists of three tests. The first test applies a score of 9999 to any subject that contains the string `slrn'. The second test applies to the `From'. It says that any article from davis@space.mit.edu gets scores 9999. The third test gives a score of -9999 to any article whose subject contains the word `agent'. Since tests are applied in order, if an article contains both `slrn' and `agent', it will be given a score of 9999 since 9999 is a special score value. The second section is more complex. It applies to the news- groups comp.os.linux newsgroups and consists of 5 tests. The first three are simple: -10 points are given if the sub- ject contains `swap', 20 if it contains SunOS, and 50 if the article is from someone named `Linus'. This means that if Bill@Somewhere writes an article whose subject is `Swap, Swap, Swap', the article is give -10 points. However, if the Linus writes an article with the same title, it is given -10 + 50 = 40 points. Note that the first test expires at the beginning of 1996. The fourth test kills all articles that were cross posted to an advocay newsgroup UNLESS they were posted by Linus. Note that if a keyword begins with the `~' character, the effect of the regular expression is reversed. The fourth test serves to filter out posts from someone@who.knows.where unless he posts about `gizmos' in one of the comp.os.development newsgroups. Again note the `~' character. The last test marks as important messages from mentioning Moe or Curly in the alt.fan.warlord newsgroup. This demon- strates use of an "OR" condition in a scorefile. 2 COURTESY_COPY If you elect to send a courtesy copy of your followup arti- cle to the original poster, you may easily do so by adding a "Cc:" header to the article. Here is an example of how to send a courtesy copy of a followup to John Davis' (slrn's author) announcement of a new slrn version: Newsgroups: news.software.readers Subject: Re: slrn 0.8.0 Released! References: <46c6b8$e2@news.mit.edu> Organization: a clean well lit place Reply-To: hg@n2wx.ampr.org Followup-To: Cc: davis@space.mit.edu On 22 Oct 1995 01:26:45 GMT, John Davis wrote: ... John will receive a copy of the followup by email with the article text preceded by a line of text stating that [This message has also been posted.] (The text within the brack- ets may be customized with the SLRN.RC cc_followup_string parameter.) 3 MISCELLANEOUS_SETTINGS The SLRN.RC initialization file also supports the following commands: signature organization replyto quote_string editor_command scorefile For example, signature .news-signature organization "Society of Famous Outlaws" signature "Billy the Kid" quote_string ">" editor_command "jed %s -g %d -tmp" scorefile "News/Score" 2 FILES SYS$LOGIN:SLRN.RC - the slrn's initialization file SYS$LOGIN:JNEWS.RC - default newsrc file for slrn. 2 EXAMPLE_OF_AN_INITIALIZATION_FILE % This is a sample startup file for the slrn news reader. The percent % character is used for comments. % SERVER to NEWSRC mapping server hsdndev.harvard.edu .jnewrc-hsdndev server news.uni-stuttgart.de JNEWS.RC-stuttgart %nnrpaccess HOSTNAME USERNAME PASSWORD %realname "John Doe" %replyto jd@somthing.com % The quote string will be used when following up/replying quote_string ">" % This regular expression defines lines that are consider to be quoted lines. % It says that any lines beginning with 0-2 spaces followed by a either % a >, <, :, |, or = character is a quoted line. ignore_quotes "^ ? ?[><:=|]" % This sets the follow-up string. Here, the following for- mat specifiers are % recognized: %d:date, %r:real name, %f:email address, %s:subject, % %m:msgid, %n:newsgroups, %%: percent followup "On %d, %r <%f> wrote:" % If autobaud is present, output rate will be synced to baud rate %autobaud % if non-zero, display first article when entering article-mode. set show_article 0 % if non-zero, show description of newsgroup if available set show_descriptions 1 % If non-zero, backups of the newsrc file are not per- formed. set no_backups 0 % If 0, do not beep terminal. If 1, send audible beep. If 2, send only % visible bell. If 3, send both. set beep 1 % If non-zero, slrn will automatically subscribe new groups. The default is 0. set unsubscribe_new_groups 0 % If non-zero, all subject titles will be displayed even though many are % duplicated. A zero value makes the screen look less busy. set show_thread_subject 0 % Enable xterm mouse support: 1 to enable, 0 to disable set mouse 0 % Setting either of these to 0 will enable you to move directly to the % next article/group without confirmation set query_next_group 1 set query_next_article 1 % Set this to 0 for no-confirmation on follow, reply, quit, etc... set confirm_actions 1 % If non-zero, a Cc: header to poster will automatically be generated on % followups set cc_followup 0 cc_followup_string "[This message has also been posted.]" % Name of score file (relative to HOME directory) scorefile "News/Score" % Name of directory where decoded files are placed (rela- tive to HOME) decode_directory "News" % Command used to invoke editor. In the following example, %s represents % the file name and %d represents the starting line number %editor_command "jed %s -g %d -tmp" % If non-zero, files used for posting, followup and reply will be regarded as % temporary files in the directory specified by the TMPDIR environment % variable or /tmp. set use_tmpdir 0 %------------ % Colors %------------ color normal black white color error red white color status yellow blue color group blue white color article blue white color cursor brightgreen white color author magenta white color subject black white color headers brightcyan white color menu yellow blue color tree red white color quotes red white color thread_number blue white color high_score red white %------------------------ Group keymap--------- --------------------------- setkey group add_group "A" % add a new newsgroup setkey group bob "\<" % beg of buffer setkey group bob "^K\OA" setkey group bob "^K\[A" setkey group catch_up "C" % mark group as read setkey group line_down "\OB" % next group setkey group line_down "\[B" setkey group line_down "^N" setkey group eob "\>" % end of buffer setkey group eob "^K\OB" setkey group eob "^K\[B" setkey group group_search_forward "/" setkey group help "?" setkey group page_down "^D" % next page of groups setkey group page_down "\[6~" setkey group page_down "^V" setkey group page_up "\V" % previous page of groups setkey group page_up "^U" setkey group page_up "\[5~" setkey group post "P" setkey group quit "Q" setkey group redraw "^L" setkey group redraw "^R" setkey group refresh_groups "G" setkey group save_newsrc "X" setkey group select_group "\e7" % read articles from group setkey group select_group " " setkey group subscribe "S" % subscribe to group (See unsubscribe) setkey group suspend "^Z" setkey group toggle_group_display " 33A" setkey group toggle_score "K" setkey group toggle_hidden "l" setkey group toggle_list_all "L" setkey group unsubscribe "U" % unsubscribe setkey group line_up "\OA" % previous line setkey group line_up "\[A" setkey group line_up "^P" %---------------- Article mode keymap ------------------------------------- setkey article goto_article "j" setkey article pipe "|" setkey article skip_quotes "" setkey article header_page_up "^U" setkey article header_page_up "\[5~" setkey article header_page_up "\V" setkey article header_page_down "\[6~" setkey article header_page_down "^D" setkey article header_page_down "^V" setkey article post "P" setkey article get_parent_header "\p" setkey article catchup_all "c" setkey article catchup_all "\c" setkey article uncatchup_all "\u" setkey article catchup "\C" setkey article uncatchup "\U" setkey article article_page_down " " % scroll to next page of article or select article setkey article article_page_down "\e7" % (article_dn or article_pagedn) setkey article article_page_up "^?" % scroll to next page of article setkey article article_page_up "b" % (scroll_up or article_pageup) setkey article article_line_up "\\[A" % Scroll arti- cle one line up setkey article article_line_up "\\OA" setkey article article_line_dn "\\[B" % Scroll arti- cle one line down setkey article article_line_dn "\\OB" setkey article article_search "/" % Search forward through article setkey article author_search_forward "a" % Search for- ward for an author setkey article author_search_backward "A" % Search back- ward for an author setkey article cancel "\^C" % Cancel the article setkey article delete "d" % Mark current article as read and move to the next unread one setkey article header_line_down "^N" % Move to the next arti- cle setkey article header_line_down "\[B" setkey article header_line_down "\OB" setkey article mark_spot ";" % Set mark at current article setkey article exchange_mark "," % Set the mark and return to the location of the previous mark. setkey article followup "f" % Followup on the article setkey article forward "F" % Forward the article to someone setkey article help "?" % Show help screen setkey article hide_article "H" % Hide the article win- dow. setkey article goto_end ">" % Scroll the article window to the left setkey article article_left "\OD" setkey article article_left "\[D" setkey article next "n" % next unread article setkey article skip_to_next_group "N" % next group setkey article previous "p" % previous unread article setkey article quit "q" % Quit back to group mode. setkey article redraw "^L" % Redraw the display setkey article redraw "^R" setkey article reply "r" % Reply to the author of the current article setkey article goto_beginning "<" % Scroll article to the right setkey article article_right "\[C" setkey article article_right "\OC" setkey article save "O" % append to a file in Unix mail format setkey article subject_search_forward "s" % Search forward/backward for an article with a specific subject setkey article subject_search_backward "S" setkey article suspend "^Z" % Suspend the newsreader setkey article toggle_show_author "\a" setkey article toggle_rot13 "\R" setkey article toggle_sort "\S" setkey article toggle_headers "t" % Toggle the display of some headers on and off setkey article toggle_quotes "T" setkey article undelete "u" % Mark the current arti- cle as unread setkey article header_line_up "^P" % Move to the previous article setkey article header_line_up "\OA" setkey article header_line_up "\[A" setkey article art_header_bob "\<" % Move to first article in list setkey article art_header_eob "\>" % Move to last arti- cle in list setkey article shrink_article_window "^^" % Ctrl-6 or Ctrl- ^ % Shrink header window setkey article enlarge_article_window "^" % Shift-6 or just ^ % Enlarge header window 2 SEE_ALSO DEFINE Questions about slrn may be posted to the newsgroup news.software.readers where they will be answered by the author of the program. In addition, announcements of new versions of slrn are posted there. The latest version of slrn is available from http://prdownloads.sourceforge.net/slrn/ 2 AUTHOR John E. Davis 2 ACKNOWLEDGEMENTS (This list is still incomplete) Howard Goldstein for updating this man page. Andrew Greer for the VMS port. Lloyd Zusman performed some cosmetic improvements. J.B. Nicholson-Owens for extensive testing. Mark Olesen for suggestions and help with AIX version. slrn-1.0.1/doc/help.txt000066400000000000000000000214201206520222400147170ustar00rootroot00000000000000% help.txt, completely rewritten by Matthias Friedrich , % based on the slrn reference manual and the original help.txt. % This file may be viewed on-line by SLRN by pointing the environment variable % SLRNHELP to it. It is particlularly useful when you modify the default % keybindings and you want the on-line help to reflect this fact. % The format of the file is simple. Lines that start with `%' are comment % lines and will be ignored. Any line that consists entirely of whitespace % is also ignored. % cpp Macros may be used but are only useful in combination with the % makehelp script, which is used to generate the documentation in help.c % from this file. % The file is divided into sections. A section is started by the presence of % a line that contains a name enclosed in brackets. Currently, the only % names formed in this manner are [Article] and [Group]. The text that % follows one of these names will be displayed as the help screen for that % particular mode. [Group] Note: The keys are case sensitive! That is, 's' and 'S' are not the same. Cursor movement: DOWN Go to the next group. UP Go to the previous group. Ctrl-V, Ctrl-D Scroll to the next page. ESC V, Ctrl-U Scroll to the previous page. ESC > Go to the bottom of the list. ESC < Go to the top of the list. / Group keyword search. Actions: SPACE, RETURN Enter the current newsgroup. * The following variations also download previously read articles: ESC 1 SPACE Enter group with article number query. ESC 2 SPACE Enter group, but do not apply score. ESC 3 SPACE Enter group with query, but without scoring. ESC 4 SPACE Enter the current newsgroup. P Post an article to the current newsgroup. ESC P Post or edit a postponed article. G Get new news from server. K Select scoring mode. . Repeat last key sequence. Ctrl-X ESC Read line and interpret it as S-Lang. Ctrl-Z Suspend slrn. q Quit slrn. Group management (affects newsrc file): c Catchup - Mark all articles as read. ESC u Un-Catchup - Mark all articles as unread. a Add a new newsgroup. s Subscribe to the current newsgroup. ESC 1 s Subscribe to groups matching a pattern. u Unsubscribe from the current newsgroup. ESC 1 u Unsubscribe from groups matching a pattern. m Move newsgroup to a different location. Ctrl-X, Ctrl-T Transpose position of groups. X Force a save of the newsrc file. Display: ESC a Toggle between group display formats. l Toggle display of groups without unread articles. L Toggle listing of unsubscribed groups. ESC 1 L Hide unsubscribed groups. ESC 2 L Show unsubscribed groups. Ctrl-L, Ctrl-R Redraw the screen. ? Display this help screen. [Article] Note: The keys are case sensitive! That is, 's' and 'S' are not the same. General movement: n Go to the next unread article (or next group, if at end). p Go to the previous unread article. N, ESC RIGHT Skip to next group. ESC LEFT Go to previous group. ! Go to the next article with a high score. = Go to the next article with the same subject. L Go to the last displayed article and display it. Actions: P Post a new article (no followup). ESC P Post or edit a postponed article. f Post a followup to the current article. ESC 1 f Include all headers in the followup. ESC 2 f Followup without modifying (e.g. quoting) the article. r Reply to poster (via email). F Forward the current article to someone (via email). ESC 1 F Forward the current article (including all headers). ESC Ctrl-S Supersede article (you have to be the author). ESC Ctrl-C Cancel article (you have to be the author). o Save article, tagged articles or thread to file. | Pipe article to an external program. y Print article (as displayed). ESC 1 y Print article (unwrapped and including hidden lines). #if SLRN_HAS_DECODE : Decode article, tagged articles or thread. #endif Ctrl-Z Suspend slrn. q Return to group display. Q Quit slrn immediately. Moving in the article pager: ESC DOWN Scroll article down one line. ESC UP Scroll article up one line. SPACE Scroll article down one page (or select next, if at end). DELETE, b Scroll article up one page. > Move to end of the article. < Move to beginning of the article. LEFT Pan article to the left. RIGHT Pan article to the right. / Search forward in the article. TAB Skip beyond quoted text. g Skip to next digest. Moving in the header display: DOWN, Ctrl-N Move to the next article. UP, Ctrl-P Move to the previous article. Ctrl-D Scroll down one page. Ctrl-U Scroll up one page. ESC > Go to the last article in group. ESC < Go to the first article in group. j Jump to article (by server number). a Author search forward. A Author search backward. s Subject search forward. S Subject search backward. Marking as read/unread: d Mark article or collapsed thread as read. u Mark article or collapsed thread as unread. ESC d Mark entire (sub-)thread as read. c Catchup - mark all articles as read. C Mark all articles up to the current position as read. ESC u Un-Catchup - mark all articles as unread. ESC U Mark all articles up to the current position as unread. x Remove all non-tagged read articles from the list. Article pager commands: t Show full headers (on/off). ESC r Decrypt ROT-13 (on/off). T Display quoted lines (on/off). \ Show signature (on/off). W Wrap long lines (on/off). #if SLRN_HAS_SPOILERS ESC ? Reveal spoilers. #endif ] Show PGP signature (on/off). #if SLRN_HAS_VERBATIM_MARKS [ Show verbatim marks (on/off). #endif Ctrl-^ Enlarge the article window. ^ Shrink the article window. z Maximize / Unmaximize the article window. h Hide / Show the article window. U Search for URLs and follow them. Header window commands: ESC t Collapse / Uncollapse thread. ESC 1 ESC t Collapse / Uncollapse all threads. ESC a Toggle between header display formats. ESC s Select threading and sorting method. Miscellaneous actions: K Create a scorefile entry interactively. ESC 1 K Edit scorefile. #if SLRN_HAS_SPOOL_SUPPORT m (Un-)mark article body for download by slrnpull. #endif v Show which scorefile rules matched the current article. * The following five commands query the server if necessary: ESC l Locate article by its Message-ID. ESC Ctrl-P Find all children of current article. ESC p Find parent article. ESC 1 ESC p Reconstruct thread (slow when run on large threads). ESC 2 ESC p Reconstruct thread (faster, may not find all articles). ; Set a mark at the current article. , Return to previously marked article. # Numerically tag article (for saving / decoding). ESC # Remove all numerical tags. * Protect article from catchup commands. ESC 1 * Remove all protection marks. . Repeat last key sequence. Ctrl-X ESC Read line and interpret it as S-Lang. #if SLRN_HAS_GROUPLENS 0 Rate article with GroupLens. #endif Ctrl-R, Ctrl-L Redraw screen. ? Display this help screen. slrn-1.0.1/doc/manual.txt000066400000000000000000004370201206520222400152530ustar00rootroot00000000000000 The slrn reference manual Matthias Friedrich Thomas Schultz Thomas Wiegner Peter J Ross Version pre1.0.0, July 2010 Using and customizing the slrn newsreader ______________________________________________________________________ Table of Contents 1. Introduction 1.1 Downloading slrn 1.2 Getting help 1.3 About this manual 1.3.1 History 2. Configuration 2.1 A brief introduction to the built-in S-Lang prompt 3. Command line switches 4. Environment variables 5. The slrn configuration file 5.1 Basics 5.2 Preprocessing of configuration files 5.2.1 #iffalse, #ifntrue 5.2.2 #iftrue, #ifnfalse 5.2.3 #if$ENV 5.2.4 #ifn$ENV 5.2.5 #if$ENV string1 string2 ... 5.2.6 #ifn$ENV string1 string2 ... 5.2.7 #ifdef SYMBOL1 SYMBOL1 5.2.8 #ifndef SYMBOL1 SYMBOL2 ... 5.3 Configuration commands 5.3.1 autobaud 5.3.2 charset 5.3.3 color 5.3.4 compatible_charsets 5.3.5 group_display_format 5.3.6 grouplens_add 5.3.7 header_display_format 5.3.8 ignore_quotes 5.3.9 include 5.3.10 interpret 5.3.11 mono 5.3.12 nnrpaccess 5.3.13 posting_host 5.3.14 server 5.3.15 set 5.3.16 setkey 5.3.17 strip_re_regexp 5.3.18 strip_sig_regexp 5.3.19 strip_was_regexp 5.3.20 unsetkey 5.3.21 visible_headers 6. Configuration variables 6.1 abort_unmodified_edits 6.2 art_help_line 6.3 art_status_line 6.4 auto_mark_article_as_read 6.5 beep 6.6 broken_xref 6.7 cansecret_file 6.8 cc_followup 6.9 cc_post_string 6.10 charset 6.11 check_new_groups 6.12 color_by_score 6.13 confirm_actions 6.14 custom_headers 6.15 custom_sort_by_threads 6.16 custom_sort_order 6.17 decode_directory 6.18 display_cursor_bar 6.19 drop_bogus_groups 6.20 editor_command 6.21 editor_uses_mime_charset 6.22 emphasized_text_mask 6.23 emphasized_text_mode 6.24 failed_posts_file 6.25 fallback_charset 6.26 fold_headers 6.27 followup_custom_headers 6.28 followup_date_format 6.29 followup_string 6.30 followup_strip_signature 6.31 followupto_string 6.32 force_authentication 6.33 generate_date_header 6.34 generate_email_from 6.35 generate_message_id 6.36 group_help_line 6.37 group_status_line 6.38 grouplens_host 6.39 grouplens_port 6.40 grouplens_pseudoname 6.41 header_help_line 6.42 header_status_line 6.43 hide_pgpsignature 6.44 hide_quotes 6.45 hide_signature 6.46 hide_verbatim_marks 6.47 hide_verbatim_text 6.48 highlight_unread_subjects 6.49 highlight_urls 6.50 hostname 6.51 ignore_signature 6.52 inews_program 6.53 invalid_header_score 6.54 kill_score 6.55 lines_per_update 6.56 macro_directory 6.57 mail_editor_command 6.58 mail_editor_is_mua 6.59 max_low_score 6.60 max_queued_groups 6.61 metamail_command 6.62 mime_charset 6.63 min_high_score 6.64 mouse 6.65 netiquette_warnings 6.66 new_subject_breaks_threads 6.67 no_autosave 6.68 no_backups 6.69 non_Xbrowser 6.70 organization 6.71 overview_date_format 6.72 post_editor_command 6.73 post_object 6.74 postpone_directory 6.75 prefer_head 6.76 printer_name 6.77 process_verbatim_marks 6.78 query_next_article 6.79 query_next_group 6.80 query_read_group_cutoff 6.81 quote_string 6.82 read_active 6.83 realname 6.84 reject_long_lines 6.85 reply_custom_headers 6.86 reply_string 6.87 replyto 6.88 save_directory 6.89 save_posts 6.90 save_replies 6.91 score_editor_command 6.92 scorefile 6.93 scroll_by_page 6.94 sendmail_command 6.95 server_object 6.96 show_article 6.97 show_thread_subject 6.98 signature 6.99 signoff_string 6.100 simulate_graphic_chars 6.101 smart_quote 6.102 sorting_method 6.103 spoiler_char 6.104 spoiler_display_mode 6.105 spool_active_file 6.106 spool_activetimes_file 6.107 spool_check_up_on_nov 6.108 spool_inn_root 6.109 spool_newsgroups_file 6.110 spool_nov_file 6.111 spool_nov_root 6.112 spool_overview_file 6.113 spool_root 6.114 supersedes_custom_headers 6.115 top_status_line 6.116 uncollapse_threads 6.117 unsubscribe_new_groups 6.118 use_blink 6.119 use_color 6.120 use_flow_control 6.121 use_grouplens 6.122 use_header_numbers 6.123 use_localtime 6.124 use_metamail 6.125 use_mime 6.126 use_recommended_msg_id 6.127 use_slrnpull 6.128 use_tilde 6.129 use_tmpdir 6.130 use_uudeview 6.131 username 6.132 warn_followup_to 6.133 wrap_flags 6.134 wrap_method 6.135 write_newsrc_flags 6.136 Xbrowser 7. Interactive functions 7.1 group functions 7.1.1 add_group 7.1.2 bob 7.1.3 catchup 7.1.4 eob 7.1.5 evaluate_cmd 7.1.6 group_search 7.1.7 group_search_backward 7.1.8 group_search_forward 7.1.9 help 7.1.10 line_down 7.1.11 line_up 7.1.12 move_group 7.1.13 page_down 7.1.14 page_up 7.1.15 post 7.1.16 post_postponed 7.1.17 quit 7.1.18 redraw 7.1.19 refresh_groups 7.1.20 repeat_last_key 7.1.21 save_newsrc 7.1.22 select_group 7.1.23 subscribe 7.1.24 suspend 7.1.25 toggle_group_formats 7.1.26 toggle_hidden 7.1.27 toggle_list_all 7.1.28 toggle_scoring 7.1.29 transpose_groups 7.1.30 uncatchup 7.1.31 unsubscribe 7.2 article functions 7.2.1 article_bob 7.2.2 article_eob 7.2.3 article_left 7.2.4 article_line_down 7.2.5 article_line_up 7.2.6 article_page_down 7.2.7 article_page_up 7.2.8 article_right 7.2.9 article_search 7.2.10 author_search_backward 7.2.11 author_search_forward 7.2.12 browse_url 7.2.13 cancel 7.2.14 catchup 7.2.15 catchup_all 7.2.16 create_score 7.2.17 decode 7.2.18 delete 7.2.19 delete_thread 7.2.20 enlarge_article_window 7.2.21 evaluate_cmd 7.2.22 exchange_mark 7.2.23 expunge 7.2.24 fast_quit 7.2.25 followup 7.2.26 forward 7.2.27 forward_digest 7.2.28 get_children_headers 7.2.29 get_parent_header 7.2.30 grouplens_rate_article 7.2.31 goto_article 7.2.32 goto_last_read 7.2.33 header_bob 7.2.34 header_eob 7.2.35 header_line_down 7.2.36 header_line_up 7.2.37 header_page_down 7.2.38 header_page_up 7.2.39 help 7.2.40 hide_article 7.2.41 locate_article 7.2.42 mark_spot 7.2.43 next 7.2.44 next_high_score 7.2.45 next_same_subject 7.2.46 pipe 7.2.47 post 7.2.48 post_postponed 7.2.49 previous 7.2.50 print 7.2.51 quit 7.2.52 redraw 7.2.53 repeat_last_key 7.2.54 reply 7.2.55 request 7.2.56 save 7.2.57 show_spoilers 7.2.58 shrink_article_window 7.2.59 skip_quotes 7.2.60 skip_to_next_group 7.2.61 skip_to_previous_group 7.2.62 subject_search_backward 7.2.63 subject_search_forward 7.2.64 supersede 7.2.65 suspend 7.2.66 tag_header 7.2.67 toggle_collapse_threads 7.2.68 toggle_header_formats 7.2.69 toggle_header_tag 7.2.70 toggle_headers 7.2.71 toggle_pgpsignature 7.2.72 toggle_quotes 7.2.73 toggle_rot13 7.2.74 toggle_signature 7.2.75 toggle_sort 7.2.76 toggle_verbatim_marks 7.2.77 toggle_verbatim_text 7.2.78 uncatchup 7.2.79 uncatchup_all 7.2.80 undelete 7.2.81 untag_headers 7.2.82 view_scores 7.2.83 wrap_article 7.2.84 zoom_article_window 7.3 readline functions 7.3.1 bdel 7.3.2 bol 7.3.3 complete 7.3.4 cycle 7.3.5 del 7.3.6 delbol 7.3.7 delbow 7.3.8 deleol 7.3.9 down 7.3.10 enter 7.3.11 eol 7.3.12 left 7.3.13 quoted_insert 7.3.14 right 7.3.15 self_insert 7.3.16 trim 7.3.17 up ______________________________________________________________________ 1. Introduction slrn (``S-Lang read news'') is a newsreader, i.e. a program that accesses a newsserver to read messages from the Internet News service (also known as ``Usenet''). It runs in console mode on various Unix- like systems (including Linux), 32-bit Windows, OS/2, BeOS and VMS. Beside the usual features of a newsreader, slrn supports scoring rules to highlight, sort or kill articles based on information from their header. It is highly customizable, allows free key-bindings and can easily be extended using the sophisticated S-Lang macro language. Offline reading is possible by using either slrnpull (shipped with slrn) or a local newsserver (like leafnode or INN). 1.1. Downloading slrn Directions for downloading the latest version of slrn are available from the slrn web site at . If you are running Linux, slrn is probably included in your distribution. However, please note that some distributors modify the sources; in this case, slrn might not always behave as it is described here. 1.2. Getting help First of all, please read the documentation found in this file and in the slrn FAQs at . Questions not covered by the docs are on-topic in news.software.readers. If you speak German, you also might want to subscribe to de.comm.software.newsreader. slrn-user is a mailing list for discussion of the use, development and extension of slrn. You can subscribe to it through the web interface at . To keep track of slrn's development, simply subscribe to slrn- announce. It is a moderated list that informs you about new releases, important bugfixes or major changes to the website. The subscription address is . All announcements are also mailed to slrn-user, so there is no need to read both lists. 1.3. About this manual This manual is the official reference for using and customizing the slrn newsreader. If you find that slrn behaves differently than described here, it means you found a bug (either in this manual or in slrn itself) and should report it. The manual is written in SGML using the ``linuxdoc'' DTD and has been ``rendered'' using the linuxdoc-tools package. The manual and other official documentation have their own web page at where you can find these files in several different formats, as well as instructions on how to get the latest development version (which might be useful if you need documentation for a developer version of slrn). If you want to contribute to the manual (e.g. write additional chapters), please contact us, either privately or via the slrn-user mailing list at . We also appreciate feedback about errors, bad language or suggestions concerning this manual. 1.3.1. History This manual was started by Matthias Friedrich and Thomas Schultz in 1999 since there was no up-to-date end-user documentation available. As of version 0.9.7.0, it has been part of the official documentation. Since they first started it, the manual has undergone the following revisions: 2008-07-04: Revision 2.7 Updated the manual for changes in version 0.9.9. 2004-10-04: Revision 2.6 Added a brief introduction to the S-Lang prompt within slrn and updated the manual for version 0.9.8.1. 2003-08-25: Revision 2.5 Updated the manual for version 0.9.8.0. 2002-04-31: Revision 2.4 Added a section that describes the ``preprocessing'' facility and changed the manual's structure. 2002-03-13: Revision 2.3 Updated the manual for version 0.9.7.4. 2001-11-05: Revision 2.2 Updated the manual for version 0.9.7.3. 2001-08-20: Revision 2.1 Updated the manual for slrn 0.9.7.2; added a section about the functions of the ``readline'' interface. 2001-06-06: Revision 2 Added a section that describes all interactive functions and updated the manual for slrn 0.9.7.1. 2001-03-28: Revision 1.1 Manual updated to reflect the changes in slrn 0.9.7.0. 2000-09-27: Revision 1 First public release, explaining all slrnrc commands, configuration and environment variables and command line switches. 2. Configuration Basically, there are four ways to change slrn's behaviour: o ``environment variables'' o ``a global configuration file'' o ``a personal configuration file'' o ``command line options'' The list is sorted by priority - environment variables are overridden by settings in configuration files that are in turn overridden by command line options. Have a look at the following chapters for a detailed description of the above configuration facilities. Note: Please do not use options that are called ``obsolete'' in this manual. They are only included for backwards compatibility and will probably be removed before version 1.0 is released. 2.1. A brief introduction to the built-in S-Lang prompt When trying various configuration settings, you may find it quite inconvenient to constantly toggle between slrn and your editor and to restart slrn each time you made a change. Maybe you also want to play around with some settings without making (permanent) changes to your config file. In these cases, making yourself familiar with the built- in S-Lang prompt of slrn can be worthwhile. You get to the prompt by calling ``evaluate_cmd'' (by default bound to ``CTRL-X ESC'') in either group or article mode. You will notice that the bottom status line changes and displays S-Lang> - behind that prompt, you can enter your commands. Basically, you can do anything here that you could do in a macro, so if you want to explore the full capabilities of this prompt, you'll have to read the documentation that comes with S-Lang and look at the file slrnfuns.txt that comes with slrn. However, you can also do some simple things without understanding much about S-Lang: o To find out the current value of a config variable, use a command like this one: message(string(get_variable_value("use_metamail"))) After this, the current value of the variable will appear in the bot- tom status line. By the way, the call to string() is only needed when querying an integer variable, so you can omit it if you want when get- ting the value of a string variable. o If you want to set a config variable at runtime, you need to know whether its type is integer or string (if in doubt, look it up in this manual). To set a variable, use something like set_integer_variable("use_metamail", 0) % for integer variables set_string_variable("metamail_command", "metamutt") % for string variables Note that changing a variable does not always have an immediate effect: For example, changing ``sorting_method'' does not automati- cally imply a re-sorting of the articles. By the way, you can call the intrinsic function sort_by_sorting_method from the S-Lang prompt afterwards in this specific case. o You can also load macros dynamically using a line like () = evalfile("my-macro.sl") Note that you need those funny leading brackets and the equals sign in this case, because evalfile returns 1 on success. Using the given notation, we simply ignore the returned value. If we didn't do any- thing with it, it would be left on the stack and when this happens too often, you'll get a stack overflow at some point. If you really want to understand this, please read the file slang.txt that comes with the S-Lang documentation. Otherwise, simply use the notation given here. 3. Command line switches The following options can be used when calling slrn from the command line: -a Read active file when checking for new news. This can be permanently turned on by setting ``read_active'' to 1. -C Use colors without checking if the terminal supports it. -C- Don't use colors, even if the terminal supports it. -d Get group descriptions (taglines) from the news server. Please note that this may cause a download of several hundred kilobytes and thus can take a long time. The output is saved to a local file, so you only need to do this once. May not be specified in combination with ``--create''. -Dname Add name to the list of predefined preprocessing tokens, which can be used in your slrnrc file to have conditionally interpreted lines. For example, you can use the following slrnrc entry if you want to read mailing lists (stored as MH mail directories in /home/username/Mail/) with slrn -DMAIL: #ifdef MAIL set spool_inn_root "/home/username/Mail" set spool_root "/home/username/Mail" set spool_nov_root "/home/username/Mail" set server_object "spool" set read_active 1 server "/home/username/Mail" ".jnewsrc.mail" #endif Similarly, you can test if a given environment variable is set: #if$DISPLAY set editor_command "xjed '%s' -g %d -tmp" #endif -f file Use file as the newsrc file for this session. This is permanently set via the ``server'' configuration command. -h [snews://]host[:port] Connect to the NNTP server on host, overriding the $NNTPSERVER environment variable. If no port is given, the default NNTP port (119) will be used. The prefix snews:// indicates that slrn should attempt a secure connection. This will result in an error message when SSL support is not compiled in. Like -p, this option is only accepted after --nntp or when NNTP is the default mode. -i file Read file as the initialization (slrnrc) file. The default is to use .slrnrc (or slrn.rc on VMS, OS/2 and Windows) in your home directory. -k Don't read the ``score file''. -k0 Read the score file, but inhibit ``expensive'' scoring. A scoring rule is ``expensive'' if it contains header lines that are not included in the server's overview files. This makes applying them slow. -n Do not check for new groups (usually resulting in a faster startup). You can permanently set this via ``check_new_groups''. -m Force mouse support (without checking if it works on the current terminal). To permanently activate mouse support, you can use the ``mouse'' configuration variable. -p N Use port N to connect to the NNTP server. -w Wait for a key before switching to full screen mode. This is useful if you want to read the startup messages. -w0 Like -w, but only waits if a warning or error message occurred on startup (e.g. an expired scorefile entry or a bogus group) --create Read the active file (the list of all groups) from the news server to create an initial newsrc file. --debug file Write debugging output to file. In NNTP mode, this logs the dialog with the server; the spool backend currently only uses this for error messages. --help Show help for command line switches. --inews Use an external ``inews program'' to post articles. --kill-log file Keep a log of all articles that were killed by the scorefile in file. --nntp Use builtin NNTP support for reading and posting (an external program is used to post if the ``force inews'' compile time option is set). --pull Spool outgoing articles locally for slrnpull to send. --show-config Print version, some compile time settings, internal variables after parsing the slrnrc, and environment variables used by slrn. --spool Read directly from spool. --version Print version and some compile time settings. 4. Environment variables This section contains a list of all environment variables that are relevant for slrn. Please note that environment variables have a low priority. They can be overridden by both configuration file and command line switches. COLORTERM If this variable is set, slrn will assume that your terminal supports ``ANSI color sequences''. It also enables a workaround for a problem with the ``mouse reporting'' when running slrn inside of an rxvt. DISPLAY If set, slrn assumes that X11 is running and uses ``Xbrowser'' when browsing a URL. Otherwise, ``non_Xbrowser'' is called. EDITOR See ``$SLRN_EDITOR''. HOME See ``$SLRNHOME''. HOSTNAME If no ``hostname'' is given, the value of this environment variable is used. As a last resort, slrn will call gethostname(3), gethostbyname(3) and getaddrinfo(3) (if available) to find a value it can work with. The hostname can also be hardcoded when building slrn (see OUR_HOSTNAME in slrnfeat.h). The value of OUR_HOSTNAME can either be the hostname as a string or the name of a file containing the hostname. Note that the environment variable overrides the hardcoded default and that the configuration variable overrides both. LOGNAME See ``$USER''. NAME If you did not set ``realname'', slrn tries to get a value from $NAME. On Unix systems, it also queries the /etc/passwd gecos field. NNTPSERVER You can use this variable to tell slrn which NNTP server to connect to. It can be overridden by the command line option ``-h''. It is possible to compile in a default setting in case the user does not set $NNTPSERVER. This is done in slrnfeat.h by either setting NNTPSERVER_FILE to the name of a file containing the hostname or by directly setting NNTPSERVER_NAME to the hostname. In case both are defined, slrn first tries to read the file and only uses NNTPSERVER_NAME as a fallback. ORGANIZATION If ``organization'' is unset, the value of this variable is used. It overrides the compile time setting of OUR_ORGANIZATION (default is unset) in slrnfeat.h. Both the environment variable and the compile time default can optionally point to a file from which the organization line will be read. PRINTER On Unix systems, slrn pipes the current article to an external program in order to print it. If you do not specify the program using ``printer_name'', it uses ``lpr -P$PRINTER'' as the default. PWD This variable is only used on Unix systems that don't support getcwd(3). In these cases, it should be set to the current directory at the time slrn is invoked. This is usually nothing the user has to worry about. REPLYTO The value of this variable is used as the default if you do not set ``replyto'' in your slrnrc file. SLANG_EDITOR See ``$SLRN_EDITOR''. SLRNHELP The help window you get when hitting ``?'' inside slrn shows the default key bindings, which may or may not be the ones you are currently using. This is why slrn allows you to change the help text by creating a ``help file'' and letting $SLRNHELP point to it (the absolute filename is needed here). If $SLRNHELP is unset, slrn tries to read help.txt in the config directory. Your slrn distribution should include the file help.txt which you can copy and modify to suit your needs. It also serves as an example of the syntax of slrn help files. SLRNHOME When interpreting filenames as relative to your home directory, slrn uses this variable to find out what your home directory is. If $SLRNHOME is unset, $HOME is used instead. SLRNPULL_ROOT If you want to use slrnpull, you need to define a directory where it will look for its configuration files and spool the articles. An absolute filename is needed here. There is a compile time default for it in slrnfeat.h (SLRNPULL_ROOT_DIR, default: "/var/spool/news/slrnpull"), which can be overridden by the environment variable $SLRNPULL_ROOT. If an alternate root directory is given via the command line parameter ``-d'', it overrides both. SLRN_EDITOR If you did not define an editor in ``editor_command'' et al, slrn checks this variable. If it is unset, slrn subsequently looks at $SLANG_EDITOR, $EDITOR and $VISUAL. The last desperate call goes to edit (VMS and Windows), e (OS/2) or vi (Unix). SLRN_SLANG_DIR If set slrn will search for S-Lang macros here. If not set slrn will search in the default path, which is defined at compile time (usually /share/slrn/slang). TMP Indicates the directory in which slrn should save temporary files. If it is unset or does not contain an existing directory, $TMPDIR is tried. If both are unset, /tmp is used on UNIX systems, the current working directory on OS/2 and Windows and SYS$LOGIN: on VMS. An exception to this are temporary files created to invoke ``metamail''. In this case, $TMP is only queried on OS/2 and Windows NT. TMPDIR See ``$TMP''. USER If ``username'' is unset, slrn tries to get your login name from the system first. If this fails, it looks at $USER and $LOGNAME. VISUAL See ``$SLRN_EDITOR''. 5. The slrn configuration file 5.1. Basics Most customizations in slrn are done using an initialization file. If your administrator wanted to provide reasonable defaults for your system, he might have created a global configuration file. When reading such a file, slrn tells you its filename at startup (use ``slrn -w'' if you want to read the startup messages easily). The right place for your own settings is your personal configuration file, which by default is .slrnrc (or slrn.rc on VMS, OS/2 and Windows) in your home directory. It is possible to override settings from the global file here. An slrn configuration file consists of ``configuration commands'', each one on a line of its own. Most commands require arguments that can be either strings or integer values. If a string contains whitespace, you have to enclose it in double quotes ("). The percent sign (%) is used as the comment character. From this character on, everything else on the same line will be ignored. Example: % Name of signature file to use set signature ".signature" If you set the same variable more than once in your configuration file, the last setting will take effect. The easiest way to build a personal configuration file is to make a copy of the annotated sample slrn.rc that is included in the slrn distribution and to tailor it to your needs. This manual contains a list of all ``configuration commands'' and ``variables''. 5.2. Preprocessing of configuration files slrn uses routines from libslang to parse its configuration files. Among other things, a simple preprocessing facility similar to cpp(1) is provided that makes it possible to use a number of conditions in your configuration files. Apart from minor syntactic differences, this is how they are used: #if... % Configuration commands to use if the condition is true. #elif... % ``else if'' % Commands to use if the first condition is false but % the above condition is true. #else % Execute these commands if none of the above conditions % were true. This is the fallback case. #endif As usual, you can only use one ``#if'' condition, any number of ``#elif'' conditions (including none) and up to one ``#else'' state- ment. If the ``#endif'' statement is missing, everything up to the end of the file is included. Conditions may be nested, but you may not use whitespace in front of the ``#'' characters. However, whitespace may be used freely after the leading ``#'' which is useful for indenting. 5.2.1. #iffalse, #ifntrue The equivalent of ``#if 0'' in cpp(1) which always returns false. This can be used to deactivate a part of your configuration without having to set a comment character (``%'') in front of each line. Example: #iffalse This code will never be included in your configuration file. #endif 5.2.2. #iftrue, #ifnfalse The inverse of ``iffalse''. This condition is always true which means that configuration commands in this block will always be executed. 5.2.3. #if$ENV This condition is true if the environment variable $ENV is set. Example: #if$DISPLAY % The environment variable DISPLAY is set, so we assume % that X is running and use an editor with GUI. set editor_command "gvim +%d %s" #else % DISPLAY is unset, so we fall back to a textmode editor set editor_command "vi +%d %s" #endif 5.2.4. #ifn$ENV This condition is true if the environment variable ENV is not set. 5.2.5. #if$ENV string1 string2 ... The condition is true if the contents of the environment variable ENV are equal to at least one of its argument strings. The arguments have to be separated using whitespace. There is no quoting mechanism for space or tabulator characters. Example: #if$TERM rxvt % In my rxvt, ``default'' is a light background; % ``color15'' is re-defined as a dark shade of blue. color normal "black" "default" color headers "color15" "default" color thread_number "blue" "default" % [...] More color settings follow #elif$TERM linux wsvt* % On the Linux or NetBSD console, I prefer a black background % to reduce flickering: color normal "lightgray" "black" color headers "brightblue" "black" color thread_number "brown" "black" % [...] More color settings follow #endif The strings may contain wildcard characters. The ``?'' character matches an arbitrary single character and ``*'' matches any number of characters (including none). To use them literally, you have to escape them with a backslash (``\*'' and ``\?''). The backslash itself also has to be escaped when used literally (``\\''). 5.2.6. #ifn$ENV string1 string2 ... The condition is true if the contents of the environment variable ENV are equal to none of its argument strings. The arguments have to be separated using whitespace. There is no quoting mechanism for space or tabulator characters. As with ``#if$ENV'', wildcards can be used. 5.2.7. #ifdef SYMBOL1 SYMBOL1 This condition is true if any of its arguments is a defined preprocessor symbol. You can define symbol using the ``-D'' command line switch. Depending on the operating system, one of the following symbols is defined: ``UNIX'', ``WIN32'', ``NT'', ``VMS'', ``OS2''. Example: #ifdef UNIX % On Unix, printer_name is the command to use for printing set printer_name "lpr -Pmy_printer" #elifdef WIN32 % On Win32, printer_name is set to the print queue set printer_name "MyPrinter" #endif 5.2.8. #ifndef SYMBOL1 SYMBOL2 ... This condition is true if none of its arguments is a defined preprocessor symbol. 5.3. Configuration commands 5.3.1. autobaud Usage: autobaud Default: off The autobaud command may be used to synchronize the output rate slrn uses to the terminal baud rate. 5.3.2. charset Usage: charset option charset option can be one of these: display slrn will use this character set when displaying articles. Default: detected from locale settings if supported by OS. (autodetection not supported in (cyg)win) outgoing This setting will be used for the charset encoding of outgoing articles and emails. Setting a value like "iso-8859-15,utf-8" is possible; slrn will try the settings from left to right and use the first for which encoding succeeds. config Set this value if your .slrnrc contains non-ascii characters. Default: us-ascii editor Set this value if the encoding your editor uses is different from the locale setting. Default: value from charset display 5.3.3. color Usage: color display_element foreground background [attributes] If your terminal supports ANSI color sequences, you can use the color command to define your own color scheme. You can assign a different color to almost every element on your screen. display_element can be one of these: article Regular text in the article body. author The author's name / email address in header overview. boldtext Text in the article body that is interpreted as *bold*. box Text inside of selection boxes (like the one you see when choosing a sorting mode). cursor The cursor you see in the group window and in header overview. date The article date in the header overview. description The group descriptions (taglines) in group window. error Error messages in the bottom line. frame The frame around selection boxes (see also: ``box''). from_myself The ``From:'' header line or realname in header overview, in case it contains your ``name''. group The group names in group window. grouplens_display ``GroupLens'' scores. header_name The name of header lines in the pager (e.g. ``From:''). header_number The header number in header overview. headers The content of header lines in the pager. high_score The exclamation mark (``!'') used to denote ``high scoring'' articles in header overview. italicstext Text in the article body that is interpreted as /italic/. menu The first line of your display. If ``mouse reporting'' is turned on, it contains a menu. menu_press A menu item while you click on it. message The messages and prompts in the bottom line of the screen. neg_score The subject / score of articles with a negative score value, depending on the setting of ``color_by_score''. normal Everything that does not have its own color object. pos_score The subject / score of articles with a positive score value, depending on the setting of ``color_by_score''. pgpsignature ``PGP signatures'' appended to the article body. quotes ``Quoted text'' in the article body. It is now possible to distinguish up to 8 levels of quoted material by using color objects ``quotes0'' to ``quotes7''. response_char The highlighted character you need to press if you want to make a selection (e.g. in ``[Y]es or [N]o?''). selection The ``cursor'' used in selection boxes (see also: ``box''). signature ``Signatures'' appended to the article body. status The status lines slrn displays. subject The subject in header overview (see also: ``unread_subject''). thread_number The number of articles in the thread (displayed in header overview next to collapsed threads). tilde The ``tilde'' displayed at the end of the article body. tree The thread tree drawn in the header overview. underlinetext Text in the article body that is interpreted as _underlined_. unread_subject Color for unread subjects. Please see the entry on ``highlight_unread_subjects'' for details. url Used to ``highlight URLs'' in the article body. verbatim Text in the article body enclosed by ``verbatim marks''. The foreground and background colors have to be set to one of the following strings: black gray red brightred green brightgreen brown yellow blue brightblue magenta brightmagenta cyan brightcyan lightgray white Additionally, you can use the default foreground / background colors of your terminal via the keyword ``default''. Please note that the colors in the right column are all ``bright'' (or ``bold''). On many terminals, they can only be used for the foreground. If you think your terminal has more than 8 background colors, but slrn refuses to use them, you might need to chose a different terminfo entry. On modern xterms and rxvt, setting $TERM to xterm-16color should work. Some terminals support more than 16 colors, and slrn can then use 256 colors when compiled against slang-2. The additional values for foreground and background colors are specified as colorN, where N is a decimal number from 0 to 256. In this case, $TERM may need to be set to xterm-256color. After the color settings, you can optionally use attributes (like underline and bold) the same way you would specify them using the ``mono'' command (see there for details). A sample color scheme (which simply sets the colors to their compile time default) can be found in the slrn.rc file that should have come with your slrn distribution. 5.3.4. compatible_charsets This command is obsolete, use ``charset'' instead. 5.3.5. group_display_format Usage: group_display_format number format-string This command allows you to change the way the groups are presented to you in the group window. You can save up to 10 different formats and switch among them using ``toggle_group_formats'' (default binding: ESC a). The default settings are: group_display_format 0 " %F%-5u %n%45g%d" group_display_format 1 " %F%-5u %n%50g%-8l-%h" group_display_format 2 " %F%-5u [%-6t] %n" number is the number of the format (0-9). The following % escapes can be used: F Group flag (`U' for unsubscribed, `N' for new) d Group description (needs to be downloaded once with slrn -d) h ``High water mark'' (highest article number in the group) l ``Low water mark'' (lowest article number in the group) n Group name t Total number of articles in the group (estimate) u Number of unread articles in the group The special descriptors ``%g'' and ``%?'' work like in ``header_display_format''. 5.3.6. grouplens_add Usage: grouplens_add newsgroup Add newsgroup to the list of groups for which you want to download GroupLens scores. 5.3.7. header_display_format Usage: header_display_format number format-string This command can be used to customize the way article headers are presented in the header overview in article mode. You can specify up to 10 different formats and switch among them using ``toggle_header_formats'' (default binding: ESC a). This command may also be used with a prefix argument to select a particular format, e.g., ESC 0 ESC a will select the 0th format. Here are slrn's default settings: header_display_format 0 "%F%B%-5S%G%-5l:[%12r]%t%s" header_display_format 1 "%F%B%G%-5l:[%12r]%t%s" header_display_format 2 "%F%B%-5l:%t%s" header_display_format 3 "%F%B%-5S%-5l:%t%50s %r" header_display_format 4 "%F%B%-5S [%10r]:%t%49s %-19g[%17d]" number is the number of the format (0-9). format-string is a string containing printf(3) style % escapes. This is the generic format: %[[-*]w]x The brackets indicate optional items: w may consist of one or more digits and specifies the width of the field. In fields with a fixed width, the minus sign (-) can be used to right justify an item, the asterisk (*) to center justify it. Please note that these modifiers have no effect if the text does not fit into the field. The item specifier (x) is required and, depending on its value, has the following meaning: % percent character B body status for true offline reading: 'H' means no body (header only), 'M' means body is marked for download C prints `C' if current thread is collapsed D date (as defined by overview_date_format) F flags (read/unread, `*' and `#' tags, header number) G GroupLens score P prints `P' if current article has a parent (inside threads) S score T thread tree b article size (usually in kilobyte) c number of messages in current subthread d date f from header l article length (number of lines) n server number r author's real name s subject t number of messages in thread plus tree Additionally, the special format descriptor %Xg can be used. It is not substituted by text, but specifies that the next write on the screen should take place in column X (numbered from 0). If X is negative, the cursor is placed X columns from the right edge of the window. Thus, "%F%-5l:%t%s%-20g %r" indicates that the header window will contain (in that order): the flags, the number of lines the article contains (right justified in a 5 character field), a `:', the tree, the subject, and, beginning 20 columns from the right edge of the window and separated by a blank, the author's real name. A %? construct can be used to print a string only if one of the above descriptors expands to a non-zero string (i.e. one that is not empty and does not contain only a single whitespace or the number `0'). It has the following syntax: %??? %??&? You can use escape sequences in optional strings; however, it is not possible to nest them, nor to have literal `?' or `&' characters in them. Example: If you want to display the number of messages for collapsed threads and the number of lines in the message otherwise, you can use the following: %?C?%-3c&%-3l? Note: The descriptor %b automatically choses a ``unit'' (bytes / kilobytes / megabytes) and works best when given four characters of space, i.e. %-4b. The descriptors %t and %T write directly to the screen, so they cannot be ``tested'' with the %? operator and ignore the requested field width (i.e. ``%10t'' is the same as ``%t''; the ``10'' is ignored). The descriptor %t is included for backwards compatibility and equivalent to ``%?C?%-3c& ? %T''. See also: ``group_display_format'', ``overview_date_format'' 5.3.8. ignore_quotes Usage: ignore_quotes pattern [pattern] ... The regular expressions given here are used to determine quoted lines in the body of an article. You can define up to 5 different patterns (this is meant to make up for the lack of an OR operator in S-Lang regexps). Please try to keep them as exact as possible, so that slrn is able to distinguish different quoting levels - e.g. use ``^>'' rather than ``^>*''. By default, only one pattern is set: ``^ ? ?[><:=|]'' 5.3.9. include Usage: include filename You can use this command to load an additional file that contains configuration commands. With this feature, you can easily keep startup files for different key bindings, colors etc. filename is relative to your home directory (see ``$SLRNHOME''). This can safely be done multiple times and recursively. Example: include ".slrnrc-colors" 5.3.10. interpret Usage: interpret filename This command loads and executes an S-Lang macro file. filename may be an absolute or relative path. Relative paths are resolved by checking first your ``macro_directory'' if set, then $SLRNHOME if set, then $HOME, and finally the default directory set at compile-time for the macros included with slrn. This command has no effect if the S-Lang interpreter has been deactivated at compile time. 5.3.11. mono Usage: mono display_element attributes You can use this command to customize slrn's appearence on monochrome displays. See section ``color'' for a description of display_element. attributes can be one of o bold o blink o underline o reverse or ``none'' to turn off video attributes. The attributes can also be combined (simply separate them with blanks). You can find sample settings in the slrn.rc file that should have come with your slrn distribution. If you don't like blinking, you can turn it off altogether via ``use_blink''. If you run slrn with colors, these settings will not have any effect. 5.3.12. nnrpaccess Usage: nnrpaccess host[:port] username password This command can be used to set the necessary data for servers that request NNRP authentification. host is the full hostname of the server. If you do not feel comfortable with leaving your password written on disk, you might want to set the password (and optionally the username as well) to an empty string (""). slrn will then prompt for it on startup. If your server requires a username, but no password, set it to a blank (" ") and you won't be prompted. 5.3.13. posting_host Usage: posting_host hostname The hostname specified in this command will be used to generate Message-IDs. Please note that it is usually not necessary to set this manually, as slrn uses the fully-qualified domain name of the machine it is running on for this task, which is the correct solution in most cases. However, if your system is part of a local network, it might not have an official hostname. As the current MESSFOR draft permits the use of hostnames without a DNS record for Message-ID generation, some providers started to give each user a unique hostname that may be used here. Note: Do not use this command unless you fully understand the implications. Specifically, do not enter an arbitrary string here! Instead, please turn off ``generate_message_id'' if the hostname found by slrn is not unique. 5.3.14. server Usage: server nntp-server[:port] newsrc-file By default, slrn uses .jnewsrc in your home directory (jnews.rc on VMS, OS/2 and Windows) as its newsrc file. If you want to define a different filename for it or if you want to access more than one server, you can use this command. It tells slrn to use newsrc-file when connecting to nntp-server (which has to be the full hostname of the server and an optional port number or, if you are reading from spool, the path of the spool directory). If your server requires a password, you will also need to use the ``nnrpaccess'' command. 5.3.15. set Usage: set varname value The set command is used to assign values to the ``configuration variables'' described below. varname has to be a valid variable name. value is either a string (best enclosed in double quotes ``"'') or an integer value (number), depending on the variable. Example: set realname "Matthias Friedrich" set kill_score -9999 Note: If you set a variable which controls a feature that has not been compiled in, slrn will not give you an error message. The setting will simply remain without an effect. 5.3.16. setkey Usage: setkey keymap function key-sequence This command allows you to map slrn's functions to keys. There are three different keymaps: The ``group'' keymap contains all functions in group mode, ``article'' contains the functions in article mode (note that header overview and pager do not have separate keymaps); finally, the ``readline'' keymap can be used to customize the line editor. function specifies the function that is executed when key-sequence is pressed. In key-sequence, special keys can be addressed in different ways. First of all, the control key plus a character C is written as ^C. The special function keys found on most keyboards have the following (case insensitive) names: Additionally, the keys through denote the function keys. When you use these symbolic names, slrn uses the terminfo database (if available) to look up the key sequences generated be those keys, so if these names do not seem to work, make sure you selected the correct terminal (e.g. via the $TERM environment variable). Alternatively, you can specify special keys by entering the key sequence they generate directly. To do this, the following shortcuts may be useful: \e escape \r return \\ backslash \NNN the key sending keycode (octal) NNN A full list of available functions can be found in sections ``group functions'' and ``article functions''. 5.3.17. strip_re_regexp Usage: strip_re_regexp pattern [pattern] ... Here, you can define up to 5 different regular expressions to detect non-standard back references created by broken user agents. They will be stripped on followups. By default, slrn only checks for the standard ``Re:''. This test is performed before strip_re_regexp is even tried and it cannot be turned off. Note: This variable does not affect the way slrn sorts subjects. For example, ``subject'' and ``Re: subject'' are equivalent when sorting; ``subject'' and ``AW: subject'' are not, even if you defined ``^AW:'' in strip_re_regexp. The reason for this is that it would be too expensive to do a full regexp search whenever comparing subjects. 5.3.18. strip_sig_regexp Usage: strip_sig_regexp pattern [pattern] ... slrn itself makes sure that you use the signature delimiter that current drafts prescribe (``-- '' - mind the trailing space!). If you want it to recognize different delimiters as well (e.g. ones created by broken software), you can use this command to define (up to five) regular expressions that match them. 5.3.19. strip_was_regexp Usage: strip_was_regexp pattern [pattern] ... When changing the ``Subject:'' header line, some people follow a convention and include the old subject in brackets (e.g. ``new subject (was: old subject)''). You can use this command to strip the old subject automatically on followups and when creating scorefile entries based on the subject (so it will still match when the old subject is stripped). To do this, I recommend the setting `` ?(was:.*)$''. Note: This variable does not affect sorting. See ``strip_re_regexp'' for an explanation. 5.3.20. unsetkey Usage: unsetkey keymap key-sequence The unsetkey command undoes a key binding. Please see ``setkey'' for more information. Example: unsetkey group "\e" 5.3.21. visible_headers Usage: visible_headers header_lines With this command, you can specify a comma-separated list of header_lines that should still be visible in the article pager when the display of all headers is turned off (this is toggled via ``toggle_headers'', by default bound to `t'). Note that the strings are not regular expressions. However, substrings can be used; e.g. ``X-'' matches all headers beginning with ``X-''. It's also possible to exclude certain headers by preceding them with a bang (`!'). If multiple entries match, the last one decides whether or not the header is displayed, so ``X-,!X-Trace:'' shows all X-headers except ``X-Trace:''. Headers mentioned in visible_headers that don't occur in the article are silently ignored. Example: visible_headers "From:,Subject:,Newsgroups:,Followup-To:,Reply-To:" 6. Configuration variables The following variables can be set using the ``set'' configuration command: 6.1. abort_unmodified_edits Type: integer Default: 0 If non-zero, slrn aborts posting or email operations if the user did not modify the article. See also: ``editor_command'', ``post_editor_command'', ``mail_editor_command'' 6.2. art_help_line Type: string Default: (unset) This string is displayed in the bottom line while you are reading an article. It is intended as a quick help when you cannot remember what key to press ;-) If unset, the following line is used (localized): SPC:Pgdn B:PgUp u:Un-Mark-as-Read f:Followup n:Next p:Prev q:Quit See also: ``group_help_line'', ``header_help_line'' 6.3. art_status_line Type: string Default: (unset) This variable can be used to customize the status line of the article pager. It accepts all % escapes that work for ``header_display_format'' plus the ones listed here: H Prints `H' unless headers are hidden I Prints `P' unless PGP signatures are hidden L Current line (e.g. "1/18") P Percentage of the way through the article Q Prints `Q' unless quotes are hidden T Prints `S' unless signatures are hidden V Prints `V' unless verbatim text is hidden W Prints `W' if wrapping is enabled p Prints `<' if the window is panned (scrolled horizontally) v Prints `v' unless verbatim marks are hidden When unset, slrn uses "%p%n : %s %-20g -- %L (%P)" (localized). See also: ``group_status_line'', ``header_status_line'', ``top_status_line'' 6.4. auto_mark_article_as_read Type: integer Default: 1 If non-zero, every article you open will automatically be marked as read. 6.5. beep Type: integer Default: 1 This variable controls how slrn tries to get your attention. 0 do not beep 1 send audible bell 2 send visible bell 3 send both visible and audible bell 6.6. broken_xref Type: integer Default: 0 When you set this variable to a non-zero value, slrn requests articles by Message-ID instead of header number. This provides support for servers with broken "Xref:" headers and should otherwise be left untouched. 6.7. cansecret_file Type: string Default: (unset) If you want slrn to put cancel-locks into the articles you post, set this variable to a file that contains the secret (the password, which you can chose arbitrarily) you want to use to generate them. Cancel-locks are a way of making sure that nobody else but you can cancel or supersede your articles (as long as he does not have your password, so keep it to yourself). Please note that this feature needs to be enabled at compile time (it requires the additional library canlock) and that cancel locks only have an effect if the server supports them. 6.8. cc_followup Type: integer Default: 1 This variable controls whether slrn sends email copies ("courtesy copies") of followups: 0 Never send email copies automatically 1 Prompt if original poster requested a copy 2 Send email copy if original poster requested it 3 Always prompt 4 Send copy if poster requested it; prompt otherwise The original poster can indicate that he wishes to receive an email copy by adding an "(X-)Mail-Copies-To:" header line to his posting. If it contains the keyword "nobody" ("never" is not covered by current drafts, but also accepted), the poster does not want any email copies. slrn will not prompt you in that case. When using settings three or four, please keep in mind that many people on usenet consider "courtesy copies" to be impolite because they do not want to read the same message both in their private email and in a newsgroup. See Also: ``cc_post_string'' 6.9. cc_post_string Type: string Default: "[This message has also been posted to %n.]" (localized) This string will be included in the mail copies of any article you send. However, it won't be displayed in the editor and will not be included in the posting sent to the newsgroup. The variable may contain the sequence %n, which will be replaced by the newsgroup(s) the article was posted to. If you need a "verbatim" % character, use %%. Note: cc_followup_string used to support all % sequences defined by ``followup_string''. This has been changed, as it could lead to wrong data getting inserted in some cases. If you miss a special sequence, please report it as a feature request. See Also: ``cc_followup'' 6.10. charset This variable is obsolete, use ``charset'' instead. 6.11. check_new_groups Type: integer Default: 1 If you do not want to check for new groups on startup and when doing a ``group refresh'' (by default bound to `G'), you can set this variable to 0. This has the same effect as using the command-line parameter -n. 6.12. color_by_score Type: integer Default: 3 Determines whether or not color should be used to indicate the score of an article. The following settings are possible: 0 scores do not influence colors 1 scores are colored by their value 2 subjects are colored by score 3 both scores and subjects are colored by score If this feature is enabled, slrn uses the color objects neg_score, pos_score and high_score when printing the score / subject of articles with a non-zero score value. 6.13. confirm_actions Type: integer Default: 31 This variable decides in which situations slrn will ask you to confirm an action. It has a bitmapped value which can be the sum of any combination of the following numbers: 1 Confirm marking groups as read or un-read. 2 Confirm printing an article. 4 Confirm posts, followups, replies and supersedes. 8 Confirm leaving a group by following a news: URL. 16 Confirm quitting slrn. Thus, the default means that the user is always asked for confirmation. 6.14. custom_headers Type: string Default: (unset) Use this variable to create additional header lines when posting to a newsgroup. Note that they will only be added to articles you wrote using ``post'' (by default bound to `P'). If you want to have additional headers in followups, you need to set them in ``followup_custom_headers'' instead; headers in supersedes are set with ``supersedes_custom_headers''. The header lines you add this way will also show up in your editor so you can modify them. Although this variable currently does not support any % escapes, you need to double any % signs you may want to use inside it. This is because all other *_custom_headers variables do support % escapes and people who used the same values (mostly X-Faces) in all cases frequently were surprised at the different results. Note: It is generally not possible to override existing headers using custom_headers. An exception to this rule is the "Message-ID:" header line which can optionally be set by using this variable. However, there is usually no need to do this as slrn has an excellent algorithm for creating Message-IDs itself. Let me repeat this: Only override the "Message-ID:" header if you know exactly what you are doing. When doing this, it's essential that you know (and, of course, follow) the RFCs and the rules of your ISP. Example: set custom_headers "X-URL: http://foo.com\nX-No-Archive: yes" See also: ``reply_custom_headers'' 6.15. custom_sort_by_threads Type: integer Default: 0 If ``sorting_method'' is set to 12 (custom sorting), this variable is used to decide whether or not to thread headers. In this case, any non-zero value activates threading. See also: ``custom_sort_order'' 6.16. custom_sort_order Type: string Default: (unset) If custom sorting is enabled by setting ``sorting_method'' to 12, this variable defines the sort order you want to use. It is a comma- separated list of the following keywords: author Sort alphabetically (A-z) by realname body Sort articles without body first (true offline mode) date Sort by date, oldest first highscore Sort high scoring articles, those without high scores first id Sort alphabetically (A-z) by Message-ID lines Sort by number of article lines, lowest number first number Sort by server number, lowest first score Sort by score, lower numbers first subject Sort alphabetically (a-z) by subject, ignoring case As you can see, all keywords use an ascending sort order by default. You can however capitalize each keyword to reverse its order (i.e. Highscore would sort high scoring articles first, which is usually what you expect). When comparing two articles, slrn steps through this list, starting with the first keyword, until it finds an entry for which the articles differ. You may want to use different criteria for sorting initial articles of threads than for "siblings" inside of threads. This is possible by using the delimiter '|': The comma-separated list before this delimiter is applied when sorting initial articles in threads; the string after the delimiter specifies the sort order to be used inside threads. For example, if you want to see high scoring and recent threads first, but sort the messages within the thread from oldest to newest, you could set custom_sort_order to Highscore,Date|date. There is no performance penalty when using custom sorting. Actually, the other sorting methods are merely there for convenience and use the same algorithm internally. As an example, here is a list of those settings for custom_sort_order that are equivalent to the ``sorting methods'': 0 and 1 "" 2 and 3 "Highscore,subject" 4 and 5 "Score" 6 and 7 "Score,subject" 8 and 9 "Highscore,Date" 0 and 11 "Highscore,date" 6.17. decode_directory Type: string Default: (unset) The directory where uuencoded files, shar archives and things like that are placed after decoding. This variable has no effect if slrn is built without support for decoding articles (i.e. if SLRN_HAS_DECODE in slrnfeat.h is disabled at compile time; default on VMS). If decode_directory is unset, ``save_directory'' is used. 6.18. display_cursor_bar Type: integer Default: 0 If non-zero, the "cursor" will be displayed as a horizontal bar across the screen rather than an arrow ("->") in the first column. 6.19. drop_bogus_groups Type: integer Default: 1 When a group is removed from the server, slrn will automatically drop it from your newsrc file, which is generally what you want to do in this situation. However, some broken servers make groups appear as if they were removed, requiring their users to re-subscribe manually when they become available again. If your server is affected, you can set this variable to zero. 6.20. editor_command Type: string Default: (unset) The value of this variable is used as a shell command to start your favourite editor. However, slrn will prefer the more specific variables - there is one for each case in which an editor is needed: Posting an article or a followup: slrn uses ``post_editor_command'' Replying by mail: slrn uses ``mail_editor_command'' Editing a score file: slrn uses ``score_editor_command'' editor_command is a kind of fall-back if the more specific editor command is not set. If editor_command is empty, slrn looks at ``$SLRN_EDITOR'' et al. The following % escapes can be used: %s name of the file to edit %d number of the first line of the message body If no escapes are found, the filename is simply appended to the specified command. Example: set editor_command "jed '%s' -g %d -tmp" See also: ``charset editor'' 6.21. editor_uses_mime_charset This variable is obsolete, use ``charset'' instead. 6.22. emphasized_text_mask Type: integer Default: 1 This variable controls what parts of an article should be scanned for emphasized text (like *this*, _this_ or /that/), which will then be processed according to the value of ``emphasized_text_mode''. It has a bitmapped value which can be the sum of any combination of the following numbers: 1 scan message portion (the non-quoted, non-signature part) 2 scan quoted text 4 scan signature 8 scan header lines For example, if you wanted slrn to look for emphasized text in both the message and the quoted portions, you would set this variable to 3 (1+2). 6.23. emphasized_text_mode Type: integer Default: 3 This variable controls how slrn displays text that has been recognized as emphasized. If it is non-zero, the text will be highlighted according to the color objects boldtext, italicstext and underlinetext. Additionally, there are two values which have special meanings: If set to 1, the characters which were used for emphasis (`*', `/' and `_', respectively) are not printed on the screen; if set to 2, these characters are written as spaces. In all other cases (including the default value), they will not be changed. See also: ``emphasized_text_mask'' 6.24. failed_posts_file Type: string Default: (unset) If posting failed for some reason, your article will be saved to the file specified by failed_posts_file. It this variable is unset, it defaults to the value of SLRN_FAILED_POST_FILE in slrnfeat.h, typically either "slrn-failed- post.txt" (UNIX and VMS) or "failpost.txt" (OS/2 and Windows). See also: ``save_posts'' 6.25. fallback_charset Type: string Default: iso-8859-1 Violating RFC recommendations, some broken newsreaders post unencoded 8 bit characters in the headers or post non us-ascii characters in the body with a missing "Content-Type:" declaration. Setting this variable will help slrn to guess the correct encoding of the posting. Hint: It might be a good idea to set this variable to "Windows-1252" if you read Western or to "iso-8859-2" if you read Eastern European newgroups. Note: There is no need to set this variable to "utf-8"; slrn will always try "utf-8" first. 6.26. fold_headers This variable is obsolete. 6.27. followup_custom_headers Type: string Default: (unset) Use this variable to create additional headers when posting a followup. You can use all % escapes that are defined in ``followup_string''. The headers you add this way will also show up in your editor and can be modified. Note: It is generally not possible to override existing headers using followup_custom_headers. See note at ``custom_headers'' for details. See also: ``reply_custom_headers'', ``supersedes_custom_headers'' 6.28. followup_date_format Type: string Default: (unset) This variable defines the format string for the "%D" specifier in ``followup_string''. Its syntax is identical to the one of strftime(3). If unset, slrn uses %Y-%m-%d (localized). See also: ``use_localtime'' 6.29. followup_string Type: string Default: "On %D, %r <%f> wrote:" (localized) Each followup you write will automatically be prefixed by the value of followup_string. The following % sequences are recognized and replaced with the corresponding text that is extracted from the article you are answering: %s Subject %m Message-ID %r Real name %R Real name up to the first space (first name) %f Email address %n Current newsgroup %d Date %D Date (as defined by followup_date_format) %% % Note: It is common practice to have at least the name of the person you are quoting in your followup_string. See also: ``followup_date_format'', ``reply_string'' 6.30. followup_strip_signature Type: integer Default: 1 If non-zero, the signature is stripped automatically from the article you are answering when writing followups or replies. This is considered good netiquette whenever you do not want to refer to the signature in your reply. See also: ``ignore_signature'', ``hide_signature'', ``strip_sig_regexp'' 6.31. followupto_string Type: string Default: "["Followup-To:" header set to %n.]" (localized) When you write a followup to a crossposting, slrn will ask you whether you want to set a "Followup-To:" header line (which is good netiquette in many cases). If you tell slrn to include the header at that point, it will also insert followupto_string as the first line of the body of your article to inform your readers about this. In this variable, you can use the same percent escapes as in ``followup_string''. 6.32. force_authentication Type: integer Default: 1 If this variable is set to ``0'', slrn sends authentication data only if the server requests it. Although this conforms to RFC 2980, in practice you need to volunteer authentication to some servers, so the default setting is ``1'' whenever a username and password are specified with the nnrpaccess command. Usually, changing this setting from the default will produce undesirable results, such as being able to read but not post, or seeing only a limited number of newsgroups. Note: If you need to set this variable on a per-server basis, use a startup_hook(): Example: ______________________________________________________________________ define startup_hook() { !if (strcmp (server_name(), "send-no-password.com")) set_integer_variable("force_authentication", 0); } ______________________________________________________________________ See also: ``nnrpaccess'' 6.33. generate_date_header Type: integer Default: 0 Usually, the generation of "Date:" header lines can be left to the server. If it does not do this correctly, please complain to its administrator, as a working system clock is essential for a news server. That being said, you can still have slrn generate that header line itself by changing this variable; you might want to use this to make postings sent via slrnpull reflect the time they were written. However, please note that this might lead to articles being rejected if your system clock does not work correctly or an outgoing post was left in the queue for a long time. 6.34. generate_email_from Type: integer Default: (system dependent) If non-zero, a "From:" header line is generated when sending email. On Unix systems, this is usually not necessary, because the MTA will do the job for you and might even be configured to reject messages that already have a "From:" header. This variable defaults to 0, except on Windows and OS/2, where this feature is turned on by default. Its value cannot be changed when SLRN_HAS_STRICT_FROM was enabled at compile time (default is off). 6.35. generate_message_id Type: integer Default: 1 If non-zero, slrn creates its own "Message-ID:" header lines (consisting of the string "slrn", time, process id, user- and hostname) when posting. Setting this variable has no effect if creation of Message-IDs has been disabled at compile time. Note: Although creating your own Message-IDs has a lot of advantages, you should only allow slrn to do so if the hostname of the machine it is running on is a FQDN (fully qualified domain name) or you can provide a unique hostname. Otherwise, you cannot guarantee that your Message-IDs are unique and should leave the job to your news server. Also consider turning on ``use_recommended_msg_id''. See also: ``posting_host'', ``username'' 6.36. group_help_line Type: string Default: (unset) This string is displayed in the bottom line of the group menu. It is intended as a quick help. If unset, the following line is used (localized): SPC:Select p:Post c:CatchUp l:List q:Quit ^R:Redraw (u)s:(Un)Subscribe See also: ``art_help_line'', ``header_help_line'' 6.37. group_status_line Type: string Default: (unset) This variable affects the status line in group mode. It accepts all % escapes that are defined for ``group_display_format'' plus the following ones: D Prints `*' if newsrc file needs saving, `-' otherwise L Current line (e.g. "1/34") P Percentage of the way through the group window s Name of the current server When unset, slrn takes -%D-News Groups: %s %-20g -- %L (%P) (localized) as the default. See also: ``art_status_line'', ``header_status_line'', ``top_status_line'' 6.38. grouplens_host Type: string Default: (unset) If you intend to use GroupLens, this variable has to contain the name of the server that carries the GroupLens scores. This variable does not have an effect if GroupLens support is disabled; see ``use_grouplens'' for details. See also: ``grouplens_port'', ``grouplens_pseudoname'' 6.39. grouplens_port Type: integer Default: 0 This variable contains the port you want slrn to use when connecting to ``grouplens_host''. See also: ``grouplens_pseudoname'', ``use_grouplens'' 6.40. grouplens_pseudoname Type: string Default: (unset) This variable is for your registered GroupLens pseudoname. See also: ``grouplens_host'', ``grouplens_port'', ``use_grouplens'' 6.41. header_help_line Type: string Default: (unset) This string is displayed in the bottom line in article mode when no article is shown (e.g. while you are just browsing through the headers). If unset, the following line is used (localized): SPC:Select Ctrl-D:PgDn Ctrl-U:PgUp d:Mark-as-Read n:Next p:Prev q:Quit See also: ``art_help_line'', ``group_help_line'' 6.42. header_status_line Type: string Default: (unset) You can use this variable to customize the status line of the header window. Here is a list of valid % escapes: L Current line (e.g. "1/74") P Percentage of the way through the header list T Number of articles in the current subthread h Number of high scoring articles in the group k Number of articles killed by the scorefile l Number of low scoring articles n Name of the current group p Prints `<' if the window is panned (scrolled horizontally) r Number of read articles in the group t Total number of articles in the group u Number of unread articles in the group The special descriptors "%g" and "%?" work like in ``header_display_format''. When unset, the default is (the localized form of) "%p[%u/%t unread] Group: %n%-20g -- %L (%P)". See also: ``art_status_line'', ``group_status_line'', ``top_status_line'' 6.43. hide_pgpsignature Type: integer Default: 0 If non-zero, PGP signatures in articles will not be displayed. The setting of this variable can be changed using ``toggle_pgpsignature'' (default binding: `]') while slrn is running. See also: ``hide_signature'' 6.44. hide_quotes Type: integer Default: 0 This variable can be used to hide quoted text. If it is non-zero, quoted text from the nth level on is hidden in the article pager (where n is the value of hide_quotes). To toggle the value at runtime, you can use the ``toggle_quotes'' command. 6.45. hide_signature Type: integer Default: 0 If non-zero, signatures in articles (as defined by ``strip_sig_regexp'') will not be displayed. The setting of this variable can be changed using ``toggle_signature'' (default binding: `\') while slrn is running. See also: ``followup_strip_signature'', ``hide_pgpsignature'', ``ignore_signature'' 6.46. hide_verbatim_marks Type: integer Default: 0 If ``process_verbatim_marks'' is turned on, you can hide "verbatim marks" (#v+ and #v-) in the article body by setting this variable to a non-zero value. It can also be changed using ``toggle_verbatim_marks'' while slrn is running. 6.47. hide_verbatim_text Type: integer Default: 0 If ``process_verbatim_marks'' is turned on, you can hide text marked as "verbatim" by setting this variable to a non-zero value. It can also be changed using ``toggle_verbatim_text'' while slrn is running. See also: ``hide_verbatim_marks'' 6.48. highlight_unread_subjects Type: integer Default: 1 If non-zero, the subjects of unread articles are highlighted. There are two possible ways of doing this: When set to one, unread subjects are printed bright (when using colors) or bold (in monochrome mode). This will obviously not have any visible effect if the subject is printed bold or in a bright color anyways. Besides that, the special color "default" does not have a bright version. When set to two, unread subjects are printed in the color you set with ``unread_subject''. In this case, only subjects of unread articles can be ``colored by score''. 6.49. highlight_urls Type: integer Default: 1 If non-zero, URLs are highlighted in the article pager using the ``url'' color object. This affects all portions of the message that are scanned for emphasized text. Note: When mouse reporting is enabled, highlighted URLs are also "clickable"; if you use the left or right mouse key, slrn will prompt you for changes to the URL before launching the browser. See also: ``emphasized_text_mask'', ``mouse'' 6.50. hostname Type: string Default: (unset) hostname is used as the domain part of the email address slrn puts in your "From:" header, so it should be set to just that. This may or may not be the hostname of the machine slrn is running on, depending on whether you have an email account on that machine and whether you want to use it for your usenet postings. Please see the entry ``$HOSTNAME'' for a discussion of slrn's default behaviour if this variable is unset. Note: In each case, slrn either uses the information you set in ``posting_host'' or returned by gethostbyname(3) to generate its Message-IDs, so their domain part is not influenced by the value of this variable. See also: ``realname'', ``username'' 6.51. ignore_signature Type: integer Default: 0 If you use ``article_page_down'' (default binding: space) to read an article "page by page", you might find it annoying if the last page contains nothing but the author's signature. If you set this variable to a non-zero value, slrn will not scroll down in those cases, but immediately goes to the next article instead. See also: ``hide_signature'', ``strip_sig_regexp'' 6.52. inews_program Type: string Default: (compile time setting) To post your articles, you can use an external program (usually inews(1)) instead of the builtin NNTP routines slrn offers (see ``post_object'' for details). In this case, inews_program can be used to specify the command you want slrn to pipe outgoing articles to. Note: This variable will not work if SLRN_HAS_USER_INEWS in slrnfeat.h was disabled at compile time. Obviously, it also has no effect if inews support is not compiled in. 6.53. invalid_header_score Type: integer Default: -1000 This value will be applied as the initial score if the article has invalid headers. 6.54. kill_score Type: integer Default: -9999 When the score of an article is equal or less than kill_score points, it will be killed. This means that it will not be displayed in article mode at all, so you won't be bothered with it. See also: ``max_low_score'', ``min_high_score'' 6.55. lines_per_update Type: integer Default: 50 When entering a group or reading an article, slrn displays a "percentage meter" in the bottom line, telling the user how many articles (or lines) have already been read. This variable controls how often this message is updated (default is to update it every 50 read articles / lines). You may want to change this value, depending on the speed of your server connection and of your display. Note: If you set this variable to less than 5, slrn will ignore it and use the default of 50 instead (or 20, when reading short articles that contain less than 200 lines). 6.56. macro_directory Type: string Default: (compile time setting) This variable specifies (in a comma separated list) paths to additional directories where you wish to keep your S-Lang macros. These paths may be absolute (beginning with "/") or relative to $HOME (or $SLRNHOME if set), and tell slrn where to look when loading macros with the ``interpret'' command. In Unix, the configure script automatically sets the default of this variable to the directory where the macros that come with slrn are installed. If it was called without any parameters, this is /usr/local/share/slrn/slang. If a macro does not exist in a path listed in macro_directory, slrn will first try to find it in $HOME (or $SLRNHOME), then in the compile-time default directory. Example: interpret "News/macros/my-macro.sl" interpret "/usr/share/slrn/slang/util.sl" can be replaced with set macro_directory "News/macros,/usr/share/slrn/slang" interpret "my-macro.sl" interpret "util.sl" 6.57. mail_editor_command Type: string Default: (unset) This variable is interpreted as a shell command which will be used to invoke your editor of choice when you want to reply by email. If it is unset, slrn will use the editor defined by ``editor_command''. Note: The variable may contain % escapes. A list of them can be found in the section on ``editor_command''. See also: ``post_editor_command'', ``score_editor_command'' 6.58. mail_editor_is_mua Type: integer Default: 0 Set this variable if your ``mail_editor_command'' is a Mail User Agent, i.e. sends the email itself. This makes sure it does not get sent twice (both by your MUA and slrn). Example (using mutt as an external mailer): set mail_editor_command "mutt -H '%s'" set mail_editor_is_mua 1 6.59. max_low_score Type: integer Default: 0 Articles with a score lower than max_low_score will automatically be marked as read and receive the "HEADER_LOW_SCORE" header flag. However, they are still displayed in the header overview. See also: ``kill_score'', ``min_high_score'' 6.60. max_queued_groups Type: integer Default: 20 To reduce startup time, slrn sends the initial GROUP commands needed to find the number of unread messages in each group in batches (by default, 20 at a time). However, there are (few) servers which do not seem to like this - in those cases, slrn hangs at startup. If you experience this, try setting max_queued_groups to 1. Note: If you set this variable to 0 (or lower), it will switch back to 1 automatically. 6.61. metamail_command Type: string Default: (unset) When you select an article which uses a MIME content type or encoding not supported by slrn, an external program can be launched to view it. This variable contains the name of the program which will be used in those cases. slrn will write the article to a temporary file, so the command used here has to accept a filename as its argument. If this variable is unset, slrn will try to invoke metamail. Setting this variable has no effect if MIME support has not been compiled in. See also: ``use_metamail'' 6.62. mime_charset This variable is obsolete, use ``charset'' instead. 6.63. min_high_score Type: integer Default: 1 Articles with a score of at least min_high_score points are marked as "high" (the "HEADER_HIGH_SCORE" header flag is set; this is indicated in header overview by an exclamation mark). Articles with "high" scores are displayed first in sorting modes 2-11 and you will be able to jump to the next "high scoring" article using ``next_high_score'' (default binding: `!'). See also: ``kill_score'', ``max_low_score'', ``sorting_method'' 6.64. mouse Type: integer Default: 0 If this variable is non-zero and you run slrn inside an xterm compatible X terminal emulation program, some basic mouse support will be activated. The following table lists what you can do with the mouse: In group mode: Object Button Action --------------------------------------- Top Status line any specified by button label Group Name any select group Bottom Status line middle toggle display of unread groups Bottom Status line left page-down Bottom Status line right page-up In article mode: Object Button Action --------------------------------------------- Top status line any specified by button label Header status line left header page down right header page up middle hide article window Article status line left next unread right previous unread middle toggle quotes Header item any select item Article window left article page down right article page up middle hide article window URL in article window left/right confirm and browse URL middle browse URL Note: Setting this variable to -1 will always activate mouse support, even if it does not work (and is therefore useless) on the current terminal. 6.65. netiquette_warnings Type: integer Default: 1 When non-zero, slrn will warn you if your posting does not conform to some generally accepted netiquette guidelines. You can still force the posting, so it's probably a good idea to keep this turned on to make sure that you do not violate these rules without noticing it. Note: Currently, this feature warns you when crossposting to more than four groups or without setting a "Followup-To:", or if the "Followup- To:" header line contains multiple groups. Additionally, you are notified if your signature has more than four lines. See also: ``reject_long_lines'' 6.66. new_subject_breaks_threads Type: integer Default: 0 In large threads, the tree built by looking at the "References:" can become quite complex and sometimes confusing. Thus, some people prefer to see a separate thread tree whenever the "Subject:" header line changes. Set this variable to 1 if you want this (more, but smaller trees). By default, slrn puts articles with identical subjects into the same thread, even if they are not linked by a "References:" header. If you want slrn to thread based on references only, set this variable to 2 (also gives you more, but smaller trees). If you want to enable both of these features, use 3 as the value. Note: Before comparing subjects, a leading "Re: " and a trailing "(was: ...)" is cut off. However, the regular expressions in ``strip_re_regexp'' and ``strip_was_regexp'' are not used. 6.67. no_autosave Type: integer Default: 0 By default, slrn creates an autosave copy of your newsrc file (ending in ".as") whenever you leave a group. Thus, you won't lose (much) data if slrn (or the system it runs on) should go down hard. If you set this variable to 1, this feature is turned off. If you set it to 2, slrn will autosave to the newsrc file itself (not to a temporary file). See also: ``no_backups'' 6.68. no_backups Type: integer Default: 0 If non-zero, no backups of the newsrc file are created. See also: ``no_autosave'' 6.69. non_Xbrowser Type: string Default: (unset) The command in this variable will be used to start a text mode web browser when ``browse_url'' (default binding: `U') is called. slrn will chose the text mode web browser if ``$DISPLAY'' is unset or no command could be found in ``Xbrowser''. 6.70. organization Type: string Default: (compile time setting) Using this variable, you can set the "Organization:" header line to an arbitrary string. A discussion on how slrn obtains the default value can be found in the entry on ``$ORGANIZATION''. 6.71. overview_date_format Type: string Default: (unset) This variable defines the format string for the "%D" specifier in ``header_display_format''. Its syntax is identical to the one of strftime(3). If unset, slrn uses "%d %b %y %H:%M". See also: ``use_localtime'' 6.72. post_editor_command Type: string Default: (unset) This variable is interpreted as a shell command which will be used to invoke your editor of choice when you edit a new posting or write a followup. If it is unset, slrn will use the editor defined by ``editor_command''. Note: The variable may contain % escapes. You will find a list of them in the section on ``editor_command''. See also: ``mail_editor_command'', ``score_editor_command'' 6.73. post_object Type: string Default: (unset) Controls the method slrn uses to post articles. It can be one of "nntp" (use builtin NNTP support), "inews" (pipe article to an external program) or "slrnpull" (spool messages for slrnpull to send). If the variable is unset, the default depends on the compile time setting of SLRN_DEFAULT_POST_OBJ in slrnfeat.h. See also: ``server_object'', ``use_slrnpull'' 6.74. postpone_directory Type: string Default: (unset) Directory where articles you want to postpone are saved. If this variable is unset, slrn will try to use "News/postponed" for this purpose. 6.75. prefer_head Type: integer Default: 0 This variable affects "expensive scoring": If available, slrn uses the XOVER and XHDR extensions to retrieve only the needed header lines; otherwise, the HEAD NNTP command is used to get all headers. Although this notably increases network traffic, it might be faster, depending on your connection and the number of "expensive" headers you score on. In this case, you can set this variable and slrn will prefer HEAD over XOVER / XHDR. When set to 2, slrn never tries to use XOVER. This is only useful for servers with broken XOVER implementations. 6.76. printer_name Type: string Default: (unset) This variable can be used to customize the ``print'' function. Its meaning and the default action depend on the operating system: On Unix systems, it can contain a command to which slrn will pipe the article you want to print. For example, you would set it to "my_print_filter | lpr -Pmy_printer" if you want the article to be processed by my_print_filter and then printed on "my_printer". If unset, the default action is to use lpr with the value of ``$PRINTER'' as the -P option. On Windows98, you can set this variable to the name of the print queue you want to use. Here, the default is to use the setting in "win.ini". On Windows XP, you have to share your attached printer and assign a "share name". The printer_name string has to be set to this "share name". print is not yet implemented for VMS. 6.77. process_verbatim_marks Type: integer Default: 1 If this variable is set to a non-zero value, slrn will interpret text enclosed by "#v+" and "#v-" (on a line of their own) as "verbatim". Verbatim text will be displayed according to the color object verbatim; emphasized text it might contain will not be highlighted. This is especially useful when dealing with source code. Note: slrn is currently the only program that interprets these verbatim marks. This is due to the lack of a standard that would describe a way to mark text as "verbatim" in usenet articles. See also: ``emphasized_text_mask'', ``emphasized_text_mode'', ``hide_verbatim_marks'' 6.78. query_next_article Type: integer Default: 1 When you use ``article_page_down'' (default binding: space) while you are already at the end of an article, slrn moves to the next unread article. If this variable is set to 0, this will happen automatically; if it is 1, you will be asked to confirm that you want to select the new article. See also: ``query_next_group'' 6.79. query_next_group Type: integer Default: 1 When you use ``article_page_down'' (default binding: space) while you are at the end of the last unread article in a group, slrn can move to the next newsgroup that contains unread articles. If this variable is set to 0, this will happen automatically; if it is 1, you will be asked to confirm that you want to select a new group. See also: ``query_next_article'' 6.80. query_read_group_cutoff Type: integer Default: 100 When you enter a newsgroup and slrn is about to read more than query_read_group_cutoff article headers, it will prompt you to confirm (or change) the number of articles to read. This feature is turned off if you set this variable to 0. Setting this variable to a negative number -n has a similar effect. However, slrn will not prompt you in this case; instead, it will automatically download n articles if more are present. 6.81. quote_string Type: string Default: (unset) This string will be used to indent quoted text in followups and replies. If the variable is unset, slrn uses ">". Note: slrn's default is the only quote prefix commonly accepted on Usenet. Please do not change it unless you are posting to a group or network that follows different rules. See Also: ``smart_quote'' 6.82. read_active Type: integer Default: 0 If this variable is non-zero, slrn will read the active file from the server when starting. If your server carries few groups or your network connection is fast (e.g. because you are using a local newsserver), this may lead to a faster startup. If it is slow, you should leave the default setting untouched. 6.83. realname Type: string Default: (unset) It is considered good netiquette to set this variable to your real name. It will be included in the "From:" header line. If you do not set it, slrn tries to get a value from ``$NAME''. On UNIX systems, it also queries the /etc/passwd gecos field. See also: ``hostname'', ``username'' 6.84. reject_long_lines Type: integer Default: 2 If set to 1, slrn will not allow you to post articles containing non- quoted lines which are longer than 80 characters. If you set it to 2, slrn will merely issue a warning that you can decide to ignore (e.g. when posting source code). Setting this variable to 0 turns the check off. Please note that long lines are generally considered bad netiquette. See also: ``netiquette_warnings'' 6.85. reply_custom_headers Type: string Default: (unset) Use this variable to create additional headers when replying to a posting (via email). You can use all % escapes that are defined in ``followup_string''. The headers you add this way will also show up in your editor and can be modified. Note: It is not possible to override existing headers using reply_custom_headers. See also: ``custom_headers'', ``followup_custom_headers'', ``supersedes_custom_headers'' 6.86. reply_string Type: string Default: "In %n, you wrote:" (localized) This variable determines the attribution line slrn uses when replying via email. You can use the same % escapes as in ``followup_string''. 6.87. replyto Type: string Default: (unset) You can use this variable to set the address you want replies to your articles to be sent to. You only need to set this if you do not want people to send replies to the address in the "From:" header line. If you do not set this variable, slrn tries to get a default value from ``$REPLYTO''. See also: ``hostname'', ``username'' 6.88. save_directory Type: string Default: (unset) Sets the default directory where saved articles are placed. If it is unset, slrn uses "News". Note: If save_directory is not an absolute pathname, it is interpreted as being relative to your home directory as determined by the environment variables ``$SLRNHOME'' or ``$HOME''. See also: ``decode_directory'', ``postpone_directory'' 6.89. save_posts Type: string Default: (unset) Specifies a file to which every article you post should be appended (in standard mailbox format). If unset, slrn will not even try to make a copy of your postings; if it cannot write to the specified file, it will give a warning and post nonetheless. Note: If the filename in save_posts does not contain an absolute path, it is interpreted as being relative to your home directory (see ``$SLRNHOME''). Hint: If you get error messages when using this variable, you possibly pointed it to a directory instead of a file. See also: ``save_replies'' 6.90. save_replies Type: string Default: (unset) Specifies a file to which every reply you send by email should be appended (in standard mailbox format). The same rules apply as for ``save_posts''. Note: If you send a Cc (carbon copy) of one of your articles by email, the posting will only be appended to the folder in save_posts, not to save_replies. 6.91. score_editor_command Type: string Default: (unset) Defines the program that will be called to edit your score file. If unset, the editor in ``editor_command'' is used. Note: The variable may contain % escapes. They are listed in the section on ``editor_command''. See also: ``mail_editor_command'', ``post_editor_command'' 6.92. scorefile Type: string Default: (unset) If you want to score articles, you need to set this variable to the filename of your scorefile. It is interpreted as being relative to your home directory (unless it starts with a slash), or relative to $SLRNHOME if this is set. If you want to use more than one scorefile, you need to use an include statement in the scorefile itself. Please do not confuse this with the ``include'' slrnrc command discussed above. For further details on scoring, please refer to the file score.txt that should have come with your slrn distribution. The FAQ also answers questions about scoring and includes some examples. A future version of this manual might also include a separate section about the concept of "scoring". 6.93. scroll_by_page Type: integer Default: 0 If set to non-zero, both group window and header window will scroll by a full page instead of a single line. This does not affect the article window, as it has separate commands for scrolling by ``lines'' and by ``full pages''. Note: If you change this variable at runtime, the change will take effect as soon as you select a group or enter group mode. 6.94. sendmail_command Type: string Default: (compile time setting) slrn uses this string as a command to send email (when forwarding or replying). Input will be piped to the program if the system supports it. On systems without pipes, sendmail_command will be given the name of a temporary file containing the email as the last command line argument. The default is set at compile time. On Unix, the configure script tries to find the sendmail binary; otherwise, you can set SLRN_SENDMAIL_COMMAND in slrnfeat.h. Hint: Some sendmail replacements for Windows expect the input to be piped to the program, what slrn is not able to do. You can handle this by adding a "<" at the end of the string. 6.95. server_object Type: string Default: (unset) Controls the method slrn uses to read news. It can be either "nntp" (connect an NNTP server) or "spool" (read from a local spool). If this variable is unset, the default behaviour depends on the compile time #define SLRN_DEFAULT_SERVER_OBJ in slrnfeat.h. If NNTP support is compiled in, it is used by default. See also: ``post_object'', ``use_slrnpull'' 6.96. show_article Type: integer Default: 0 If non-zero, the first article is automatically displayed when entering a group. 6.97. show_thread_subject Type: integer Default: 0 When viewing a thread tree, slrn usually does not display subjects that are identical to the one of the previous posting as this would make the screen look busy without giving any additional information. If you still prefer to have all subject lines displayed, you can set this variable to a non-zero value. 6.98. signature Type: string Default: (compile time setting) slrn can append a signature to all outgoing articles and mails. Set signature to the name of your signature file or to an empty string if you don't want to use a signature. slrn will not give any error message if the file specified in signature does not exist. The default of this variable is defined in slrnfeat.h (SLRN_SIGNATURE_FILE): It is ".signature" on Unix and VMS and "signatur.txt" on OS/2 and Windows. If the signature contains non us-ascii characters make sure they have the same encoding defined in ``charset editor'' Note: If your signature file doesn't start with sig dashes ("-- \n"), slrn will add them automatically. See also: ``signoff_string'' 6.99. signoff_string Type: string Default: (unset) The value of this variable will be inserted before the signature. This is useful for people who want to sign off their messages with their name, like it is common in some groups. Note: If you use this feature, do not append much more than your name with it, or you will annoy your readers. If you want to tell people the URL of your homepage or append some funny quote to your postings, put it in your ``signature file''. 6.100. simulate_graphic_chars Type: integer Default: 0 If you see strange characters in the thread tree, you can set this variable to a non-zero value to make slrn restrict itself to the use of simple ASCII characters to represent the thread tree. slrn does this automatically if you use OS/2 or Windows and your system does not have line drawing characters. Note: It also might be possible to fix your terminal to support proper line drawing (which looks much better). Please see the slrn FAQ for details. 6.101. smart_quote Type: integer Default: 1 slrn can be told to insert a blank between your ``quote_string'' and previously unquoted lines, leading to a result most people find better readable. This variable controls the way slrn formats quotes: 1 Insert whitespace before previously unquoted lines 2 Do not quote blank lines 3 Do not quote blank lines, but insert a whitespace before others 6.102. sorting_method Type: integer Default: 3 This variable controls in which order articles will be displayed in the header window: 0 do not sort 1 perform threading 2 sort by subject 3 thread, then sort by subject 4 sort by score 5 thread, then sort by score 6 sort by score, then by subject 7 thread, then sort by score and subject 8 sort by date with most recent first 9 thread, then sort by date with most recent first 10 sort by date with most recent last 11 thread, then sort by date with most recent last 12 custom sorting As all the options offered by sorting_method can be replaced with a corresponding setting for custom sorting, this variable will be removed at some point in the future. To learn more about the powerful options in custom sorting, please look at the variables ``custom_sort_order'' and ``custom_sort_by_threads''. 6.103. spoiler_char Type: character Default: '*' This character will be used to hide "spoiler" text (i.e. text preceded by a formfeed character). The interpretation of formfeed characters as "spoilers" can be turned off at compile time with: ./configure --disable-spoilers See also: ``spoiler_display_mode'' 6.104. spoiler_display_mode Type: integer Default: 1 This variable defines what happens when a spoiler is revealed (this is typically done by hitting space, which is the default binding of ``article_page_down''): 0 keep the display still, and reveal the current spoiler 1 start a new page, and reveal the current spoiler 2 keep the display still, and reveal all spoilers 3 start new page, and reveal all spoilers See also: ``spoiler_char'' 6.105. spool_active_file Type: string Default: "data/active" Sets the location of the active file that lists all available newsgroups. The filename is relative to ``spool_inn_root'', unless it starts with a slash ('/'). The default of this variable is set at compile time in slrnfeat.h (#define SLRN_SPOOL_ACTIVE). Note: Of course, you only need to set the spool* variables if you want to read your news directly from spool (e.g. when using slrnpull). When using an NNTP server, setting them will have no effect. See also: ``spool_inn_root'', ``server_object'', ``post_object'', ``use_slrnpull'' 6.106. spool_activetimes_file Type: string Default: "data/active.times" This variable provides the name of your news server's active.times file. This file contains the creation dates of the newsgroups. The notes that can be found in the entry for ``spool_active_file'' also apply to this variable. See also: ``spool_inn_root'' 6.107. spool_check_up_on_nov Type: integer Default: 0 If non-zero, slrn checks whether the articles referenced by the news overview files actually exist. This may add a perceptible delay and is redundant with servers that keep their overview files up to date. However, some servers don't, so if you see a lot of "article not available" errors, you might want to turn this on. Note: Setting this option also allows slrn to find out the article size if it's not in the overview file, See also: ``spool_active_file'', ``spool_nov_file'' 6.108. spool_inn_root Type: string Default: "/var/lib/news" The directory that contains the active, active.times and newsgroups files. The default of this variable is set at compile time in slrnfeat.h (#define SLRN_SPOOL_INNROOT). See also: ``spool_active_file'', ``spool_activetimes_file'', ``spool_newsgroups_file'' 6.109. spool_newsgroups_file Type: string Default: "data/newsgroups" This variable provides the name of your news server's newsgroups file. The file contains a list of newsgroups with short descriptions (taglines). The notes that can be found in the entry for ``spool_active_file'' also apply to this variable. See also: ``spool_inn_root'' 6.110. spool_nov_file Type: string Default: ".overview" The name of your news server's overview files. See also: ``spool_nov_root'' 6.111. spool_nov_root Type: string Default: "/var/spool/news" The root directory of the news overview database. Often, this is the same as ``spool_root''. See also: ``spool_nov_file'' 6.112. spool_overview_file Type: string Default: "data/overview.fmt" This variable provides the name of your news server's overview.fmt file, which describes the format of the overview files. The notes that can be found in the entry for ``spool_active_file'' also apply to this variable. See also: ``spool_inn_root'' 6.113. spool_root Type: string Default: "/var/spool/news" The root directory of your news spool. See also: ``spool_inn_root'', ``spool_nov_root'' 6.114. supersedes_custom_headers Type: string Default: (unset) This variable is used to create additional headers when superseding a message. Otherwise, it works exactly like ``followup_custom_headers''. See also: ``custom_headers'', ``reply_custom_headers'' 6.115. top_status_line Type: string Default: (unset) Using this variable, you can customize the status line slrn displays at the top of the screen. It can be set to a format string that works like the one used in ``header_display_format''. The following % escapes can be used: % percent character d current date n name of the current newsgroup s name of the current server t current time v version of slrn The special sequences `%g' and `%?' work as described in ``header_display_format''. When unset, slrn uses "slrn %v ** Press '?' for help, 'q' to quit. ** Server: %s" (localized) as the default. Note: The current time and date are printed in the preferred representation for the current locale. If you have date/time information in the status line, you should be aware that it is not automatically redrawn every second. 6.116. uncollapse_threads Type: integer Default: 0 If non-zero, all threads will be uncollapsed when entering a group. 6.117. unsubscribe_new_groups Type: integer Default: 0 If non-zero, new newsgroups won't be subscribed automatically. 6.118. use_blink Type: integer Default: (system dependent) Enables blinking of display if non-zero. The default is 0 if your terminal supports colors, 1 if not. Note: If you run a color terminal and find that setting this variable to 1 makes it possible to use bright colors for the background, please look into using a different terminfo entry. See section ``color'' for details. 6.119. use_color Type: integer Default: (system dependent) Forces the use of colors (if set to 1) or the use of monochrom mode (if set to 0). When unset, color is automatically used if your terminal supports it according to its termcap entry. 6.120. use_flow_control Type: integer Default: 0 If set to non-zero, ^S/^Q processing by the terminal driver is enabled. This means that you will be able to "freeze" the screen using Control-S and "thaw" it by pressing Control-Q. 6.121. use_grouplens Type: integer Default: 0 If non-zero, slrn will try to contact your ``grouplens server'' to exchange GroupLens scores. This variable has no effect if GroupLens has not been enabled at compile time. Note: As far as we could find out, GroupLens is not in use any more. If this is incorrect, we would be grateful for a pointer to additional information on it. 6.122. use_header_numbers Type: integer Default: 1 If non-zero, header numbers are displayed at the left margin to make article selection more efficient. 6.123. use_localtime Type: integer Default: 1 This variable determines if your local timezone is used by the "%D" specifiers in ``followup_date_format'' and ``overview_date_format''. The following settings are possible: 0 always use GMT 1 use local timezone in overview_date_format 2 use local timezone in followup_date_format 3 always use local timezone Note: This setting does not affect the "Date:" header lines in your own postings. They are not even generated by slrn, unless you set ``generate_date_header''. VMS and BeOS do not support using GMT. 6.124. use_metamail Type: integer Default: 1 If non-zero, slrn calls the program given in ``metamail_command'' to processes MIME articles it cannot handle. 6.125. use_mime This variable is obsolete. 6.126. use_recommended_msg_id Type: integer Default: 0 When posting, some newsservers suggest a Message-ID to the client; that way, the client knows in advance which Message-ID the article will have and can save it for later reference. If this variable is set, slrn makes use of this: The server-proposed ID will be used for the posting and saved along with the article in the ``save_posts'' folder. If both this variable and ``generate_message_id'' are set, slrn uses the server's ID rather than generating its own. 6.127. use_slrnpull Type: integer Default: 0 If non-zero, slrn will spool outgoing postings to let slrnpull send them instead of contacting the newsserver itself. The same effect can be achieved by setting ``post_object'' to "slrnpull". See also: ``server_object'' 6.128. use_tilde Type: integer Default: 1 If non-zero, tildes ("~") are displayed at the end of an article like it is done in the vi editor. 6.129. use_tmpdir Type: integer Default: 0 If non-zero, temporary files for postings, followups and replies will be held in the directory specified by ``$TMP'' (the entry there also explains what will happen if $TMP is unset), and Randomized filenames will be used for posts instead of .article, .followup and .letter. 6.130. use_uudeview Type: integer Default: (compile time setting) If your copy of slrn has support for external uudeview libraries (--with-uu), but you still want to use the (faster, but less sophisticated) builtin routines for decoding binary files, set this variable to 0. Otherwise, it has no effect. 6.131. username Type: string Default: (system specific) Contains your user name (login name). It is used as the local part of your email address and as a part of the Message-ID: header (if slrn is configured to create one). If it is unset, slrn tries to get your login name from the system first. If this fails, it looks at ``$USER'' and ``$LOGNAME''. If it cannot find a valid user name, an error message is issued and the program is aborted. Note: Do not confuse your user name with your real name! See also: ``hostname'', ``realname'' 6.132. warn_followup_to Type: integer Default: 1 When a "Followup-To:" header line is set, your followup will appear in different newsgroups than the original posting. If you always want to be notified of this, you can set this variable to 2. The default setting (1) only warns you when your followup would not appear in the group you are currently reading; setting it to 0 disables this warning completely. 6.133. wrap_flags Type: integer Default: 3 This variable controls what text is wrapped in the article pager when pressing the ``wrap_article'' key (bound to "W" by default): 0 wrap body only 1 wrap headers and body 2 wrap quoted material and body 3 wrap headers, quoted material and body If you want to wrap long lines automatically, without having to press a key, you can set the variable to one of these values: 4 wrap body only 5 wrap headers and body 6 wrap quoted material and body 7 wrap headers, quoted material and body See also: ``wrap_method'', ``wrap_article'' 6.134. wrap_method Type: integer Default: 2 With this variable, you can control how slrn wraps long lines. When 0, it wraps at word boundries, leaving words that are longer than your line width untouched. When 1, it always wraps at the right border of the screen. When 2, it first tries so find a good place to wrap the line and wraps at the right border only when necessary. See also: ``wrap_flags'' 6.135. write_newsrc_flags Type: integer Default: 0 If this variable is zero, all groups are saved when writing your newsrc file. If it is 1, unsubscribed groups are not saved; if it is 2, unsubscribed groups are not saved if there are any unread messages in them. 6.136. Xbrowser Type: string Default: (unset) Used to start an X11 web browser on a URL when ``browse_url'' (default binding: `U') is called. If ``$DISPLAY'' is set, slrn tries to execute the command stored in Xbrowser. Otherwise, non_Xbrowser is used instead. The string may contain "%s" which will be replaced with the chosen URL. If no such substring is found, the URL is simply appended to the specified command. Example: set Xbrowser "netscape %s &" See also: ``non_Xbrowser'' 7. Interactive functions This section lists all functions with their compiled in bindings. Some functions accept a prefix argument; it can be set by pressing escape and a number before calling the function (e.g. to call ``select_group'' with the prefix argument four, you need to press "ESC 4 ENTER". If you want, you can use the ``setkey'' configuration command to bind them to different keys. However, please note that the online help won't be updated automatically. If you want it to reflect your changes, you currently need to make use of the ``$SLRNHELP'' environment variable and change ``art_help_line'' et al. Note: If a function is bound to an uppercase letter, you can call it without holding down shift as long as the corresponding lowercase letter is unbound (e.g. pressing `p' in group mode will post an article, although ``post'' is really bound to `P'). This does not work the other way round (e.g. pressing `M' will do nothing, as ``move_group'' is bound to `m' and `M' is unbound by default). 7.1. group functions The functions described here are available in group mode. 7.1.1. add_group Default: "a" Prompts for a newsgroup that gets added to your list. If the group is in your newsrc file, but was hidden or unsubscribed, it is shown. Otherwise, the server is queried - if the group exists, it is inserted after the current group. In any case, the cursor is moved to the group. 7.1.2. bob Default: "CTRL-K UP" "ESC <" Moves the cursor to the first newsgroup that is currently visible ("beginning of buffer"). 7.1.3. catchup Default: "c" Marks the current group as read. 7.1.4. eob Default: "CTRL-K DOWN" "ESC >" Moves the cursor to the last newsgroup that is currently visible ("end of buffer"). 7.1.5. evaluate_cmd Default: "CTRL-X ESC" Reads a line and interprets it as S-Lang. 7.1.6. group_search Default: "/" Old alias of ``group_search_forward''. 7.1.7. group_search_backward Default: "\" Works like ``group_search_forward'', but searches backwards. 7.1.8. group_search_forward Default: "/" Searches for a substring in group names and descriptions ("tag lines"), starting at the current cursor position and wrapping around the list if necessary. Hidden and unsubscribed groups are not taken into account. See also: ``group_search_backward'' 7.1.9. help Default: "?" Displays the online help for group mode. 7.1.10. line_down Default: "DOWN" "N" "CTRL-N" Moves the cursor to the next visible group. 7.1.11. line_up Default: "UP" "CTRL-P" Moves the cursor to the previous visible group. 7.1.12. move_group Default: "m" Allows you to move the current newsgroup to another position. You can move it around using the keys bound to ``line_up'' and ``line_down'' (the up and down arrow keys by default). When finished, press Return. It is probably a good idea to make all groups visible first, calling using ``toggle_hidden'' if necessary. When there are hidden groups, the current group is placed directly before the next visible group when moving it towards the top or directly after it when moving to the bottom, which may or may not be where you really wanted it to be. 7.1.13. page_down Default: "PAGEDN" "CTRL-D" "CTRL-V" Scrolls down one page. 7.1.14. page_up Default: "PAGEUP" "CTRL-U" "ESC V" Scrolls up one page. 7.1.15. post Default: "P" Post an article. The default is to post to the current newsgroup. If no newsgroup or no subject is specified, slrn does not even invoke the editor. 7.1.16. post_postponed Default: "ESC P" Lets you chose an article from the ``postpone directory'' to re-edit, post or delete it. 7.1.17. quit Default: "q" "CTRL-X CTRL-C" Quits slrn. 7.1.18. redraw Default: "CTRL-R" "CTRL-L" Redraws the screen. This should only be necessary when another program wrote to stdout directly. 7.1.19. refresh_groups Default: "G" Queries server for new articles; unless display of all groups was turned on with ``toggle_list_all'', groups without unread messages are hidden. This function also checks for new groups if ``check_new_groups'' is on. 7.1.20. repeat_last_key Default: "." Repeats the last keystroke. 7.1.21. save_newsrc Default: "X" Updates your newsrc file. It contains information about the groups you are subscribed to, the order in which they should be displayed and what articles you marked as read. This file is automatically written when ``quitting'' slrn. 7.1.22. select_group Default: "RETURN" "SPACE" Enters the current group for reading. When using a prefix argument, this function also downloads previously read articles: 1 Select group with article number query. 2 Select group, but do not apply scores. 3 Select group with query, but do not apply scores. 4 Select group. 7.1.23. subscribe Default: "s" Subscribe to the current newsgroup. If used with a prefix argument, slrn will prompt you for a regular expression and subscribe to all groups matching it. 7.1.24. suspend Default: "CTRL-Z" Suspends slrn (if allowed by your shell). 7.1.25. toggle_group_formats Default: "ESC A" Toggles between the different ``group display formats''. You can chose a particular format by specifying a prefix argument (e.g. the function selects the second display format when called with two as the prefix argument). 7.1.26. toggle_hidden Default: "l" If some groups are hidden because they contain no unread articles, this function makes them visible and vice versa; however, this function does not toggle the display of unsubscribed groups (see ``toggle_list_all'' for this). 7.1.27. toggle_list_all Default: "L" This function prompts for a wildmat expression and displays all groups that match it (querying the server if necessary). If your server does not support the "LIST ACTIVE" NNTP command with a wildmat argument and ``read_active'' is off, only groups from your newsrc file are taken into account; in that case, you might not find this feature very useful. When calling toggle_list_all the second time, the unsubscribed groups are hidden again. You can also hide the unsubscribed groups by using this function with the prefix argument one or show all unsubscribed groups with the prefix argument two (does not query the server). 7.1.28. toggle_scoring Default: "K" Toggles between slrn's scoring types: Full Use "expensive" (full header) scoring which may be slow. Simple Score based on XOVER data only (faster). None Turn off scoring. Cancel Keep current setting. 7.1.29. transpose_groups Default: "CTRL-X CTRL-T" Transpose the position of the current group with the one above it in the list. If there are hidden groups between them, they remain untouched. If you want to rearrange your group list, you'll probably find the ``move_group'' function more convenient. 7.1.30. uncatchup Default: "ESC u" Marks all articles in the current group as unread. 7.1.31. unsubscribe Default: "u" Unsubscribe the current group. If used with a prefix argument, slrn will ask you for a regular expression and unsubscribe all groups that match it. Information about read articles in unsubscribed groups is kept. 7.2. article functions These functions can be used in article mode, i.e. after selecting a group and downloading its headers. 7.2.1. article_bob Default: "<" Shows the first page ("beginning of buffer") of the current article. 7.2.2. article_eob Default: ">" Shows the last page ("end of buffer") of the current article. 7.2.3. article_left Default: "LEFT" Pans the article window back to the left (after using ``article_right''). 7.2.4. article_line_down Default: "ESC DOWN" "RETURN" Scrolls the article down one line. 7.2.5. article_line_up Default: "ESC DOWN" Scrolls the article up one line. 7.2.6. article_page_down Default: "SPACE" Scrolls the article down one page. If a spoiler is visible, this function reveals it. How exactly this is done depends on the setting of ``spoiler_display_mode''. If you are already at the end of the article, slrn goes to the next article (when reading from an slrnpull spool, headers for which no article bodies are present get skipped). If there is no next unread article in the group, it goes to the next group. If there is no next group with unread headers, it returns to the group screen. Whether or not you are prompted first in these cases depends on the settings of ``query_next_article'' and ``query_next_group''. 7.2.7. article_page_up Default: "b" "DELETE" Scrolls the article up one page. 7.2.8. article_right Default: "RIGHT" Pan the article window to the right. This is useful if the article contains long lines and wrapping is turned off. See also: ``wrap_flags'', ``wrap_article'' 7.2.9. article_search Default: "/" Searches for a given substring in the current article, starting at the cursor position. 7.2.10. author_search_backward Default: "A" Like ``author_search_forward'', but searching backwards, starting at the cursor. 7.2.11. author_search_forward Default: "a" Searches the "From:" header lines in the current group for a given substring, starting at the cursor position. 7.2.12. browse_url Default: "U" Searches for URLs in the current article and displays them in a menu. If you select one of them, slrn starts your browser on it. An exeption to this are "nntp:" URLs - slrn handles those itself by trying to fetch the referenced article or switching to the given newsgroup. See also: ``non_Xbrowser'', ``Xbrowser'' 7.2.13. cancel Default: "ESC CTRL-C" Cancels the current article (i.e. sends a request to delete it to your server). slrn only allows you to cancel articles you wrote yourself. Please note that due to abuse of cancel messages, some servers are configured to ignore them. 7.2.14. catchup Default: "C" "ESC C" Marks all articles up to the currently selected one as read. 7.2.15. catchup_all Default: "c" "ESC c" Marks all articles in the current group as read. 7.2.16. create_score Default: "K" Interactively creates a score file entry based on data from the currently selected article. If this function is called with a prefix argument, it opens the score file for manual editing. See also: ``score_editor_command'' 7.2.17. decode Default: ":" This function decodes files that are included in articles using the UU or base64 encoding. You first need to specify a temporary file to which the articles that should be decoded are saved. Then, the actual decoding takes place; the resulting files are put in the directory given in ``decode_directory''. When finished, slrn will ask you whether you want to delete the temporary file, which is usually not needed any longer at this point. By placing the cursor on a collapsed thread, you can decode the files in all articles in it. Multipart binary postings can be decoded by using ``tag_header'' to tag all parts first (you need to do this in the correct order; slrn does not re-arrange the parts). 7.2.18. delete Default: "d" "Deletes" the current article (i.e. marks it as read) and proceeds to the next unread header. If the cursor is on a collapsed thread, all articles in it are marked as read. 7.2.19. delete_thread Default: "ESC d" Marks the current article and its subthread (all of its "children" in the thread tree) as read. 7.2.20. enlarge_article_window Default: "^" Enlarges the article window one row. See also: ``shrink_article_window'' 7.2.21. evaluate_cmd Default: "CTRL-X ESC" Reads a line and interprets it as S-Lang. Identical with ``evaluate_cmd'' in group mode. 7.2.22. exchange_mark Default: "," Returns to the article previously marked using ``mark_spot''. Before that, the mark is moved to the current article, so you can jump back to it by calling exchange_mark again. 7.2.23. expunge Default: "x" Removes all articles from the list that are marked as read and not tagged as important (using ``toggle_header_tag''). 7.2.24. fast_quit Default: "Q" Quit slrn immediately (without returning to group mode first). 7.2.25. followup Default: "f" Write a followup on the current article. The following prefix arguments are accepted: 1 Insert all headers. 2 Insert all headers, but do not modify the article (no quoting, don't strip or attach signatures). 7.2.26. forward Default: "F" Forward (mail) the current article to someone. All headers are included when using the prefix argument ``1'', and the subject is prepended with ``Fwd:''. If you wish, you can edit the e-mail before it is sent (to add a comment or cut down the article to the relevant part). 7.2.27. forward_digest Default: "g" This function can be used to skip to the next part in mailing list digests or to find the next section section in many FAQs. To do this, it first tries to find a line that starts with "Subject:" (followed by a blank or a tab); if no such line is present, it looks for a line that starts with a digit. 7.2.28. get_children_headers Default: "ESC CTRL-P" Reconstructs the current sub-thread (i.e. finds all children of the selected posting). Using a prefix argument makes this function less "thorough", which means that it is faster, but more likely to miss some articles. For those who are interested in the technical details of this: get_children_headers queries the server for articles that have the current Message-ID in the "References" header line. Unless a prefix argument is set, this is done recursively for each child. This often finds additional articles, as the current Message-ID might have been dropped from the "References" header when it became too long at some point. Note: This function depends on the "XPAT" NNTP extension, which is not supported by all servers. Even when it's supported, it will only find articles that were posted to the current group. 7.2.29. get_parent_header Default: "ESC p" Goes to the current article's parent, downloading it from the server if necessary. When used with a prefix argument, the whole thread is reconstructed; the prefix argument two makes this faster, but more likely to miss some articles (see ``get_children_headers'' for a discussion of this). 7.2.30. grouplens_rate_article Default: "0" Set a GroupLens rating for the current article. 7.2.31. goto_article Default: "j" Jumps to an article with a given header number. Here, "header number" refers to the number assigned to the article by the server, not the one which is by default shown at the left border of the header window. 7.2.32. goto_last_read Default: "L" Jumps to the last article you read. 7.2.33. header_bob Default: "ESC <" Goes to the first article in this group ("beginning of buffer"). 7.2.34. header_eob Default: "ESC >" Goes to the last article in this group ("end of buffer"). 7.2.35. header_line_down Default: "DOWN" "CTRL-N" Goes to the next visible article in this group. 7.2.36. header_line_up Default: "UP" "CTRL-P" Goes to the previous visible article in this group. 7.2.37. header_page_down Default: "PAGEDN" "CTRL-D" "CTRL-V" Scrolls the header window down one page. 7.2.38. header_page_up Default: "PAGEUP" "CTRL-U" "ESC V" Scrolls the header window up one page. 7.2.39. help Default: "?" Displays the online help for article mode. 7.2.40. hide_article Default: "H" Hides the article pager (or shows it, if it was hidden). 7.2.41. locate_article Default: "ESC l" Locates an article by its Message-ID, downloading it from the server if necessary. 7.2.42. mark_spot Default: ";" Marks the current article. This makes it possible to come back to it later using ``exchange_mark''. 7.2.43. next Default: "n" Goes to the next unread article, uncollapsing threads if necessary. When reading from an slrnpull spool, headers for which the article body is not present get skipped. If the group does not contain a next unread header, slrn skips to the next group. Whether this happens automatically or you are prompted first depends on the setting of ``query_next_group''. 7.2.44. next_high_score Default: "!" Goes to the next article with a ``high score''. 7.2.45. next_same_subject Default: "=" Goes to the next article that has the same subject as the currently selected article. 7.2.46. pipe Default: "|" Pipes the current article to a program. 7.2.47. post Default: "P" Posts an article. This function is identical with ``post'' in group mode. 7.2.48. post_postponed Default: "ESC P" Post a postponed article. Identical with ``post_postponed'' in group mode. 7.2.49. previous Default: "p" Goes to the previous unread article, uncollapsing thread if necessary. When reading from an slrnpull spool, headers for which the article body is not present get skipped. 7.2.50. print Default: "y" Sends the selected article to a printer. See ``printer_name'' for a discussion of how exactly this function prints the article and how it can be customized. When used with a prefix argument, the article is printed unwrapped and including all hidden lines (e.g. header lines or signatures that are not displayed in the article pager). 7.2.51. quit Default: "q" Returns to group mode. 7.2.52. redraw Default: "CTRL-L" "CTRL-R" Redraws the screen. Identical with ``redraw'' in group mode. 7.2.53. repeat_last_key Default: "." Repeats the last keystroke. 7.2.54. reply Default: "r" Reply to the selected article via email. 7.2.55. request Default: "m" If only the header of an article has been fetched, this command will mark its body for download the next time slrnpull is run; if the body was already marked for download, it gets unrequested. When you use this function on a collapsed thread, it will work on all postings inside it that do not yet have a body. If some of them are already marked for download, but some others are not, it does not toggle the state of each individual article, but requests all bodies. 7.2.56. save Default: "o" Saves the current article to a file (in mbox format). If the cursor is on a collapsed thread or you used ``tag_header'' to tag articles, you are prompted whether you want to save the whole thread or all tagged articles, respectively. The default filename is the name of the current group in the directory specified by ``save_directory''. 7.2.57. show_spoilers Default: "ESC ?" Reveals the next spoiler (i.e. all currently hidden text up to the next formfeed character). When used with a prefix argument, all spoilers are revealed. This function can be customized using ``spoiler_display_mode''. 7.2.58. shrink_article_window Default: "CTRL-^" Shrinks the article window one row. See also: ``enlarge_article_window'' 7.2.59. skip_quotes Default: "TAB" Skips quoted text. What slrn regards as quoted text is determined by ``ignore_quotes''. 7.2.60. skip_to_next_group Default: "N" "ESC RIGHT" Goes to the next group that contains unread articles. If there is no such group, this function returns to group mode. 7.2.61. skip_to_previous_group Default: "ESC LEFT" Goes to the previous group that contains unread articles, returning to group mode if no such group exists. 7.2.62. subject_search_backward Default: "S" Like ``subject_search_forward'', but searching backwards. 7.2.63. subject_search_forward Default: "s" Searches the subjects in the current group for a given substring, beginning at the cursor. 7.2.64. supersede Default: "ESC CTRL-S" Supersedes the current article, i.e. allows you to re-edit it and sends it to the server along with a request to replace the original version with it. Like with ``cancel'', this is not honored by some servers due to abuse of this feature and only allowed by slrn if you are the author of the current article. 7.2.65. suspend Default: "CTRL-Z" Suspends slrn (if allowed by your shell). 7.2.66. tag_header Default: "#" Attaches a numerical tag to the current header and moves the cursor down one line. If the header is already tagged, the tag is removed. When applied on a collapsed thread, all articles in it are tagged (or untagged, respectively). Numerical tags are useful to ``save'' or ``decode'' multiple messages. 7.2.67. toggle_collapse_threads Default: "ESC t" (Un-)Collapses the current thread, depending on its current status. When used with a prefix argument, all threads are (un-)collapsed. 7.2.68. toggle_header_formats Default: "ESC a" Toggles between different ``header display formats''. You can pick a particular format by specifying a prefix argument (e.g. the function selects the second display format when called with two as the prefix argument). 7.2.69. toggle_header_tag Default: "*" Marks the current article unread, flags it as important (or removes the flag, if the article already had one) and moves the cursor to the next line. This flag prevents articles from being marked as read (both explicitly and by ``catchup'' functions). Using this function with a prefix argument removes the flags from all headers. Note: By default, these flags are not "persistent" - as soon as you leave the group, they are gone. However, the macro set stickytags.sl can be used to change this and even preserve them between sessions. 7.2.70. toggle_headers Default: "t" Toggles between the display of all or just the article headers selected in ``visible_headers''. 7.2.71. toggle_pgpsignature Default: "]" Toggles the variable ``hide_pgpsignature'' that controls the display of PGP signatures. 7.2.72. toggle_quotes Default: "T" Toggles the display of quoted text as recognized using ``ignore_quotes''. When n is set as a prefix arguments, the first n quote levels remain untouched. This function also sets the value of ``hide_quotes'' to match the new state. This means that if the quotes get shown again, it is set to 0; if a prefix argument is given, it is set to prefix argument + 1; otherwise, it is restored to the value it got when you last used a prefix argument (or, if you never did this, to 1). 7.2.73. toggle_rot13 Default: "ESC R" ROT13-decode article. Calling this function a second time undoes the effect. 7.2.74. toggle_signature Default: "\" Toggles the variable ``hide_signature'' which controls the display of signatures. 7.2.75. toggle_sort Default: "ESC S" Displays a menu that allows you to change the value of ``sorting_method'' which controls the threading / sorting method. 7.2.76. toggle_verbatim_marks Default: "[" Toggles the variable ``hide_verbatim_marks'', which controls the display of "verbatim marks". 7.2.77. toggle_verbatim_text Default: "{" Toggles the variable ``hide_verbatim_text'', which controls the display of text marked as "verbatim". 7.2.78. uncatchup Default: "ESC U" Marks all articles from the top of the header window up to the current article as unread. 7.2.79. uncatchup_all Default: "ESC u" Marks all headers in the current buffer as unread. If you want a command that affects all available articles (i.e. not only the ones you downloaded when entering the group), use ``uncatchup'' in group mode. 7.2.80. undelete Default: "u" Marks the current article (or all articles in a collapsed thread) as unread and moves the cursor to the next line. 7.2.81. untag_headers Default: "ESC #" Removes all numerical tags that were previously set using ``tag_headers''. 7.2.82. view_scores Default: "v" Brings up a selection box that lists all scorefile entries that match on the current article. The available information is: Scoring value of the entry, name of the entry (this field is optional; please see score.txt on how to assign names), name of the scorefile and line number. If you select an entry, your editor will be started on the scorefile. If the editor supports it and you have a "%d" escape in your ``score_editor_command'', the cursor is moved to the selected entry, which makes this function especially useful for finding and fixing "broken" scorefile entries. See also: ``create_score'' 7.2.83. wrap_article Default: "W" Toggles the wrapping of long lines. See also: ``wrap_method'' 7.2.84. zoom_article_window Default: "z" Maximizes the article pager (or unmaximizes it, if it already takes up the whole screen). 7.3. readline functions These functions can be used while entering data in slrn's readline interface, i.e. at a prompt at the bottom of the screen. 7.3.1. bdel Default: "BACKSPACE" Deletes the character before the cursor. 7.3.2. bol Default: "HOME" "CTRL-A" Moves the cursor to the beginning of the line. 7.3.3. complete Default: "TAB" When prompting for a filename, this function tries to complete the content of the line (up to the current position of the cursor) to the name of a file or directory. If multiple completions are possible, it will only insert the portion of the name that is common to all of them. In that case, calling the function again will give you a list of possible completions to chose from. On all other prompts, it works like ``self_insert''. 7.3.4. cycle Default: "SPACE" This function works like ``complete'', except that it cycles between all possible completions rather than inserting the largest common portion. When no completions are found, this command works like ``self_insert''; if you need a literal space character although a completion exists, use ``quoted_insert''. 7.3.5. del Default: "DELETE" "CTRL-D" "CTRL-V" Deletes the character under the cursor. 7.3.6. delbol Default: "CTRL-U" Deletes everything from the beginning of the line to the cursor position. 7.3.7. delbow Default: "CTRL-W" Deletes everything from the beginning of the word to the cursor position. 7.3.8. deleol Default: "CTRL-K" "CTRL-L" Deletes everything from the cursor position to the end of the line. 7.3.9. down Default: "DOWN" "CTRL-N" Jumps to the next (later) command line history entry. 7.3.10. enter Default: "RETURN" Finishes the editing, returning the current content of the line to the program. 7.3.11. eol Default: "END" "CTRL-E" Moves the cursor to the end of the line. 7.3.12. left Default: "LEFT" "CTRL-B" Moves the cursor to the left. 7.3.13. quoted_insert Default: "BACKTICK" Inserts the next key into the buffer, even if it is usually bound to a function. 7.3.14. right Default: "RIGHT" "CTRL-F" Moves the cursor to the right. 7.3.15. self_insert Default: any key not bound to another function Inserts the key it was called by into the buffer. This is useful if you want to "unbind" a key in readline mode. 7.3.16. trim Default: "ESC \" Strips trailing whitespace from the buffer. 7.3.17. up Default: "UP" "CTRL-P" Jumps to the previous (older) command line history entry. slrn-1.0.1/doc/pc-keys.txt000066400000000000000000000031031206520222400153400ustar00rootroot00000000000000Under OS/2 and Win32, the arrow and function keys return a different set of escape sequences. This file lists the escape sequences for these systems. For example, the standard ANSI escape sequence for the up arrow is "\e[A" whereas the `up' arrow returns "^@H" under OS/2 and Win32. [Note: the sequences described here were adapted from the jed documentation. However, jed has a more sophisticated key mapping than slrn and some of these may be incorrect. Please let me know if some are wrong. --John] % Home ^@G % Up ^@H % PgUp ^@I % Left ^@K % Right ^@M % End ^@O % Down ^@P % PgDn ^@Q % Insert ^@R % Delete ^@S % Key No-modifier Ctrl Shift Alt % ------------------------------------------------------------- % F1: ^@; ^@^ ^@T ^@h % F2: ^@< ^@_ ^@U ^@i % F3: ^@= ^@` ^@V ^@j % F4: ^@> ^@a ^@W ^@k % F5: ^@? ^@b ^@X ^@l % F6: ^@@ ^@c ^@Y ^@m % F7: ^@A ^@d ^@Z ^@n % F8: ^@B ^@e ^@[ ^@o % F9: ^@C ^@f ^@\ ^@p % F10: ^@D ^@g ^@] ^@q % F11: ^@\d133 ^@\d137 ^@\d135 ^@\d139 % F12: ^@\d134 ^@\d136 ^@\d136 ^@\d140 slrn-1.0.1/doc/score.sl000066400000000000000000000053671206520222400147150ustar00rootroot00000000000000% Mode for editing slrn score files % To use this, add the following line to your .jedrc file: % autoload ("score_mode", "score"); % Align the ':' characters in the same column define score_indent_line () { variable col, colon; push_spot (); bol_skip_white (); EXIT_BLOCK { pop_spot (); if (bolp ()) skip_white (); } col = what_column (); if (looking_at_char ('[') or looking_at_char ('%')) col = 1; else if (eolp ()) { push_spot (); bskip_chars ("\n\t "); bol_skip_white (); col = what_column (); pop_spot (); } else if (ffind_char (':')) { colon = what_column (); if (blooking_at ("Score")) colon -= 10; else colon -= 18; !if (colon) return; col -= colon; } else return; if (what_column () != col) { bol (); trim (); col--; whitespace (col); } } $1 = "score"; create_syntax_table ($1); set_syntax_flags ($1, 0x20); define_syntax ("%", "", '%', $1); define_syntax ("([{", ")]}", '(', $1); define_syntax ('\\', '\\', $1); define_syntax ("-a-zA-Z:", 'w', $1); % words define_syntax ("-0-9", '0', $1); % Numbers define_syntax ('[', '#', $1); () = define_keywords ($1, "Age:", 4); () = define_keywords ($1, "Date:From:Xref:", 5); () = define_keywords ($1, "Lines:Score:", 6); () = define_keywords ($1, "Score::", 7); () = define_keywords ($1, "Expires:Subject:", 8); () = define_keywords ($1, "Has-Body:", 9); () = define_keywords ($1, "Newsgroup:", 10); () = define_keywords ($1, "Message-Id:References:", 11); define score_mode () { variable score = "score"; set_mode (score, 0); use_syntax_table (score); set_buffer_hook ("indent_hook", "score_indent_line"); runhooks ("score_mode_hook"); % called after the hook to give a chance to load the abbrev table if (abbrev_table_p (score)) use_abbrev_table (score); } % This function may be called by jed when starting newsreader define score_arrange_score () { % See if this is a score file variable mode; variable group; variable score; variable group_re = "^[ \t]*\\(\\[.*\\]\\)"; (mode, ) = what_mode (); if (strcmp(mode, "score")) return; push_spot (); EXIT_BLOCK { pop_spot (); } % Find name of group for the score !if (re_fsearch (group_re)) return; group = regexp_nth_match (1); % indent the region push_spot (); do { score_indent_line (); eol (); trim (); } while (down(1)); pop_spot (); !if (bol_bsearch (group)) return; push_mark (); pop_spot (); bol (); push_mark (); push_mark (); eob (); score = bufsubstr (); del_region (); pop_mark_1 (); eol (); !if (re_fsearch (group_re)) eob (); insert (score); if (re_bsearch (group_re)) delete_line (); push_spot (); return; } slrn-1.0.1/doc/score.txt000066400000000000000000000256011206520222400151070ustar00rootroot00000000000000 slrn - Scoring John E. Davis Thomas Schultz Peter J Ross Version 0.9.9p1, October 2008. How to use scoring with the slrn newsreader. ______________________________________________________________________ Table of Contents 1. An introduction to scoring 1.1 General description of scoring 1.2 Location of the scorefile 1.3 Editing the scorefile 2. An explanation of the scorefile format 3. A sample slrn score file 4. Explanatory notes for the sample scorefile ______________________________________________________________________ 1. An introduction to scoring 1.1. General description of scoring slrn awards an article points by giving it a score. If the score for the article is less than max_low_score (zero by default), the article is marked as read. If the score is less than or equal to kill_score (-9999 by default), the article is killed. If the score is greater than or equal to min_high_score (1 by default), the article is marked as important. The purpose of the score file is to define the set of tests that an article must go through to determine the score. Although the score may be based on ANY header item, it is recommended that one stick with the information found in the news overview data when scoring in slrn (slrnpull gets full headers anyways, so it does not make a difference there). The news overview file typically contains: * Subject * From * Date * Message-ID * References * Bytes * Lines plus any header that your news admin decided to include here (usually, `Xref' is one of them). slrn offers two special keywords that also allow efficient scoring: `Newsgroup' (the newsgroup that the article is part of) and `Age' (the age of the article in days). 1.2. Location of the scorefile The location of the scorefile is specified with the scorefile configuration variable. E.g., set scorefile "scores/default.score" Note: The file must be created before it can be used. Tip: Using the ``.score'' filename suffix may enable appropriate syntax highlighting in some editors, such as vim. 1.3. Editing the scorefile The scorefile may be edited while slrn isn't running, or from within slrn with the create_score interactive function in article mode. By default, this function is bound to the ``K'' key. Using ``K'' alone gives an interactive choice of popular scoring options. To edit the scorefile with a text editor use a prefix argument (``ESC 1 K''); you'll be presented with a commented-out scorefile entry for editing. Tip: When learning scoring, reading the commented-out lines that slrn adds to the scorefile when creating scores interactively is likely to be as helpful as reading documentation. 2. An explanation of the scorefile format The format of the file is very simple (See below for an explicit example). The file is divided into sections delimited by a newsgroup or newsgroups enclosed in square brackets, e.g., [rec.crafts.*, rec.hobbies.*] The name may contain the `*' wild card character. Comments begin with the `%' character. Leading whitespace is ignored. Each section consists of comment lines, empty lines or keyword lines. Only the keyword lines are meaningful and all leading whitespace is ignored. A keyword line begins with the name of the keyword followed immediately by one or two colons and one space. The rest of the line usually consists of a regular expression. The keyword may be prefixed by the `~' character to signify that the regular expression should not match the object specified by the keyword. A group of keywords defines a test that is given to the header of the article. The `Score' keyword is used to assign a score to the header. If it is followed by a single colon, the score is only given if all tests are passed (logical AND); two colons indicate that the score should be awarded if any of the tests are passed (logical OR). The score can be any positive or negative integer. If the numerical value of the score is prefixed by an equals sign, score processing for the header is stopped and the header will be given the score for that test. Note: The `Score' keyword also serves to delimit tests. You can optionally add a comment behind the score, which will then be used as the name of the scorefile entry and displayed when using view_scores (`v') in article mode. Here is an example of this: Score: 100 % optional name here All keywords except for `Score' and `Expires' may be prefixed by the `~' character. If the `Expires' keyword appears, it must immediately follow the `Score' keyword. The `Expires' keyword may be used to indicate that the test is no longer to be applied on the date specified by the keyword. For example, Expires: 4/1/2010 (or: 1-4-2010) implies that the given test is no longer valid on or after April first 2010. As the example indicates, the date must be specified using either the format MM/DD/YYYY or DD-MM-YYYY. Note: DO NOT CONFUSE THIS WITH THE EXPIRES HEADER KEYWORD. The `Lines', `Bytes', `Age' and `Has-Body' keywords are also special. Their value is not a regular expression, rather, a simple integer. `Lines' and `Bytes' may be used to kill articles which contain too many or too few lines / bytes. For example, Score: -100 Bytes: 20480 assigns a score of -100 to articles that are larger than 20 kB. Please keep in mind that `Bytes:' is only available when getting overview data and will otherwise (e.g. in slrnpull) be set to 0. Similarly, the test Score: -100 ~Lines: 3 assigns a score to articles that have less than or equal to 3 lines. `Age' can be used to score articles which are younger than N days. For example: Score: 10 Age: 7 adds 10 points to the score of each article that is at most one week old. You can use negation (`~') to score articles that are older than N days. `Has-Body' can be used when reading offline in combination with slrnpull: You can tell slrnpull to download only article headers by default and fetch article bodies on request. In this case, you can use a rule like Score: 20 Has-Body: 1 to give each article that does have a body 20 points. You can invert this (i.e. score articles without bodies) either by using negation (`~') or by writing `Has-Body: 0'. Values other than 0 or 1 have no meaning. Finally a score file may include other score files via the `include' statement. The syntax is simple: include FILE The name of the file is considered to be relative to the directory of the file including it, unless an absolute path is specified. For instance, suppose `/home/john/News/Score' contains include /usr/local/share/slrn/score include score_spam and `/usr/local/share/slrn/score' contains the line: include score_spam In the first instance, `score_spam' will be read from the directory `/home/john/News' but in the second instance it will be read from `/usr/local/share/slrn'. 3. A sample slrn score file [news.software.readers] Score: =1000 % All slrn articles are good Subject: slrn Score: 1000 % This is someone I want to hear from From: davis@space\.mit\.edu Score: -9999 Subject: \ [comp.os.linux.*] Score: -10 Expires: 1/1/2010 Subject: swap Score: 20 Subject: SunOS Score: 50 From: Linus % Kill all articles cross posted to an advocacy group Score: -9999 Xref: advocacy ~From: Linus % This person I want nothing to do with unless he posts about % `gizmos' but only in comp.os.linux.development.* Score: -9999 From: someone@who\.knows\.where ~Subject: gizmo ~Newsgroup: development [~misc.invest.*, misc.taxes] Score:: -9999 Subject: Earn Money Subject: Earn \$ 4. Explanatory notes for the sample scorefile This file consists of three sections. The first section defines a set of tests applied to the news.software.readers newsgroups. The second section applies to the comp.os.linux newsgroups. The final section applies to ALL newsgroups EXCEPT misc.invest.* and misc.taxes (see below). The first section consists of three tests. The first test applies a score of 1000 to any subject that contains the string `slrn'. The second test applies to the `From'. It says that any article from davis@space.mit.edu has its score increased by 1000. The third test reduces by -9999 the score of any article whose subject contains the word `agent'. Since tests are applied in order, if an article contains both `slrn' and `agent', it will be given a score of 1000 since the value is prefixed with an equal sign. The second section is more complex. It applies to the comp.os.linux newsgroups and consists of 5 tests. The first three are simple: -10 points are given if the subject contains `swap', 20 if it contains `SunOS', and 50 if the article is from someone named `Linus'. This means that if Bill@Somewhere writes an article whose subject is `Swap, Swap, Swap', the article is given -10 points. However, if Linus writes an article with the same title, it is given -10 + 50 = 40 points. Note that the first test expires at the beginning of 2010. The fourth test kills all articles that were cross-posted to an advocacy newsgroup UNLESS they were posted by Linus. Note that if a keyword begins with the `~' character, the effect of the regular expression is reversed. The fifth test serves to filter out posts from someone@who.knows.where unless he posts about `gizmos' in one of the comp.os.development newsgroups. Again note the `~' character. The final section of the score file begins with the line [~ misc.invest.*, misc.taxes] If the first character following the opening square bracket is `~', then the newsgroup or newsgroups contained in the brackets are NOT to be matched. That is, the `~' character is used to denote the boolean NOT operation. For writing even more complex entries, slrn now allows the grouping of scorefile rules. Here is a simple example: Score:: -1000 ~Subject: \c[a-z] {: Subject: ^Re: ~Subject: ^Re:.*\c[a-z] } Lines enclosed in curly braces are grouped; the initial brace is followed by one or two colons that indicate whether only one (`::') or all of the lines (`:') inside the group need to match for the group to pass. As the result, the example kills subject header lines that do not contain lowercase characters, not counting an initial `Re:'. slrn-1.0.1/doc/slrn-doc.html000066400000000000000000000047401206520222400156430ustar00rootroot00000000000000 Accessing slrn's online documentation

Accessing slrn's Online Documentation

The current documentation for slrn is also available online. Besides the plain text versions that come with the source distribution this page also offers single and multi-page HTML versions of many documents and in some cases pdf versions as well. Users of slrn are strongly encouraged in addition to read through other sections of the slrn website.

Work on this documentation is now a continuing and evolving process courtesy of the Slrn Documentation Project. Details of this project can be found below.

The Slrn Documentation Project

The slrn Documentation Project is a third party project that aims to provide documentation for the slrn newsreader. The project goals are:

  • To assist in keeping the official slrn documentation up to date by allowing collaborative work by "unofficial" documentation writers before submitting patches to the slrn project.
  • To develop new documentation which may or may not become "official".
  • To modernise existing documentation by conversion from Linuxdoc-SGML to other formats.
  • To translate the documentation into other languages.

Updated document packs are available as well as a subversion repository where "work in progress" versions can be obtained. Assistance is always welcome in this project, please contact the administrator if you would like to be involved. Contact details can always be found on the project's website.

slrn-1.0.1/doc/slrn.1000066400000000000000000000201001206520222400142600ustar00rootroot00000000000000.\" .\" This manpage has been completely rewritten by Matthias Friedrich .\" based on the slrn reference manual .\" .TH slrn 1 "February 2008" Unix "User Manuals" .\" .\" ------------------------------------------------------------------- .\" .SH NAME slrn \- An easy to use NNTP / spool based newsreader. .\" .\" ------------------------------------------------------------------- .\" .SH SYNOPSIS .B slrn [\-aCdknmw] [\-C\-] .RI [\-D name ] .RI "[\-f\ " newsrc-file ] .RI "[\-i\ " config-file ] [\-k0] [\-\-create] .RI "[\-\-debug\ " file ] [\-\-help] [\-\-inews] .RI "[\-\-kill\-log " file ] .RI "[\-\-nntp [\-h\ " server "] [\-p\ " port ]] [\-\-show-config] [\-\-spool] [\-\-version] .\" .\" ------------------------------------------------------------------- .\" .SH DESCRIPTION .I slrn is an easy to use but powerful NNTP / spool based newsreader. .PP It is highly customizable, supports scoring, free key bindings and can be extended using the embedded S-Lang interpreter. .PP To use slrn, you either need to set the .I NNTPSERVER environment variable to the server you want to read news from or specify a server on the command line. A .I newsrc file is needed, too. In case you do not yet have one, you can create it using ``slrn \-f ~/.jnewsrc \-\-create''. .PP Inside slrn, online help is available via the '?' key. .\" .\" ------------------------------------------------------------------- .\" .SH OPTIONS .PP The following options can be used when calling slrn from the command line. They override both environment variables and settings in private and global configuration files. .IP "\-a" Read active file when checking for new news. .IP "\-C" Use colors without checking if the terminal supports it. .IP "\-C\-" Don't use colors, even if the terminal supports it. .IP "\-d" Get group descriptions (taglines) from the news server. Please note that this may cause a download of several hundred kilobytes and thus can take a long time. The output is saved to a local file, so you only need to do this once. May not be specified in combination with .IR \-\-create . .IP "\-D\fIname\fP" Add name to the list of predefined preprocessing tokens, which can be used in your slrnrc file to have conditionally interpreted lines. See the slrn reference manual for details. .IP "\-f \fInewsrc-file\fP" Use file as the newsrc file for this session. This is permanently set via the .I server configuration command. .IP "\-h \fIhost[:port]\fP" Connect to the NNTP server on .IR host , overriding the .I $NNTPSERVER environment variable. If no .I port is given, the default NNTP port (119) will be used. This option is only accepted after .I \-\-nntp or when NNTP is the default mode. .IP "\-i \fIconfig-file\fP" Read file as the initialization (slrnrc) file. The default is to use .slrnrc (or slrn.rc on VMS, OS/2 and Windows) in your home directory. .IP "\-k" Don't read the .IR "score file" . .IP "\-k0" Read the score file, but inhibit .I expensive scoring. A scoring rule is .I expensive if it contains header lines that are not included in the server's overview files. This makes applying them slow. .IP "\-m" Force mouse support (without checking if it works on the current terminal). .IP "\-n" Do not check for new groups (usually resulting in a faster startup). .IP "\-p \fIN\fP" Use port N to connect to the NNTP server. .IP "\-w" Wait for a key before switching to full screen mode, allowing the user to read startup messages. .IP "\-\-create" Read the active file (the list of all groups) from the news server to create an initial newsrc file. .IP "\-\-debug \fIfile\fP" Write debugging output to .IR file . .IP "\-\-help" Show help for command line switches. .IP "\-\-inews" Use an external .I "inews program" to post articles. .IP "\-\-kill\-log \fIfile\fP" Keep a log of all articles that were killed by the scorefile in .IR file . .IP "\-\-nntp" Use builtin NNTP support for reading and posting (an external program is used to post if slrn was compiled with \-\-enable\-force\-inews). .IP "\-\-pull" Spool outgoing articles locally for slrnpull to send. .IP "\-\-show-config" Print detailed information about slrn configuration. .IP "\-\-spool" Read directly from spool. .IP "\-\-version" Print version and some compile time settings. .\" .\" ------------------------------------------------------------------- .\" .SH ENVIRONMENT .I slrn uses the following list of environment variables. Note: environment variables can be overridden by configuration files or command line switches. .TP .B COLORTERM If this variable is set, slrn will assume that your terminal supports .IR "ANSI color sequences" . It also enables a workaround for a problem with the .I mouse reporting when running slrn inside of an rxvt. .TP .B DISPLAY If set, slrn assumes that X11 is running. .TP .B EDITOR See .IR $SLRN_EDITOR . .TP .B HOME See .IR $SLRNHOME . .TP .B HOSTNAME If no .I hostname is given, the value of this environment variable is used. .TP .B LOGNAME See .IR $USER . .TP .B NAME Set it to your realname, if slrn can't determine it otherwise. .TP .B NNTPSERVER You can use this variable to tell slrn which NNTP server to connect to. It can be overridden by the command line option \-h. .TP .B ORGANIZATION The name of your organization. .TP .B PRINTER On unix systems, slrn pipes the current article to ``lpr \-P .IR $PRINTER "''" to print it. .TP .B PWD This variable is only used on unix systems that don't support getcwd(3). In these cases, it should be set to the current directory at the time slrn is invoked. This is usually done by the shell and nothing the user has to worry about. .TP .B REPLYTO The value of this variable is used as the default if you do not set .I replyto in your slrnrc file. .TP .B SLANG_EDITOR See .IR $SLRN_EDITOR . .TP .B SLRNHELP You can set this variable to a file slrn should read its online help from. This is only needed when the default key bindings have been changed and you want the help function to reflect this. If unset, slrn looks for help.txt in the configuration directory. .TP .B SLRNHOME When interpreting filenames as relative to your home directory, slrn uses this variable to find out what your home directory is. If .I $SLRNHOME is unset, .I $HOME is used instead. .TP .B SLRN_EDITOR The editor to start for editing articles. If this variable is unset, slrn subsequently looks at .IR $SLANG_EDITOR ", " $EDITOR " and " $VISUAL . .TP .B SLRN_SLANG_DIR If set, slrn will search for slang macros here. If not set slrn will search in the default path, which is defined at compile time (usually share_dir/slang). .TP .B TMP Indicates the directory in which slrn should save temporary files. .TP .B TMPDIR .RI "See " $TMP . .TP .B USER Your username, if slrn can't get it from the system by other means. .TP .B VISUAL .RI "See " $SLRN_EDITOR . .\" .\" ------------------------------------------------------------------- .\" .SH FILES .TP $HOME/.slrnrc User-specific configuration file. .TP config_dir/slrn.rc System-wide configuration file. config_dir is set at compile time (/usr/local/etc by default). .TP $HOME/.jnewsrc default newsrc file for .I slrn. .TP $HOME/.jnewsrc.dsc Per user newsgroups descriptions. .TP share_dir/newsgroups.dsc Global newsgroup descriptions. share_dir is set at compile time (/usr/local/share/slrn by default). .\" .\" ------------------------------------------------------------------- .\" .SH SEE ALSO The documentation that comes with .IR slrn , especially FIRST_STEPS, manual.txt, FAQ and score.txt. If you consider writing S-Lang macros, also look at README.macros and slrnfuns.txt. Recent versions of the slrn manual and the FAQ as well as additional information can also be found on slrn's official home page: http://slrn.sourceforge.net/ Questions about .I slrn that are not covered by existing documentation may be posted to the newsgroup .I news.software.readers where they will be answered by knowledgeable users or the author of the program. In addition, announcements of new versions of .I slrn are posted there. The latest version of .I slrn is available from http://prdownloads.sourceforge.net/slrn/ .\" .\" ------------------------------------------------------------------- .\" .SH AUTHOR John E. Davis slrn-1.0.1/doc/slrn.rc000066400000000000000000000523601206520222400145410ustar00rootroot00000000000000% -*- slang -*- %% This is a sample startup file for the slrn newsreader and meant as a %% template for your personal startup file; it is not a full reference %% of slrn's config options -- please see the reference manual for this. %% The percent character is used for comments. % %% 1. Tell slrn about your identity (name, email address and such) % % The "From:" header will be generated from the following three variables. % With the example settings, it would read "John Doe " %set username "john" %set hostname "doe.com" %set realname "John Doe" % Set this if you want replies to your articles to go to a address different % from the one in "From:". %set replyto "John Doe " % What to put into the "Organization:" header line. %set organization "Doe inc." % The name of your signature file. If "", no signature is added. %set signature ".signature" % %% 2. Server specific settings % % Tell slrn which newsrc file it should use for which server. % Note: This does *not* set the default server; you need to set the % NNTPSERVER environment variable for this. %server "news.doe.com" ".jnewsrc-doe" % If a server requires authentication, add a nnrpaccess line for it. % If you leave username and/or password empty, slrn will prompt for it. %nnrpaccess "news.doe.com" "john" "secret" % Some servers require authentication, but don't ask for it. % To offer your authentication data "voluntarily", set this variable to 1. %set force_authentication 0 % This can either be set to "nntp" (read online) or "spool" (use local spool) %set server_object "nntp" % This can be "nntp" (post directly to the server), "inews" (use external % program for posting) or "slrnpull" (spool message for slrnpull to send). %set post_object "nntp" % Set this to zero if you want to leave Message-ID generation to your server % or your system does not have a proper unique hostname. %set generate_message_id 1 % If non-zero, slrn reads the active file on each startup. You might want to % use this if your network connection is fast or the server has few groups. %set read_active 0 % The following variables are only meaningful when using spool mode: % Basic directory settings %set spool_inn_root "/var/lib/news" %set spool_root "/var/spool/news" %set spool_nov_root "/var/spool/news/over.view" % These are relative to spool_inn_root unless they start with "/". %set spool_active_file "data/active" %set spool_activetimes_file "data/active.times" %set spool_newsgroups_file "data/newsgroups" % This value is relative to the directories under spool_nov_root: %set spool_nov_file ".overview" % Whether to check for each article when reading an overview file (slower, % but may save you from lots of "article not available" errors). %set spool_check_up_on_nov 0 % %% 3. Which external programs do you want to use? % % Note OS/2 and Win32 users: % To separate directories you can either use a single '/' or % double '\\'. Single backslashes are not supported. For example, use % "C:\\home\\file.txt" or "C:/home/file.txt" but NOT "C:\home\file.txt" % Set your favourite editor. Use %s for the file name and %d for the line % where the cursor should be placed (usually at the beginning of the body). %set editor_command "jed '%s' -g %d -tmp" %set editor_command "vim -c %d '%s'" % You can have separate commands for editing posts, mail, and score files. %set mail_editor_command "jed '%s' -g %d -tmp --mail-mode" %set post_editor_command "jed '%s' -g %d -tmp --mail-mode" %set score_editor_command "jed '%s' -g %d -tmp --score-arrange-score" % If non-zero, abort posting or email operation if the file was not modified % by the editor. %set abort_unmodified_edits 0 % In case we need metamail to display an article: %set metamail_command "metamail" % WWW browser to use. Xbrowser is used when the DISPLAY environment variable % is set; non_Xbrowser otherwise. %set non_Xbrowser "lynx '%s'" %set Xbrowser "firefox '%s' &" % Command to use for printing % Note: On Win32, this variable defines the name of the printer queue to use. %set printer_name "lpr -Plp" % In case you want to use another mailer than sendmail. Be sure that it % implements the same interface, though! %set sendmail_command "/usr/lib/sendmail -oi -t -oem -odb" % Set this to one if you want the "From:" header in e-mails to be generated % from the hostname / username / realname variable. % Note: Not all MTAs are configured to allow this. %set generate_email_from 0 % %% 4. Directory / file names % % Note: All filenames in this section are relative to HOME unless they start % with a '/'. % Filename where articles / email you sent are archived. % Note: If these are unset, slrn does not keep a copy of outgoing messages. %set save_posts "News/My_Posts" %set save_replies "News/My_Replies" % File where failed posts are appended. Use "" to disable saving. %set failed_posts_file "dead.letter" % Name of score file. %set scorefile "News/Score" % Name of directory where decoded files are placed. %set decode_directory "News" % Directory where all other files are saved. %set save_directory "News" % Directory where postponed articles are placed. Please make sure it exists. %set postpone_directory "News/postponed" % Whether to put temporary files for postings, followups and replies in the % directory specified by the TMPDIR environment variable or /tmp. %set use_tmpdir 0 % %% 5. Attribution lines / custom headers % % This sets the attribution lines for follow-ups and replies. The following % format specifiers are recognized: % %d:date, %D:date (formatted), %r:real name, %R:first name, % %f:email address, %s:subject, %m:msgid, %n:newsgroups, %%: percent %set followup_string "On %D, %r <%f> wrote:" %set reply_string "In %n, you wrote:" % Custom headers to add to *new* posts %set custom_headers "Mail-Copies-To: nobody" % Custom headers for followup/reply/supersedes. These can use format % specifiers as in the 'followup_string' variable. %set followup_custom_headers "Mail-Copies-To: nobody" %set reply_custom_headers "X-newsgroup: %n\nX-realname: %r" %set supersedes_custom_headers "X-Superseded-Date: %d" % This is inserted when sending email CCs of your postings. %set cc_post_string "[This message has also been posted to %n.]" % %% 6. Character mapping / MIME support % % Character set used for the display or terminal; valid values include: % utf-8, iso-8859-1, ibm850, ibm852, koi8, %charset display "utf-8" % the character set used for outgoing articles %charset outgoing "utf-8" % If non-zero, call metamail for MIME formats slrn cannot handle. %set use_metamail 1 % %% 7. Some preferences for the header window (see the manual for more) % % These sorting methods are available: % If 0, do not sort. If 1, perform threading. If 2, sort by subject. % If 3, thread then sort result by subject. % If 4, sort by score. If 5, thread then sort by score. % If 6, sort by score and subject. % If 7, thread, then sort by score and subject. % If 8, sort by date with most recent first. % If 9, thread, then sort by date with most recent first. % If 10, sort by date with most recent last. % If 11, thread then sort by date with most recent last. % If 12, use the value of the custom_sort_order variable. %set sorting_method 3 % If non-zero, a header with a new subject will start a new thread. %set new_subject_breaks_threads 0 % %% 8. Some preferences for the article pager (see the manual for more) % % Which headers do you want to see by default? % You can also match all headers starting with a given string and exclude % specific headers by preceding them with "!" (e.g. use "X-,!X-Trace:" to % display all the "X-"headers except "X-Trace:"). %visible_headers "From:,Subject:,Newsgroups:,Followup-To:,Reply-To:" % If non-zero, #v+ and #v- will be interpreted as markers of verbatim lines. %set process_verbatim_marks 1 % If non-zero, hide #v+/#v- verbatim marks. %set hide_verbatim_marks 0 % If non-zero, hide signature in articles. %set hide_signature 0 % If non-zero, hide PGP signature in articles. %set hide_pgpsignature 0 % Set the starting score for an article that has headers that are invalid, % e.g., an invalid From header. %set invalid_header_score -1000 % %% 9. Display / color settings % % If non-zero, slrn will draw the thread tree using simple ascii characters %set simulate_graphic_chars 0 % Enable xterm/win32 mouse support: 1 to enable, 0 to disable %set mouse 0 % Draw cursor bar ala tin instead of slrn "->" cursor? %set display_cursor_bar 0 % Set to 1 to have slrn scroll by full page instead of by line. %set scroll_by_page 0 % Should color be used to indicate the score of an article? % (0) scores do not influence colors (1) scores are colored by their value % (2) subjects are colored by score (3) both are colored by score %set color_by_score 3 % If non-zero, the subjects of unread articles are highlighted %set highlight_unread_subjects 1 % If non-zero, URLs are highlighted. %set highlight_urls 1 % Enables blinking in monochrome mode and allows bright backgrounds in some % color terminals: %set use_blink 1 % This color object is only used when highlight_unread_subjects is set to 2 % (see the reference manual for details): color unread_subject "white" "black" "bold" mono unread_subject "bold" % These settings are used for color terminals: color article "lightgray" "black" color author "magenta" "black" color boldtext "brightblue" "black" "bold" color box "black" "white" color cursor "brightgreen" "black" color date "lightgray" "black" color description "lightgray" "black" color error "red" "black" "blink" color frame "yellow" "blue" color from_myself "brightmagenta" "black" "bold" color group "lightgray" "black" "bold" color grouplens_display "lightgray" "black" color header_name "green" "black" "bold" color header_number "green" "black" color headers "brightcyan" "black" color neg_score "green" "black" color pos_score "blue" "black" color high_score "red" "black" "bold" color italicstext "magenta" "black" "bold" color menu "yellow" "blue" color menu_press "lightgray" "yellow" color message "lightgray" "black" color normal "lightgray" "black" color pgpsignature "lightgray" "black" color quotes "red" "black" color quotes1 "magenta" "black" color quotes2 "brown" "black" color quotes3 "brown" "black" color quotes4 "brown" "black" color quotes5 "brown" "black" color quotes6 "brown" "black" color quotes7 "brown" "black" color response_char "green" "black" "bold" color signature "red" "black" color selection "yellow" "blue" "bold" color status "yellow" "blue" color subject "lightgray" "black" color thread_number "lightgray" "black" "bold" color tilde "green" "black" "bold" color tree "red" "black" "bold" color underlinetext "cyan" "black" "underline" color url "white" "black" "bold" color verbatim "green" "black" % These attributes are for terminals that cannot display color: mono article "none" mono author "none" mono boldtext "bold" mono cursor "bold" "reverse" mono date "none" mono description "none" mono error "blink" mono frame "reverse" mono from_myself "bold" mono group "bold" mono grouplens_display "none" mono header_name "bold" mono header_number "none" mono headers "none" mono high_score "bold" mono italicstext "bold" mono menu "reverse" mono menu_press "none" mono neg_score "none" mono normal "none" mono pgpsignature "none" mono pos_score "reverse" mono quotes "none" mono quotes1 "none" mono quotes2 "none" mono quotes3 "none" mono quotes4 "none" mono quotes5 "none" mono quotes6 "none" mono quotes7 "none" mono response_char "bold" mono selection "bold" mono signature "none" mono status "reverse" mono subject "none" mono thread_number "bold" mono tilde "bold" mono tree "none" mono underlinetext "underline" mono url "bold" mono verbatim "none" % %% 10. Group mode key bindings % % Cursor movement: setkey group line_down "" % Go to the next group setkey group line_down "^N" setkey group line_up "" % Go to the previous group setkey group line_up "^P" setkey group page_down "^V" % Scroll to the next page setkey group page_down "" setkey group page_down "^D" setkey group page_up "V" % Scroll to the previous page setkey group page_up "" setkey group page_up "^U" setkey group bob "<" % Go to the bottom of the list setkey group bob "^K" setkey group eob ">" % Go to the top of the list setkey group eob "^K" setkey group group_search_backward "\\"% Group keyword search backward setkey group group_search_forward "/" % Group keyword search forward % Actions: setkey group select_group "" % Enter the current newsgroup setkey group select_group "" setkey group post "P" % Post an article setkey group post_postponed "P" % Post or edit a postponed article setkey group refresh_groups "G" % Get new news from server setkey group toggle_scoring "K" % Select scoring mode setkey group repeat_last_key "." % Repeat last key sequence setkey group evaluate_cmd "^X" % Read line and interpret it as S-Lang setkey group suspend "^Z" % Suspend slrn setkey group quit "Q" % Quit slrn % Group management: setkey group catchup "C" % Mark all articles as read setkey group uncatchup "u" % Mark all articles as unread setkey group add_group "a" % Add a new newsgroup setkey group subscribe "S" % Subscribe to the current newsgroup setkey group unsubscribe "U" % Unsubscribe from the current newsgroup setkey group move_group "m" % Move newsgroup to a different location setkey group transpose_groups "^X^T" % Transpose position of groups setkey group save_newsrc "X" % Force a save of the newsrc file % Display: setkey group toggle_group_formats "A" % Toggle group display formats setkey group toggle_hidden "l" % Toggle display of hidden groups setkey group toggle_list_all "L" % Toggle listing of unsubscribed groups setkey group redraw "^L" % Redraw the screen setkey group redraw "^R" setkey group help "?" % Display a help screen % %% 11. Article mode key bindings % % General movement: setkey article next "n" % next unread article setkey article previous "p" % previous unread article setkey article skip_to_next_group "N" % go to the next group setkey article skip_to_next_group "" setkey article skip_to_previous_group "" % go to the previous group setkey article next_high_score "!" % next article with high score setkey article next_same_subject "=" % next article with same subject setkey article goto_last_read "L" % go to the last read article % Actions: setkey article post "P" % Post a new article setkey article post_postponed "P" % Post/edit a postponed article setkey article followup "f" % Post a followup setkey article reply "r" % Reply to poster setkey article forward "F" % Forward posting via mail setkey article supersede "^S" % Supersede article setkey article cancel "^C" % Cancel article setkey article save "O" % Save article setkey article pipe "|" % Pipe article setkey article print "y" % Print article setkey article decode ":" % Decode article setkey article suspend "^Z" % Suspend slrn setkey article quit "q" % Quit slrn setkey article fast_quit "Q" % Quit slrn immediately % Moving in the article pager: setkey article article_line_down "" % Scroll article down one line setkey article article_line_down "" setkey article article_line_up "" % Scroll article up one line setkey article article_page_down "" % Scroll article down one page setkey article article_page_up "" % Scroll article up one page setkey article article_page_up "b" % Scroll article up one page setkey article article_eob ">" % Move to the end of the article setkey article article_bob "<" % Move to the beginning setkey article article_left "" % Pan article to the left setkey article article_right "" % Pan article to the right setkey article article_search "/" % Search forward in the article setkey article skip_quotes "" % Skip beyond quoted text setkey article forward_digest "g" % Skip to next digest % Moving in the header display: setkey article header_line_down "" % Move to next article setkey article header_line_down "^N" setkey article header_line_up "" % Move to previous article setkey article header_line_up "^P" setkey article header_page_down "^V" % Scroll down one page setkey article header_page_down "" setkey article header_page_down "^D" setkey article header_page_up "V" % Scroll up one page setkey article header_page_up "" setkey article header_page_up "^U" setkey article header_eob ">" % Go to last article in group setkey article header_bob "<" % Go to first article in group setkey article goto_article "j" % Move to article (number) setkey article author_search_forward "a" % Author search forward setkey article author_search_backward "A" % Author search backward setkey article subject_search_forward "s" % Subject search forward setkey article subject_search_backward "S" % Subject search backward % Marking as read/unread: setkey article delete "d" % Mark article as read setkey article undelete "u" % Mark article as unread setkey article delete_thread "d" % Mark (Sub-)Thread as read setkey article catchup_all "c" % Mark all articles as read setkey article catchup_all "c" setkey article catchup "C" % Catchup (up to this article) setkey article uncatchup_all "u" % Mark all articles as unread setkey article uncatchup "U" % Uncatchup (up to this article) setkey article expunge "x" % Remove all read articles % Display properties: setkey article toggle_headers "t" % Full headers (on/off) setkey article toggle_rot13 "R" % Toggle ROT-13 decryption setkey article toggle_quotes "T" % Display quoted lines (on/off) setkey article toggle_signature "\\" % Show signature (on/off) setkey article wrap_article "W" % Wrap long lines (on/off) setkey article show_spoilers "?" % Reveal spoilers (on/off) setkey article toggle_pgpsignature "]" % Show PGP signature (on/off) setkey article toggle_verbatim_marks "[" % Show verbatim marks (on/off) setkey article enlarge_article_window "^" % Enlarge the article window setkey article shrink_article_window "^^" % Shrink the article window setkey article zoom_article_window "z" % Maximize/Unmaximize article setkey article hide_article "h" % Hide/Show the article window setkey article browse_url "U" % Search for URL and follow it setkey article toggle_sort "S" % Select threading method setkey article toggle_collapse_threads "t" % Collapse/Uncollapse thread setkey article toggle_header_formats "a" % Toggle header display formats setkey article redraw "^L" % Redraw screen setkey article redraw "^R" % Redraw screen setkey article help "?" % Display help screen % Miscellaneous actions: setkey article create_score "K" % Create a scorefile entry setkey article view_scores "v" % Show which rules matched setkey article locate_article "l" % Locate article by Message-ID setkey article get_children_headers "^P" % Find all children setkey article get_parent_header "p" % Reconstruct thread setkey article mark_spot ";" % Mark current article position setkey article exchange_mark "," % Return to marked article setkey article tag_header "#" % Numerically tag article setkey article untag_headers "#" % Remove all numerical tags setkey article toggle_header_tag "*" % Set/remove header tag setkey article repeat_last_key "." % Repeat last key sequence setkey article grouplens_rate_article "0" % Rate article with grouplens setkey article evaluate_cmd "^X" % Interpret line as S-Lang % %% Command prompt key bindings % setkey readline bol "^A" % Beginning of line setkey readline eol "^E" % End of line setkey readline right "" % Move right setkey readline left "" % Move left setkey readline bdel "^H" % Delete backward setkey readline bdel "^?" % Delete Backward setkey readline del "^D" % Delete Foreword setkey readline delbol "^U" % Delete to Beginning of line setkey readline delbow "^W" % Delete to Beginning of word setkey readline deleol "^K" % Delete to End of line setkey readline trim "/" % Trim whitespace setkey readline quoted_insert "^Q" % Quoted insert setkey readline complete "" % Complete filename setkey readline cycle " " % Cycle among filenames slrn-1.0.1/doc/slrnfuns.txt000066400000000000000000002054271206520222400156540ustar00rootroot00000000000000 Slrn Intrinsic Function Reference Manual John E. Davis, jed@jedsoft.org Thomas Schultz, tststs@gmx.de Apr 3, 2012 ____________________________________________________________ Table of Contents 1. Header and Thread Functions 1.1 collapse_thread 1.2 collapse_threads 1.3 extract_article_header 1.4 extract_displayed_article_header 1.5 get_grouplens_score 1.6 get_header_flags 1.7 get_header_number 1.8 get_header_score 1.9 get_header_tag_number 1.10 get_visible_headers 1.11 goto_num_tagged_header 1.12 has_parent 1.13 header_cursor_pos 1.14 header_down 1.15 header_next_unread 1.16 header_up 1.17 headers_hidden_mode 1.18 is_thread_collapsed 1.19 locate_header_by_msgid 1.20 next_tagged_header 1.21 prev_tagged_header 1.22 re_bsearch_author 1.23 re_bsearch_subject 1.24 re_fsearch_author 1.25 re_fsearch_subject 1.26 set_header_display_format 1.27 set_header_flags 1.28 set_header_score 1.29 set_visible_headers 1.30 sort_by_sorting_method 1.31 thread_size 1.32 uncollapse_thread 1.33 uncollapse_threads 2. Article Functions 2.1 _is_article_visible 2.2 article_as_string 2.3 article_cline_as_string 2.4 article_cline_number 2.5 article_count_lines 2.6 article_goto_line 2.7 article_line_down 2.8 article_line_up 2.9 bsearch_article 2.10 get_article_window_size 2.11 get_body_status 2.12 get_next_art_pgdn_action 2.13 is_article_visible 2.14 is_article_window_zoomed 2.15 pipe_article 2.16 raw_article_as_string 2.17 re_bsearch_article 2.18 re_search_article 2.19 re_search_article_first 2.20 replace_article 2.21 request_body 2.22 save_current_article 2.23 search_article 2.24 search_article_first 2.25 set_article_window_size 3. Group Functions 3.1 current_newsgroup 3.2 get_group_flags 3.3 get_group_order 3.4 group_down_n 3.5 group_search 3.6 group_unread 3.7 group_up_n 3.8 hide_current_group 3.9 is_group_mode 3.10 select_group 3.11 set_group_display_format 3.12 set_group_flags 3.13 set_group_order 4. Dialog and Message Functions 4.1 get_response 4.2 get_select_box_response 4.3 get_yes_no_cancel 4.4 message_now 4.5 popup_window 4.6 read_mini 4.7 read_mini_filename 4.8 read_mini_integer 4.9 read_mini_no_echo 4.10 read_mini_variable 4.11 select_list_box 4.12 set_input_chars 4.13 set_input_string 5. Key Input Functions 5.1 call 5.2 definekey 5.3 get_prefix_arg 5.4 getkey 5.5 input_pending 5.6 reset_prefix_arg 5.7 set_prefix_argument 5.8 undefinekey 5.9 ungetkey 6. File I/O Functions 6.1 close_log_file 6.2 log_message 6.3 make_home_filename 6.4 open_log_file 6.5 print_file 7. Miscellaneous Functions 7.1 _slrn_version 7.2 _slrn_version_string 7.3 datestring_to_unixtime 7.4 get_bg_color 7.5 get_fg_color 7.6 get_variable_value 7.7 quit 7.8 register_hook 7.9 reload_scorefile 7.10 server_name 7.11 set_color 7.12 set_color_attr 7.13 set_ignore_quotes 7.14 set_integer_variable 7.15 set_string_variable 7.16 set_strip_re_regexp 7.17 set_strip_sig_regexp 7.18 set_strip_was_regexp 7.19 set_utf8_conversion_table 7.20 setlocale 7.21 tt_send 7.22 unregister_hook 7.23 update 8. Hooks 8.1 article_mode_hook 8.2 article_mode_quit_hook 8.3 article_mode_startup_hook 8.4 cc_hook 8.5 followup_hook 8.6 forward_hook 8.7 group_mode_hook 8.8 group_mode_startup_hook 8.9 header_number_hook 8.10 make_from_string_hook 8.11 make_save_filename_hook 8.12 post_file_hook 8.13 post_filter_hook 8.14 post_hook 8.15 pre_article_mode_hook 8.16 quit_hook 8.17 read_article_hook 8.18 reply_hook 8.19 resize_screen_hook 8.20 startup_hook 8.21 subject_compare_hook 8.22 supersede_hook ______________________________________________________________________ 1. Header and Thread Functions The intrinsic functions described in this chapter are available in article mode and allow you to manipulate the header window. 1.1. collapse_thread Usage Void collapse_thread () Description This function may be used to collapse the current thread. See Also uncollapse_thread, collapse_threads, is_thread_collapsed 1.2. collapse_threads Usage Void collapse_threads () Description This function will collapse all threads in the current newsgroup. See Also uncollapse_threads 1.3. extract_article_header Usage String_Type extract_article_header (String h) Description This function returns the article header line specified by the header keyword h of the currently selected header. The currently selected header may correspond to the currently displayed article. To get a header of the currently displayed article, use the extract_displayed_article_header function. If the header does not exist, it returns the empty string. Notes This function will not query the server. If you are looking for a non-NOV header which was not stored for expensive scoring, then download the message associated with the current header line. See Also extract_displayed_article_header, is_article_visible 1.4. extract_displayed_article_header Usage String_Type extract_displayed_article_header (String h) Description This function returns the article header line specified by the header keyword h of the currently displayed message. If the header does not exist, it returns the empty string. See Also extract_displayed_article_header, is_article_visible 1.5. get_grouplens_score Usage Integer get_grouplens_score () Description This function returns the grouplens score of the current header. If the header has no grouplens score, or if grouplens support has not been enabled, 0 will be returned. 1.6. get_header_flags Usage Integer get_header_flags () Description This functions returns the flags for the current header. This integer is a bitmapped value whose bits are defined by the following constants: HEADER_READ : set if header is marked as read HEADER_TAGGED : set if header has `*' tag HEADER_HIGH_SCORE : set if header has high score HEADER_LOW_SCORE : set if header has low score See Also set_header_flags 1.7. get_header_number Usage Integer get_header_number () Description This function returns the article number for the current header (i.e. the one assigned by the server and recorded in the newsrc file). If you want the current cursor position instead, use header_cursor_pos. 1.8. get_header_score Usage Integer get_header_score () Description This functions returns the score for the current header. See Also set_header_score 1.9. get_header_tag_number Usage Integer get_header_tag_number () Description This function returns the value of the numerical tag associated with the current header. If the header has no numerical tag, zero is returned. 1.10. get_visible_headers Usage String_Type get_visible_headers () Description The get_visible_headers function returns the list of headers headers that are to be displayed when an article is viewed. See the documentation for the set_visible_headers for the format of this string. See Also set_visible_headers, is_article_visible, set_header_display_format 1.11. goto_num_tagged_header Usage Integer goto_num_tagged_header (Integer n) Description This function causes the header with numerical tag n to become the current header. It returns 1 upon success or 0 upon failure. See Also header_down, get_header_flags, call 1.12. has_parent Usage Integer has_parent () Description Returns 1 if the current header has a parent (within a thread tree), 0 otherwise. 1.13. header_cursor_pos Usage Integer header_cursor_pos () Description This function returns the current position of the cursor in the header summary window. This is the same as the ``header number'' of the article that gets displayed if the use_header_numbers config variable is turned on, so it is always a number in the range 1 through SCREEN_HEIGHT-3; do not confuse it with the article number assigned by the server (which can be obtained using the intrinsic function get_header_number). If the article pager is ``zoomed'', this function always returns 1. 1.14. header_down Usage Integer header_down (Integer n) Description The function moves the current position down n headers. It returns the number that was actually moved. See Also header_up 1.15. header_next_unread Usage Integer header_next_unread () Description Goto next unread header. When reading from an slrnpull spool, headers for which the article body is not present are skipped. The function returns one upon success or zero upon failure. See Also header_down 1.16. header_up Usage Integer header_up (Integer n) Description The function moves the current position up n headers. It returns the number that was actually moved. See Also header_down 1.17. headers_hidden_mode Usage Int_Type headers_hidden_mode () Description This function may be used to determine whether or not some headers will be hidden when an article is displayed. It returns 0 is all headers will be displayed, or a non-zero value if some may be hidden. See Also set_visible_headers, get_visible_headers, is_article_visible 1.18. is_thread_collapsed Usage Integer is_thread_collapsed () Description If the current header is the start of a collapsed thread, this function will return a non-zero value. If the thread is expanded, zero will be returned. See Also collapse_thread 1.19. locate_header_by_msgid Usage Int_Type locate_header_by_msgid (String_Type msgid, Int_Type qs) Description The locate_header_by_msgid function may be used to set the current header to one whose message-id is given by msgid. If the second parameter qs is non-zero, then the header will be retrieved from the server if it is not in the current list of headers. The function returns 1 if an appropriate header was found, or 0 otherwise. Example One possible use of this function is to mark the current position in the header list and return to that position later, e.g., % Save the current position variable msgid = extract_article_header ("Message-ID"); . . % Return to previous position. () = locate_header_by_msgid (msgid, 0); 1.20. next_tagged_header Usage Integer next_tagged_header () Description This function moves the current header position to the next * tagged header. It returns non-zero upon success or zero upon failure. See Also prev_tagged_header, goto_num_tagged_header, header_up, header_down 1.21. prev_tagged_header Usage Integer prev_tagged_header () Description This function moves the current header position to the previous `*' tagged header. It returns non-zero upon success or zero upon failure. See Also next_tagged_header, goto_num_tagged_header, header_up, header_down 1.22. re_bsearch_author Usage Integer re_bsearch_author (String regexp) Description Search backward for header whose author matches regular expression regexp. If successful, it returns 1 and the current header is set to the matching header. It returns 0 upon failure. See Also re_fsearch_author, re_fsearch_subject 1.23. re_bsearch_subject Usage Integer re_bsearch_subject (String regexp) Description Search backward for header whose subject matches regular expression regexp. If successful, it returns 1 and the current header is set to the matching header. It returns 0 upon failure. See Also re_fsearch_author, re_bsearch_subject 1.24. re_fsearch_author Usage Integer re_bsearch_author (String regexp) Description Search forward for header whose author matches regular expression regexp. If successful, it returns 1 and the current header is set to the matching header. It returns 0 upon failure. See Also re_bsearch_author, re_fsearch_subject 1.25. re_fsearch_subject Usage Integer re_fsearch_subject (String regexp) Description Search forward for header whose subject matches regular expression regexp. If successful, it returns 1 and the current header is set to the matching header. It returns 0 upon failure. See Also re_fsearch_author, re_bsearch_subject 1.26. set_header_display_format Usage Void set_header_display_format (Int_Type nth, String_Type fmt) Description The set_header_display_format function may be used to set the nth header display format to fmt. One may interactively toggle between the formats via the toggle_header_formats keybinding. The generic format specifier begins with the % character and must be of the form: %[-][w]x where the brackets indicate optional items. Here, w is a width specifier consisting of one or more digits. If the minus sign (-) is present, the item will be right justified, otherwise it will be left justified. The item specifier x is required and, depending on it value, has the following meaning: s : subject S : score r : author real name f : from header G : Group lens score l : Number of lines n : server number d : date t : thread tree F : flags (read/unread, `*' and `#' tags, header number) % : percent character g : goto a specified column Thus, "%F%-5l:%t%s" indicates that the header window will contain the, in order: the flags, the number of lines the article contains right justified in a 5 character field, a `:', the tree, and the subject. The g format specifier must be preceeded by a number that indicates the next write should take place at the specified column. If the column number is negative, then the column is interpreted as an offset from the right side of the display. For example, %-24g%f indicates that then From header is to be written out 24 columns from the right edge of the window. See Also set_visible_headers 1.27. set_header_flags Usage Void set_header_flags (Integer flags) Description This function may be used to set the flags associated with the currently selected header. See the description for the get_header_flags function for more information. See Also get_header_flags 1.28. set_header_score Usage Void set_header_score (Integer score) Description This function may be used to set the score of the current header. See Also get_header_score 1.29. set_visible_headers Usage Void set_visible_headers (String_Type header_list) Description The set_visible_headers function may be used to specify the headers that are displayed when an article is viewed. The string header_list specifies a comma separated list of headers to show. Example To show only the From header and headers that start with `X-', use: set_visible_headers ("X-,From:"); See Also get_visible_headers, headers_hidden_mode, is_article_visible, set_header_display_format 1.30. sort_by_sorting_method Usage Void sort_by_sorting_method () Description This function sorts the articles in header overview by the current sorting mode. Example This is useful if you want to apply changes to sorting_method: set_integer_variable("sorting_method", 3); sort_by_sorting_method (); 1.31. thread_size Usage Integer thread_size () Description This function returns the number of articles in the current thread or subthread. 1.32. uncollapse_thread Usage Void uncollapse_thread () Description This function may be used to uncollapse the current thread. See Also thread_size, collapse_thread, is_thread_collapsed 1.33. uncollapse_threads Usage Void uncollapse_threads () Description This function uncollapses all threads. This is usually necessary if you want to use the header movement functions to access hidden headers. See Also collapse_threads 2. Article Functions The intrinsic functions described in this chapter are available in article mode and allow you to manipulate the article window. 2.1. _is_article_visible Usage Integer _is_article_visible () Description This function returns information about whether or not the article associated with the current header is visible in a window and whether or not it is attached to the current header. Specifically, it returns a bitmapped value: 0 : if the article window is hidden and not associated with the current header. 1 : if the article window is showing but the current header does not refer to the article. 2 : if the article window is hidden but attached to the current header. 3 : if the article window is showing and contains the current header article. Example If one only want to know whether or not there is an article visible in the window, then use _is_article_visible () & 1 To determine whether or not it is associated with the current header regardless of whether or not it is showing, use _is_article_visible () & 2 See Also _is_article_visible, is_article_window_zoomed, call 2.2. article_as_string Usage String_Type article_as_string () Description This function will return the entire contents of the current article as a string. If no article has been dowloaded, the empty string will be returned. The current article may not be the one associated with the currently selected header. See Also raw_article_as_string, replace_article, is_article_visible 2.3. article_cline_as_string Usage String_Type article_cline_as_string () Description Returns the current line of the article (i.e. the first one that is displayed in the article pager) as a string. If no article has been downloaded, the empty string will be returned. See Also article_as_string, article_cline_number 2.4. article_cline_number Usage Integer article_cline_number () Description Returns the number of the line that is currently displayed at the top of the article pager. Counting starts at 1 and ignores hidden lines. See Also article_cline_as_string, article_count_lines, article_goto_line 2.5. article_count_lines Usage Integer article_count_lines () Description This function returns the total number of visible lines in the article pager. For example, you could use it with article_goto_line to jump to the last line in the pager: define article_bob () { () = article_goto_line (article_count_lines ()); } 2.6. article_goto_line Usage Integer article_goto_line (Integer linenum) Description Makes the article pager jump to line number linenum (i.e., puts this line at the top of the pager). As in article_cline_number, counting starts at 1 and ignores hidden lines. If you specify 0 or a negative number as the argument, no action is taken and the function returns zero. Otherwise, the new line number is returned. If the article has less than linenum lines, the function goes to the last line. See Also article_line_down, article_line_up 2.7. article_line_down Usage Integer article_line_down (Integer num) Description Scrolls the article down num lines. Returns the number of lines that were actually scrolled. Notes If no article is in the pager, scrolling down first downloads an article. See Also article_goto_line, article_line_up 2.8. article_line_up Usage Integer article_line_up (Integer num) Description Scrolls the article up num lines and returns the number of lines that were actually scrolled. See Also article_goto_line, article_line_down 2.9. bsearch_article Usage Integer bsearch_article (String_Type pat) Description This function works like search_article, but does a backward search. See Also search_article 2.10. get_article_window_size Usage Integer get_article_window_size () Description get_article_window_size may be used to determine the height of the article window. See Also set_article_window_size 2.11. get_body_status Usage Integer get_body_status () Description When reading from an slrnpull spool in "true offline" mode, the body that belongs to an article header might not yet be on disk. This function returns one of the following values: -1 : currently, no header is selected 0 : the body of the current article is present 1 : the body of the article is missing 2 : the body of the article is missing, but requested for download See Also request_body 2.12. get_next_art_pgdn_action Usage Integer get_next_art_pgdn_action () Description This function may be used to get information about what action slrn will take when an attempt is made to go to the next page of the current article, e.g., by pressing the space key. It returns one of the following integers: -1 Not in article mode 0 Next page of the article will be displayed 1 The next unread article will be displayed 2 The newsreader will go to the next newsgroup 2.13. is_article_visible Usage Integer is_article_visible () Description This function returns information about whether or not the article associated with the current header is visible in a window. Specifically, it returns: 0 : if the article window is hidden 1 : if the article window is showing but the current header does not refer to the article 3 : if the article window contains the current header article Notes For some purposes, it may be more useful to the the _is_article_visible function which may be slightly more useful. In fact, is_article_visible may be written in terms of _is_article_visible as define is_article_visible () { variable status = _is_article_visible (); !if (status & 1) return 0; return status; } See Also _is_article_visible, is_article_window_zoomed, call 2.14. is_article_window_zoomed Usage Integer is_article_window_zoomed () Description This function returns 1 if the article window is zoomed, or 0 otherwise. See Also is_article_visible, call 2.15. pipe_article Usage Void pipe_article (String cmd) Description This function may be used to pipe the current article to the command given by the cmd argument. If the article window is hidden, it downloads the article associated with the currently selected header. See Also read_mini 2.16. raw_article_as_string Usage String_Type raw_article_as_string () Description This function works exactly like article_as_string, except that it returns the article as it was sent by the server, not as it has been prepared for display (e.g. before MIME decoding and character recoding). Notes The raw article is no longer available after you called replace_article. In this case, the output is the same as the one of article_as_string. 2.17. re_bsearch_article Usage Integer re_bsearch_article (String_Type pat) Description This function works like re_search_article, but does a backward search. See Also re_search_article 2.18. re_search_article Usage Integer re_search_article (String_Type pat) Description This function searches forward in the current article for a string matching the regular expression given by the parameter pat. It returns 0 if no matching line is found. Otherwise, it returns 1 and the matching line will be left on the stack as a string. See Also re_search_article_first See Also search_article 2.19. re_search_article_first Usage Integer re_search_article_first (String_Type pat) Description Works like re_search_article, but finds the first match in the article (searching from the beginning instead of forward from the current point). See Also re_search_article 2.20. replace_article Usage replace_article (String_Type string [,Int_Type process_mime]) Description The replace_article may be used to replace the text of the currently displayed article with an arbitrary string. If the value of the optional process_mime argument is non-0, then the new headers will be examined and mime parsed accordingly. Example The following code fragment causes the text of an article to be replaced by its lowercase equivalent: replace_article (strlow (article_as_string ())); See Also article_as_string, is_article_visible 2.21. request_body Usage request_body (Integer mode) Description If an article does not yet have a body, you can request it for download using this function. Setting mode to 1 requests the body, setting it to 0 un-requests it. See Also get_body_status 2.22. save_current_article Usage Integer save_current_article (String filename) Description This function saves the currently selected article to a file specified by filename. If the article window is hidden, it downloads the the article associated with the currently selected header. It returns 0 upon success; upon failure, it returns -1 and sets an slang error condition. Notes This function always creates a new file, overwriting existing ones. See Also 2.23. search_article Usage Integer search_article (String str) Description This function searches forward in the current article (if none is visible, in the one associated with the currently selected header) for the string given by the parameter str. It returns 0 if no matching line is found. Otherwise, it returns 1 and the matching line will be left on the stack as a string. See Also re_search_article See Also search_article_first 2.24. search_article_first Usage Integer search_article_first (String_Type pat) Description Works like search_article, but finds the first match in the article (searching from the beginning instead of forward from the current point). This means you can find all matches in the article by calling search_article_first once and subsequently using search_article. See Also search_article 2.25. set_article_window_size Usage Void set_article_window_size (Integer nrows) Description The set_article_window_size may be used to set the height of the article window. The variable SCREEN_HEIGHT may be used to facilitate this. See Also get_article_window_size 3. Group Functions The intrinsic functions described in this chapter are available in group mode. 3.1. current_newsgroup Usage String current_newsgroup () Description This function returns the name of the current newsgroup. See Also server_name 3.2. get_group_flags Usage Integer get_group_flags () Description This function returns the flags associated with the current newsgroup. This integer is a bitmapped value whose bits are defined by the following constants: GROUP_UNSUBSCRIBED : set if the group is unsubscribed GROUP_NEW_GROUP_FLAG : set if the group is new See Also get_header_flags, set_group_flags, current_newsgroup 3.3. get_group_order Usage Array_Type get_group_order () Description This function returns an array of strings that contains the names of all known groups in the current order. Notes This function is only available if slrn was compiled with S-Lang 1.4.x. See Also set_group_order 3.4. group_down_n Usage Integer group_down_n (Integer n) Description This function moves the current group pointer down n groups and returns the actual number moved. See Also group_up_n, group_search, current_newsgroup 3.5. group_search Usage Integer group_search (String name) Description This function searches for a newsgroup containing the string name. It also searches newsgroup descriptions. A non-zero value is returned upon success or zero upon failure. Notes This search may wrap. See Also select_group, current_newsgroup 3.6. group_unread Usage Integer group_unread () Description This function returns the number of unread articles in the current newsgroup. See Also select_group, current_newsgroup, is_group_mode 3.7. group_up_n Usage Integer group_up_n (Integer n) Description This function moves the current group pointer up n groups and returns the actual number moved. See Also group_down_n, group_search, current_newsgroup 3.8. hide_current_group Usage Void hide_current_group () Description Hides the current group in the group window. Hidden groups can be displayed again by calling ``toggle_hidden''. 3.9. is_group_mode Usage Integer is_group_mode () Description This function returns non-zero if the current mode is group- mode. See Also 3.10. select_group Usage Integer select_group () Description This function may be used to select the current group. It returns 0 upon success or -1 upon failure. It can fail if the group has no articles. Note that in some situations, this function will set an slang error condition. This includes cases in which the user interrupted transfer of article headers or all articles got killed by the scorefile. See Also current_newsgroup 3.11. set_group_display_format Usage Void set_group_display_format (Int_Type nth, String_Type fmt) Description This function may be used to set the nth group display format to fmt. One may interactively toggle between the formats via the toggle_group_formats keybinding. The generic format is identical to the one described in set_header_display_format. The following descriptors are defined: F : Group flag (`U' for unsubscribed, `N' for new) d : Group description (needs to be downloaded once with slrn -d) g : goto a specified column h : ``High water mark'' (highest article number in the group) l : ``Low water mark'' (lowest article number in the group) n : Group name t : Total number of articles in the group (estimate) u : Number of unread articles in the group 3.12. set_group_flags Usage Void set_group_flags (Integer flags) Description This function may be used to set the flags associated with the current newsgroup. See Also get_group_flags 3.13. set_group_order Usage Void set_group_order (Array_Type names) Description When names is a one-dimensional array of strings (group names), slrn will sort the group list into the implied order. Strings that do not match known groups are ignored; existing groups that are not included in names remain in their current (relative) order, but will be moved to the end of the list. Example According to the above rule, it is possible to move a group to the top of the list by using it as the only element of names: set_group_order ("news.software.readers"); Moving a group to the end of the list can be done by removing it from the list returned by get_group_order and calling set_group_order on the result. An example for a simple group sort based on this function can be found in the file gsort.sl that comes with slrn. Notes This function is only available if slrn was compiled with S-Lang 1.4.x. See Also get_group_order 4. Dialog and Message Functions This chapter describes some functions which are useful if you want to interact with the user. 4.1. get_response Usage Integer get_response (String choices, String prompt) Description This function will prompt the user for a single character using the prompt as specifed by the second parameter. The first parameter, choices, specified the characters that will be accepted. Any character in the prompt string that is preceeded by \001 will be given the `response_char' color. Example The following: rsp = get_response ("yYnN", "Are you hungry? \001Yes, \001No"); will return one of the four characters y, Y, n, or N to the vari- able rsp. See Also get_yes_no_cancel, set_color, get_select_box_response 4.2. get_select_box_response Usage Integer get_select_box_response (title, item_1, ..., n_items) Description This function pops a selection box and queries the user for a response. An integer is returned which indicates the user's choice. Example variable rsp = get_select_box_response ( "Pick a number:", "one", "two", "three", "four", 4); message (sprintf ("You chose %d", rsp)); See Also read_mini, message, get_yes_no_cancel, get_response, select_list_box 4.3. get_yes_no_cancel Usage Integer get_yes_no_cancel (str) Description This function displays str in the minibuffer after concatenating "? [Y]-es, N-o, C-ancel" to it. It then awaits user input and returns: 1 if yes 0 if no -1 if cancel Notes If a % character is to appear, it must be doubled. See Also get_select_box_response, getkey, read_mini, select_list_box 4.4. message_now Usage Void message_now (String_Type s) Description This function displays the string s to the message area immediately. See Also message, vmessage, error 4.5. popup_window Usage Int popup_window (String title, String text) Description This function creates a popup window which contains the given text and uses title as its title. It returns the key that was used to exit the window. Notes Since slrn 0.9.7.4, this function expands TABs in the text correctly. TABs in title are not expanded and should be avoided. See Also select_list_box 4.6. read_mini Usage String read_mini (String p, String dflt, String init) Description This function will prompt the user for a string value using prompt p. The second parameter dfl is used to specify the default value. If the final parameter is not the empty string (""), it will be made available to the user for editing. See Also read_mini_filename, read_mini_no_echo, read_mini_integer, read_mini_variable, getkey, set_input_string, set_input_chars 4.7. read_mini_filename Usage String read_mini_filename (String p, String dflt, String init) Description This function works like read_mini, but allows the user to tab complete filenames. See Also read_mini, read_mini_variable, getkey, set_input_string, set_input_chars 4.8. read_mini_integer Usage Integer read_mini_integer (String p, Integer dflt) Description This function will prompt the user for an integer value using prompt p and taking dflt as the default. See Also read_mini 4.9. read_mini_no_echo Usage String read_mini_no_echo (String p, String dflt, String init) Description This function performs the same purpose as read_mini except it does not echo the entered text to the screen. See Also read_mini, getkey, set_input_string, set_input_chars 4.10. read_mini_variable Usage String read_mini_variable (String p, String dflt, String init) Description This function works like read_mini, but allows the user to tab complete the names of slrn's configuration variables. See Also read_mini, read_mini_filename, getkey, set_input_string, set_input_chars 4.11. select_list_box Usage String_Type select_list_box (title, s_1, ... s_n, n, active_n) String_Type title, s_1, ... s_n Int_Type n, active_n Description This purpose of this function is to present a list of n strings, specified by the s_1, ... s_n parameters to the user and have the user select one. The user interface for this operation is that of a box of strings. The title of the box is specified by the title parameter. The active_n parameter specifies which string is to be the default selection. It returns the string selected by the user. See Also get_select_box_response, get_response 4.12. set_input_chars Usage Void set_input_chars (String val) Description This function may be used to set the character that will be returned by the next prompt for single character input in the minibuffer. This is the type of input that get_response solicits. Example set_input_chars ("y"); if ('y' == get_yes_no_cancel ("Really Quit")) quit (0); See Also set_input_string, get_response, get_yes_no_cancel 4.13. set_input_string Usage Void set_input_string (String val) Description This function may be used to set the string that will be returned by the next prompt for input in the minibuffer. One can set the value returned for the next n prompts by separating the values by \n characters. Example The code variable a, b; set_input_string ("Apple\nOrange"); a = read_mini ("Enter Fruit", "", ""); b = read_mini ("Enter another Fruit", "", ""); will result in a having the value Apple and b having the value Orange. See Also read_mini, set_input_chars 5. Key Input Functions This chapter describes functions that can be used to control interactive functions from your macros. 5.1. call Usage Void call (String fun) Description This function is used to execute an interactive slrn internal function. Such functions are used with setkey statements in the .slrnrc startup files. See Also definekey, undefinekey, set_prefix_argument 5.2. definekey Usage definekey (String fun, String key, String km) Description This function is used to bind a key sequence specified by key to a function fun in the keymap km. Here fun can be any predefined slang function that takes 0 arguments and returns void. The parameter km must be either "article", "group", or "readline". See Also undefinekey, call, set_prefix_argument 5.3. get_prefix_arg Usage Int_Type get_prefix_arg () Description The get_prefix_arg function returns the value of the prefix argument. If no prefix argument has been set, the function returns -1, which is an impossible value for the prefix argument. Notes The prefix argument is specified interactively via the ESC key followed by one or more digits that determine value of the prefix argument. This concept has been borrowed from the emacs text editor. See Also set_prefix_argument, reset_prefix_arg 5.4. getkey Usage Integer getkey () Description Read a character from the terminal and returns its value. Note: Function and arrow keys usually return more than one character. See Also ungetkey, input_pending, read_mini 5.5. input_pending Usage Integer input_pending (Integer tsecs) Description This function checks for keyboard input. Its argument specifies the number of tenths of a second to wait. It returns 0 if no input is available or a non-sero value if input is available. See Also getkey, ungetkey 5.6. reset_prefix_arg Usage Void reset_prefix_arg () Description The reset_prefix_arg function may be used to reset the prefix argument. This is usually necessary after calling to keep the argument from propagating to other functions. See Also get_prefix_arg, set_prefix_argument 5.7. set_prefix_argument Usage Void set_prefix_argument (Integer val) Description The set_prefix_argument function may be used to set the prefix argument to val. It is mainly used immediately before calling internal functions which take prefix arguments. See Also call 5.8. undefinekey Usage Void undefinekey (String key, String map) Description This function undefineds a key sequence specified by key from keymap map. See Also definekey 5.9. ungetkey Usage Void ungetkey (Integer ch) Description This function pushes the character ch back upon the input stream such that the next call to getkey will return it. It is possible to push several characters back. See Also getkey 6. File I/O Functions This chapter lists some useful functions for file input / output. Please note that most functions you might expect to find here (like opening and reading from a regular file) are already part of S-lang itself. If you need one of those, please consult the file slangfun.txt which comes with S-lang. 6.1. close_log_file Usage Void close_log_file () Description The close_log_file function closes the file previously opened by open_log_file. See Also open_log_file, log_message 6.2. log_message Usage Void log_message (String_Type msg) Description The log_message function may be used to write a string to the log file. If no log file has been opened via open_log_file, the message will be written to stderr. See Also open_log_file, close_log_file, message 6.3. make_home_filename Usage String_Type make_home_filename (String_Type name) Description This function returns the complete filename associated with a file called name located in the user's home directory. If name is already an absolute filename or explicitly relative to the current directory (i.e. starts with one or two dots, followed by a directory separator), it remains unchanged. See Also read_mini 6.4. open_log_file Usage Void open_log_file (String_Type file) Description The open_log_file function causes S-lang traceback messages to be written to the specified file. This is useful for debugging macros. Traceback messages are enabled by setting the S-lang variable _traceback to a non-zero value. See Also close_log_file, log_message, _traceback, _trace_function 6.5. print_file Usage Void print_file (String_Type file) Description The print_file function may be used to send a specified file to the printer. Notes The printer is specified via the slrnrc printer_name variable. 7. Miscellaneous Functions This chapter is for all functions and variables that did not fit nicely in any of the others. They are available in all modes. 7.1. _slrn_version Usage Integer _slrn_version Description The _slrn_version variable is read only. It is an integer value representing the slrn's version number -- version aa.bb.cc.dd becomes aabbccdd. Example In version 0.9.7.1, _slrn_version is 90701 (note that leading zeroes are omitted). See Also _slrn_version_string 7.2. _slrn_version_string Usage String _slrn_version_string Description The _slrn_version_string variable is read only. It contains the version string as displayed by the program itself (e.g. "0.9.7.1"). See Also _slrn_version 7.3. datestring_to_unixtime Usage Integer datestring_to_unixtime (String date) Description This function converts the date string date (in any format commonly used in "Date:" header lines) to an integer value, giving the number of seconds since 00:00:00 GMT, January 1, 1970. Example The following function returns the date of the currently selected header as seconds since the Epoch: define get_article_time () { return datestring_to_unixtime(extract_article_header("Date")); } 7.4. get_bg_color Usage String get_bg_color (String obj) Description This function returns the current background color of the object specified by obj. Notes Due to a limitation in S-Lang, this function only works on Unix. 7.5. get_fg_color Usage String get_fg_color (String obj) Description This function returns the current foreground color of the object specified by obj. Notes Due to a limitation in S-Lang, this function only works on Unix. 7.6. get_variable_value Usage Value get_variable_value (String v) Description This function returns the value of an internal variable specified by v. Here v must be one of the variable names that can be used in .slrnrc `set' commands. The type of the object returned will depend upon the type of the object v represents. See Also set_integer_variable, set_string_variable 7.7. quit Usage Void quit (Integer exit_status) Description This function will cause the newsreader to exit with exit status specified by exit_status. See Also call 7.8. register_hook Usage Integer register_hook (String hook, String function) Description register_hook can be used to call a given function whenever one of slrn's hooks is executed. It returns one of the following values: 0: Hook does not exist or may not be defined multiple times. 1: Function successfully registered. 2: Given function was already registered for this hook. 3: Undefined function successfully registered. If you register multiple functions for the same hook, they will be called in the order in which they were registered. If a function with the name of a hook is defined, it gets called after those that were registered using this function. It is possible to register a function first and define it afterwards. In this case, register_hook returns 3. cc_hook, make_from_string_hook and subject_compare_hook may only be defined once, as they return a value and slrn only expects a single return value when calling them. See Also unregister_hook 7.9. reload_scorefile Usage Void reload_scorefile (Integer apply_now) Description This function can be used to reload the scorefile after a macro changed it. If the integer apply_now is 1, the new scores are immediately applied. If it is 0, the new scores are used the next time you enter a group; if -1, the user is queried. Notes Outside article mode, apply_now has no effect. 7.10. server_name Usage String server_name () Description The server_name function returns the name of the current server. See Also current_newsgroup 7.11. set_color Usage Void set_color (String obj, String fg, String bg) Description This function may be used to set the foreground and background colors of an object. The obj parameter specifies the object and the fg and bg parameters specify the foreground and background colors, respectively. 7.12. set_color_attr Usage Void set_color_attr (String obj, String fg, String bg, Integer attr) Description This functions works like set_color, but has the additional argument attr that allows you to assign attributes to the color object (if your terminal supports this). attr can be 0 (if you do not want any attributes to take effect) or any combination of the following constants: ATTR_BLINK blinking text ATTR_BOLD bold text ATTR_REV inverse text ATTR_ULINE underlined text 7.13. set_ignore_quotes Usage Void set_ignore_quotes (Array_Type regexps) Description This function allows you to change the setting of the ignore_quotes configuration command. regexps has to be a (one- dimensional) array of 1-5 strings that are interpreted as regular expressions to detect quoted lines. Example set_ignore_quotes (["^>", "^|"]); Notes This function is only available if slrn was compiled with S-Lang 1.4.x. The effect of this command becomes visible with the next article you download. If one is currently displayed, it remains unaffected. 7.14. set_integer_variable Usage Void set_integer_variable (String name, Integer v) Description This function may be used to set the value of the internal integer variable specified by name to value v. name must be an integer variable name allowed in .slrnrc set commands. See Also set_string_variable, get_variable_value 7.15. set_string_variable Usage Void set_string_variable (String name, String v) Description This function may be used to set the value of the internal string variable specified by name to value v. name must be a string variable name allowed in .slrnrc set commands. See Also set_integer_variable, get_variable_value 7.16. set_strip_re_regexp Usage Void set_strip_re_regexp (Array_Type regexps) Description This function allows you to change the setting of the strip_re_regexp configuration command. It works like set_ignore_quotes. Notes This function is only available if slrn was compiled with S-Lang 1.4.x. See Also set_ignore_quotes, set_strip_sig_regexp, set_strip_was_regexp 7.17. set_strip_sig_regexp Usage Void set_strip_sig_regexp (Array_Type regexps) Description This function allows you to change the setting of the strip_sig_regexp configuration command. It works like set_ignore_quotes. Notes This function is only available if slrn was compiled with S-Lang 1.4.x. The effect of this command becomes visible with the next article you download. If one is currently displayed, it remains unaffected. See Also set_ignore_quotes, set_strip_re_regexp, set_strip_was_regexp 7.18. set_strip_was_regexp Usage Void set_strip_was_regexp (Array_Type regexps) Description This function allows you to change the setting of the strip_was_regexp configuration command. It works like set_ignore_quotes. Notes This function is only available if slrn was compiled with S-Lang 1.4.x. See Also set_ignore_quotes, set_strip_re_regexp, set_strip_sig_regexp 7.19. set_utf8_conversion_table Usage Void set_utf8_conversion_table (Array_Type table) Description This function can be used to define a conversion table for decoding UTF-8. table has to be a two-dimensional array of integer values that has two columns: The left column contains the Unicode characters you want to convert, the right column the corresponding local characters. When decoding, any non-ASCII characters that cannot be found in your table are displayed as question marks. If table has no rows, UTF-8 will be converted to Latin 1, which is also the default if this function is not called. Thus, you can reset the default using set_utf8_conversion_table (Integer_Type[2,0]); Notes This function is only available if slrn was compiled with S-Lang 1.4.x. 7.20. setlocale Usage String setlocale (Integer category, String locale) Description You can use this function to change the current locale at runtime. You may want to do this if you read groups in different languages. The syntax is identical to the one of setlocale(3). For category, the following constants are defined: LC_CTYPE : affects character handling (e.g. which 8bit characters are regarded as upper/lower case) LC_TIME : affects the formatting of dates (12-hour vs. 24-hour clock, language of month names etc.) The locale can be any locale supported by your system. If it is an empty string, the locale to use will be taken from the environment. The function will return the name of the locale that was actually selected. Please note that locales are not supported by all systems. In this case, this function will trigger an slang error. 7.21. tt_send Usage Void tt_send (String_Type s) Description This function may be used to send a string directly to the display without any involvement of the screen management layer. See Also message, update 7.22. unregister_hook Usage Integer unregister_hook (String hook, String function) Description This function is used to unregister functions that were assigned to a hook using register_hook. Its return values are: 0: Hook does not exist or function is not assigned to it. 1: Function successfully unregistered. See Also register_hook 7.23. update Usage update () Description This function may be used to force the display to be updated. See Also message 8. Hooks This chapter is special. Rather than describing intrinsic functions, it gives you a list of hooks that can be used to execute arbitrary S- lang code on certain events (e.g. whenever entering article mode). You can define code for a hook by putting it into a function that has exactly the same name as the hook. However, the preferred way to add code to a hook is now using the register_hook () intrinsic function on an arbitrary macro. This mechanism allows to connect more than one macro to a hook, which comes in handy if you want to use pre-written macro sets. 8.1. article_mode_hook Usage Void article_mode_hook () Description This hook is called during article mode after headers have been retrieved but before sorting them. You can use this hook to set variables based on the group name. Example The following macro can be used to change the sorting_method to something more appropriate for newsgroups which contain encoded articles and to chose a different signature when posting to comp.*: define make_group_specific_settings () { variable sorting_method = 7; variable signature_file = ".signature"; if (is_substr (current_newsgroup (), "binaries") or is_substr (current_newsgroup (), "pictures")) sorting_method = 3; if (0 == strncmp (current_newsgroup (), "comp.", 5)) signature_file = ".nerd-signature"; set_integer_variable ("sorting_method", sorting_method); set_string_variable ("signature", signature_file); } () = register_hook ("article_mode_hook", "make_group_specific_settings"); 8.2. article_mode_quit_hook Usage Void article_mode_quit_hook () Description This function is called whenever you leave article mode, including the times you switch directly to a different group (without quitting to group mode in between). 8.3. article_mode_startup_hook Usage Void article_mode_startup_hook () Description Unlike article_mode_hook, which gets called prior to sorting the headers, this hook gets called after sorting has taken place. 8.4. cc_hook Usage String cc_hook (String address) Description This hook is called when sending a "courtesy copy" of a followup -- it gets the author's email address as an argument and is expected to leave a string on the stack which will be used as the address the CC is actually sent to. If the returned string is empty, no CC is sent. Notes As this hook returns a value, you cannot bind multiple macros to it. 8.5. followup_hook Usage Void followup_hook () Description Function called when following up to an article. 8.6. forward_hook Usage Void forward_hook () Description Function called when forwarding an article to someone. 8.7. group_mode_hook Usage Void group_mode_hook () Description This hook will be called whenever group mode is entered. This includes the times when one exists article mode back to group mode. 8.8. group_mode_startup_hook Usage Void group_mode_startup_hook () Description This hook is called after checking for news and immediately before entering the main keyboard loop. When called, group mode will be active. 8.9. header_number_hook Usage Void header_number_hook () Description If defined, this function will be called after selecting a header via a header number. 8.10. make_from_string_hook Usage String make_from_string_hook () Description This function is expected to leave a string on the stack which will be used to generate ``From'' header lines whenever one is needed. Notes As this hook returns a value, you cannot bind multiple macros to it. Example Here is a simple example: define make_from_string_hook () { return "My Name "; } 8.11. make_save_filename_hook Usage String make_save_filename_hook () Description This function is expected to leave a string on the stack that will be used to decide what folder an article should be saved to. If the returned filename is not absolute, it is interpreted as relative to save_directory. Notes As this hook returns a value, you cannot bind multiple macros to it. Example Here is a simple example: define make_save_filename_hook () { if (string_match (extract_article_header ("Subject"), "slrn", 1) != 0) return "slrn-related"; else return current_newsgroup(); } 8.12. post_file_hook Usage Void post_file_hook (String file) Description Function called after composing and filtering, but before posting article. This hook takes a single parameter: the name of the file that slrn is about to post. Example An example of this hook is included in macros/posthook.sl in slrn's source tree. 8.13. post_filter_hook Usage Void post_filter_hook (String file) Description This hook may be called just before slrn attempts to post a file. The hook is only called if the user selects the filter option from the prompt: Post the message? Yes, No, Edit, poStpone, Filter This hook takes a single parameter: the name of the file that slrn is about to post. Example An example of this hook is included in macros/ispell.sl in slrn's source tree. 8.14. post_hook Usage Void post_hook () Description Function called when posting an article. 8.15. pre_article_mode_hook Usage Void pre_article_mode_hook () Description This hook is similar to article_mode_hook except that it is called before any headers for the group have been retrieved. 8.16. quit_hook Usage Void quit_hook () Description Function called when slrn exits. Note that slrn already disconnected from the server at the time this hook is run. In this hook, it is safe to assume that startup_hook was run before (i.e., if slrn exits before startup_hook had a chance to execute, quit_hook is omitted). 8.17. read_article_hook Usage Void read_article_hook () Description Function called after reading and processing an article. It may use the replace_article function to change it. 8.18. reply_hook Usage Void reply_hook () Description Function called when replying to poster. 8.19. resize_screen_hook Usage Void resize_screen_hook () Description This hook will be called whenever the screen size changes. 8.20. startup_hook Usage Void startup_hook () Description This hook is called right after the newsreader is initialized and immediately before checking for news. It allows the user to set variables on a server by server basis. Example The following example sets the `lines_per_update' variable to 20 and turns off reading of the active file if the servername is `uhog' (it is a slow server): define make_server_specific_settings () { !if (strcmp (server_name (), "uhog")) { set_integer_variable ("lines_per_update", 20); set_integer_variable ("read_active", 0); } } () = register_hook ("startup_hook", "make_server_specific_settings"); 8.21. subject_compare_hook Usage Integer subject_compare_hook (String subject1, String subject2) Description slrn puts postings with identical subjects into the same thread. This hook can be used to override slrn's decision that two subjects are not identical: In this case, it is called with both subjects as arguments. If it returns 0, the articles are put in the same thread. 8.22. supersede_hook Usage Void supersede_hook () Description Function called when superseding an article. slrn-1.0.1/doc/slrnpull.1000066400000000000000000000115361206520222400151720ustar00rootroot00000000000000.\" .\" This manpage is written by Thomas Schultz .\" .TH slrnpull 1 "September 2004" Unix "User Manuals" .\" .\" ------------------------------------------------------------------- .\" .SH NAME slrnpull \- Pull a small newsfeed for offline reading. .\" .\" ------------------------------------------------------------------- .\" .SH SYNOPSIS .B slrnpull .RI "[\-d\ " spooldir ] .RI "[\-h\ " server ] .RI "[\-\-debug\ " file ] [\-\-expire] .RI "[\-\-fetch\-score " n ] [\-\-help] .RI "[\-\-kill\-log\ " file ] .RI "[\-\-kill\-score " n ] .RI "[\-\-logfile\ " file ] [\-\-marked\-bodies] [\-\-new\-groups] [\-\-no\-post] [\-\-post] [\-\-post\-only] [\-\-rebuild] [\-\-version] .\" .\" ------------------------------------------------------------------- .\" .SH DESCRIPTION .I slrnpull pulls a small newsfeed from an NNTP server. It puts the articles into a spool directory from which .I slrn can later read them, even if the server is unreachable at that time. Typically, this is useful if you do not have a permanent network connection. .\" .\" ------------------------------------------------------------------- .\" .SH OPTIONS .PP The following options can be used when calling .I slrnpull from the command line. .IP "\-d \fIspooldir\fP" Set slrnpull's root directory for this run to .IR spooldir , overriding the .I $SLRNPULL_ROOT environment variable. .IP "\-h \fIhost[:port]\fP" Connect to the NNTP server on .IR host , overriding the .I $NNTPSERVER environment variable. If no .I port is given, the default NNTP port (119) will be used. .IP "\-\-debug \fIfile\fP" Write dialogue with the server and some additional debugging output to .IR file . .IP "\-\-expire" Expire (remove) old messages from the spool, but do not fetch news. .IP "\-\-fetch\-score \fIn\fP" Fetch article bodies with a score of at least .IR n automatically (in true offline mode, the default is to fetch only bodies that were explicitly marked by the user). .IP "\-\-help" Show help for command line switches. .IP "\-\-kill\-log \fIfile\fP" Keep a log of all articles that were killed by the scorefile in .IR file . By default, no such logfile is created. .IP "\-\-kill\-score \fIn\fP" Kill all articles with a score below .IR n . The default value for this is 0. .IP "\-\-logfile \fIfile\fP" Log the messages and errors that slrnpull prints to the screen to .IR file . By default, they get written to the file log in slrnpull's root directory. .IP "\-\-marked\-bodies" Only fetch bodies that were marked for download within slrn. .IP "\-\-new\-groups" Check for new groups, appending them to the file new.groups in the data directory. .IP "\-\-no\-post" Do not post any articles to the server. .IP "\-\-post" Obsolete version of .IR \-\-post\-only . .IP "\-\-post\-only" Post outgoing articles, but do not fetch news. .IP "\-\-rebuild" Like \-\-expire, but also rebuild the overview information. To be used when the overview information is damaged. .IP "\-\-version" Print the version number. .\" .\" ------------------------------------------------------------------- .\" .SH ENVIRONMENT .I slrnpull reads the following environment variables. Note that they can be overridden by command line switches. .TP .B NNTPSERVER You can use this variable to tell .I slrnpull which NNTP server to connect to. It can be overridden by the command line option \-h. .TP .B SLRNPULL_ROOT Defines the directory where .I slrnpull will look for its configuration files and spool the articles. An absolute filename is needed here. This can be overriden by the option \-d. .\" .\" ------------------------------------------------------------------- .\" .SH FILES .TP $SLRNPULL_ROOT/authinfo If the server requires authentication, this file needs to contain the data (username in the first line, password in the second). Be careful not to make this file world-readable! .TP $SLRNPULL_ROOT/log The default file to log status and error messages to. .TP $SLRNPULL_ROOT/score If you want .I slrnpull to apply scoring rules to decide which articles to download, put them into this file. .TP $SLRNPULL_ROOT/slrnpull.conf The main configuration file. It tells .I slrnpull how many articles to get from which groups and when to expire them. .\" .\" ------------------------------------------------------------------- .\" .SH SEE ALSO The documentation that comes with .IR slrnpull , especially README and SETUP. The FAQ of slrn also answers some questions about slrnpull. You might also want to look at slrn's official home page, .I http://slrn.sourceforge.net/ or post to .I news.software.readers if you have a question not covered by existing documentation. The latest version of .I slrnpull is part of the slrn package available from .I http://prdownloads.sourceforge.net/slrn/ .\" .\" ------------------------------------------------------------------- .\" .SH AUTHOR John E. Davis Please send any bug reports to the current maintainer, Thomas Schultz slrn-1.0.1/doc/slrnpull/000077500000000000000000000000001206520222400151025ustar00rootroot00000000000000slrn-1.0.1/doc/slrnpull/README000066400000000000000000000227231206520222400157700ustar00rootroot00000000000000See SETUP for minimal installation instructions. ---------------------------------------------------------------------- What is slrnpull? ================== This version of slrn is capable of allowing a user to read offline. This is accomplished by using slrn in conjunction with the the slrnpull program. Basically, slrnpull pulls a small newsfeed from an NNTP server from which slrn will subsequently read. There are several other ``sucking'' programs available that perform a similar function as slrnpull. The best known are `leafnode' and `suck'. All of them, with the exception of `leafnode' require the user to run a newsserver program such as INN or CNEWS. Like `leafnode', slrnpull does not require a newsserver. In many ways `leafnode' is more ambitious than `slrnpull'. It was designed for many more readers and provides an nntp server to access the news spool. However, I felt that even it was overkill for my purpose of pulling 10-20 newsgroups for myself. For that reason, I wrote slrnpull. slrnpull is very simple to setup and use. It requires only one configuration file that is placed in its root news directory. The purpose of the file is to specify which groups to download, how many articles should be downloaded at one time for a given newsgroup, and how many days can go by before an article will expire. See slrnpull.conf file for an example and documentation for the format of the file. slrnpull also has the ability to score articles so that they will not be downloaded from the server. Unlike slrn, any article that is given a negative score by slrnpull will be killed; that is, it will not be retrieved from the server. slrnpull directory structure ============================= The directory structure assumed by slrnpull is as follows: SLRNPULL_ROOT/ SLRNPULL_ROOT/data SLRNPULL_ROOT/news/ SLRNPULL_ROOT/out.going/ SLRNPULL_ROOT/out.going/rejects/ The actual news articles that are pulled from the server are placed in directories under the SLRNPULL_ROOT/news tree. The out.going subdirectory is where posted articles will go until slrnpull sends them to the server. Any article that is rejected by the server will be moved to the rejects subdirectory. The files that slrnpull generates (active, new.groups, etc.) will be placed in the data subdirectory. The configuration file, slrnpull.conf must be placed in the SLRNPULL_ROOT directory. See the sample slrnpull.conf file for an explanation of the format of this file. When slrnpull runs, it will read the slrnpull.conf file. Based on the information present in that file, it will create the appropriate subdirectories under SLRNPULL_ROOT/news. If your server requires authorization information, you will need to create a file called `authinfo' in the SLRNPULL_ROOT directory. The file should consist of two lines. The first line is for the username and the second line is for the password. As slrnpull runs, it will append status and error messages to file called `log' in the SLRNPULL_ROOT directory. You are advised to check this file after every run of slrnpull. For example, if the server rejects a posted article, the log file will indicate this fact. After slrnpull has grabbed articles from the server, it will create a file called `active' in the SLRNPULL_ROOT directory. This `active' file will be used by the newsreader. The SLRNPULL_ROOT directory may be specified several ways: 1. At compile time. The default is /var/spool/news/slrn/. 2. Via the SLRNPULL_ROOT environment variable. 3. Via the -d command line option. In the sample script, slrnpull.sh, the third method is used. Note: the SLRNPULL_ROOT cannot be used for multiple servers. If you intend to use slrnpull with more than one server, you will have to set up a different tree for each server. slrnpull command line options ============================= slrnpull may be controlled by several command line parameters: slrnpull where can include any of the following: -d SPOOLDIR Spool directory to use. -h HOSTNAME Hostname of NNTP server to connect to. --debug FILE Write dialogue with server to FILE. --expire Perform expiration, but do not pull news. --fetch-score SCORE Fetch article bodies with a score of at least SCORE (for use in "true offline" mode) --help Print this usage information. --kill-log FILE Keep a log of all killed articles in FILE. --kill-score SCORE Kill articles with a score below SCORE. --logfile FILE Use FILE as the log file. --marked-bodies Only fetch bodies that were marked for download. --new-groups Get a list of new groups. --no-post Do not post news. --post-only Post news, but do not pull new news. --rebuild Like --expire; additionally rebuilds overview files. --version Show the version number. If the `-d' option is not specifed, slrnpull will attempt to determine the SLRNPULL_ROOT directory by the SLRNPULL_ROOT environment variable. If that fails, it will default to the compiled-in value. The `-h' option controls the name of the NNTP server that will be used for pulling the news feed. If it is not specified, slrnpull will look for the NNTPSERVER variable. By default, slrnpull tries to connect on port 119. If you need to change this, you can code the port into the hostname (like in 'server.name:XXX', where XXX is an integer that represents the port number). The `--debug' option allows you to write the dialog with the NNTP server to the specified file. This can be used for debugging purposes. The `--expire' option is used to run slrnpull in expire mode. If this option is specifed, no attempt will be made to access the server. It is recommended that slrnpull be run in expire mode once every day. Please note that on large spools, this operation may take a few minutes to run. The `--fetch-score' option can be used in "true offline mode"; please refer to README.offline for details. The `--help' option gives a short listing of available options (see above for an example). The `--kill-log' option allows you to keep a log of all articles killed by slrnpull's scorefile, so you can check whether articles you really wanted to read accidentally got deleted. Using `--kill-score', you can change the threshold for killing articles via the score file - all articles with a score below the SCORE value get killed. The default is to delete all articles with negative scores. `--logfile' is used to specifiy a log file instead of the default ("log" in the slrnpull directory). `--marked-bodies' is a special option when using true offline reading; again, please refer to README.offline. Normally slrnpull does not query the server for new groups. The --new-groups option forces slrnpull to query the server. If the server indicates any new groups, slrnpull will append the new group names to the file SLRNPULL_ROOT/data/new.groups and update the time stamp in the SLRNPULL_ROOT/data/new.groups-time file. `--no-post' is used to indicate that slrnpull should not post any outgoing messages. The `--post-only' flag may be used to tell slrnpull to post any out-going articles but do not attempt pull any articles from the server. Normally this option is not required, because slrnpull will always post any articles in the out.going directory immediately before pulling new articles. The `--rebuild' option works like `--expire', but additionally rebuild the overview files completely. Note that this may take quite some time. This option also rebuilds the .headers files used for true offline reading (see README.offline), so you may also want to use it when articles without body are not flagged appropriately. The `--version' option causes slrnpull to write the version number to stdout. Scoring with slrnpull ===================== If slrnpull finds a file called `score' in the SLRNPULL_ROOT directory, it will read it as an slrn score file. This file may be used to kill articles before they are pulled from the server. The syntax of this file is identical to an ordinary slrn score file; however, any article which scores less than 0 will be killed. See the main slrn documentation for information about scoring. A sample score file is present in this directory. Setting up a minimal .slrnrc file. ================================== Assume that the SLRNPULL_ROOT refers to the directory /var/spool/slrnpull. Then the following .slrnrc lines should be sufficient to tell slrn how to deal with the news provided by slrnpull: set spool_inn_root "/var/spool/slrnpull" set spool_root "/var/spool/slrnpull/news" set spool_nov_root "/var/spool/slrnpull/news" set read_active 1 set use_slrnpull 1 The 'use_slrnpull' variable must be set to 1 to tell slrn to post the file to the out.going directory. Also note that 'spool_root' and 'spool_nov_root' must be set to the same value. In addition, it is a good idea to include the `hostname' and `username' lines, e.g., hostname "your.host.name" username "your.user.name" Some Limitations ============================================================================= Slrnpull tries to be efficient by only downloading one copy of an article that has been crossposted. For example, if an article has been crossposted to both sci.physics and sci.astro, then if slrnpull already downloaded the article for sci.physics, it will not download the article for sci.astro. Ideally, it should create a copy of the downloaded article in sci.astro. This may be corrected in a future version. slrn-1.0.1/doc/slrnpull/README.offline000066400000000000000000000127701206520222400174120ustar00rootroot00000000000000True offline reading using slrn and slrnpull ============================================ This README describes how you can use slrn and slrnpull for "true offline reading", i.e. getting only the article headers first and selecting the article bodies you want to download. Support for this is new in slrn 0.9.8.0, so please report any problems you may experience with this feature. Support in slrnpull: -------------------- The group entries in slrnpull.conf now may have a fourth field that indicates if you want to use true offline reading for that group. If you set it to 1, slrnpull will fetch only the headers of the new articles it would otherwise retrieve completely. slrnpull also has two new command-line switch connected with true offline reading: --fetch-score SCORE Tells slrnpull to fetch article bodies if the corresponding header is assigned a score value of at least SCORE, even if true offline reading is used for that group. --marked-bodies Tells slrnpull to fetch only the article bodies that were marked for download within slrn (see next section on how to do that). slrnpull also does this when run without this switch; specifying --marked-bodies simply keeps it from checking for new articles. Note: If you didn't fetch the body of an article and it is no longer available on the server, slrnpull expires it even if it has not reached the age specified in slrnpull.conf. This makes sense, because it's no longer possible to download this article's body anyway. Support in slrn: ---------------- When run in spool mode, slrn will display whether or not the body of an article is present and whether or not you have requested it for download. In header_display_format the new %B escape is used for this. If you don't want to customize header_display_format, you don't need to worry about this. If the body of an article is missing, %B (in the default setting: The sixth column from the left) displays a "H" (for "header only"); if the body is requested for download, it displays a "M" (for "marked"). In a collapsed thread, only some of the articles may be incomplete or marked. In this case, a "h" or "m" is shown ("m" takes precedence, i.e. you'll see it if at least one article body in the thread is marked for download). To mark a body for download, you can use the "request" function (by default bound to 'm'). If the body is already requested, the mark is removed; if the body is already present, this command has no effect. Note that articles that are marked for download cannot be marked read - I expect that you will want to see them again when their body is in place. When applied on a collapsed thread that has some marked articles in it and some that are incomplete, but not yet marked for download, the "request" function will mark all articles in it, rather than toggling the status of each individual article. In this case, you can apply the command a second time to un-mark all articles. If you just want to use the basic true offline functionality, this should be all you need to know. The following sections are for people who want to use advanced functionality and those who want to know what's going on behind the scenes when using this feature. Scoring on the body status: --------------------------- It is possible to score an article depending on whether or not its body is present. To do this, use the new "Has-Body" keyword described in score.txt. Intrinsic functions for true offline reading: --------------------------------------------- Currently, there are two new intrinsic functions connected with this feature: get_body_status and request_body. Both are described in detail in slrnfuns.txt How does the whole thing work? ------------------------------ You may want to read this section if you're a system administrator who wants to set up true offline reading on a multiple-user system or if you're just curious ;-) slrnpull creates a directory for the requests (it is called "requests" and a subdirectory of the slrnpull root directory). In this directory, each user has his own newsrc-style file where the article numbers of the requested bodies are kept. The name of each user's request file is his login name, so there shouldn't be any accidental clashes (at least on Unix-like systems; if no login name can be determined, the file is called "!unknown"). By default, slrn sets these files to mode 0640. This means that your request list cannot be modified by others. Of course, slrnpull needs to be able to read the request files. On multi-user systems, you should run the configure script with --enable-setgid-code to ensure this (see setgid.txt for details). Note that slrnpull does not write to the request files - slrn itself will notice when article bodies have been downloaded and prune the request list accordingly. To keep track of the articles that don't have bodies, slrnpull creates a file called ".headers" in each spool directory that has incomplete articles in it. Make sure that these files do not get deleted or corrupted - if an article is not listed there, slrn won't allow the users to request its body for download; on the other hand, if that file lists a complete article, its body can get requested (and appended) again! Since version 0.9.8.0, slrnpull also creates files called ".servermin" in each spool directory - they only contain the server's low water mark that got reported for that group the last time slrnpull checked for new articles. This information is used to expire articles without body that are no longer available on the server - slrnpull does not connect to the server when run in expiry mode. slrn-1.0.1/doc/slrnpull/SETUP000066400000000000000000000045251206520222400157330ustar00rootroot00000000000000-*- text -*- This file indicates how to setup slrnpull for pulling groups from a news server. 0. Build slrn and slrnpull. On Unix, using ./configure --with-slrnpull makes sure slrnpull is built and the needed features are compiled into slrn. On Windows, you need to "make slrnpull.exe" explicitly. 1. Choose a directory that will be used for slrnpull. In this file, I will assume it is /var/spool/slrnpull. 2. Create the directory: mkdir /var/spool/slrnpull The --with-slrnpull option allows a different directory to be used. /var/spool/slrnpull is the default value. 3. Create a file called `slrnpull.conf' in that directory. Use the example provided in the slrn/slrnpull distribution as a template: cp ./slrnpull.conf /var/spool/slrnpull EDIT /var/spool/slrnpull/slrnpull.conf You must edit this file!! slrnpull will only retrieve the groups that are listed in this file. It will NOT look at your newsrc file! If your server requires authorization information, create a file called `authinfo' in the slrnpull directory. The file should consist of two lines: the first line should contain the username and the second should contain the password. 4. Startup your network connection, e.g., ppp-up 5. Run slrnpull. slrnpull -d /var/spool/slrnpull -h YOUR.NNTP.NEWS.SERVER Note that slrnpull runs with the umask of the process that created it. If you run it from a shell script, it is a good idea to add umask 022 before running slrnpull. That way, the files that it creates will have read permissions for all users. 6. Stop your internet connection, e.g., ppp-down 7. Add the following lines to the end of your .slrnrc file (change accordingly): set spool_inn_root "/var/spool/slrnpull" set spool_root "/var/spool/slrnpull/news" set spool_nov_root "/var/spool/slrnpull/news" set use_slrnpull 1 set read_active 1 set server_object "spool" hostname "YOUR_HOST_NAME" username "YOUR_USER_NAME" 8. Now run slrn to read from this spool: slrn --spool (You can compile slrn so that it will read from the spool by default without the need to use the --spool command line option. See slrnfeat.h.) slrn-1.0.1/doc/slrnpull/score000066400000000000000000000025211206520222400161400ustar00rootroot00000000000000% This is a sample score file used by slrnpull that I use to kill articles % before they are downloaded. Any article scoring less than 0 will not be % downloaded. [*] % Kill all articles which are uppercase and contain $ sign Score: -9999 Subject: \$ ~Subject: \c[a-z] % Kill all of these too. Score:: -9999 % Kill anything cross-posted to news.answers. % It is probably a long FAQ. Newsgroups: news.answers Subject: http:// Subject: \d\d\d-[0-z][0-z][0-z]-[0-z][0-z][0-z][0-z] Subject: (no subject Subject: (none) Subject: \<\d\d\d[-+ ]\d\d\d\d\> Subject: \<011- Subject: \<[89]00- Subject: \ Subject: ^FREE\> Subject: ^Re: FREE\> Subject: Wincash.zip Subject: fast.?money Subject: \$MONEY Subject: \c\ Subject: \ Subject: \$\$ Subject: \ Subject: \ Subject: \ Subject: \ Subject: \ Subject: \ Subject: \ Subject: press95\> Subject: gravity Subject: virtual access Xref: winsock slrn-1.0.1/doc/slrnpull/setgid.txt000066400000000000000000000074121206520222400171260ustar00rootroot00000000000000Note: The patch described in this file has been integrated, but is disabled by default. To enable it, pass --enable-setgid-code to ./configure when building slrn. The patch is from Sylvain Robitaille , and is described below: --------------------------------------------------------------------------- This patch will allow you to run slrnpull as an unprivileged user, rather than as root, (or as yourself). To do this (if you're already using slrnpull), you'll need change the ownerships of all the directories and files from your SLRNPULL_ROOT_DIR and down. ie: # chown -R news.news /local/var/slrnpull Use whatever user name, group name, and path appropriate for your own system. Run slrnpull from the news user's crontab, rather than from root's (or your own). Note that this has been tested on Linux-2.0.xx, but should work fine on any Unix I've seen. It relies simply on the fact that a setgid directory forces all files placed within that directory to be owned by the group owner of the directory. Please post questions, comments, or criticisms to the newsgroup. # 1998/07/07 Sylvain Robitaille: Patch to allow slrnpull to run with # reduced privileges. # # Background: Slrn runs with a umask of 077, as set in src/slrn.c. This # means that any files created by slrn on behalf of a user # are readable and writable only to that user. Normally, # this is the desired result. # # Unfortunately, it also means that out-going posts created # in the slrnpull/out.going directory are also created with # the same file modes. This means that for slrnpull to be # able to remove the file from the out.going directory after # it's been posted, (or move it to the out.going/rejects # directory if posting failed), slrnpull must either be run # by the same user that posted the message, or by root. On a # multi-user system, the latter is the only option. # # For a variety of reasons, programs should only run as root # if they need the extra privilege. In this case, all that # was needed was to give slrnpull enough privilege to # manipulate files created in the out.going directory. # # Solution: Create a special user and group id for slrnpull. I've chosen # to name them both 'news', (but any name will work just as # well). The only group the news user belongs to is the group # 'news'. The entire directory tree where slrnpull works is # owned by user 'news' and group 'news'. Slrnpull is run from # user 'news' crontab file. # # This permits slrnpull to run without root privilege, and # still have all the permissions it needs to work within the # news spool and associated log files. The tricky part is that # now, slrnpull can't manipulate local posts in the out.going # directory, because the files are owned by the user/group # that created them with read/write permission only to the # user. # # If we make the out.going directory setgid to the group # 'news', files created in that directory will be owned by # that group. We now only need to provide read/write # permission to user *and* group at the time the file is # created. # # This patch does exactly that. It also patches slrnpull to # create the out.going directory with the setgid bit. Note: As of version 0.9.7.3, the code has been changed to give only read permission to the group; slrnpull should not need write permissions and removing them prevents the file from being corrupted by users who might be in the same group. slrn-1.0.1/doc/slrnpull/slrn.rc000066400000000000000000000013321206520222400164050ustar00rootroot00000000000000% This is a minimal .slrnrc file for use with slrn when it is used to % read from an slrnpull spool directory. Here I assume that the % SLRNPULL_ROOT directory is /var/spool/slrnpull. % Note that PULL_SUPPORT must be enabled in configure / slrnconf.h % Also look at the sample slrn.rc file in ../ for more options. set spool_inn_root "/var/spool/slrnpull" set spool_root "/var/spool/slrnpull/news" set spool_nov_root "/var/spool/slrnpull/news" set read_active 1 set use_slrnpull 1 set server_object "spool" % The previous line is optional. If you use it, the command line argument % `--spool' is not necessary. % Don't forget to set these up properly: set hostname "your.host.name" set username "your.user.name" slrn-1.0.1/doc/slrnpull/slrnpull.conf000066400000000000000000000036161206520222400176320ustar00rootroot00000000000000# This file is a sample configuration file for slrnpull. Such a file must # exist in the slrnpull spool directory. # The syntax of the file is very simple. # Any line that is blank or begins with a '#' character will be ignored by # slrnpull. The remaining lines consist of 1-4 fields separated by # whitespace (unlike shown here, all four fields must be on the same line): # # NEWSGROUP_NAME MAX_ARTICLES_TO_RETRIEVE NUMBER_OF_DAYS_BEFORE_EXPIRE # FETCH_HEADERS_ONLY # # The first field must contain the name of a newsgroup. # # The second field denotes the number of articles to retrieve for the # newsgroup; if its value is 0, all available articles will # be retrieved. # Please note that setting the value to 0 still does not make slrnpull # retrieve any articles which are older than the last one it already # fetched in that group. # # The third field indicates the number of days after an article is retrieved # before it will be eligible for deletion. If this value is 0, articles from # this group will not expire. # # The fourth field can be set to 1 if you want slrnpull to only fetch headers # for new articles by default. You can then mark individual article bodies for # download in slrn (see README.offline for details). # # If a field is blank, or contains the single character '*', default values # will apply to the field. Defaults may be set by a line whose newsgroup # field is 'default'. Such a line will denote default values to be applied to # the lines following it or until another default is established. # For example: default 20 14 0 # indicates a default value of 20 articles to be retrieved from the server and # that such an article will expire after 14 days. # The following lines will get this default clari.world.europe.iberia rec.arts.movies.reviews rec.arts.movies.current-films * 7 # Here is a new default: default 0 0 clari.living.columns.joebob rec.food.recipes slrn-1.0.1/doc/slrnpull/slrnpull.sh000077500000000000000000000014531206520222400173170ustar00rootroot00000000000000#!/bin/sh # I run this file from cron every night to pull a few newsgroups from my # news server. It does the following: # # 1. Runs slrnpull in expire mode to expire old articles # 2. Starts up ppp via a ppp-on script (not provided) # 3. Runs slrnpull to grab articles from the server # 4. Turns off ppp via a ppp-off script (not provided) # Configuration variables. Change these!!! dir=/var/spool/news server=news.mit.edu slrnpull=/home/john/src/slrn/src/objs/slrnpull #---------------------------------------------------------------------------- # Make sure that all files will be readable by others umask 022 # Before getting new articles, perform expiration. $slrnpull -d $dir --expire if /usr/sbin/ppp-on; then $slrnpull -d $dir -h $server /usr/sbin/ppp-off else exit 1 fi slrn-1.0.1/doc/tm/000077500000000000000000000000001206520222400136475ustar00rootroot00000000000000slrn-1.0.1/doc/tm/Makefile000066400000000000000000000027661206520222400153220ustar00rootroot00000000000000# -*- sh -*- # To create the SGML files, you will need to install the tmexpand # package. See http://www.jedsoft.org/ for more information. # TMEXPAND = tmexpand TM2SGML = $(TMEXPAND) SOURCE_FILES = slrnfuns.tm slrnfuns/article.tm slrnfuns/dialog.tm \ slrnfuns/file.tm slrnfuns/group.tm slrnfuns/header.tm slrnfuns/hooks.tm \ slrnfuns/keys.tm slrnfuns/misc.tm EXTRA_DIST = $(SOURCE_FILES) slrnfuns/tm-sort.sl slrnfuns/whatelse.sl TXT_FILES = slrnfuns.txt SGML_FILES = slrnfuns.sgml HTML_FILES = slrnfuns.html MOSTLYCLEANFILES = *~ *.dvi *.log *.aux *.toc slrnfuns/*.BAK slrnfuns/*~ DISTCLEANFILES = *.html $(TXT_FILES) $(SGML_FILES) SGML2LATEX = sgml2latex -p letter -o tex SGML2HTML = sgml2html SGML2TXT = linuxdoc -B txt -f #SGML2TXT = sgml2txt -f --pass="-P -c" TM2TXT = tm2txt --quiet LATEX = latex TEXTDIR = .. HTMLDIR = html SGMLDIR = sgml convert-all: $(SGML_FILES) $(HTML_FILES) $(TEX_FILES) $(TXT_FILES) convert-txt: $(TXT_FILES) update: convert-txt ## -mkdir $(SUBDIRS) -mv $(TXT_FILES) $(TEXTDIR) ## -mv *.html $(HTMLDIR) ##----- SGML Files ---------------------------------------------------------- slrnfuns.sgml: $(SOURCE_FILES) $(TM2SGML) -I$(MACRODIR) slrnfuns.tm slrnfuns.sgml ##----- HTML Files ---------------------------------------------------------- slrnfuns.html : slrnfuns.sgml $(SGML2HTML) slrnfuns.sgml ##----- Text Files ---------------------------------------------------------- slrnfuns.txt : slrnfuns.sgml $(SGML2TXT) slrnfuns.sgml ## cat slrnfuns/*.tm | $(TM2TXT) > slrnfuns.txt slrn-1.0.1/doc/tm/README000066400000000000000000000023511206520222400145300ustar00rootroot00000000000000The slrn documentation in this directory is written in text-macro format. This format was invented by me and currently can only be processed by the jed text editor and the tm2txt program that is distributed with the S-Lang library. In fact, ../slrnfuns.txt was created from slrnfuns.tm via tm2txt. The jed editor converts the .tm source to SGML and from there it is converted to other formats, e.g., html, via SGML-Tools. The advantage of text-macro over SGML is that I believe it is much easier to write in text-macro than in raw SGML. In fact, the text-macro source is much easier to comprehend than SGML. For example, the \function macro allows the text-macro source to look like \function{bla bla} . . \done whereas the equivalent SGML source would look like: bla bla