commit 5cee1276186dd15dc5925216f367c44ddc22d84a Author: Михаил Агарков Date: Tue Apr 23 16:03:09 2024 +0300 nano 7.2 source code https://nano-editor.org/ diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..b1de1b6 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1282 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + +1.1 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. Installers may use special +options at configuration time for changing the default behaviour. The +command: + + ./configure --disable-nls + +will _totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl' library +and will decide to use it. If not, you may have to to use the +`--with-libintl-prefix' option to tell `configure' where to look for it. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.2 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.3 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.4 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of June +2010. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca + +--------------------------------------------------+ + a2ps | [] [] | + aegis | | + ant-phone | | + anubis | | + aspell | [] [] | + bash | | + bfd | | + bibshelf | [] | + binutils | | + bison | | + bison-runtime | [] | + bluez-pin | [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] [] | + cpio | | + cppi | | + cpplib | [] | + cryptsetup | | + dfarc | | + dialog | [] [] | + dico | | + diffutils | [] | + dink | | + doodle | | + e2fsprogs | [] | + enscript | [] | + exif | | + fetchmail | [] | + findutils | [] | + flex | [] | + freedink | | + gas | | + gawk | [] [] | + gcal | [] | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] | + gettext-tools | [] [] | + gip | [] | + gjay | | + gliv | [] | + glunarclock | [] [] | + gnubiff | | + gnucash | [] | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | | + gold | | + gpe-aerial | | + gpe-beam | | + gpe-bluetooth | | + gpe-calendar | | + gpe-clock | [] | + gpe-conf | | + gpe-contacts | | + gpe-edit | | + gpe-filemanager | | + gpe-go | | + gpe-login | | + gpe-ownerinfo | [] | + gpe-package | | + gpe-sketchbook | | + gpe-su | [] | + gpe-taskmanager | [] | + gpe-timesheet | [] | + gpe-today | [] | + gpe-todo | | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | [] [] | + gsasl | | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] [] [] | + gtick | | + gtkam | [] | + gtkorphan | [] | + gtkspell | [] [] [] | + gutenprint | | + hello | [] | + help2man | | + hylafax | | + idutils | | + indent | [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | | + iso_639 | [] [] [] [] | + iso_639_3 | | + jwhois | | + kbd | | + keytouch | [] | + keytouch-editor | | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | | + ld | [] | + leafpad | [] [] | + libc | [] [] | + libexif | () | + libextractor | | + libgnutls | | + libgpewidget | | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | [] | + libidn | | + lifelines | | + liferea | [] [] | + lilypond | | + linkdr | [] | + lordsawar | | + lprng | | + lynx | [] | + m4 | | + mailfromd | | + mailutils | | + make | | + man-db | | + man-db-manpages | | + minicom | | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | | + psmisc | | + pspp | [] | + pwdutils | | + radius | [] | + recode | [] [] | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | | + solfege-manual | | + soundtracker | | + sp | | + sysstat | | + tar | [] | + texinfo | | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] [] | + wyslij-po | | + xchat | [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] | + +--------------------------------------------------+ + af am an ar as ast az be be@latin bg bn_IN bs ca + 6 0 1 2 3 19 1 10 3 28 3 1 38 + + crh cs da de el en en_GB en_ZA eo es et eu fa + +-------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] () | + anubis | [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] | + bison | [] [] | + bison-runtime | [] [] [] [] | + bluez-pin | [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] [] [] | + cflow | [] [] | + clisp | [] [] [] [] | + coreutils | [] [] [] [] | + cpio | | + cppi | | + cpplib | [] [] [] | + cryptsetup | [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] | + dink | [] [] [] | + doodle | [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + exif | () [] [] | + fetchmail | [] [] () [] [] [] | + findutils | [] [] [] | + flex | [] [] | + freedink | [] [] [] | + gas | [] | + gawk | [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] | + gettext-tools | [] [] [] | + gip | [] [] [] [] | + gjay | [] | + gliv | [] [] [] | + glunarclock | [] [] | + gnubiff | () | + gnucash | [] () () () () | + gnuedu | [] [] | + gnulib | [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] | + gpe-aerial | [] [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] [] [] | + gpe-edit | [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] () [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] | + grub | [] [] | + gsasl | [] | + gss | | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] () [] | + gtkam | [] [] () [] [] | + gtkorphan | [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | [] [] [] | + hello | [] [] [] [] | + help2man | [] | + hylafax | [] [] | + idutils | [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] [] [] [] () [] [] [] () | + iso_3166_2 | () | + iso_4217 | [] [] [] () [] [] | + iso_639 | [] [] [] [] () [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | [] [] [] [] [] | + keytouch | [] [] | + keytouch-editor | [] [] | + keytouch-keyboa... | [] | + klavaro | [] [] [] [] | + latrine | [] () | + ld | [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | [] [] | + libgphoto2 | [] () | + libgphoto2_port | [] () [] | + libgsasl | | + libiconv | [] [] [] [] [] | + libidn | [] [] [] | + lifelines | [] () | + liferea | [] [] [] [] [] | + lilypond | [] [] [] | + linkdr | [] [] [] | + lordsawar | [] | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] [] | + man-db | | + man-db-manpages | | + minicom | [] [] [] [] | + mkisofs | | + myserver | | + nano | [] [] [] | + opcodes | [] [] | + parted | [] [] | + pies | | + popt | [] [] [] [] [] | + psmisc | [] [] [] | + pspp | [] | + pwdutils | [] | + radius | [] | + recode | [] [] [] [] [] [] | + rosegarden | () () () | + rpm | [] [] [] | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] | + sed | [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | | + skencil | [] () [] | + solfege | [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] [] | + sp | [] | + sysstat | [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] | + tin | [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] | + vice | () () | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] | + wyslij-po | | + xchat | [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] | + +-------------------------------------------------+ + crh cs da de el en en_GB en_ZA eo es et eu fa + 5 64 105 117 18 1 8 0 28 89 18 19 0 + + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + +----------------------------------------------------+ + a2ps | [] [] [] [] | + aegis | [] [] | + ant-phone | [] [] | + anubis | [] [] [] [] | + aspell | [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] [] | + bibshelf | [] [] [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] | + bison-runtime | [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] | + cflow | [] [] [] | + clisp | [] | + coreutils | [] [] [] [] [] | + cpio | [] [] [] [] | + cppi | [] [] | + cpplib | [] [] [] | + cryptsetup | [] [] [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] [] [] [] | + dink | [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] | + freedink | [] [] [] | + gas | [] [] | + gawk | [] [] [] [] () [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] [] [] | + gjay | [] | + gliv | [] () | + glunarclock | [] [] [] [] | + gnubiff | () [] () | + gnucash | () () () () () [] | + gnuedu | [] [] | + gnulib | [] [] [] [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] [] | + gpe-aerial | [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] [] [] | + gpe-contacts | [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] [] | + gpe-go | [] [] [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] [] | + grub | [] [] [] [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] [] [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] [] [] | + hello | [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] [] | + indent | [] [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | () [] [] [] | + iso_4217 | [] () [] [] [] [] | + iso_639 | [] () [] [] [] [] [] [] [] | + iso_639_3 | () [] [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] [] [] [] | + keytouch-editor | [] [] [] [] [] | + keytouch-keyboa... | [] [] [] [] [] | + klavaro | [] [] | + latrine | [] [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] [] () | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] [] | + libidn | [] [] [] [] | + lifelines | () | + liferea | [] [] [] [] | + lilypond | [] [] | + linkdr | [] [] [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] [] | + m4 | [] [] [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] [] | + man-db | [] [] | + man-db-manpages | [] | + minicom | [] [] [] [] [] | + mkisofs | [] [] [] [] | + myserver | | + nano | [] [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] [] | + pies | | + popt | [] [] [] [] [] [] [] [] [] | + psmisc | [] [] [] | + pspp | | + pwdutils | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () () () () | + rpm | [] [] | + rush | | + sarg | [] | + screem | [] [] | + scrollkeeper | [] [] [] [] | + sed | [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + shishi | [] | + skencil | [] | + solfege | [] [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] | + sp | [] () | + sysstat | [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux-ng | [] [] [] [] [] [] | + vice | () () () | + vmm | [] | + vorbis-tools | [] | + wastesedge | () () | + wdiff | [] | + wget | [] [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] | + +----------------------------------------------------+ + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 + + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + +-----------------------------------------------+ + a2ps | [] | + aegis | | + ant-phone | | + anubis | [] [] | + aspell | [] | + bash | | + bfd | | + bibshelf | [] [] | + binutils | | + bison | [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] | + cpio | | + cppi | | + cpplib | | + cryptsetup | | + dfarc | [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] | + dink | | + doodle | | + e2fsprogs | | + enscript | | + exif | [] | + fetchmail | | + findutils | | + flex | | + freedink | [] | + gas | | + gawk | | + gcal | | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] | + gettext-tools | [] | + gip | [] [] | + gjay | | + gliv | | + glunarclock | [] | + gnubiff | | + gnucash | () () () () | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gold | | + gpe-aerial | [] | + gpe-beam | [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] | + gpe-contacts | [] [] | + gpe-edit | [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] | + gpe-timesheet | [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | | + gsasl | | + gss | | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | | + gtick | | + gtkam | [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | | + hello | [] [] [] | + help2man | | + hylafax | | + idutils | | + indent | | + iso_15924 | [] [] | + iso_3166 | [] [] () [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] | + iso_639 | [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | [] | + ld | | + leafpad | [] [] [] | + libc | [] | + libexif | | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | | + libidn | | + lifelines | | + liferea | | + lilypond | | + linkdr | | + lordsawar | | + lprng | | + lynx | | + m4 | | + mailfromd | | + mailutils | | + make | [] | + man-db | | + man-db-manpages | | + minicom | [] | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | [] [] [] | + psmisc | | + pspp | | + pwdutils | | + radius | | + recode | | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] | + sed | | + sharutils | | + shishi | | + skencil | | + solfege | [] | + solfege-manual | | + soundtracker | | + sp | | + sysstat | [] | + tar | [] | + texinfo | [] | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] | + wyslij-po | | + xchat | [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +-----------------------------------------------+ + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 + + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + +---------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] | + bfd | [] | + bibshelf | [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] () | + buzztard | [] [] | + cflow | [] | + clisp | [] [] | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cppi | [] | + cpplib | [] | + cryptsetup | [] | + dfarc | [] | + dialog | [] [] [] [] | + dico | [] | + diffutils | [] [] [] [] [] [] | + dink | () | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + exif | [] [] [] () [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] [] | + freedink | [] [] | + gas | | + gawk | [] [] [] [] | + gcal | | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] | + gip | [] [] [] [] [] | + gjay | | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] | + gnubiff | [] () | + gnucash | [] () () () | + gnuedu | [] | + gnulib | [] [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] [] | + gold | | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] [] | + gphoto2 | [] [] [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + grub | [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] | + hello | [] [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] [] [] [] | + iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | + iso_3166_2 | [] [] [] | + iso_4217 | [] [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] [] [] | + keytouch-editor | [] [] [] | + keytouch-keyboa... | [] [] [] | + klavaro | [] [] | + latrine | [] [] | + ld | | + leafpad | [] [] [] [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] | + lifelines | [] [] | + liferea | [] [] [] [] [] () () [] | + lilypond | [] | + linkdr | [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] | + make | [] [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + pies | [] | + popt | [] [] [] [] | + psmisc | [] [] [] | + pspp | [] [] | + pwdutils | [] | + radius | [] [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () | + rpm | [] [] [] | + rush | [] [] | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] [] [] [] | + solfege-manual | [] [] [] | + soundtracker | [] | + sp | | + sysstat | [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] [] | + vice | [] | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +---------------------------------------------------+ + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 + + sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + +---------------------------------------------------+ + a2ps | [] [] [] [] [] | 27 + aegis | [] | 9 + ant-phone | [] [] [] [] | 9 + anubis | [] [] [] [] | 15 + aspell | [] [] [] | 20 + bash | [] [] [] | 12 + bfd | [] | 6 + bibshelf | [] [] [] | 16 + binutils | [] [] | 8 + bison | [] [] | 12 + bison-runtime | [] [] [] [] [] [] | 29 + bluez-pin | [] [] [] [] [] [] [] [] | 37 + bombono-dvd | [] | 4 + buzztard | [] | 7 + cflow | [] [] [] | 9 + clisp | | 10 + coreutils | [] [] [] [] | 22 + cpio | [] [] [] [] [] [] | 13 + cppi | [] [] | 5 + cpplib | [] [] [] [] [] [] | 14 + cryptsetup | [] [] | 7 + dfarc | [] | 9 + dialog | [] [] [] [] [] [] [] | 30 + dico | [] | 2 + diffutils | [] [] [] [] [] [] | 30 + dink | | 4 + doodle | [] [] | 7 + e2fsprogs | [] [] [] | 11 + enscript | [] [] [] [] | 17 + exif | [] [] [] | 16 + fetchmail | [] [] [] | 17 + findutils | [] [] [] [] [] | 20 + flex | [] [] [] [] | 15 + freedink | [] | 10 + gas | [] | 4 + gawk | [] [] [] [] | 18 + gcal | [] [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] [] | 34 + gettext-runtime | [] [] [] [] [] [] [] | 29 + gettext-tools | [] [] [] [] [] [] | 22 + gip | [] [] [] [] | 22 + gjay | [] | 3 + gliv | [] [] [] | 14 + glunarclock | [] [] [] [] [] | 19 + gnubiff | [] [] | 4 + gnucash | () [] () [] () | 10 + gnuedu | [] [] | 7 + gnulib | [] [] [] [] | 16 + gnunet | [] | 1 + gnunet-gtk | [] [] [] | 5 + gnutls | [] [] [] | 10 + gold | [] | 4 + gpe-aerial | [] [] [] | 18 + gpe-beam | [] [] [] | 19 + gpe-bluetooth | [] [] [] | 13 + gpe-calendar | [] [] [] [] | 12 + gpe-clock | [] [] [] [] [] | 28 + gpe-conf | [] [] [] [] | 20 + gpe-contacts | [] [] [] | 17 + gpe-edit | [] [] [] | 12 + gpe-filemanager | [] [] [] [] | 16 + gpe-go | [] [] [] [] [] | 25 + gpe-login | [] [] [] | 11 + gpe-ownerinfo | [] [] [] [] [] | 25 + gpe-package | [] [] [] | 13 + gpe-sketchbook | [] [] [] | 20 + gpe-su | [] [] [] [] [] | 30 + gpe-taskmanager | [] [] [] [] [] | 29 + gpe-timesheet | [] [] [] [] [] | 25 + gpe-today | [] [] [] [] [] [] | 30 + gpe-todo | [] [] [] [] | 17 + gphoto2 | [] [] [] [] [] | 24 + gprof | [] [] [] | 15 + gpsdrive | [] [] [] | 11 + gramadoir | [] [] [] | 11 + grep | [] [] [] | 10 + grub | [] [] [] | 14 + gsasl | [] [] [] [] | 14 + gss | [] [] [] | 11 + gst-plugins-bad | [] [] [] [] | 26 + gst-plugins-base | [] [] [] [] [] | 24 + gst-plugins-good | [] [] [] [] | 24 + gst-plugins-ugly | [] [] [] [] [] | 29 + gstreamer | [] [] [] [] | 22 + gtick | [] [] [] | 13 + gtkam | [] [] [] | 20 + gtkorphan | [] [] [] | 14 + gtkspell | [] [] [] [] [] [] [] [] [] | 45 + gutenprint | [] | 10 + hello | [] [] [] [] [] [] | 21 + help2man | [] [] | 7 + hylafax | [] | 5 + idutils | [] [] [] [] | 17 + indent | [] [] [] [] [] [] | 30 + iso_15924 | () [] () [] [] | 16 + iso_3166 | [] [] () [] [] () [] [] [] () | 53 + iso_3166_2 | () [] () [] | 9 + iso_4217 | [] () [] [] () [] [] | 26 + iso_639 | [] [] [] () [] () [] [] [] [] | 38 + iso_639_3 | [] () | 8 + jwhois | [] [] [] [] [] | 16 + kbd | [] [] [] [] [] | 15 + keytouch | [] [] [] | 16 + keytouch-editor | [] [] [] | 14 + keytouch-keyboa... | [] [] [] | 14 + klavaro | [] | 11 + latrine | [] [] [] | 10 + ld | [] [] [] [] | 11 + leafpad | [] [] [] [] [] [] | 33 + libc | [] [] [] [] [] | 21 + libexif | [] () | 7 + libextractor | [] | 1 + libgnutls | [] [] [] | 9 + libgpewidget | [] [] [] | 14 + libgpg-error | [] [] [] | 9 + libgphoto2 | [] [] | 8 + libgphoto2_port | [] [] [] [] | 14 + libgsasl | [] [] [] | 13 + libiconv | [] [] [] [] | 21 + libidn | () [] [] | 11 + lifelines | [] | 4 + liferea | [] [] [] | 21 + lilypond | [] | 7 + linkdr | [] [] [] [] [] | 17 + lordsawar | | 1 + lprng | [] | 3 + lynx | [] [] [] [] | 17 + m4 | [] [] [] [] | 19 + mailfromd | [] [] | 3 + mailutils | [] | 5 + make | [] [] [] [] | 21 + man-db | [] [] [] | 8 + man-db-manpages | | 4 + minicom | [] [] | 16 + mkisofs | [] [] | 9 + myserver | | 0 + nano | [] [] [] [] | 21 + opcodes | [] [] [] | 11 + parted | [] [] [] [] [] | 15 + pies | [] [] | 3 + popt | [] [] [] [] [] [] | 27 + psmisc | [] [] | 11 + pspp | | 4 + pwdutils | [] [] | 6 + radius | [] [] | 9 + recode | [] [] [] [] | 28 + rosegarden | () | 0 + rpm | [] [] [] | 11 + rush | [] [] | 4 + sarg | | 1 + screem | [] | 3 + scrollkeeper | [] [] [] [] [] | 27 + sed | [] [] [] [] [] | 30 + sharutils | [] [] [] [] [] | 22 + shishi | [] | 3 + skencil | [] [] | 7 + solfege | [] [] [] [] | 16 + solfege-manual | [] | 8 + soundtracker | [] [] [] | 9 + sp | [] | 3 + sysstat | [] [] | 15 + tar | [] [] [] [] [] [] | 23 + texinfo | [] [] [] [] [] | 17 + tin | | 4 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux-ng | [] [] [] [] | 20 + vice | () () | 1 + vmm | [] | 4 + vorbis-tools | [] | 6 + wastesedge | | 2 + wdiff | [] [] | 7 + wget | [] [] [] [] [] | 26 + wyslij-po | [] [] | 8 + xchat | [] [] [] [] [] [] | 36 + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 + xkeyboard-config | [] [] [] | 22 + +---------------------------------------------------+ + 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If June 2010 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.5 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..05c7838 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,77 @@ +This file lists people who have made significant contributions to the +nano editor. Please see the ChangeLog for specific changes by author. +---------------------------------------------------------------------- + +Chris Allegretta + * Original program author and long-time maintainer. + +Benno Schulenberg + * An array of small bug fixes, the cut-word and block-jump + routines, text selection by holding Shift, macro recording + and replay, extra key bindings, the --indicator, --minibar, + and --zero options, and braced functions in string binds. + Current maintainer. + +David Lawrence Ramsey + * Former stable series maintainer. Multiple buffer support, + operating dir (-o) option, bug fixes for display routines, + wrapping code, spelling fixes, constantshow mode, parts of + UTF-8 support, softwrap overhaul, undoable (un)indentations, + undoable justifications, justifiable regions, and numerous + other fixes. + +Jordi Mallach + * Debian package maintainer, fellow bug squasher. + * Internationalization support head, ca.po maintainer. + +Adam Rogoyski + * New write_file() function, read_file() optimization, mouse + support, resize support, nohelp (-x) option, justify function, + follow symlink option and bugfixes, and much more. + +Robert Siemborski + * Miscellaneous cut, display, replace, and other bug fixes, + original and new "magic line" code, read_line() function, + new edit display routines. + +Rocco Corsi + * Internal spelling code, many optimizations and bug fixes for + findnextstr() and search-related functions, various display + and file handling fixes. + +David Benbennick + * Wrap and justify bugfixes/enhancements, new color syntax + code, memleak fixes, parts of the UTF-8 support, and other + miscellaneous fixes. + +Mike Frysinger + * Gentoo package maintainer. Whitespace display mode, + --enable-utf8/--disable-utf8 configure options for ncurses, + many new color regexes and improvements to existing color + regexes in syntax/*.nanorc, the move from svn to git, the + conversion to gnulib, and miscellaneous bug fixes. + +Mark Majeres + * A functional undo/redo system, and coloring nano's interface. + +Mahyar Abbaspour + * Improved handling of SIGWINCH. + +Mike Scalora + * The comment/uncomment feature. + +Faissal Bensefia + * Line numbers. + +Sumedh Pendurkar + * The word-completion feature. + +Rishabh Dave + * Searchable help. + +Marco Diego Aurélio Mesquita + * Filtering text through an external command. + * Placing anchors (bookmarks) and jumping to them. + +Brand Huntsman + * The delayed parsing of syntax files. diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..4432540 --- /dev/null +++ b/COPYING @@ -0,0 +1,676 @@ + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/COPYING.DOC b/COPYING.DOC new file mode 100644 index 0000000..4a0fe1c --- /dev/null +++ b/COPYING.DOC @@ -0,0 +1,397 @@ + GNU Free Documentation License + Version 1.2, November 2002 + + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document 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. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation 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. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e8c5f71 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,5224 @@ +Changes between v7.1 and v7.2: +------------------------------ + +Benno Schulenberg (11): + bindings: let ^/ toggle between the 'search' and 'gotoline' menus + bump version numbers and add a news item for the 7.2 release + copyright: update the years for the FSF + docs: give ^K and ^U some useful function in the alternative bindings + docs: put the binding of ^Y after its unbinding, for it to be effective + gnulib: update to its current upstream state + input: disallow bracketed pastes when in view mode + syntax: html: colorize specially the other two emphasizing tags too + tweaks: avoid warnings when compiling with -Wpedantic + tweaks: rewrap an old news item + tweaks: separate a special thanks from the preceding ones + + +Changes between v7.0 and v7.1: +------------------------------ + +Benno Schulenberg (8): + build: fix compilation when configured with --disable-comment + bump version numbers and add a news item for the 7.1 release + copyright: update the last year for significantly changed files + docs: say thanks to the Albanian translator + rcfile: report an error when an included file does not exist + text: upon Enter, eat only lefthand blanks, not any other characters + tweaks: avoid passing NULL to access() + tweaks: wrap overlong lines in the Tcl syntax, to make them manageable + + +Changes between v6.4 and v7.0: +------------------------------ + +Benno Schulenberg (94): + build: add options --disable-formatter and --disable-linter to configure + build: exclude some pieces that are not needed with --disable-nanorc + build: exclude two unneeded functions correctly from the tiny version + build: fix compilation when configured with --enable-tiny + bump version numbers and add a news item for the 7.0 release + completion: search through all open buffers for possible completions + docs: clarify the distinction between binding a function and "{function}" + docs: describe --disable-formatter and --disable-linter configure options + docs: explain how to include a double quote plus space in a nanorc regex + docs: improve the legibility of an itemized list + docs: mention in the man page how M-V can insert any Unicode code point + docs: mention that string binds may contain function names between braces + docs: replace control codes in the examples with {command} cartouches + docs: suggest a key binding for snipping trailing blanks + execute: show "Cancelled" instead of "Error" when the user hits ^C + extra: use the whole terminal for the crawl, and quicken it a bit + feedback: suppress undo/redo messages when option --zero is in effect + files: before sending data to an external command, decode LF back to NUL + files: improve the error handling when executing an external command + filtering: terminate also the sender process when the user hits ^C + filtering: when returning to a line number, ensure it is within range + gnulib: update to its current upstream state + goto: don't center the current line when the user specified a column only + help: don't show the New-Buffer toggle when in view mode + help: move the M-Del item up, so that M-PgUp and M-PgDn are paired + help: prioritize the unshifted Meta keystrokes for buffer switching + input: allocate a small keystroke buffer, and never free it + input: allocate two small character buffers too, and never free them + input: give up when the capacity of the keystroke buffer overflows + input: interpret commands of the form {functionname} inside string binds + memory: avoid a leak when a string bind specifies an unknown menu + prompt: allow rebinding also ^N, ^Q, and ^Y at the yes-no prompt + prompt: ingest queued characters before handling any subsequent function + prompt: prevent execution of inadmissible functions in view mode + prompt: return FALSE for non-editing functions also in the tiny version + prompt: toggle the help lines only for the 'nohelp' toggle + search: skip a match on the magic line, as it is a just convenience line + startup: ensure that +/string centers the match also with --linenumbers + startup: for +/string, center the found occurrence when possible + startup: quit when standard input is not a TTY (after handling arguments) + startup: report an empty search string also when there is a modifier + syntax: nanorc: colorize valid function names plus surrounding braces + tweaks: add parentheses for consistency, and reshuffle for conciseness + tweaks: allow the linter to be used in view mode, as it makes no changes + tweaks: attribute some of the features that were added in the last years + tweaks: avoid iterating over the same string twice in a row + tweaks: avoid sometimes calling a function three times in a row + tweaks: check the multiline regexes only for Delete and Backspace + tweaks: condense a comment, add two small ones, and reshuffle a line + tweaks: delete a flag that is no longer used + tweaks: determine in another way whether a shortcut is okay in view mode + tweaks: discard a bracketed paste in the browser more efficiently + tweaks: don't use a pointer when the value itself is all that is needed + tweaks: drop an unneeded check for permissibility of prompt shortcuts + tweaks: drop a parameter that is no longer used + tweaks: drop shunting of flags by calling the needed function directly + tweaks: elide a function that does not need to be a separate function + tweaks: elide an assignment by iterating with the target variable + tweaks: elide an intermediary variable that is no longer needed + tweaks: elide an unused parameter + tweaks: elide an unused return value + tweaks: elide a parameter by moving the general case one level up + tweaks: elide a variable, rename another, and reshuffle an assignment + tweaks: fold two cases together, because they basically do the same + tweaks: group the special keycodes for implanted strings together + tweaks: improve two comments, and exclude two unneeded prototypes + tweaks: make the crawl use the whole screen also in the tiny version + tweaks: make two error messages more succinct and easier to translate + tweaks: move the arrays of menu names and symbols to where they are used + tweaks: move the --magic option up, so that --zero comes last + tweaks: move to a given line number more efficiently + tweaks: move two checks plus corresponding calls to a better place + tweaks: normalize the indentation after the previous change + tweaks: reduce four variations of a message to a single common form + tweaks: rename a macro for clarity, and normalize some indentation + tweaks: rename a variable, away from an abbreviation + tweaks: rename two record elements and three parameters, for clarity + tweaks: replace sizeof(char) with 1, as that is assumed anyway + tweaks: reshuffle a declaration, and correct the wording of a comment + tweaks: reshuffle a line, to group things better + tweaks: reshuffle some code and drop some comments, for conciseness + tweaks: reshuffle some code, to not determine a shortcut twice + tweaks: reshuffle some lines, to be more readable instead of compact + tweaks: reshuffle two lines, for conciseness and in preparation + tweaks: reword and/or condense four comments + tweaks: rewrap line, improve wording, and correct typo in old news item + tweaks: rewrap some lines, drop a redundant call, and reshuffle a line + tweaks: simplify a function now that a Unicode code can be typed quicker + tweaks: simplify a pasting routine, modelling it after the injection one + tweaks: use an auxiliary variable to avoid dereferences of 'shortcut' + undo: make sure the current line is defined before it is referenced + verbatim: allow the user to finish Unicode input with or + verbatim: do not overwrite the status bar when the code is invalid + verbatim: don't show dots during Unicode input, as they give wrong idea + + +Changes between v6.3 and v6.4: +------------------------------ + +Benno Schulenberg (24): + bump version numbers and add a news item for the 6.4 release + display: remember text and column positions when softwrapping a line + docs: concisely describe how the linter behaves + docs: remove the two notices about the changed defaults + docs: rename README.GIT to README.hacking, so it's clearer what is meant + docs: stop mentioning the obsoleted keywords that were removed + files: designate the root directory with a simple "/", not with "//" + formatter: instead of leaving curses, use full_refresh() to wipe messages + gnulib: update to its current upstream state + help: reshuffle two shortcuts so that more help-line items are paired + options: stop accepting -z, as --suspendable has been dropped too + rcfile: remove five obsolete or deprecated keywords + syntax: default: do not colorize a square or angle bracket after a URL + syntax: perl: add missing keywords, and reduce the length of some lines + syntax: python: mention an alternative linter in a comment + tweaks: add a missing word to a news item + tweaks: add a translator hint + tweaks: improve a comment, and reshuffle two functions plus some lines + tweaks: put each regex on separate line, to better show many keywords + tweaks: rename a variable, to not be the same as a function name + tweaks: rename two variables, to not contain the name of another + tweaks: reshuffle a description and rewrap another + tweaks: reshuffle a few lines, to group things better + version: condense the copyright message, to not dominate the output + +LIU Hao (1): + build: ignore errors from `git describe` + + +Changes between v6.2 and v6.3: +------------------------------ + +Benno Schulenberg (41): + build: add the --disable-maintainer-mode option to ./configure + build: fix compilation for --enable-{tiny,nanorc,color} + build: fix compilation when configured with --disable-color + build: remove an obsolete check -- the dependent code was deleted + bump version numbers and add a news item for the 6.3 release + display: suppress spotlight yellow and error red when NO_COLOR is set + docs: add an example binding for copying text to the system clipboard + execute: clear an anchor only when the whole buffer gets filtered + execute: don't crash when an empty buffer is piped through a command + execute: stay on the same line number when filtering the whole buffer + feedback: show extra warning when writing failed due to "No space left" + files: do not change to a higher directory when the working one is gone + files: show a warning when the working directory is gone (when used) + files: when the working directory exists, still check its accessibility + filtering: close all output descriptors, so that 'xsel' will terminate + formatting: change cursor position only after saving it in the undo item + gnulib: pull in the workaround for a build problem on NetBSD + gnulib: update to its current upstream state + justify: stay at the same line number when doing a full justification + painting: colorize text also after an unterminated start match + painting: look for another start match only after the actual end match + painting: recalculate the multidata when making large strides or changes + painting: stop coloring an extremely long line after 2000 bytes + painting: tighten the check for a lacking end match on a colored line + syntax: xml: colorize /> properly, and colorize prolog tags differently + syntax: xml: colorize user-defined entities differently + tweaks: avoid a function call when two plain assignments will do + tweaks: change the indentation of a list, to match other indentations + tweaks: don't leave an orphaned temporary file behind when writing fails + tweaks: elide an unneeded call of strlen() + tweaks: exclude the extra truncation warning from the tiny version + tweaks: make the triggering of the recalculation of multidata less eager + tweaks: move the saving and restoring of flags to where it is needed + tweaks: normalize the indentation after the previous change + tweaks: prevent the adding of an unwanted newline in a different way + tweaks: remove redundant braces, and add two translator hints + tweaks: remove some stray spaces before a comma + tweaks: simplify a bit of code, eliding two labels and three gotos + tweaks: simplify a fragment of code, and fold two lines together + tweaks: trim a few comments, rename a function, and reshuffle some code + verbatim: with --zero, keep cursor in viewport when it was on bottom row + +Mike Frysinger (1): + general: fix building for Windows + + +Changes between v6.1 and v6.2: +------------------------------ + +Benno Schulenberg (14): + bump version numbers and add a news item for the 6.2 release + display: suppress the bottom-bar wiping only when the user is editing + linter: adjust the parsing to accommodate for a modern 'pyflakes' + syntaxes: fold a couple of regexes together, and improve a few comments + tweaks: change the type of a variable, to avoid a compiler warning + tweaks: consistently backslash-escape the dash in M-letter keystrokes + tweaks: rename a misnamed variable + tweaks: rename a variable, reshuffle five lines, and snip two comments + tweaks: rename a variable, to be more correct, and adjust two comments + tweaks: rename a variable, to be more fitting + tweaks: rename two more variables, and drop unneeded initializations + tweaks: rename two variables (to get rid of a prefix), and elide a third + tweaks: store a result, to avoid calling a function twice + tweaks: use an intermediate variable, to avoid using one for two purposes + + +Changes between v6.0 and v6.1: +------------------------------ + +Benno Schulenberg (37): + build: fix compilation when configured with --enable-tiny + build: prevent autopoint from overwriting a newer M4 file from gnulib + bump version numbers and add a news item for the 6.1 release + copyright: update the last year for significantly changed files + copyright: update the years for the FSF + docs: mention bindable function 'zero', for toggling the interface bars + docs: mention 'set guidestripe' and 'set unix' in the sample nanorc + docs: remove obsolete Ctrl+Z from the cheatsheet; mention Alt+X instead + files: let ^C cancel the exiting when the file on disk was changed + gnulib: update to its current upstream state + help: make the description of more accurate + help: update the description of M-D, to match the actual order of counts + input: instead of moving waiting keycodes, just increment a pointer + input: suppress any spotlighting when there are more keycodes waiting + menus: don't show M-6 in the help lines of any prompt + prompt: allow the user to copy the answer to the cutbuffer (with M-6) + prompt: let ^K erase text after cursor (if any), otherwise whole answer + tweaks: add some feedback to the autogen.sh script, to ease the wait + tweaks: add some small, clarifying comments + tweaks: adjust a translator hint, to fit the order in the POT file + tweaks: drop foreign M-U and M-R from among the sample CUA bindings + tweaks: remove a redundant check -- add a different one for symmetry + tweaks: remove two redundant checks + tweaks: rename a function and its two parameters, for clarity + tweaks: rename a function and reshuffle its call + tweaks: rename a function, to not contain the name of a variable + tweaks: rename another variable, to better fit in with its sisters + tweaks: rename a variable and a parameter, to be more descriptive + tweaks: rename a variable, away from an abbreviation + tweaks: rename a variable, for clarity and contrast + tweaks: rename a variable, to make it clearer it refers to a window + tweaks: rename two variables, and elide a near-enough duplicate + tweaks: reshuffle some sample bindings, to group them differently + tweaks: reword two comments, and rename a variable (away from an abbrev) + tweaks: stop asking the terminal for its new size -- let ncurses do it + tweaks: use some symbolic names instead of unclear numeric values + tweaks: when discarding keycodes, don't bother parsing them + + +Changes between v5.9 and v6.0: +------------------------------ + +Benno Schulenberg (192): + bindings: allow rebinding ^Z also on a Linux console (a VT) + bindings: allow toggling line numbers (when enabled) also in tiny version + bindings: let ^T in the tiny version invoke spell checker (when included) + browser: with --zero, do not use the bottom row for displaying filenames + build: fix compilation when configured with --disable-color + build: fix compilation when configured with --disable-nanorc + build: fix compilation when configured with --enable-tiny + build: fix compilation with --enable-tiny --enable-nanorc + build: fix compilation with --enable-tiny --enable-wrapping + build: include the YAML syntax file among the distributed files + bump version numbers and add a news item for the 6.0 release + display: clear the status bar early enough, so that --zero can show text + display: do not wipe the status bar when --zero or --minibar is active + display: ensure feedback will be cleared also on a one-row terminal + display: make sure there are at least as many text lines as help lines + display: move some code for overwriting verbatim feedback with --zero + display: redraw the screen in tiny version upon resuming from suspension + display: with --zero, redraw the bottom row instead of wiping a message + docs: add a hint about making ^L do just 'refresh' to the sample nanorc + docs: add a meta description for the HTML rendering of the manual + docs: add a suggested rebind and three suggested unbinds to the sample rc + docs: avoid large Table of Contents at top of HTML version of manual + docs: clarify that --enable options do not fully counteract --enable-tiny + docs: correct the description of the layout -- four areas, not five + docs: document the effect of --quickblank together with --zero/--minibar + docs: explain the effect of --zero / -0 / 'set zero' + docs: explain what it means when --rawsequences is needed + docs: give more examples of things that --enable-tiny excludes + docs: improve the title of the manual, away from the bare "nano" + docs: list the new color names, from 'rosy' to 'crimson' + docs: mark options -z, --suspendable, and 'set suspendable' as obsolete + docs: mention "grey" also at the other place where color names are listed + docs: mention M-Z (for toggling the interface) among the Feature Toggles + docs: mention that --zero and 'set zero' hide also the help lines + docs: move the chapter about editor basics into third position + docs: prevent a black square in the PDF after the long synopsis line + docs: reshuffle a GNU marker, to make the title clearer in search engines + docs: reword several of the descriptions in the chapter on building nano + docs: reword the beginning of the chapter on nanorc files + docs: say thanks to the Indonesian translator + feedback: give a more accurate message when the help lines won't appear + feedback: refuse the --constantshow toggle (M-C) on a one-row terminal + feedback: report an unbindable function key as an "Unknown sequence" + feedback: report the number of inserted lines also with --zero or --mini + feedback: show a relevant message for M-O when the syntax has 'tabgives' + feedback: suppress chatty messages when --zero is active + feedback: to have a status bar, suppress --zero while in the help viewer + feedback: when reporting an unbound function key, mention its number + feedback: when the user types ^Z, say they can suspend nano with ^T^Z + feedback: with --mini or --zero, suppress number of lines for new buffer + feedback: with --mini/--zero, suppress message when toggling whitespace + feedback: with --zero, drop a message in a short while, as with --minibar + files: allow inserting also when started with the --noread option + files: clear original filename when the user toggles Append or Prepend + gnulib: update to its current upstream state + help: do not show ^S when --preserve is in effect + help: ensure there is a blank line between title bar and start of text + help: group the now lone mouse toggle with the "behavioral" ones + help: remove an unneeded restriction for small terminals + help: skip the leading blank line when the terminal is very flat + help: when done, always redraw the "bottom bars", also with --zero + history: process file faster by not filtering out hypothetical duplicates + input: ensure that no more bytes are consumed than are available + justify: correctly determine whether top-of-buffer has been reached + memory: avoid a tiny leak when an option with an argument is given twice + memory: avoid leaking the filename when dottifying it on the minibar + new feature: option --zero for an interface without bars + options: make --zero imply --nohelp, and 'set zero' imply 'set nohelp' + pasting: when less than a line is pasted, allow automatic hard-wrapping + prompt: avoid resetting the history pointer when the search is cancelled + prompt: begin at bottom of history list when at secondary prompt + prompt: keep a clear answer clear also after an excursion into history + rcfile: recognize fourteen new color names, mostly for subdued shades + rcfile: remove the deprecated 'cutwordleft' and 'cutwordright' keywords + replacing: keep centering the occurrence, also after toggling help lines + replacing: keep the spotlighted occurrence in view, also with --zero + replacing: keep the spotlighting, also after toggling the help lines + search: with --zero, do not obscure an occurrence on the bottom row + search: with --zero, drop a message at the same time as the spotlight + statusbar: count words in the way that matches how Ctrl+Right moves + statusbar: overwrite a message also when using --constant with --zero + suspension: enable ^Z by default -- ignore -z option and drop M-Z toggle + suspension: leave ^Z unbound by default -- just ^T^Z will suspend nano + syntax: debian: remove file -- Debian itself will have to handle it + syntax: default: colorize comments as one of the last things + syntax: default: colorize dates, URLs, and nano's release motto + syntax: email: use a character class, as \s does not work inside brackets + syntax: gentoo: remove file -- Gentoo itself will have to handle it + syntax: nanorc: add 'execute' menu for unbind, and drop a bad constraint + syntax: nanorc: avoid colorizing #rgb codes as if they were comments + syntax: nanorc: colorize a trailing comment when it begins with non-hex + syntax: nanorc: colorize each of the fourteen new color names as valid + syntax: nanorc: improve the file-matching regex + syntax: nanorc: paint arguments of 'include' and 'extendsyntax' specially + syntax: nanorc: require whitespace before the start= and end= keywords + syntax: python: colorize backslash escapes, such as \n and \xef + syntax: ruby: colorize embedded documentation as a comment + syntax: rust: do not colorize as string the text between two strings + syntax: sql: add a few more missing keywords, like TRUE and FALSE + syntax: sql: add more missing keywords, like INNER and OUTER JOIN + syntax: sql: add some missing keywords, like ALL and ANY and OR + syntax: sql: add two missing data types -- xml and tsquery + syntax: sql: colorize as flow control only keywords that clearly are such + syntax: sql: colorize keywords regardless of case, and tweak the colors + syntax: sql: colorize only single-quoted things as strings + syntax: sql: colorize strings differently than types + syntax: sql: remove alien stuff -- it was copied mostly from ruby syntax + syntax: texinfo: be more precise in colorizing @commands + syntax: texinfo: colorize the special @-plus-punctuation commands too + syntaxes: avoid coloring "this\" as if it were a valid string + syntaxes: colorize hex more strictly by using character class [:xdigit:] + syntaxes: drop three redundant end-of-line anchors + syntaxes: undouble the backslash within bracket expressions + syntaxes: use one regex for coloring quoted strings, to avoid overlap + tabbing: also with --zero, stay one row away from the prompt bar + tweaks: add an auxiliary variable, to prepare for handling --zero + tweaks: add two spaces and two comments, and drop an internal check + tweaks: adjust two values -- help lines need at least 6 rows to be shown + tweaks: avoid a compiler warning with --enable-tiny --enable-linenumbers + tweaks: avoid redrawing the entire window when just a 'touch' will do + tweaks: condense the definitions of all the empty functions + tweaks: condense the regexes for Types in the SQL syntax + tweaks: don't redraw the help lines (if present), and normalize a brace + tweaks: drop a fragment of code that became functionless + tweaks: elevate two messages, so they get shown with --mini or --zero + tweaks: elide a variable that is confusing and has just one use case + tweaks: elide two functions that each were called just once + tweaks: elide two parameters, as they are now always the same + tweaks: exclude some hidden-interface code from the tiny version + tweaks: exclude some suspension code from the tiny version + tweaks: fix a parentheses mistake -- found by a warning from Clang + tweaks: fix a somewhat humorous typo + tweaks: fix typo, and improve description of 'set zero' in sample nanorc + tweaks: fold a special case into the general one + tweaks: fold some regexes together, and trim or improve some comments + tweaks: frob a couple of comments, and drop two, for conciseness + tweaks: improve a comment, and drop two cluttering compile conditions + tweaks: invert a condition, to get an early return instead of indentation + tweaks: just let do_wrap() set 'refresh_needed' instead of returning TRUE + tweaks: mark keystrokes consistently with @kbd in the manual + tweaks: move a translator hint to where xgettext will see it + tweaks: normalize whitespace, drop unneeded prototype, condense comment + tweaks: on one-row terminals, suppress the message for two toggles + tweaks: place the unsetting of a flag better, and rename a variable + tweaks: put three email addresses between the customary angled brackets + tweaks: reassign a copy of a string to a variable more economically + tweaks: reduce redundancy (--enable-color implies --enable-nanorc) + tweaks: remove redundant pair of parentheses, and swap two alternatives + tweaks: remove redundant parentheses, trim comments, fold some regexes + tweaks: remove two unneeded unsettings + tweaks: rename a function and its parameter, to be clearer + tweaks: rename a function, away from using an abbreviation + tweaks: rename a function, for some contrast and to get rid of a suffix + tweaks: rename a function, to describe better what it does nowadays + tweaks: rename a function, to make it make sense + tweaks: rename a variable, to be distinctive and less confusing + tweaks: rename a variable, to be easier to read and to make more sense + tweaks: rename five empty functions, to get rid of a meaningless suffix + tweaks: rename three functions, to better fit the general scheme + tweaks: rename three parameters, away from single letters + tweaks: rename two empty functions, to be more to the point + tweaks: rename two functions, to get rid of another senseless suffix + tweaks: rename two functions, to get rid of one more senseless suffix + tweaks: rename two functions, to get rid of the senseless suffix of one + tweaks: rename two more functions, to lose a senseless suffix + tweaks: rename two parameters and one variable, away from single letters + tweaks: rename two variables, away from abbreviations + tweaks: rename two variables, to fit with the names of similar ones + tweaks: replace a verbose condition with a simpler early return + tweaks: replace the obscure @* with the slightly clearer @sp + tweaks: replace two direct refreshes with two scheduled ones + tweaks: reshuffle a coloring rule, to have related ones together + tweaks: reshuffle a few lines, and rename a variable + tweaks: reshuffle a few lines, for Christmas and to group things better + tweaks: reshuffle a fragment of code to a better place + tweaks: reshuffle a line and adjust indentation after previous change + tweaks: reshuffle a line into its proper order, and improve two comments + tweaks: reshuffle some conditions, so that the ifs have similar formats + tweaks: reshuffle some conditions, to have more balanced lines + tweaks: reshuffle some lines, one for clarity, others for conciseness + tweaks: reshuffle the flag conversion into their order in the help text + tweaks: reshuffle two conditions, re-indent, and rewrap a line + tweaks: reword a paragraph, and use usual M- to depict Meta keystrokes + tweaks: rewrap an old news item, for distraction + tweaks: rewrap three old NEWS items, for esthetics, and fix a date + tweaks: shorten a comment, and drop some conditionalizing + tweaks: shorten the description of --zero in the manuals a bit + tweaks: shorten two comments, and fold two statements together + tweaks: swap two parts of specific regexes, for consistency with others + tweaks: untangle two case items, and shorten a message + tweaks: use a color closer to the rest of the string, to reduce contrast + tweaks: use a few fewer capitals, and drop an unneeded synonym + +Brad Town (2): + docs: add a description of the hexadecimal #rgb color specification + rcfile: support #rgb format for specifying colors in 256-color terminals + + +Changes between v5.8 and v5.9: +------------------------------ + +Benno Schulenberg (88): + browser: make the keystrokes ^W^Y and ^W^V work again + build: ensure that mkstemps() is available by importing the gnulib module + build: help Haiku find the header files that define mkstemps() + bump version numbers and add a news item for the 5.9 release + copyright: update to the current year for significantly changed files + cutting: copy anchors into the cutbuffer, so that undo can restore them + docs: add a paragraph at the start of the README about what nano is + docs: add a simulated "screenshot" of nano to the README + docs: add some details to the bug-reporting paragraph in the README + docs: correct the descriptions of how to invoke the spell checker + docs: don't use "light" after "bold", as the latter often implies "light" + docs: improve the description of the spotlighting of a search match + docs: improve the description of the 'tabstospaces' option + docs: improve the descriptions of several bindable functions + docs: improve the recipe in the FAQ for dealing with Alt+Up on a console + docs: indent the paragraphs in the FAQ that list commands to be typed + docs: list the default color combo for 'spotlightcolor' in sample nanorc + docs: mention how to properly colorize all types in nano's source code + docs: mention in the README which licenses cover nano's code and docs + docs: move the notice in the main man page, to try and catch other eyes + docs: refer to the FAQ when does nothing on a Linux console + docs: replace a non-problem in the FAQ with something possibly useful + docs: spell "filename" as a single word, like in most other occurrences + feedback: use a smaller diamond to represent an anchor, to not overflow + feedback: when not in curses mode, just skip displaying any message + feedback: when not in curses mode, write error messages to the terminal + files: add the original file's suffix to the name of a temporary file + files: check for a fifo only when it is an existing file + files: check the result of fdopen(), to avoid a possible crash + files: do not call fsync() on a fifo, to avoid a spurious error message + files: exclude the call of fsync() from the tiny version + files: give the user time to absorb a warning about someone else editing + files: making a backup of a fifo makes no sense, so do not try that + files: prepending to a fifo makes no sense, so do not try that + files: when the buffer is nameless, include the PID in name of dump file + files: when there is a slash after the dot, then there is no extension + files: write a lock file also for a freshly saved buffer + general: prevent die() from getting recursed into + gnulib: update to its current upstream state + help: make the keystrokes ^W^Y and ^W^V work again + history: emit a warning when file cannot be made private [coverity] + input: give up on the input stream only after millions of errors + memory: free any allocated strings, also in the emergency code path + po: delete the ancient PO files for Indonesian and Nynorsk + po: permit the Indonesian PO file to come back -- there was a big update + shutdown: when dying, do not install/restore a handler for Ctrl+C + startup: if TERM is unset, try falling back to VT220 instead of failing + syntax: nanorc: recognize also the template of the sample nanorc file + syntax: rust: update the license to GPL3 or newer + syntax: yaml: allow any character in tags except whitespace + syntax: yaml: allow double colon in key & do not colorize unspaced colon + syntax: yaml: allow slash and period in key names + syntax: yaml: colorize backslash-escaped characters as valid or invalid + syntax: yaml: colorize the question mark of complex mappings too + syntax: yaml: colorize the two known directives + syntax: yaml: new file -- coloring rules for YAML files + tweaks: add Schiermonnikoog to the list of friendly islands + tweaks: adjust a description of 'showcursor', to match the other ones + tweaks: adjust three parameters -- two were mistaken, one superfluous + tweaks: correct two typos and a spello [codespell] + tweaks: fix a typo + tweaks: fold two lines into two others, for conciseness + tweaks: harmonize the indentations in the FAQ somewhat + tweaks: in comments, say "buffer" instead of "file" where appropriate + tweaks: instead of "one" use "you", like in the rest of the man page + tweaks: remove a redundant feedback message + tweaks: rename a defined type, to fit within the general pattern + tweaks: rename a function, to be more fitting + tweaks: rename a parameter and invert its logic + tweaks: rename a parameter, to fit better what it is used for + tweaks: rename a variable and flip its logic, to avoid two negations + tweaks: rename a variable, away form an abbreviation + tweaks: rename a variable, to be more grammatical + tweaks: rename a variable, to be more visible and to match others + tweaks: rename a variable, to make more sense + tweaks: rename three variables, to follow the general scheme + tweaks: reshuffle a few lines, for esthetics and to elide an #ifdef + tweaks: reshuffle a few lines to avoid an #ifdef and unbalanced braces + tweaks: reshuffle a fragment of code, to prepare for the next change + tweaks: reshuffle some code to elide a variable, and improve a comment + tweaks: reshuffle some lines and adjust some indentation + tweaks: reshuffle some lines to elide a variable + tweaks: restore a quote that was accidentally deleted four months ago + tweaks: rewrap three lines, for esthetics + tweaks: slightly reword or rewrap some comments in the sample nanorc + tweaks: try chmodding a dump file only when it was actually written + tweaks: use five symbolic names, to make eight function calls clearer + usage: improve the description of the --positionlog option + +David Michael (2): + syntax: gentoo: highlight additional EAPI 7/8 variables + syntax: gentoo: remove some obsolete keywords and add some new ones + +Hussam al-Homsi (3): + docs: correct the default value of the errorcolor option + syntax: perl, ruby: remove arbitrary highlighting of here documents + tweaks: change 'return ++var;' to 'return var + 1;' + + +Changes between v5.7 and v5.8: +------------------------------ + +Benno Schulenberg (53): + bindings: show either "^/" or "^-" in the help lines, instead of "^_" + bump version numbers and add a news item for the 5.8 release + display: when a message gets overwritten, note that it is cleared + docs: add a relevant item to the news for the 4.3 release + docs: add example bindings for uppercasing and lowercasing a word + docs: improve the contact info and some line spacing in the PDF + docs: make ^E access the Execute menu in the example CUA bindings + docs: mention that "grey"/"gray" may be used as a synonym of "lightblack" + docs: mention the new 'set minicolor' option + docs: say thanks to the Icelandic and Slovak translators + feedback: ensure that the reporting of DOS/Mac format is truthful + gnulib: update to its current upstream state + help: use smaller triangles for the arrows + linter: block the resizing signal while reading output from the linter + linter: strip filename and line plus column number from the message + memory: move the correct number of bytes, and not one too many + memory: prevent a leak when copying the leading quoting to the next line + minibar: stay out of sight when the terminal has just one row + options: accept 'set minicolor' for setting the color of the minibar + rcfile: allow using "grey" or "gray" as a synonym for "lightblack" + rcfile: do not allow color name "normal" to have a prefix + replacing: report the number of replacements also on a one-row terminal + search: automatically drop the spotlighting after a few moments + search: show "This is the only occurrence" also on a one-row terminal + startup: allow using a bare "+" to mean put-cursor-on-last-line + startup: do not accept stray characters after a "+" on the command line + startup: skip drawing edit window when having message on one-row terminal + startup: suppress "Search Wrapped" when using +? to search from EOF + statusbar: ensure that "No further matches" does not get overwritten + statusbar: on a one-row terminal, drop light messages after a few moments + statusbar: suppress --constantshow when the terminal has just one row + statusbar: suppress the cursor when the terminal has just one row + syntax: nanohelp: avoid colorizing M-) in (M-) and M-" in "M-" + syntax: nanorc: colorize "light" as valid only for the eight basic colors + syntax: nanorc: colorize literal control codes, to make them stand out + syntax: php: colorize the full short tag for echo (' more compliant + +Mike Frysinger (1): + syntax: tcl: support Expect scripts too + + +Changes between v5.6 and v5.6.1: +-------------------------------- + +Benno Schulenberg (4): + bump version numbers and add a news item for the 5.6.1 release + options: rename 'highlightcolor' to the more distinct 'spotlightcolor' + search: correctly colorize a match also when softwrapping is active + tweaks: rename a symbol, to better match the corresponding option + + +Changes between v5.5 and v5.6: +------------------------------ + +Benno Schulenberg (52): + build: avoid a warning about duplicate symbol when building from tarball + build: detect a build from git also when building out of tree + build: include a workaround only for versions of ncurses that need it + bump version numbers and add a news item for the 5.6 release + color: do not look for another 'end' match after already finding one + color: give highlighted text its own color, to not look like marked text + color: recompile the file-probing regexes a little faster with REG_NOSUB + color: use bright yellow to highlight a search match + color: use inverse video for highlighting when there are no colors + debug: add timing instruments to cache precalculation and screen refresh + display: for a large paste or insertion, recalculate the multiline cache + docs: correct the description of --quickblank for the changed base value + docs: correct the formatting of a comment in the sample nanorc + docs: correct the word order for Alt+D in the cheat sheet -- it changed + docs: mention the new 'set highlightcolor' option + docs: remove all mentions of --markmatch and 'set markmatch' + docs: say that --minibar is modified by --constantshow and --stateflags + feedback: make Full Justify show a message also when using --minibar + gnulib: update to its current upstream state + minibar: show a message a little longer when --quickblank isn't used + minibar: show cursor position + character code only with --constantshow + minibar: show the state flags only when --stateflags is used + minibar: suppress the toggling feedback for M-C, but show it for M-Y/M-P + options: remove --markmatch and 'set markmatch', as the behavior is gone + painting: always do backtracking for the first row of the screen + painting: trigger a refresh when a second start match appears on a line + painting: trigger fewer unneeded full-screen refreshes + painting: when finding an end match, set its multidata right away + scrolling: keep centering after large paste, also when line numbers widen + search: just highlight the found occurrence, instead of marking it + search: make highlighting the standard, non-changeable behavior + tweaks: avoid the vague possibility of advancing beyond end-of-line + tweaks: be slightly more efficient in marking lines as WOULDBE + tweaks: call wattron()/wattroff() only when actually painting something + tweaks: correct a comment, improve another, and trim some verbosity + tweaks: don't bother comparing virgin multidata with current situation + tweaks: don't bother initializing freshly allocated multidata + tweaks: don't bother wiping the multidata before recomputing it + tweaks: elide a function that is now just one line + tweaks: frob a condition, to be more concise, and reshuffle another + tweaks: frob some comments, and adjust indentation after previous change + tweaks: frob some comments, and reshuffle two fragments of code + tweaks: frob two fragments of code, to be more readable + tweaks: make a skipping condition more precise + tweaks: remove an old fix that was made superfluous by a recent fix + tweaks: remove a strangely placed warning + tweaks: rename six symbols, to be more straightforward + tweaks: reshuffle some code, and reduce the scope of a variable + tweaks: reshuffle three conditions into a better order + tweaks: rewrap and reindent a few lines + tweaks: rewrap two lines, for esthetics + tweaks: stop evaluating a rule when the match is offscreen to the right + + +Changes between v5.4 and v5.5: +------------------------------ + +Benno Schulenberg (84): + build: fix compilation for --enable-{tiny,help,multibuffer} + build: fix compilation when configured with --disable-utf8 + build: fix compilation when configured with --enable-tiny + build: remove the '--with-slang' configure option + bump version numbers and add a news item for the 5.5 release + chars: short-circuit determining the width of characters under U+0300 + chars: speed up the handling of invalid UTF-8 starter bytes + copyright: update the years for the FSF + display: add code for showing minimal state-information bar at the bottom + display: do not show the state flags in the help viewer or file browser + docs: explain the effect of --minibar / -_ / 'set minibar' + docs: explain the purpose of --markmatch / -^ / 'set markmatch' + docs: insert links to the mailing-list archives into the README + docs: mention in NEWS that some workarounds were removed + docs: mention the new 'set promptcolor' option + docs: remove all mentions of Slang + feedback: differentiate between remarks, mistakes, and information + feedback: wipe the status bar by default after 20 keystrokes + files: when truncating a file name, give an indication of this + general: remove support for Slang + gnulib: update to its current upstream state + input: intercept ^Z also when --minibar is active + input: interpret a keystroke as Meta only when an earlier escape was solo + memory: avoid leaking the speller or linter command string, when invoked + minibar: add an [x/y] "counter" when multiple files are open + minibar: add a percentage that shows how far the cursor is into the file + minibar: allow the number-of-lines to overrule also the state flags + minibar: allow the number-of-lines to overrule location + character code + minibar: drop the side spaces before suppressing the state flags + minibar: represent bytes as 0xNN and valid Unicode code points as U+NNNN + minibar: show the info bar again some 0.8 seconds after a message + minibar: show the line count in the bar (at startup and when saving) + minibar: show Unicode codes when in a UTF-8 locale + minibar: suppress some elements when there is no room to show them + minibar: when the next character has zero width, show its code too + minibar: when the overnext character has zero width too, show its code + mouse: do not offset the shortcuts by 'margin' when using --linenumbers + oops: use the correct condition for checking the last line will change + options: accept 'set promptcolor' for setting the color of the prompt bar + options: add --markmatch and -^ for activating the select-match behavior + options: add --minibar and -_ for activating basic state-information bar + prompt: restore a workaround for a cursor misplacement bug in ncurses + prompt: suppress the ">" character always when exactly at the right edge + rcfile: rename 'nowrap' toggle to 'breaklonglines', to match the option + search: set the mark at the end of a found match so it gets highlighted + search: suppress the cursor when highlighting a match + speller: do an internal spell check when --speller is an empty string + speller: strip leading whitespace from command, to avoid a sneaky crash + syntax: go: add author and license line + syntax: nanorc: colorize 'bookstyle' as a valid option + syntax: nanorc: colorize 'set promptcolor' as valid + syntax: sh: recognize shebangs with any shell after 'env', not just 'sh' + tweaks: adjust the indentation after the previous change + tweaks: avoid compilation warnings on 32-bit machine plus newer compiler + tweaks: avoid computing the cursor column twice, and the "page" too + tweaks: avoid hitting negative values when using size_t + tweaks: change an intermediate variable to a better one + tweaks: clean up after the previous change + tweaks: condense the description of how to report a bug + tweaks: correct a translator hint + tweaks: correct two comments after the previous changes + tweaks: do not change the pointer, but move the content of the string + tweaks: drop a small optimization for invalid UTF-8 starter bytes + tweaks: elide a variable, by using a reallocation instead + tweaks: fold some conditions into bitwise masks, for efficiency + tweaks: fold two similar and three identical cases together + tweaks: move 'set indicator' to its alphabetical place in the manual + tweaks: move the displaying of the state letters into a separate function + tweaks: push back the deprecation of the 'set nowrap' option + tweaks: put the new options in a consistent order in the code + tweaks: reduce the scope of a static variable + tweaks: remove some #ifdefs that were there only for Slang + tweaks: rename a variable, to be similar to its sister + tweaks: reshuffle a condition, to probably avoid an unneeded calculation + tweaks: reshuffle an option, to have two related ones grouped together + tweaks: reshuffle some lines, to group things better + tweaks: reshuffle some lines, to have most #includes near the beginning + tweaks: reshuffle some more lines, to have most #defines together + tweaks: reshuffle two lines, and rename a variable to a plain word + tweaks: reword the description of an option + tweaks: simplify a bit of logic + tweaks: use a boolean instead of an enumeration of two values + undo: remove the added magic line when a replacement caused one + weeding: remove some obsolete information from the README + +OIX (1): + mouse: update title bar (the M flag) when the click is on the cursor + + +Changes between v5.3 and v5.4: +------------------------------ + +Benno Schulenberg (31): + bindings: accept b for scrolling back up in help viewer and file browser + build: exclude a workaround for VTE/Konsole when using a recent ncurses + build: include a workaround for VTE only when using an older libvte + bump version numbers and add a news item for the 5.4 release + copyright: update to the current year for significantly changed files + docs: adjust for the changed name of the header-file package on Debian + docs: use standard-compliant HTML entities for the four arrows + feedback: abort when user tries to open multiple files in tiny version + gnulib: update to its current upstream state + help: allow the penultimate item extra space when the number is uneven + help: show all valid help items also in the Write-Out menu + linting: avoid putting the cursor beyond the end of the line + moving: skip combining characters and other zero-width characters + options: do not spew out the help text when an option is not recognized + prompt: skip over combining characters also when editing a search string + rcfile: stop accepting 'set view' in a nanorc file, and undocument it + statusbar: properly pluralize the line+word+character count report + tweaks: avoid copying an option's argument when there is no need + tweaks: normalize the formatting after the previous two changes + tweaks: rename two variables and improve two comments + tweaks: rename two variables, one for contrast, another for visibility + tweaks: reshuffle a fragment of code, for clarity + tweaks: reshuffle a line, elide two braces, and adjust the indentation + tweaks: reshuffle three lines and elide braces after the previous change + tweaks: slightly shorten a loop, to place the actual action outside of it + tweaks: use the standard symbols for the three standard file descriptors + utils: die when trying to allocate zero bytes + weeding: remove another unneeded workaround for VTE + weeding: remove a workaround for early versions of ncurses-6.0 + weeding: remove a workaround for versions of ncurses before 5.9 + weeding: remove a workaround for VTE that is not needed + + +Changes between v5.2 and v5.3: +------------------------------ + +Arturo Borrero González (1): + syntax: nftables: include author and license lines + +Benno Schulenberg (92): + browser: make M-W/M-Q functional right after startup, if there is history + browser: sort names that differ only in case with uppercase first + browser: wipe the status bar before searching again with M-W or M-Q + build: abort the update script if a PO file contains a control character + build: avoid two compiler warnings when gnulib has been ripped out + build: do not accept --enable-libmagic when not having color support + build: do not let Slang translate escape sequences to key codes + build: exclude bunches of raw escape sequences from the tiny version + build: exclude --emptyline, --jumpyscrolling, and --noread from tiny nano + build: exclude excessive version information from the tiny version + build: exclude option --tabsize (-T) from the tiny version + build: exclude reading a file from standard input from the tiny version + build: exclude the three --help column headers from the tiny version + build: include some raw sequences for the graphical Debian installer + build: stop using an obsolete macro, and use 'void' for signal handlers + build: to verify wide curses, probe for a function that cannot be a macro + bump version numbers and add a news item for the 5.3 release + chars: reduce searching time with roughly 85 percent for plain ASCII + display: do not unnecessarily wipe the status bar + display: do not wipe the status bar when the terminal has just one row + display: force the cursor to reappear after a message (when using Slang) + display: force the cursor to reappear in a better way (when using Slang) + display: skip a special-case refresh when a message was written + docs: add a link to the website also to the info manual + docs: add the customary (1) after the name of command-line programs + docs: condense the descriptions of cutting and pasting + docs: explain the purpose of -! / --magic / 'set magic' + docs: explain the 'set scrollercolor' option, for coloring the indicator + docs: explain what the options --stateflags (-%) and 'set stateflags' do + docs: improve two wordings in the sample nanorc + docs: mention that syntax definitions are available in /usr/share/nano/ + feedback: don't give a hint for , and not after an Alt+key was used + feedback: in the tiny version, let M-H show the helpful hint too + feedback: make an "Unbound key" message disappear on the next keystroke + feedback: show a helpful message for ^G even when there is no help + feedback: show helpful message for the first ^H at the top of the file + gnulib: update to its current upstream state + help: do not leave the cursor on the status bar after a search + help: do not show "^G Help" in the tiny version when there is no help + help: ensure the help lines are always drawn, also when using Slang + help: in the tiny version, show Prev/Next Word before Backward/Forward + help: nicely pair menu items also when built with just --disable-help + new feature: option --stateflags to show some states in top-right corner + options: add -? as a synonym of -h (--help), but leave it undocumented + options: move --stateflags (-%) and --magic (-!) to the end of the list + options: require --magic or 'set magic' to enable the use of libmagic + rcfile: add 'set scrollercolor', for changing the color of the indicator + suspension: do not enter an invalid byte upon resume (when using Slang) + suspension: properly resume from an external SIGSTOP + suspension: resume properly from an external SIGSTOP (when using Slang) + suspension: switch off flow control at the right moment (for Slang) + syntaxes: add author and license lines to four of the files + syntax: nanorc: stop coloring 'morespace' and 'smooth' as valid + syntax: nanorc: stop coloring 'nopauses' and 'nowrap' as valid + syntax: nanorc: stop coloring 'quiet' and 'backwards' and 'finalnewline' + syntax: po: do not leave the occasional tab with a red background color + syntax: po: highlight embedded control codes that shouldn't be there + syntax: sh: recognize some shell scripts by their Emacs modeline + tweaks: add a hint for translators + tweaks: add some comments to the C syntax, and sort some keywords + tweaks: adjust some whitespace in the docs, and improve a comment + tweaks: avoid a compiler warning when compiling with more than -O1 + tweaks: condense a bit of code + tweaks: condense a bit of code after the previous change + tweaks: drop the unneeded saving and restoring of a global variable + tweaks: dummy commit, to add some info about the previous one + tweaks: elide a one-line function, after reducing it to a single call + tweaks: fold one function into another, to elide an unneeded return value + tweaks: harmonize the spelling of a compound word, and rewrap a section + tweaks: harmonize the style of error messages and warnings in ./configure + tweaks: make two of the changes that 'autoupdate' suggests + tweaks: move three functions, to before the ones that call them + tweaks: move two more functions, to before the ones that call them + tweaks: move two more functions, to before the one that calls them + tweaks: normalize the indentation after the previous change + tweaks: remove an inconsistent newline from the end of an error message + tweaks: remove an unused element from 'funcstruct', saving 8 more bytes + tweaks: remove mistaken escape sequences for function keys on xterm + tweaks: remove two stray comments and two lines that were commented out + tweaks: rename another variable, away from being misnamed + tweaks: rename four variables, reshuffle them, and correct one type + tweaks: rename two elements of history struct, away from abbreviations + tweaks: rename two variables, to be more distinct + tweaks: replace two more occurrences of 'AC_TRY_RUN' with 'AC_RUN_IFELSE' + tweaks: reshuffle a condition, to elide a blank string + tweaks: reshuffle some lines after the previous change + tweaks: reshuffle some lines and adjust indentation after previous change + tweaks: reshuffle two lines and a function name, for a consistent order + tweaks: rewrap nine more old NEWS items, for balanced line lengths + tweaks: rewrap three NEWS items, for more balanced line lengths + tweaks: stop 'autoupdate' from failing with "end of file in string" + version: remove URL and email address from the --version output + +Hussam al-Homsi (5): + syntax: c: colorize also one-character constants, and the null directive + syntax: c: colorize also the keywords that start with an underscore + syntax: c: colorize also the 'restrict' keyword, and the #line directive + tweaks: reorder a member of 'funcstruct', to save 8 bytes of padding + tweaks: stop casting the return of malloc() and friends + +Ryan Westlund (1): + syntax: markdown: add author and license line + + +Changes between v5.1 and v5.2: +------------------------------ + +Benno Schulenberg (30): + build: stop distributing the README.GIT file + build: stop mentioning Slang in two ./configure messages + bump version numbers and add a news item for the 5.2 release + display: restore the ability to resize the screen while searching + docs: add a cross-reference from 'findbracket' to 'set matchbrackets' + docs: adjust description of ^T in cheatsheet, and mention M-Bsp + docs: mention in the FAQ how to change the escape sequences of urxvt + docs: reshuffle the section about the file browser to a better place + gnulib: back away from a commit that causes trouble when using clang + gnulib: update to its current upstream state + history: do not interpret a failing stat() as an error + input: allow also a Meta keystroke to abort a Search command + input: dawdle after an ESC also when --rawsequences is used + input: discard any multibyte character when is being held + input: do not enter invalid bytes when holding down both Alt keys + input: hold on to a shift-selected region when an unbound key is struck + rcfile: make sure that "bright"/"light" are prefixes, not separate words + replacing: do not try to wipe nonexistent multidata, to avoid crashing + search: poll the input stream directly, not nano's own keystroke buffer + search: retain the current answer when something is toggled + tweaks: adjust a comment, and reshuffle the setting of a boolean + tweaks: condense two declarations + tweaks: condense two fragments of code, for compactness + tweaks: elide an unneeded variable + tweaks: improve three comments and an indentation + tweaks: move the keyboard-checking code to the end of the search loop + tweaks: remove a variable and two functions that have become redundant + tweaks: rename a variable, to not seem to refer to the scrollbar + tweaks: reshuffle four declarations, and rename two variables + verbatim: reserve enough space for the result also in non-UTF-8 locales + + +Changes between v5.0 and v5.1: +------------------------------ + +Benno Schulenberg (55): + anchor: in a UTF-8 locale, show an anchor as a diamond, for visibility + anchor: show an anchor also when the line is horizontally scrolled + bindings: make delete a word backwards, like in Bash + build: fix compilation for --enable-tiny --enable-nanorc --enable-color + build: fix compilation when configured with --enable-tiny + build: stop distributing the two old Changelogs + bump version numbers and add a news item for the 5.1 release + display: show the cursor position also right after the screen is resized + docs: fix a closing tag in the FAQ [tidy] + docs: mention that anchors are visible when line numbers are shown + feedback: add the reason to the error message when forking fails + feedback: use three dots to indicate processing, like everywhere else + feedback: when creating a pipe fails, report also the reason + files: do not try writing to the status bar while not in curses mode + formatter: force the mark off, to not crash by accessing empty cutbuffer + gnulib: update to its current upstream state + help: list again the keystroke for toggling the help lines (M-X) + input: understand M-Bsp also when terminfo does not match the terminal + moving: make go to the top when above the cursor all is blank + rcfile: allow to bind M-[ (even though it is an escape-sequence starter) + softwrap: initialize the 'extrarows' value for the magic line correctly + speller: give proper feedback when the user tries to check emptiness + speller: give startup feedback (relevant when running on a Linux console) + speller: re-enter curses mode before trying to report an error + syntax: css: differentiate pseudo-classes (now cyan) from comments (blue) + syntax: default: colorize also "GNU nano 5.x" + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: avoid a maybe-uninitialized-variable warning from gcc + tweaks: elide an unneeded variable, by transforming the key code directly + tweaks: elide two variables that are no longer needed, and update comment + tweaks: exclude old and mistaken "Esc O" sequences from the tiny version + tweaks: make a few more direct returns, and reshuffle another bit of code + tweaks: make a misplaced call of statusline() more obvious by crashing + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation, and regroup two lines + tweaks: optimize for byte-range characters, and shorten some comments + tweaks: parse the escape-sequence bytes without copying them first + tweaks: pass first byte of sequence directly to the decoding function + tweaks: print error message directly instead of passing it to the caller + tweaks: read keycodes from the keystroke buffer without copying them + tweaks: remove an unneeded beep, and reshuffle the lines for compactness + tweaks: reshuffle a few lines, to condense the code, and improve comment + tweaks: reshuffle four lines, for esthetics + tweaks: reshuffle some fragments, to make the next change easier + tweaks: reshuffle the zeroing of a counter, to allow some direct returns + tweaks: simplify two functions, as they now return always NULL + tweaks: split a function into two, one for "Esc O" and one for "Esc [" + tweaks: stop using a 'switch' when there are just three possibilities + verbatim: discard entire keystroke when it's not valid for Unicode Input + verbatim: do not report "Invalid code" when a Unicode character is typed + verbatim: do not report "Invalid code" when the terminal is resized + verbatim: insert the full code sequence when is pressed + verbatim: pause a little after an ESC, to not miss a succeeding code + verbatim: report and ignore an invalid keystroke for Unicode input + +Michalis Kokologiannakis (2): + build: avoid compilation warnings by using memcpy() instead of strncpy() + files: ignore only EPERM when fchmod() or fchown() fails + + +Changes between v4.9 and v5.0: +------------------------------ + +Andreas K. Foerster (1): + syntax: ada: new file -- coloring rules for Ada 2012 files + +Benno Schulenberg (374): + anchor: do not let a full justification transfer an anchor to the top + anchor: do not let piping and spelling transfer an anchor to the top + anchor: during full justification preserve anchors as during single ones + backup: do not understand ^C as "Yes" when asking whether to continue + backup: when rereading the original file fails, ask the user what to do + bindings: add mistakenly removed M-J (Full Justify) back to the main menu + bindings: add ^Z (Suspend) to the "Execute Command" menu + bindings: allow toggling the help lines at several prompts and in browser + bindings: allow typing digits on the numeric keypad by holding Shift + bindings: make ^L (Refresh) work at all the prompts too + bindings: make ^T invoke the "Execute Command" menu, and ^T^T the Speller + bindings: remove the Full-Justify function from the Search menu + bindings: stop on the keypad from entering spurious letter + bindings: stop supporting without NumLock + build: allow compilation to succeed on curses without italic support + build: do not let --disable-speller exclude also the formatter code + build: fix compilation for --enable-tiny --enable-color --enable-nanorc + build: fix compilation when configured with --disable-color + build: fix compilation when configured with --disable-speller + build: fix compilation when configured with --enable-tiny + build: fix compilation when configured with --enable-tiny + build: fix miscompilation for --enable-{tiny,color,nanorc} + build: fix the Makefile after two header files were renamed + build: make a deeper clone of gnulib (when building from git) + build: make ./configure report which global nanorc file will be used + build: replace the non-standard backslash escape "\e" with "\x1B" + build: stop distributing a nano.spec file + build: use a more dependable method for detecting a build from git + bump version numbers and add a news item for the 5.0 release + color: avoid allocating emptiness when there are no multiline regexes + color: when syntax coloring is toggled back on, calculate multiline data + colors: move purple one step away from magenta, and use a darker mauve + copying: change the implementation, away from cutting plus copying back + copying: do not forget to update the screen when M-6 is pressed + copying: when using M-6, copy the final line in the buffer just once + copying: with --nonewlines, don't add a final newline to the cutbuffer + counting: count words and characters without partitioning the file + counting: count words correctly also when --wordchars is used + cutting: change the implementation of cutting to not use partitioning + cutting: overhaul the pasting routine, to not make use of partitioning + display: avoid an additional redrawing when redrawing the screen + display: blank the status bar for a copy operation, like for cut & paste + display: do not try to draw content when there is no open buffer yet + display: reposition the cursor after an error message also in a help text + docs: complete the renaming of 'tempfile' to 'saveonexit' + docs: copy the 4.9.1 news item from the release branch + docs: copy the 4.9.2 news item from the release branch + docs: copy the 4.9.3 news item from the release branch + docs: document the --indicator (-q) and 'set indicator' options + docs: document the new -O/--bookstyle and 'set bookstyle' options + docs: explain how anchors work, and document their bindable functions + docs: improve some descriptions concerning the file browser + docs: in the sample nanorc file, refer instead of duplicating + docs: mention that doing a full-buffer operation wipes away all anchors + docs: mention that M-X toggle is special, because available in most menus + docs: mention that the dedicated cursor-moving keys are not rebindable + docs: mention the nine new color names, and "bold" plus "italic" + docs: note Marco as the original author of the bookmarking code + docs: reduce the TODO file to a reference to the bug tracker on Savannah + docs: stop mentioning that --wordchars overrides --wordbounds + docs: use 'bold' and 'light' instead of 'bright' in the sample nanorc + feedback: beep also at a prompt when receiving an unknown escape sequence + feedback: do not list "." and ".." as possible completions + feedback: indicate an anchor with a "+" in the line-number margin + feedback: show a message also when trying to copy an empty region + feedback: show the cursor position also at startup in an empty buffer + feedback: skip wiping the prompt bar when the shortcut printed a message + files: also when creating a backup fails, ask the user whether to proceed + files: ask the user whether to proceed every time a backup fails + files: before prompting, show also the reason why the backup failed + files: disallow tabbing when in restricted mode + files: do not append but truncate when allowing insecure backups + files: do not let a stray CR in a DOS file trigger Mac format + files: do not make a failsafe backup when in restricted mode + files: give a more precise warning when deleting an existing backup fails + files: ignore errors when calling chmod() on a backup file + files: ignore errors when calling chown() on a backup file + files: ignore errors when calling futimens() on a backup file + files: list possible completions after just one instead of two + files: make a backup only when requested, not an unrequested failsafe one + files: make better use of the last row when there are many completions + files: make filtering of the entire buffer into a new buffer work again + files: never report a file as being of mixed format + files: reinitialize the palette only when the syntax actually changed + files: remove two superfluous calls for shielding temp files from others + files: show a warning when writing a backup fails, before prompting + files: show possible tab completions near the bottom of the edit window + files: take into account that also closing a backup file can fail + files: trigger the Easter egg only when "zzy" is typed at the prompt + files: warn the root user when all the write bits are missing + files: write out a marked region without partitioning the buffer + general: make five tools accessible through the "Execute Command" menu + general: rename "bookmark" to "anchor", to sound less permanent + gnulib: update to its current upstream state + help: describe what has been added to the "Execute Command" menu + help: pair the items in the two bottom lines better in the tiny version + help: put the two toggles first in the "Execute Command" menu + history: don't send error messages to the screen; store them in the queue + history: take into account that closing a file can fail + history: take into account that statting a file can fail too + indicator: recompute the extra rows also for cut/paste/split/join + indicator: recompute the extra rows also when justifying and resizing + indicator: rework how the "scrollbar" is computed when softwrapping + input: interpret an escape sequence only when it starts with "[" or "O" + input: reset the counters when a three-digit sequence is not completed + input: stop recognizing the raw escape sequences for F13 to F16 + locking: ignore the insecure-backup flag when creating a lock file + locking: prevent a symlink attack by not opening an existing lock file + memory: plug a leak, by freeing the cutbuffer after a bracketed paste + menus: remove unneeded words and shortenings from key labels + new feature: a position-plus-portion indicator on the right-hand side + oops -- restore an accidentally changed file + options: add --indicator and -q for switching on the scroll-bar thing + options: add -O/--bookstyle to make leading whitespace mean new paragraph + options: let --afterends affect also the deleting of words (Ctrl+Delete) + options: make -S the short synonym of --softwrap + options: rename --tempfile to --saveonexit, to be far clearer + options: stop recognizing the obsolete --morespace and --smooth + prompt: at Yes-No, do not treat a screen resize as an invalid keystroke + rcfile: accept prefix "light" to make a color brighter without bolding it + rcfile: add bindable function 'execute', for access to "Execute Command" + rcfile: allow specifying a bright background color (with prefix "light") + rcfile: complain when an essential key binding is missing + rcfile: do not complain when "bright" is used with a background color + rcfile: introduce nine new named colors, from "pink" to "latte" + rcfile: introduce the modifier "bold", for specifying bolding separately + rcfile: introduce the modifier 'italic', for slanted text + rcfile: rename bindable function 'curpos' to 'location' + rcfile: rename 'extcmd' to 'execute', to be more readable and fitting + rcfile: report the first bad color element, not a later one that is okay + rcfile: restore terminal settings when exiting upon excessive unbindings + replacing: recalculate the multiline coloring info when needed + scrolling: add a function and a key binding to center the cursor line + speller: take into account that statting a file can fail [coverity] + startup: allow presetting case-sensitive search also in the tiny version + startup: check stdout instead of stdin when probing for a Linux console + startup: enter curses mode before reading the nanorc files + startup: initialize colors only when the terminal is capable of colors + syntax: css: color multiline comments correctly + syntax: default: colorize embedded control codes + syntax: email: rename file and syntax, away from the mistaken 'mutt' + syntax: markdown: do not colorize text between two bold words as italic + syntax: markdown: new file -- coloring rules for Markdown files + syntax: mgp: drop the almost-empty MagicPoint file and syntax + syntax: move distro-specific files down to a subdirectory, syntax/extra/ + syntax: nanorc: colorize 'bright' anyway, so existing syntaxes look okay + syntax: nanorc: colorize the new named colors too, from "mint" to "mauve" + syntax: nanorc: stop colorizing 'bright', even though it's still accepted + syntax: sql: condense some regexes, and reduce their number + syntax: sql: rename the file to match the name of the syntax + syntaxes: move the rules for Fortran and Povray files down to extra/ + syntaxes: remove some stuff that has been commented out for a long time + syntaxes: remove some superfluous outer parentheses from regexes + syntaxes: remove unneeded backslash escapes before quotes + syntaxes: uniformize the initial comment + tabbing: beep at the first listing, and when there are zero possibilities + tabbing: properly terminate the answer when the sole match is a folder + text: retain a bookmark when two lines are joined or something is cut + tweaks: add a condition, so that two ifs can be elided + tweaks: add a helpful message for when pkg.m4 is missing during a build + tweaks: add a helping variable, in order to unwrap three lines + tweaks: add a helping variable, to slightly condense the code + tweaks: add a symbol, in order to condense three function calls + tweaks: add four early returns for read/write errors of history files + tweaks: add four more translator hints + tweaks: add two comments, and improve another + tweaks: adjust comments and indentation after the previous change + tweaks: adjust the conditional help-item pairing for absence of speller + tweaks: adjust the file format indicator in a quicker way + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: avoid a compiler warning + tweaks: avoid a function call when a simple boolean will do + tweaks: avoid an unnecessary refresh for zero or just one completion + tweaks: avoid a warning about an unused variable in the tiny version + tweaks: avoid checking a variable three times for each pass in the loop + tweaks: avoid unneeded calls of free() by reallocating the full name + tweaks: call init_pair() just once for each pair number + tweaks: call the spotlighting routines only for the relevant line + tweaks: call use_default_colors() just once for each run + tweaks: cascade the ifs properly: without increasing the indentation + tweaks: change a helping variable, to make two blocks still more similar + tweaks: change a 'switch' to 'if', to elide a dummy 'return' + tweaks: close opened files when something goes wrong [coverity] + tweaks: condense a bit of code, by reusing an existing variable + tweaks: condense a comment, and express a condition in a different way + tweaks: condense a comment, and reshuffle a few lines + tweaks: condense a comment, and reshuffle some conditions + tweaks: condense and improve some comments + tweaks: condense some cases to a single line, for more clarity + tweaks: condense the code a little further, by grouping things better + tweaks: correct a comment, and avoid third repetition of some conditions + tweaks: correct a comment, and drop a redundant (because nested) #ifdef + tweaks: correct some comments, as VT100 and such have smaller keypads + tweaks: correct two spelling mistakes [codespell] + tweaks: delete a ChangeLog that is no longer updated and is incomplete + tweaks: delete another pointless ChangeLog + tweaks: delete a now-unused function + tweaks: delete some unneeded code, and rename the function accordingly + tweaks: delete the now-unused partitioning and unpartitioning routines + tweaks: delete two functions that are never executed + tweaks: do not use 'switch' when there are just two possibilities + tweaks: do not use the string "stat()" in any of the comments + tweaks: don't bother overwriting a CR -- decreasing the length is enough + tweaks: don't bother statting the lock file before unlinking it + tweaks: don't bother using the exclusive flag when creating a lock file + tweaks: don't check for escape sequences that start with a lowercase "o" + tweaks: don't use a symbol for other purposes + tweaks: do the conversion of -1 to a specific color just once + tweaks: do the saving of histories in a single place + tweaks: drop an unneeded assignment, and reshuffle a few lines + tweaks: drop a superfluous check for a non-zero length + tweaks: drop obsolete 'nano.spec' from .gitignore file, and reshuffle + tweaks: drop two redundant conditions, and improve three comments + tweaks: drop two unneeded assignments + tweaks: drop two unneeded wnoutrefresh() calls in the spotlight routines + tweaks: elide a function that is called just once + tweaks: elide a function that is too sparse + tweaks: elide another parameter, relevant in just three menus + tweaks: elide a now-unused parameter -- it is always FALSE + tweaks: elide an unneeded call of strlen(), and copy NUL byte with string + tweaks: elide an unneeded global variable + tweaks: elide an unneeded parameter, and rename the other + tweaks: elide an unneeded variable, as there is nothing beyond '*place' + tweaks: elide an unused parameter, and rename the other and a variable + tweaks: elide a parameter, by calling the relevant function beforehand + tweaks: elide a parameter that is relevant for only one menu (Goto Dir) + tweaks: elide a redundant intermediate function + tweaks: elide a variable and be more direct, and rename another + tweaks: elide a variable, and shortcircuit a return + tweaks: elide a variable, by returning the result directly + tweaks: elide a wrapper function, by checking a precondition earlier + tweaks: elide three functions that are called just once + tweaks: elide three parameters, as they are the same for both calls + tweaks: elide two ifs for the most likely case, when defaults are allowed + tweaks: elide two redundant calls of strchr() + tweaks: exclude a bit of bracketed-paste code from the tiny version + tweaks: exclude an unneeded fragment of code from the tiny version + tweaks: exit from the writing loop as soon as the last line is reached + tweaks: fix twenty typos, in old Changelogs and in some comments + tweaks: fold translation of all modified keypad keystrokes together + tweaks: fold two blocks into each other, to elide three overlapping cases + tweaks: for each version, mention the changes to the PO files last + tweaks: get rid of a bunch of annoying casts, and thus condense the code + tweaks: group the exiting routines together, and condense the comments + tweaks: handle the double escapes directly, instead of going round again + tweaks: handle two similar things in the same way + tweaks: implement the anchor routines in a different way + tweaks: improve a comment, rename a function, and elide a parameter + tweaks: improve a comment, reshuffle a scroll command, elide a variable + tweaks: improve four comments + tweaks: improve several comments, and rewrap two lines + tweaks: improve some comments, and reshuffle an assignment + tweaks: improve some comments and whitespace, and reshuffle a few lines + tweaks: improve three comments, drop one, and unwrap a line + tweaks: improve two comments, and reshuffle some lines for conciseness + tweaks: invert a condition, to have two clauses in a more logical order + tweaks: invert a condition, to see the similarity between the two modes + tweaks: make an early return for zero matches, and rename a variable + tweaks: make an error message more accurate and reduce it to its essence + tweaks: make three hard-bindings of special keys more efficiently + tweaks: move a copyright notice to a better place, and improve it + tweaks: move a fragment of code to the one branch that needs it + tweaks: move a function to a more logical place + tweaks: move a function to before the one that calls it + tweaks: move a function to before the one that calls it + tweaks: move a function, to be in the order in which they are called + tweaks: move a function to the file where it is used the most + tweaks: move an 'if', to not call leftedge_for() when not softwrapping + tweaks: move an initialization function to before the one that calls it + tweaks: move two functions, to have them in a more logical order + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous change + tweaks: order three menu names in the documentation slightly better + tweaks: plug a leak, by always freeing the full filename [valgrind] + tweaks: rake a common statement to the end of the case + tweaks: recalculate the multiline info just once when doing "Replace All" + tweaks: reduce the indentation after the previous change + tweaks: remove an incorrect mention of umask() from a comment + tweaks: remove an unneeded call of wnoutrefresh() + tweaks: remove an unneeded cursor movement, and rename a variable + tweaks: remove an unneeded element from the openfilestruct + tweaks: remove a redundant cursor movement, remove a redundant condition + tweaks: remove a superfluous check on the length of the key buffer + tweaks: remove a superfluous global variable + tweaks: remove some superfluous conditions + tweaks: remove three unneeded while loops from two input routines + tweaks: remove two calls of umask() by specifying permissions directly + tweaks: remove two redundant conditions, and make a more direct return + tweaks: remove two superfluous assignments + tweaks: remove unneeded variables after the previous change + tweaks: rename a function, and move it to before the one that calls it + tweaks: rename a function, and move it to before the one that calls it + tweaks: rename a function, to be more correct + tweaks: rename a function, to be more general and clearer + tweaks: rename a function, to be more precise, and reshuffle it + tweaks: rename a function, to be more precise, and reshuffle some things + tweaks: rename a function, to better describe what it does + tweaks: rename a function, to leave the old names behind + tweaks: rename a function, to match with the boolean that guards it + tweaks: rename a function, to not shadow a variable, and elide parameter + tweaks: rename a parameter and a variable, to be more meaningful + tweaks: rename a struct element, to be shorter and preciser + tweaks: rename a symbol, and actually use it where it is needed + tweaks: rename a symbol, away from a double abbreviation + tweaks: rename a symbol, from a phrase to a noun + tweaks: rename a symbol, to be more accurate, and reshuffle two lines + tweaks: rename a symbol, to better suit its purpose, and reduce its scope + tweaks: rename a variable, and condense a comment + tweaks: rename a variable, and normalize the indentation + tweaks: rename a variable, and reduce the scope of two others + tweaks: rename a variable, for more contrast with the function name + tweaks: rename a variable, for shortness and contrast + tweaks: rename a variable, improve a comment, and reshuffle a few things + tweaks: rename a variable, to avoid overrepetition of 'backup' + tweaks: rename a variable, to better describe what it holds + tweaks: rename a variable, to better fit related ones + tweaks: rename a variable, to make more sense + tweaks: rename a variable, to not refer to a row as a "line" + tweaks: rename one of the flag symbols, to be clearer + tweaks: rename two functions and a variable, and improve two comments + tweaks: rename two functions, and rename and reshuffle a parameter + tweaks: rename two functions, to better indicate what they do + tweaks: rename two header files, to be distinct and not an abbreviation + tweaks: rename two labels, for brevity + tweaks: rename two parameters, away from abbreviations + tweaks: rename two parameters, away from an abbreviation + tweaks: rename two parameters, to be more fitting + tweaks: rename two variables, and reduce the scope of a third + tweaks: rename two variables, away from abbreviations + tweaks: rename two variables, to avoid a repetitive prefix + tweaks: rename two variables, to be shorter and without abbreviations + tweaks: reshuffle a bit of code, to elide an #ifndef + tweaks: reshuffle a condition, for symmetry + tweaks: reshuffle a condition, to avoid a repetition of code + tweaks: reshuffle a condition, to make a little more sense + tweaks: reshuffle a declaration and six calls of free(), to avoid a leak + tweaks: reshuffle a few lines, and remove a few unneeded comments + tweaks: reshuffle a few lines, for conciseness + tweaks: reshuffle a few lines, to elide an 'if' from the most common path + tweaks: reshuffle a fragment of code, to elide a 'goto' + tweaks: reshuffle an assignment, for conciseness, and rename a variable + tweaks: reshuffle and trim a comment, and remove unneeded pair of braces + tweaks: reshuffle a statement, to have major initialization in nano.c + tweaks: reshuffle some code, to avoid needlessly calling a function + tweaks: reshuffle some conditions, to straighten the logic + tweaks: reshuffle some lines, for esthetics + tweaks: reshuffle some lines, to better separate the three cases + tweaks: rewrap a few lines in old news items, for more balanced lines + tweaks: separate a symbol from its definition by two spaces + tweaks: shorten an error message, to be appropriate in all situations + tweaks: shorten the name of a symbol, to match its bindable function + tweaks: simplify an error message, by mentioning just the main point + tweaks: simplify the counting of characters in a section + tweaks: skip the conversion to multibyte for plain ASCII codes + tweaks: slightly improve a comment and the ordering of some lines + tweaks: slightly improve the grouping of shortcuts in some help texts + tweaks: three escapes is the same as either zero escapes or one escape + tweaks: trim an ASCII case, as the function is called only for UTF-8 + tweaks: trim some oververbose comments -- they overshadow the code + tweaks: uniformize some old translator credits + tweaks: update a translator hint, and add another + tweaks: update three translator hints, add two, and frob three strings + tweaks: use a better symbol than 'ERR' to signify a valid hex digit + tweaks: use knowledge of Unicode to skip the general multibyte conversion + tweaks: use three switches instead of cascading ifs, for brevity + undo: choose the proper x positions to place the cursor and rejoin lines + undo: when undoing a line cut, place the cursor back where it was + usage: unabbreviate option arguments where possible + verbatim: show an error message when an invalid Unicode code is entered + verbatim: turn bracketed-paste mode off while waiting for input + +Marco Diego Aurélio Mesquita (4): + bindings: hard-bind the bookmark functions to M-Ins and M-PgUp/M-PgDn + display: support the position indicator also when --softwrap is used + files: make the M-F (New Buffer) toggle non-persistent + new feature: bindable functions for toggling and jumping to "bookmarks" + +Michalis Kokologiannakis (3): + files: improve the backup procedure to ensure no data is lost + tweaks: adjust some indentation after the previous change + tweaks: move the backup code to a separate function + +Pedro Victor de Brito Cordeiro (1): + tweaks: make parameter names in prototypes match those in the definitions + +Ryan Westlund (2): + syntax: go: highlight the chan keyword, and the special +build comment + syntax: haskell: new file -- coloring rules for Haskell programs + + +Changes between v4.8 and v4.9: +------------------------------ + +Benno Schulenberg (209): + bindings: remove the translation of ^H to Backspace on the BSDs + build: fix compilation for --enable-tiny --enable-justify + build: restore non-UTF8 fallbacks, to allow compiling with --disable-utf8 + build: update the conditional placement of the "Go To Line" menu item + bump version numbers and add a news item for the 4.9 release + chars: optimize a function for the most common blanks: space and tab + copyright: update to the current year for significantly changed files + cutting: let M-T cut a trailing empty line, but not nothing at all + cutting: with --cutfromcursor, allow ^K to cut the penultimate empty line + display: do not show a "[" double-width placeholder when softwrapping + display: keep the help items aligned, by not writing too many characters + docs: improve the descriptions of --softwrap and 'set softwrap' + docs: mark bracketed pasting as done in the TODO list + docs: mention that ^[ (Esc) is unbindable, and explain why + docs: remove the note saying that nanorc files must be in Unix format + docs: trim some TODO items, and condense several others + docs: update the form of an option, --suspendable / 'set suspendable' + docs: update the missed occurrences of --suspendable / 'set suspendable' + feedback: give a clearer message when trying to justify an empty region + feedback: make sure that a later message can overwrite a short warning + files: be consistent in which code means "New File" + files: don't check uninitialized memory when writing new file [valgrind] + files: when piping, always pipe whatever was cut to the external command + gnulib: update to its current upstream state + help: do not break a line inside the 17-column keystrokes area + help: increase the minimum help-text width from 32 to 40 columns + input: accommodate silly emulators that have LF instead of CR in a paste + input: after reallocating a string, do not write to its old address + input: allocate sufficient bytes for entering a Unicode codepoint + input: keep a multibyte character together during verbatim entry + justify: do not copy too many bytes when trimming leading whitespace + justify: do not crash when the user attempts to justify an empty region + justify: do not take an empty line as template for first-line indentation + justify: give the first line of a marked region its proper indentation + justify: never break a line in leading whitespace + justify: restore a region properly when it was marked backwards + justify: skip over blanks after the region, to not skew the indentation + justify: skip over in-line whitespace only, not over leading whitespace + justify: trim prefixed whitespace when justifying a marked region + justify: trim the leading blanks of a marked region at the right moment + justify: when appropriate, move end point of marked region forward + justify: when the cursor is at the left edge, keep it there + locking: do not open an empty buffer when respecting the first lock file + moving: do not put the cursor at end-of-line when in a help text + options: rename --suspend to --suspendable, to make more sense + prompt: insert a burst of bytes in one go instead of characterwise + rcfile: allow alternate line endings in nanorc files + rcfile: do not allow a regex for name, header, or magic to be empty + rcfile: don't store a coloring rule before it is complete + rcfile: rename bindable function 'suspendenable' to 'suspendable' + rcfile: when a start= is not matched with an end=, abandon the whole rule + rcfile: when finding a mistake, skip the rest of the line + shutdown: don't refer to an open file when there aren't any + softwrap: when typing goes beyond the bottom row, scroll just one row + syntax: nanorc: colorize 'rawsequences', not the obsolete 'rebindkeypad' + syntax: spec: add two missing % signs, and colorize also "%triggerprein" + syntax: spec: colorize the date and author of changelog items differently + syntax: spec: drop invalid parentheses after "Summary" + tweaks: abort in three situations that should never occur + tweaks: add a COUPLE_END undo item a bit later, instead of updating it + tweaks: add a different helping variable + tweaks: add a supporting variable, in order to condense some statements + tweaks: add calls of die() for five theoretical programming mistakes + tweaks: adjust some whitespace, reshuffle two ifs, and remove two braces + tweaks: adjust the indentation after the previous change + tweaks: always determine the second lead, to simplify the rewrap call + tweaks: avoid a complaint about uninitialized memory [valgrind] + tweaks: call add_undo() before the character is actually added + tweaks: change a function to return the name of the lock file on success + tweaks: change a function with two possible results to boolean + tweaks: change an integer to a short, and reshuffle it for better packing + tweaks: change another function with two possible results to boolean + tweaks: check for a starting quote in one place instead of three + tweaks: combine two ifs into one + tweaks: condense a comment, reshuffle conditions, and remove unwanted one + tweaks: condense a fragment of code + tweaks: condense two fragments of code + tweaks: convert integers to bytes in one place instead of two + tweaks: copy and store a deleted character in a conciser manner + tweaks: correct a typo, improve two indentations, and rewrap a line + tweaks: correct two typos in a changelog, and drop a doubled word + tweaks: create an undo item earlier, and discard it when needed + tweaks: don't bother reallocating the line data when undoing a line join + tweaks: do some text alignments properly: with spaces, not tabs + tweaks: drop a check for something that will not occur + tweaks: drop two comments that contain variable names + tweaks: elide a function call, by copying a byte directly + tweaks: elide an intermediate copy of a character during injection, twice + tweaks: elide an intermediate copy of an added character + tweaks: elide a parameter, and rename a variable + tweaks: elide a supporting variable, to make four loops slightly faster + tweaks: elide a variable and an unneeded iteration + tweaks: elide one variable and three gotos + tweaks: elide three unneeded #defines + tweaks: elide two variables and their two assignments + tweaks: exclude a function when compiled without spell-checking support + tweaks: extend the undo data for deleting and backspacing more directly + tweaks: factor out a three-line condition into a separate function + tweaks: frob a statement, rewrap two lines, and remove a pair of braces + tweaks: frob two statements, condense another, and add a comment + tweaks: highlight keystrokes in the documentation more consistently + tweaks: improve four comments, and condense two fragments of code + tweaks: improve three comments, and reshuffle two declarations + tweaks: improve two comments + tweaks: improve two comments, and remove an unneeded one + tweaks: inject the entire burst of bytes at once into the edit buffer + tweaks: instead of swapping the end points later, assign them correctly + tweaks: invert the logic of a symbol, to make more sense + tweaks: make prompt-bar input more similar to edit-buffer input + tweaks: make two conditions more direct, and thus elide two functions + tweaks: mesh two bits of code together + tweaks: move a function to after the one that it calls + tweaks: move a function to before the one that calls it + tweaks: move a function to before the one that calls it + tweaks: move a function to its proper place in the order of things + tweaks: move a function to where it is used + tweaks: move another function to where it is used + tweaks: move some definitions closer to where they are used + tweaks: move two functions to before the ones that call them + tweaks: normalize a translator hint, update one, and add another + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous change + tweaks: normalize the indentation after the previous two changes + tweaks: pull the NUL-terminating of a string into a function + tweaks: rearrange a case item, so that PASTE is always after CUT + tweaks: rearrange some conditions, for compactness + tweaks: relocate a function to before its callers + tweaks: relocate eleven functions to before they are called + tweaks: remove a now-unused helper function + tweaks: remove an unneeded indirection + tweaks: remove a redundant assignment + tweaks: remove a redundant statement, a spurious reference to 'cutbottom' + tweaks: remove a superfluous assignment, and reshuffle a call + tweaks: remove non-UTF-8 code from three more functions + tweaks: remove some redundant filtering, and thus elide a parameter + tweaks: remove some unneeded braces, not used elsewhere either + tweaks: remove two redundant case labels + tweaks: remove two superfluous checks + tweaks: remove two superfluous conditions + tweaks: rename a constant, and rename and relocate a function + tweaks: rename a function, and condense a few comments + tweaks: rename a function, and split a variable into two separate ones + tweaks: rename a function, to be more fitting, and improve some comments + tweaks: rename a function, to remove an obscuring abbreviation + tweaks: rename another function, to remove the obscuring abbreviation + tweaks: rename a parameter and a variable, and reword two comments + tweaks: rename a symbol, to match the corresponding renamed option + tweaks: rename a variable, and add a helping one + tweaks: rename a variable, and reshuffle a declaration + tweaks: rename a variable, away from a single letter + tweaks: rename a variable, away from a single letter + tweaks: rename a variable, for aptness + tweaks: rename a variable, reshuffle an assignment, and change a code + tweaks: rename a variable, to be a bit clearer + tweaks: rename a variable, to get out of the way of a later rename + tweaks: rename a variable, to not be a substring of a function name + tweaks: rename four more functions, to get rid of an abbreviation + tweaks: rename four parameters, to be more distinct and telling + tweaks: rename four variables, to be a bit more telling + tweaks: rename to the same name two variables that have the same role + tweaks: rename two elements of an undo record, to be more telling + tweaks: rename two functions, for shortness + tweaks: rename two functions, to match the style of others + tweaks: rename two more elements of an undo record, for symmetry + tweaks: rename two more functions, to match the style of others + tweaks: rename two more variables, to harmonize with two others + tweaks: rename two parameters, to not overlap with other names + tweaks: rename two symbols, to be more precise + tweaks: rename two variables, and frob four comments + tweaks: rename two variables, and reshuffle a few things + tweaks: rename two variables, for distinctiveness + tweaks: rename two variables, to be different or for more contrast + tweaks: rename two variables, to harmonize with two others + tweaks: rename two variables, to suit both the marked and unmarked case + tweaks: reorder a case item, to have SPLIT_BEGIN always before SPLIT_END + tweaks: reshuffle a condition, for compacter code + tweaks: reshuffle a condition, for compactness + tweaks: reshuffle a few declarations and assignments + tweaks: reshuffle an assignment and a free() + tweaks: reshuffle some code, in preparation for improving it + tweaks: reshuffle some stuff, to have related things together + tweaks: reshuffle the setting of the starting point of a cut + tweaks: reshuffle the trimming of leading whitespace, for compactness + tweaks: reshuffle two declarations plus a fragment of code + tweaks: simplify the undoing and redoing of an + tweaks: strip a parameter that is equivalent to 'openfile' for both calls + tweaks: strip a parameter that is TRUE for both calls + tweaks: swap the use of 'head' and 'tail' for CUT and PASTE undo items + tweaks: trim an unnecessary detail from an error message + tweaks: unabbreviate the name of a variable + tweaks: unwrap four lines, and use explicit codes where possible + tweaks: update several comments after the previous changes + tweaks: update some comments after the previous changes + tweaks: use a symbol instead of a number, and drop two unneeded casts + tweaks: use spaces when aligning things, not tabs + tweaks: use the variable that suits 'END' better + tweaks: weld two fragments together, twice, by eliding an unneeded 'if' + tweaks: when appropriate, move starting point of justified region back + tweaks: when extending the marked region, include also exotic blanks + tweaks: when undoing an addition or redoing a deletion, do not reallocate + undo: do not mark the buffer as modified when pasting back nothing + undo: do not try to copy a cutbuffer that is NULL + undo: do not try to paste back an empty cutbuffer + undo: for an automatic hard-wrap, store the correct previous buffer size + undo: store the cursor row, for redoing filtering & justification better + undo: treat a cut-until-end-of-buffer like a backward marked region + undo: use the correct original fusion point when unjoining two lines + undo: when undoing a paste or an insertion, remove an added magic line + usage: improve the description of --softwrap + +Neal Gompa (1): + syntax: spec: add some keywords that were added in RPM 4.15 and 4.13 + +Saagar Jha (1): + rcfile: fix an out-of-bounds read on empty lines + + +Changes between v4.7 and v4.8: +------------------------------ + +Benno Schulenberg (166): + bindings: allow to bind shifted Meta+letter combinations with Sh-M-X + bindings: allow to rebind also ^`, although it is synonymous with ^Space + bindings: do not show the Full-Justify keystroke when in View mode + bindings: force the first letter in a key name to uppercase + build: exclude bracketed pasting from the tiny version + build: exclude option '-g' when configured without browser and help + build: exclude the escape sequences for F13...F16 from the tiny version + build: fix compilation for --enable-{tiny,help,multibuffer} + build: restrict the use of --with-slang to together with --enable-tiny + bump version numbers and add a news item for the 4.8 release + copyright: update the years for significantly changed files + copyright: update the years for the FSF + display: adjust line and column count upon a resize also when using Slang + display: clear the help lines before a briefly shown warning + display: don't let a message write over the second help line + display: ensure the guiding stripe can be shown when not softwrapping + display: exclude a bit of feedback from the tiny version + display: show the cursor during suspension also when built with Slang + display: skip zero-width characters on a Linux console, to avoid a mess + docs: add a FAQ item about a self-compiled nano not reading /etc/nanorc + docs: document the new -f/--rcfile option + docs: document the new Sh-M-X format for binding + docs: for the alternative bindings, rebind ^C only in the main menu + docs: improve the description of which rc-files are read during startup + docs: mention in the FAQ that auto-indentation is suppressed when pasting + docs: mention that -D/--boldtext gets overridden by some nanorc options + docs: put the three new behaviors in a bulleted list, to catch the eye + docs: stop saying that 'set fill' enables hard-wrapping -- it does not + docs: use more generally available arrows in the cheatsheet + feedback: ask a clearer question when a valid lock file is encountered + feedback: report Ctrl+Alt keystrokes as unbindable + feedback: restore a message that can occur in help viewer or file browser + files: alert the user afterward when an overwritten file is being edited + files: revert the previous commit, as the extra warning is annoying + files: warn doubly when the user is about to overwrite an existing file + files: write a lock file also for a new file and when the name changed + gnulib: update to its current upstream state + help: don't waste the last column in the help viewer on narrow terminals + help: increase the minimum help-text width from 24 to 32 columns + help: prevent double spaces from protruding across the right edge + help: when a key description wraps, indent its wrapped part + input: consume and ignore the raw escape sequences for F17 to F24 + input: correct the escape sequence for PageUp/PageDown on Eterm/Urxvt + input: Ctrl+arrow is "Esc O x" on Eterm, as on rxvt -- not "Esc o x" + input: discard partial sequences that Slang produces for F17 to F24 + input: do not auto-indent when something is pasted into nano from outside + input: don't discard the first keystroke after a resize when using Slang + input: filter out Ctrl+Meta keystrokes, as they can never be shortcuts + input: ignore bracketed pastes in help viewer and file browser + input: ignore modifiers on a VT while executing a macro or a string bind + input: prevent unintentional marking of text for shifted Meta keystrokes + input: read in an external paste in one go, to allow undoing with one M-U + input: recognize the raw escape sequences for F13 to F16 on xterm too + locking: accept a minimal amount of data, enough for PID plus username + locking: avoid crashing when there is a problem writing the lock file + locking: check two magic bytes, to verify that it is a lock file + locking: do not write a lock file when in view mode + locking: when a lock file is unreadable, open the file itself anyway + locking: when finding a lock file at startup, quit when user cancels + new feature: allow specifying a custom nanorc file on the command line + pasting: retain the mark's position when it was set at the cursor + prompt: for a Yes-No-All, accept the first character of an external paste + rcfile: do set the meta flag for plain combinations + rcfile: require "bright", "start=", and "end=" to be in lowercase too + rcfile: unbind keys by their key code instead of by their key string + softwrap: suppress the guiding stripe on unaffected chunks + speller: avoid messing up the screen when an unknown locale is used + suspension: put in an extra terminal-initialization call for Slang + syntax: nanohelp, nanorc: colorize the Sh-M-X format as a valid key name + syntax: nanorc: colorize all-lowercase Meta key binds as valid too + tweaks: add a little change that was overlooked in the previous commit + tweaks: add an error message for something that should never occur + tweaks: adjust or reword a few items in the FAQ + tweaks: adjust the indentation after the previous change + tweaks: allocate the lock data only when ready to write them + tweaks: avoid analyzing the key string when the target key code is known + tweaks: avoid determining the key code from the key string twice + tweaks: avoid fiddling with the keybuffer when it's not needed + tweaks: comment fully, so that all handled escape sequences are findable + tweaks: condense a fragment of code + tweaks: condense five more fragments of repetitious code + tweaks: condense three comments to one, and do the masking more directly + tweaks: condense three fragments of repetitious code + tweaks: condense two comments, and reshuffle an #endif + tweaks: correct a comment + tweaks: correct a couple of comments about escape sequences + tweaks: correct the description of what nano writes into the lock file + tweaks: delete some fragments of code that have become irrelevant + tweaks: do not leak a file descriptor when fdopen() fails + tweaks: don't bother including Haiku escape sequences in the tiny version + tweaks: don't enable bracketed pasting when not handling such pastes + tweaks: drop a message that will never be seen + tweaks: drop an unneeded call of keypad() -- we never read from topwin + tweaks: drop a pointless suffix from two function names + tweaks: elide a function that has become too small for its two calls + tweaks: elide a helper function, in preparation for an improvement + tweaks: elide an 'if', by moving the relevant code to a better place + tweaks: elide a small function, as it's in fact needed just once + tweaks: elide a somewhat costly call by remembering some state + tweaks: elide a variable, and rename its sister + tweaks: elide three checks of a shortcut's meta flag + tweaks: ensure that editor name and user name are NUL terminated + tweaks: exclude an unneeded fragment of code from the tiny version + tweaks: exclude two unneeded fragments of code from the tiny version + tweaks: free two strings as soon as they are no longer needed + tweaks: frob a couple of indentations and white lines + tweaks: fuse two nearly identical functions into a single one + tweaks: gather four calls that are always done together into a function + tweaks: harmonize the amount of lock data that we read and write + tweaks: improve a comment by indirectly referring to the ncurses docs + tweaks: in comments, reword "titlebar" and "statusbar" to two words each + tweaks: initialize three booleans straightaway, when they are declared + tweaks: initialize three more booleans straightaway, at declaration + tweaks: judge from the key code itself whether it is a Meta keystroke + tweaks: make a couple of comments more precise + tweaks: move a function to after the one that it calls + tweaks: move a function to be before the ones that call it + tweaks: move a function to before the one that calls it + tweaks: move a function to related ones, and after one that it calls + tweaks: move a function to right before the one that calls it + tweaks: move another function to after the one that it calls + tweaks: move another function to before the one that calls it + tweaks: move another function, to group the deleting ones together + tweaks: move three functions to the file where they are mainly used + tweaks: rearrange a few global variables, to group things better + tweaks: recompute the wrapping point just once + tweaks: reduce the scope of a variable, and reshuffle a declaration + tweaks: reduce the scope of two constants and of four variables + tweaks: reformat a comment, and resuffle a line to match byte order + tweaks: remove a feedback message that is never shown + tweaks: remove a redundant call, as there is nothing to free there + tweaks: remove a superfluous check + tweaks: remove some superfluous conditions for rewriting a lock file + tweaks: remove the now-unneeded code related to bracketed pasting + tweaks: remove the now-unused meta flag from 'keystruct' + tweaks: remove two superfluous assignments, and rename a variable + tweaks: rename a function and its parameter, to be more fitting + tweaks: rename a function, to be a bit more expressive + tweaks: rename a function, to make it not contain the name of another + tweaks: rename a parameter and invert its logic, and correct a comment + tweaks: rename five variables, away from a single letter + tweaks: rename two functions, to make more sense + tweaks: rename two parameters, to be more general and to sound shorter + tweaks: rename two variables, to make more sense + tweaks: renumber some FAQ items in preparation for adding another + tweaks: reorder two symbols + tweaks: reshuffle some assignments for a return value + tweaks: reshuffle some declarations + tweaks: reshuffle some declarations, and expand a few variable names + tweaks: reshuffle some lines, to avoid tallying the menus when not needed + tweaks: reshuffle some lines, to group all ignored keystrokes together + tweaks: reshuffle three lines, to make the grouping tighter + tweaks: reshuffle two lines, to do the linking first, then the content + tweaks: reword two comments, and rewrap another + tweaks: rewrap a comment and a line, and reshuffle a fragment of code + tweaks: rewrap two lines, for consistency with similar lines + tweaks: rewrite the same file name into the lock file as the first time + tweaks: slightly condense a function by conflating case + tweaks: stop recognizing escape sequences for a key without meaning + tweaks: suggest a few more alternative key bindings and unbindings + tweaks: take just one shot at reading the lock file, and correct a type + tweaks: trim some excessive error checking and key-name frobbing + tweaks: tumble three conditions, for consistency in comparisons + tweaks: unabbreviate "argument" in the documentation + tweaks: use a simple subtraction instead of a function call + usage: improve the description of --restricted and --quickblank + +Brand Huntsman (2): + input: beep when invalid key is pressed at yesno prompt or in linter menu + input: recognize the start and stop sequences of a bracketed paste + + +Changes between v4.6 and v4.7: +------------------------------ + +Benno Schulenberg (39): + build: add the uploading of PDF and cheatsheet to the release script + build: avoid three compiler warnings when using gcc-9.2 or newer + build: fix compilation for --enable-tiny --enable-wrapping + build: fix compilation on macOS, where 'st_mtim' is unknown + build: fix compilation when configured with --disable-justify + bump version numbers and add a news item for the 4.7 release + display: don't color the space that separates line numbers from text + docs: add or improve the 'description' meta tag in the two HTML pages + docs: add the 'lang' attribute in the right place to the two HTML pages + docs: mention that all keywords in a nanorc file should be in lowercase + docs: mention that a negative number after "+" counts from the end + gnulib: update to its current upstream state + input: make indent only when mark and cursor are on different lines + justify: distinguish between tabs and spaces when comparing indentation + justify: treat consecutive indentations that look the same as the same + linter: beep when trying to go beyond first or last message + rcfile: accept also function names and menu names only in lowercase + rcfile: accept only keywords in all lowercase, for speed of comparison + rcfile: demand that function 'exit' is bound in the file browser + syntax: nanohelp: colorize also ^/ as a possible keystroke + syntax: sh: recognize shell rc files also in dedicated directories + tweaks: avoid using strlen() where it is not needed + tweaks: drop M-Space and ^Space from the browser's key list + tweaks: improve two comments and the ordering of some operands + tweaks: move three functions to the file where they are used + tweaks: optimize the trimming of trailing whitespace + tweaks: remove a stray space + tweaks: rename a function, to get out of the way for another rename + tweaks: rename a function, to get rid of a useless suffix + tweaks: reshuffle a few lines, for brevity or speed or consistency + tweaks: reshuffle a few lines, for symmetry with the preceding function + tweaks: reshuffle a fragment of code, for efficiency + tweaks: reshuffle and rename a few things, to elide duplication + tweaks: reshuffle an item, to avoid a lone 'else' + tweaks: reshuffle two declarations, for compactness + tweaks: slightly streamline the search for a possible wrapping point + tweaks: trim or adjust some whitespace in HTML, and add two keywords + tweaks: unwrap a few lines, and move some strings to among their peers + wrapping: never break in the quoting part nor in the indentation part + + +Changes between v4.5 and v4.6: +------------------------------ + +Benno Schulenberg (128): + bindings: allow to rebind ^/, even though it is synonymous with ^_ + bindings: don't hard-bind ^H in the help viewer or the file browser + bindings: the 'all' keyword should encompass the browser menu too + bindings: the 'all' keyword should include the browser menu always + build: fix compilation for --enable-tiny --enable-histories + build: fix compilation when configured with --disable-color + build: slightly speed up the compilation of the tiny version + bump version numbers and add a news item for the 4.6 release + chars: add a faster version of the character-parsing function + commands: rename 'fixer' to 'formatter', to be less misleading + cutting: do nothing when trying to chop a word leftward at start of file + display: do refresh the edit window when exiting from the help viewer + docs: add a note saying that rebinding ^M or ^I is not advisable + docs: add the M-F and M-N keystrokes to the cheatsheet + docs: adjust the compilation instructions to two-digit version numbers + docs: correct the description of the 'spell' menu + docs: document the 'fixer' command, a per-syntax content arranger + docs: mention that color rules are applied in the order they are listed + docs: mention that 'hunspell' is now the first default spelling program + docs: mention that the 'nopauses' option is obsolete + docs: remove some excessive detail from the sample nanorc file + docs: remove the note about the formatter having been removed + feedback: say it when spell check or manipulation did not change anything + files: distinguish between read error and write error when prepending + files: don't mention the name of the temp file when reading goes wrong + files: when opening a file for copying, it should NOT be created + formatter: accept the formatted result also upon a nonzero exit status + formatter: don't let output from the program pollute the screen + gnulib: update to its current upstream state + history: don't wait when there is something wrong with the history files + linter: report it as an error when running the linting program fails + rcfile: allow binding also F17...F24 + rcfile: process extensions to file-matching commands straightaway + restored feature: a per-syntax 'fixer' command that processes the buffer + softwrap: when switching to another buffer, re-align the starting column + speller: prefer 'hunspell' over 'spell', because it can handle UTF-8 + speller: when 'spell' is not found, try running 'hunspell -l' instead + statusbar: show only the first error message, with dots to indicate more + syntax: c: recognize some C++ header files by their Emacs modeline + syntax: default: don't colorize stuff between two pairs of brackets + syntax: html: add a formatter command, making use of 'tidy' + syntax: html: colorize only full attributes, and colorize strings later + syntax: javascript: colorize also special values 'null' and 'undefined' + syntax: javascript: colorize the boolean values 'true' and 'false' too + syntax: nanorc: colorize all arguments of 'fixer' and 'linter' as valid + syntax: nanorc: colorize in bright red everything that is invalid + syntax: nanorc: colorize only lowercase keywords as valid + syntax: nanorc: colorize the 'fixer' command as valid + syntax: ruby: colorize also lowercase global/instance variables + syntaxes: put the 'linter' and 'formatter' commands on a separate line + tweaks: add a helper function without the ubiquitous NULL argument + tweaks: add a local variable, for clarity, to not preuse another one + tweaks: add some "fall-through" comments, and reshuffle some breaks + tweaks: add two translator hints + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change, and another + tweaks: adjust two comments, to better fit the actual functions + tweaks: avoid setting and resetting a variable when there is no need + tweaks: avoid three unneeded calls of umask() in the normal case + tweaks: be explicit about which program complained + tweaks: check the return value of copy_file() also after its other uses + tweaks: close the unused reading ends of two more output pipes + tweaks: condense a fragment of code by making use of a helper function + tweaks: condense or improve some comments + tweaks: condense two comments, and rename two parameters + tweaks: condense two comments, and rewrap a line + tweaks: correct a comment, and retype a variable + tweaks: die on an impossible condition -- to be removed later + tweaks: don't do in the parent something that only the child needs + tweaks: don't wrap calls of statusline() that slightly overshoot 80 cols + tweaks: drop the unneeded closing of descriptors when exiting anyway + tweaks: elide a duplicate opening of the existing file when prepending + tweaks: elide a function call for the plain ASCII case + tweaks: elide another two calls of umask(), and rename two variables + tweaks: elide an unneeded and leaky function + tweaks: elide an unneeded check when making a backup + tweaks: elide a variable, and add a condition to elide an assignment + tweaks: elide a variable that is the same as another + tweaks: exclude two fragments of code from the tiny version + tweaks: fuse two regexes into one + tweaks: group the closing of descriptors together, for compactness + tweaks: group the closing of two descriptors, and reword two comments + tweaks: harmonize a message with another + tweaks: improve some comments, and trim some repetitive ones + tweaks: make a function do a check so its calls don't need to + tweaks: mark two strings for translation + tweaks: move a call of umask() closer to where it is relevant + tweaks: move two functions to after the one that they make use of + tweaks: normalize the indentation after the previous change + tweaks: order two functions more sensibly + tweaks: pass an empty string as an answer instead of a NULL pointer + tweaks: pass an empty string for copying instead of a non-existent one + tweaks: pass any special undo/redo messages to the add_undo() function + tweaks: remove a pointless updating of the title bar + tweaks: remove a redundant check for an existing emergency file + tweaks: remove the superfluous closing of a file descriptor + tweaks: remove two pointless re-inclusion guards + tweaks: remove two superfluous conditions when prepending + tweaks: rename a function and add a parameter, so it becomes more general + tweaks: rename a function, and elide a parameter that is always NULL + tweaks: rename a function and elide its first parameter + tweaks: rename a local variable, to not shadow another + tweaks: rename a variable, to be a bit more fitting + tweaks: rename a variable, to be distinct and visible + tweaks: rename three variables, and reshuffle some lines + tweaks: rename three variables, to be consistent with other linestructs + tweaks: rename three variables, to be more descriptive + tweaks: rename three variables, to match others elsewhere + tweaks: rename two parameters, for contrast and to match others + tweaks: rename two parameters plus a variable, to match others + tweaks: rename two variables, and add a third, for more contrast + tweaks: reshuffle a few declarations, and reduce the scope of one + tweaks: reshuffle a fragment of code into two alternatives + tweaks: reshuffle an 'if' to avoid a negation, and improve a comment + tweaks: reshuffle some declarations, and rename a variable + tweaks: reword an undo/redo string that was overlooked during the rename + tweaks: silence a warning when configured with --enable-tiny + tweaks: simplify the opening of files when prepending + tweaks: slightly reword some fragments in the manual's rebinding section + tweaks: use a better variable name for the argument of an option + tweaks: use a literal NULL instead of a variable that is NULL + tweaks: use a simpler positive/negative check for after copy_file() + tweaks: use a string-copy function that checks for out-of-memory + tweaks: use the given string instead of the found match, for clarity + undo: don't try to copy a string that doesn't exist + undo: put the cursor back on the original row for a full-buffer operation + utils: don't accept NULL for the string to be copied + +Jeroen Roovers (1): + syntax: gentoo: highlight the BDEPEND variable as well + + +Changes between v4.4 and v4.5: +------------------------------ + +Benno Schulenberg (60): + bindings: add a dedicated keycode for for when a region is marked + bump version numbers and add a news item for the 4.5 release + color: don't concatenate an absolute path with the working directory + docs: add two examples of the 'tabgives' command to the sample nanorc + docs: describe the new syntax-specific 'tabgives' command + docs: mark the undoing of justifications as done in the TODO list + docs: mention that gcc must be at least version 5.0 + gnulib: update to its current upstream state + mouse: make the clickable width of menu items more consistent + new feature: a 'tabgives' command to define what the Tab key produces + search: after search-at-startup, store the column (for vertical movement) + tweaks: add a translator hint, and correct two others + tweaks: add some translator hints, be more precise on permissible length + tweaks: add two hints for translators, to try and help avoid mistakes + tweaks: adjust indentation after previous change, reshuffle declarations + tweaks: avoid a comparison between signed and unsigned [coverity] + tweaks: avoid leaking memory when finding an invalid string [coverity] + tweaks: avoid recomputing a maximum value every time round the loop + tweaks: don't burden all menus with something meant for the WriteOut menu + tweaks: elide a function from a non-UTF8 build + tweaks: elide two multiplications with something that is always 1 + tweaks: frob a few comments + tweaks: improve a bunch of comments, and reshuffle some declarations + tweaks: improve a handful of comments, and reduce the needed padding + tweaks: mark as 'const' a parameter that takes fixed strings [coverity] + tweaks: meld two calls of free() into a single one, to elide an 'else' + tweaks: move a fragment of common code into the appropriate function + tweaks: move a function to a better file, to be amongst its kind + tweaks: move a function to before its callers and next to its kind + tweaks: move two functions to after the ones that they call + tweaks: remove some timing code that has served its purpose + tweaks: remove two superfluous macros, as sizeof(char) is always 1 + tweaks: rename a function, to be a bit more fitting + tweaks: rename another type, again to better fit the general pattern + tweaks: rename another type, to also better fit the general pattern + tweaks: rename another variable, for a better fit + tweaks: rename a type, to better fit the general pattern + tweaks: rename a variable, normalize a comment, and reshuffle a free() + tweaks: rename a variable, to be more compact + tweaks: rename three variables, for contrast and more sense + tweaks: rename three variables, for more contrast + tweaks: rename three variables, to better indicate what they hold + tweaks: rename two variables, away from single letters + tweaks: rename two variables, to better describe what they contain + tweaks: reshuffle a fragment, to group some toggles together + tweaks: reshuffle a line, to group things better + tweaks: reshuffle some lines, to elide an unneeded assignment + tweaks: reshuffle some lines, to have the same order as elsewhere + tweaks: reshuffle two fragments, to group things better + tweaks: rewrap a line, reshuffle a declaration, and improve some comments + tweaks: simplify a calculation, as done elsewhere + tweaks: simplify the determination of a canonical path + tweaks: sort two keywords strictly alphabetically + tweaks: speed up determining the width of plain ASCII characters + tweaks: speed up the counting of the menu entries to be shown + tweaks: use a more efficient way to skip storing an empty file name + tweaks: use an early return when there is no tilde + tweaks: use 'void' in prototypes of parameterless functions [coverity] + usage: mark the -J/--guidestripe option plus argument as translatable + usage: properly align --help output also when it has accented characters + +Brand Huntsman (1): + search: accept a match at start of file when searching from command line + +Dirkjan Ochtman (1): + syntax: rust: add the words reserved in 2018, and remove unreserved ones + + +Changes between v4.3 and v4.4: +------------------------------ + +Benno Schulenberg (53): + browser: draw a bar of spaces only where needed -- for the selected item + build: exclude the search-at-startup feature from the tiny version + bump version numbers and add a news item for the 4.4 release + copying: do not prevent M-6 from copying emptiness into the cutbuffer + display: blank the status bar on a successful cut or paste + display: clear the remainder of a row only when there actually is some + display: don't clear a row beforehand -- just clear the remainder + display: use a somewhat faster method to clear a row + display: when linenumbering, correctly spotlight text that spans two rows + display: where needed, use slow blanking, but elsewhere do it much faster + docs: change a few URLs over to https, and rewrap a couple of NEWS items + docs: document the search-at-startup feature (+/string or +?string) + docs: make the synopsis of --speller and 'set speller' more accurate + docs: mention the M-N toggle instead of the obsolete M-# one + docs: slightly reword some of the descriptions around syntax highlighting + docs: slightly reword the descriptions of most configure options + docs: stop mentioning the 'unjustify' function, as it no longer exists + gnulib: update to its current upstream state + new document: a condensed overview of nano's shortcut keystrokes + new feature: allow specifying a search string to "jump to" at startup + rcfile: properly handle an empty syntax before an 'include' statement + scrolling: don't overscroll when the edit window has just one row + search: don't wipe the status bar at startup when there was an error + search: wipe the status bar before searching again (M-W / M-Q) + syntax: c: allow an underscore in lowercase type names + syntax: default: colorize bracketed section headers in some config files + syntaxes: change some unneeded 'icolor' commands to 'color' commands + syntaxes: recognize .ctp extension as a PHP file, and .cu as a C/C++ file + syntax: perl: avoid recognizing embedded hash signs as a comment starter + syntax: perl: avoid upsetting older glibcs with crafty range expression + syntax: perl: don't color the character after a variable name + syntax: po: colorize numbers only when they form a self-contained word + text: copy leading quote characters when automatic hard-wrapping occurs + tweaks: add a translator hint, to clarify four short words + tweaks: call the correct lighting function directly when softwrapping + tweaks: condense some comments, and drop two unneeded initializations + tweaks: drop two parameters that are no longer needed + tweaks: improve a comment, and drop a superfluous one + tweaks: improve a handful of comments + tweaks: make a function name unique, to not overlap with others + tweaks: move a call from two different places to a single place + tweaks: move a function to before the first one that calls it + tweaks: move a general function to a better place + tweaks: remove a saving and restoring that has become superfluous + tweaks: rename a function, to suit better, and reshuffle its parameters + tweaks: rename a parameter in three functions, to say what it points to + tweaks: reshuffle an assignment, and trim some excessive blank lines + tweaks: reshuffle an 'if' out of a function, and rename the function + tweaks: reword and condense two comments, and correct another + tweaks: rewrap two lines, and reshuffle some logic to make more sense + tweaks: shorten two messages that translators tend to make too long + tweaks: try the allocation of a multidata cache just once per line + tweaks: when precalculating, allocate all the cache space upfront + +Brand Huntsman (3): + rcfile: for an empty syntax, show the line number of the 'syntax' command + rcfile: report the correct command location for an invalid 'include' + search: accept toggles for case and regex when searching at startup + + +Changes between v4.2 and v4.3: +------------------------------ + +Benno Schulenberg (235): + bindings: at a Yes-No prompt, accept also ^N and ^Q for "No" + bindings: at a Yes-No prompt, accept also ^Y for "Yes" + bindings: bind the Alt+arrow keystrokes also in non-UTF-8 locales + browser: don't show a mistaken message when exiting from help viewer + build: avoid a warning on FreeBSD, OpenBSD, and Alpine + build: avoid a warning when using --disable-utf8 + build: exclude the ability to open a FIFO from the tiny version + build: fix compilation on another system + build: fix compilation when configured with --disable-color + build: fix compilation when configured with --enable-tiny + build: move an #include to where it is needed + build: remove two #includes that don't seem to be needed + bump version numbers and add a news item for the 4.3 release + chars: create a dedicated function for getting the length of a character + chars: redo the speedup for plain ASCII from three commits ago + chars: speed up case-insensitive searching by roughly one percent + chars: speed up the determination of length and width for plain ASCII + copying: let a copy command break a chain of cut or zap commands + copying: make M-6 do nothing when at end of buffer + copying: scroll just one line when M-6 is pressed on the bottom row + cutting: clear the cutbuffer when the previous operation was copying + cutting: ignore the mark when a word is deleted + display: properly show all characters in a non-UTF-8 build + docs: add a light warning to the explanation of --nonewlines + docs: adjust the wording of the README to be factually correct + docs: clarify that in nano regexes are extended regular expressions + docs: mention the default value for 'errorcolor' + docs: note Brand as the author of the delayed syntax parsing + docs: note David as author of undoable indenting and undoable justifying + docs: remove "--" from the default value of 'quotestr' + docs: say thanks to the Korean translator, and trim a double space + docs: show double quotes where they are needed + docs: slightly reword the notice about the changed defaults since 4.0 + feedback: don't clear off possible error messages after a spell check + feedback: don't try to represent keys outside of the seven-bit range + feedback: make an error check work also when curses hasn't started yet + feedback: print helpful message only when data comes from keyboard + feedback: show a more fitting message when opening a FIFO is interrupted + feedback: show an appropriate message when reading a file was cut short + feedback: treat statusline() being called outside of curses mode as a bug + feedback: when the last line is empty, don't include it in the count + files: allow a given file to be a special file but not a directory + files: allow to abort the reading of slow files with Ctrl+C + files: allow to interrupt the opening of a FIFO for writing with Ctrl+C + files: allow to interrupt the opening of a FIFO with Ctrl+C + files: check for writability by the access bits, not by trying to append + files: don't close a newly-created buffer when it is the only one + files: don't save the state of the terminal a second time + files: don't say "Error...: Success" when aborting after resizing + files: give feedback while waiting for a FIFO to open up + files: suppress feedback when writing an emergency or temporary file + files: try matching a syntax after scooping data from standard input + files: when needed, reconnect the keyboard and reenter curses mode + gnulib: update to its current upstream state + help: don't check for confinement when opening a temporary help-text file + help: don't cycle through the buffers for every resizing step + help: don't show Alt+Left and Alt+Right when running on a Linux console + help: make the column for the first keystroke a little wider + help: write the text directly into a new buffer, without using a tempfile + justify: remove "--" from the quoting regex, to avoid false paragraphs + oops: apparently the line numbers in the cutbuffer do matter + rcfile: at terminating points, verify that a defined syntax is not empty + rcfile: check for missing color commands only when a syntax is still open + rcfile: close off a syntax when a non-syntax command is encountered + rcfile: disallow extending a syntax that is defined in a main nanorc + rcfile: fully read each included file, so all its syntaxes are seen + search: stay in the Search menu when trying to Replace in view mode + softwrap: use smooth scrolling when softwrapping is toggled on + speller: be more concise and to the point when something goes wrong + speller: don't crash when the spell-checked tempfile cannot be opened + speller: ensure that a Shift-selected region is retained + speller: when something goes wrong with 'sort', do not blame 'spell' + startup: remove the now-unneeded workaround for a SIGWINCH during input + startup: resave the terminal's state only when there were no signals + syntax: po: colorize also escaped hex and octal codes + syntax: python: avoid miscoloring stuff between two empty strings + tweaks: add a missing forward declaration of make_new_buffer() + tweaks: add a pair of braces, to silence a compiler warning + tweaks: add a warning for something that shouldn't occur + tweaks: adjust a comment and drop two others, and reshuffle two lines + tweaks: adjust some indentation after the previous change + tweaks: adjust some whitespace and rewrap a few lines + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: avoid an unneeded, extra stat() for temporary files + tweaks: avoid parsing a character twice + tweaks: be more sparing in redrawing things when exiting from help viewer + tweaks: change a function to void, to make things more direct + tweaks: check in a single place for files that should not be opened + tweaks: close a buffer differently and elide a parameter + tweaks: condense a comment and reshuffle a couple of lines + tweaks: condense a couple of comments, and reshuffle a line + tweaks: condense the setup of the two signal handlers for Ctrl+C + tweaks: condense two comments, and normalize the whitespace of a label + tweaks: consistently report failures to fork (and the like) as errors + tweaks: delete a leftover + tweaks: delete a now-unused function + tweaks: delete a now-unused function + tweaks: don't bother calling mblen() in a non-UTF-8 build + tweaks: don't bother checking the return value of wait() + tweaks: don't bother keeping track of whether a squeezed line has shrunk + tweaks: don't bother renumbering the lines in the cutbuffer + tweaks: don't bother saving and restoring 'cutbottom' all the time + tweaks: don't bother to free the content of 'extendsyntax' commands + tweaks: don't check the user's nanorc file for accessibility twice + tweaks: drop an unneeded parameter from open_file() + tweaks: drop a useless tidying-up call, as spelling does not use regexes + tweaks: drop most of the remaining debugging code, and some timing code + tweaks: drop some checks that were made redundant by the previous commit + tweaks: drop two checks that were made redundant by the previous commit + tweaks: elide a function that is an amalgam of three others + tweaks: elide a function that is called in just one place + tweaks: elide a function that is used just once + tweaks: elide another parameter, and rename the function to match + tweaks: elide an unneeded, duplicate stat() for the FIFO check + tweaks: elide an unneeded 'if' and 'break' + tweaks: elide an unneeded variable + tweaks: elide a parameter and a return value + tweaks: elide a pre-processor #else clause, by using braces instead + tweaks: elide a variable, drop a comment, and remove unneeded braces + tweaks: elide two unneeded variables + tweaks: enforce the minimum amount of scrolling in a simpler way + tweaks: exclude a bug check from the tiny version + tweaks: exclude another bug check from the tiny version + tweaks: factor out a fragment of code that is repeated three times + tweaks: factor out the installing and restoring of the ^C signal handler + tweaks: improve a couple of comments + tweaks: improve a handful of comments + tweaks: improve some comments, reshuffle a line, and rename a variable + tweaks: include the enabling of SIGINT into the tiny version + tweaks: invert a condition, in order to return earlier + tweaks: invert two conditions, in order to elide an extra variable + tweaks: just mark four rcfile errors for translation, like the others + tweaks: make better use of two variables, and reshuffle two comments + tweaks: merge two functions, as the first is called just once + tweaks: merge two functions, as the one is used only by the other + tweaks: merge two very similar functions into a single one + tweaks: move a bit of timing code to where it will be needed + tweaks: move a function to the file where it is used + tweaks: move an assignment that is useful only when searching forward + tweaks: move a syntax check to a better place, to reduce duplication + tweaks: move the tidying-up-after-a-search to a single exit point + tweaks: normalize the indentation after the previous two changes + tweaks: place a function better, and reduce some comments to a single one + tweaks: put some timing code back into the search function + tweaks: really don't bother renumbering the lines in the cutbuffer + tweaks: reduce a bit of mark-adjusting code to its essence + tweaks: reduce the scope of a variable, and let the compiler zero it + tweaks: remove a bit of redundant code + tweaks: remove a check that is no longer relevant + tweaks: remove a condition that has become superfluous + tweaks: remove an unneeded "closing" of a syntax after extending it + tweaks: remove an unneeded setting and unsetting of a flag + tweaks: remove a superfluous and ineffective assignment + tweaks: remove a superfluous condition, in three places + tweaks: remove four unneeded pre-processor directives + tweaks: remove some unneeded braces, and reshuffle for more symmetry + tweaks: remove the two remaining handfuls of asserts + tweaks: remove two more unneeded assignments + tweaks: remove two unneeded assignments, and improve a comment + tweaks: remove two unneeded checks for NULL + tweaks: rename a bunch of variables, to become identical to others + tweaks: rename a function and a variable, for contrast and variety + tweaks: rename a function and its parameters, to be more fitting + tweaks: rename a function, to be clearer and to stop using an old abbrev + tweaks: rename a function, to be more fitting + tweaks: rename a function, to better indicate what it does + tweaks: rename a function, to better suit what it does + tweaks: rename a parameter and a variable, to be more distinct + tweaks: rename a struct element, to be distinct + tweaks: rename a type, for more contrast + tweaks: rename a type, to make more sense + tweaks: rename a variable, reduce its scope, and use it consistently + tweaks: rename a variable, reshuffle declarations, and drop an assert + tweaks: rename a variable, to be shorter + tweaks: rename a variable, to better indicate it contains two characters + tweaks: rename a variable, to better suit its counterpart + tweaks: rename a variable, to fit a bit better + tweaks: rename a variable, to fit a little better + tweaks: rename a variable, to get out of the way of the next commit + tweaks: rename a variable, to match another with the same meaning + tweaks: rename a variable, to match the style of its brothers + tweaks: rename four elements of the holder struct, for more contrast + tweaks: rename some single-letter variables to the same significant word + tweaks: rename three variables, to get rid of a suffix or an underscore + tweaks: rename three variables, to use full words instead of abbrevs + tweaks: rename two functions, to be simpler + tweaks: rename two functions, to better describe what they do + tweaks: rename two functions, to get rid of the "mb" abbreviation + tweaks: rename two more functions, to be simpler too + tweaks: rename two parameters, away from single letters + tweaks: rename two parameters, for more contrast, and elide another + tweaks: rename two parameters, to differentiate them from function names + tweaks: rename two variables, and frob some comments + tweaks: rename two variables, and reshuffle their declarations + tweaks: rename two variables, away from a single letter + tweaks: rename two variables, for more contrast + tweaks: rename two variables, for more contrast with the partition stuff + tweaks: rename two variables, to be less cryptic + tweaks: rename two variables, to be unique + tweaks: rename two variables, to not be abbreviations + tweaks: reorder some code, to further optimize display_string() for ASCII + tweaks: reshuffle a bit of code, to be less intertwined + tweaks: reshuffle a couple of lines and adjust a few comments + tweaks: reshuffle a few lines, to be more straightforward + tweaks: reshuffle a few things, partly to make two chunks more alike + tweaks: reshuffle an assignment, to be able to return earlier + tweaks: reshuffle some closing and switching to a better place + tweaks: reshuffle some code to the one place that needs it + tweaks: reshuffle some lines and frob some comments + tweaks: reshuffle some lines, to group things more sensibly + tweaks: reshuffle some lines, to put the most likely candidate first + tweaks: reshuffle some lines, to reduce duplication + tweaks: reshuffle two #ifdefs, to avoid an unpaired brace + tweaks: reuse the install and restore functions for a signal handler + tweaks: set a boolean directly, instead of using a function call + tweaks: set a boolean directly, instead of using a function call + tweaks: sort three translator names better + tweaks: specifically refer to the manual of GNU grep for more regex info + tweaks: speed up the counting of characters in mbstrlen() + tweaks: squeeze excess spaces out of a line in situ + tweaks: step away one character from the current bracket, not one byte + tweaks: stop allocating and freeing a holder struct for every cut/paste + tweaks: stop checking for a NULL result from line_from_number() + tweaks: stop passing 'cutbuffer' and 'cutbottom' back and forth + tweaks: switch to the preceding buffer in a cheaper way (when in help) + tweaks: use a cheaper way to switch between buffers where possible + tweaks: use a more direct call when a single linestruct is deleted + tweaks: use a slightly faster function where appropriate + tweaks: use a symbol instead of zero to refer to standard input + tweaks: use FALSE for booleans instead of zero + tweaks: when OR'ing, put the most likely condition first + usage: make the --help output independent from the terminal's tab size + zapping: disjoin a zap command from earlier ones when the mark is set + zapping: use the 'keep_cutbuffer' logic to keep undo items apart + +Brand Huntsman (6): + files: block SIGWINCH while opening a FIFO for reading or writing + rcfile: compile the color regexes just once + rcfile: fully parse a syntax file only when needed + rcfile: store errors and display them when nano terminates + startup: prevent a crash when no applicable syntax is found + tweaks: remove an unneeded pre-processor '#else' clause + + +Changes between v4.1 and v4.2: +------------------------------ + +Benno Schulenberg (23): + build: be more specific and avoid committing accidentally changed files + bump version numbers and add a news item for the 4.2 release + docs: put the 'set guidestripe' option into its alphabetical position + options: make --breaklonglines work also when --ignorercfiles is used + speller: do not crash by trying to free something that cannot be freed + tweaks: adjust a few comments and some indentation + tweaks: condense and improve a handful of comments + tweaks: declare a function as const and let its allocated string leak + tweaks: drop an unneeded saving and restoring of a variable + tweaks: elide an unneeded intermediate variable + tweaks: elide an unneeded parameter, as the function already assumes it + tweaks: elide an unneeded variable + tweaks: exclude a bit more code from a single-buffer build + tweaks: remove an unneeded condition + tweaks: remove a redundant, enclosed #ifdef + tweaks: rename a function, to be distinct and fitting + tweaks: rename another function, to be distinct and fitting + tweaks: rename a variable, for a little more meaning + tweaks: rename a variable, to distinguish it from a browser function + wrapping: add a missing space only when the remainder will be prepended + wrapping: compute the width of a succeeding line in the correct manner + wrapping: improve the persistence of the prepending behavior + wrapping: trim any trailing blanks when cursor goes to next line + + +Changes between v4.0 and v4.1: +------------------------------ + +Benno Schulenberg (85): + bindings: add easier keystrokes for the linenumber and softwrap toggles + bindings: disallow executing an external command when in view mode + bindings: recognize the ^W^Y and ^W^V legacy keystrokes again + bindings: remove the jumpy-scrolling toggle entirely + build: add gnulib modules to the list of files with translatable strings + build: add src/cut.c to the list of files with translatable strings + build: don't do fuzzy matching when merging PO files against the POT file + build: remove obsolete translations from the PO files after merging + bump version numbers and add a news item for the 4.1 release + display: report and catch a bad state, to prevent a possible hang + docs: for two of the toggles, mention the new instead of the old option + docs: give the FILES section in the man page its canonical title + docs: mention that -b is the opposite of -w also in the latter's item + docs: mention that M-S now toggles softwrap and M-N line numbers + docs: put paths and filenames in italics, per 'man man-pages' + docs: remove all mention of --finalnewline, and undefault --nonewlines + docs: remove the AUTHOR section, per advice from 'man man-pages' + docs: re-title the temporary section about the changed defaults + feedback: replace an assert with a check plus error message at startup + feedback: show a message while executing an external command + feedback: spare the user a superfluous scaring when trying to exit + gnulib: update to its current upstream state + help: don't doubly list toggles that have two keys assigned to them + indenting, commenting: ensure a partial line stays displayed properly + justify: correctly compute the number of lines to take, to avoid a crash + options: make --nowrap override again a contrary nanorc setting + options: remove -f (--finalnewline); go back to auto-adding this newline + rcfile: don't break a chain of 'else if' [scan-build] + rcfile: read the syntax files in alphabetical order when globbing + speller: block the resizing signal again during an external spell check + speller: block the resizing signal also during an integrated spell check + speller: resizing can happen also when configured with --enable-tiny + syntax: c: color as a type any lowercase word that ends with "_t" + syntax: default: color in red also versions 4.x of nano + syntax: man: add comments, and color all the safe lowercase macros + syntax: man: anchor macros at start of line, as only then they are valid + syntax: man: require the dot to be at start of line, not the comment + syntax: nanorc: colorize also strings preceded by 'start=' or 'end=' + syntax: nanorc: require whitespace both before and after a quoted string + tweaks: adjust the indentation after the previous change + tweaks: condense a bit of copying code + tweaks: consistently use .sp instead of .PP to insert a blank line + tweaks: do a check up front instead of every time round the loop + tweaks: don't bother copying the NUL byte -- it is set nine lines down + tweaks: don't bother reallocating the data when a line gets hard-wrapped + tweaks: don't bother reallocating the squeezed string, just terminate it + tweaks: don't bother special-casing non-UTF8 when seeking a character + tweaks: drop an assignment whose value is never used [scan-build] + tweaks: drop two 'const' qualifiers, to silence the compiler + tweaks: free some memory before a possible error exit [coverity] + tweaks: free the copy of a linter message in all cases [valgrind] + tweaks: free the result string from an invocation error [coverity] + tweaks: initialize a boolean before it is referenced [valgrind] + tweaks: put the unblocking of SIGWINCHes in a better place + tweaks: remove a function that is now unused + tweaks: remove an unneeded check for NULL and its associated message + tweaks: remove an unneeded check for NULL [coverity] + tweaks: remove an unpaired closing parenthesis from the NEWS file + tweaks: remove a superfluous check for NULL plus the associated message + tweaks: remove several unneeded bad-state checks and their messages + tweaks: rename a cryptic type to something that makes a little sense + tweaks: rename a function plus parameter, to stay closer to what it does + tweaks: rename another variable, to be more descriptive + tweaks: rename another variable, to be more fitting + tweaks: rename an overshort type to something that makes some sense + tweaks: rename a variable, to be more distinct and more apt + tweaks: rename a variable, to be more distinct and more descriptive + tweaks: rename a variable, to get out of the way for another rename + tweaks: rename some variables, for more contrast and to match others + tweaks: rename some variables, to be less repetitious + tweaks: rename two variables, for more contrast + tweaks: rename two variables, to be more distinct and more fitting + tweaks: rename two variables, to make more sense + tweaks: rename two variables, to match others + tweaks: reshuffle some lines, condense a comment and drop another + tweaks: reshuffle some lines, to elide an 'if' + tweaks: reshuffle two lines, and reword a comment + tweaks: reword a comment, and drop an unneeded assert + tweaks: shorten a comment to its essence + tweaks: shorten and improve some comments, and reshuffle a few lines + tweaks: simplify a message, and normalize the spelling of another one + tweaks: stop doing tandem assignments (one passing through the other) + tweaks: switch back from checking FINAL_NEWLINE to checking NO_NEWLINES + tweaks: use a signed type for a result that could be negative [coverity] + unindent: ensure that a partial line gets displayed properly afterwards + +Brand Huntsman (1): + files: block the resizing signal while reading from an external command + +Devin Hussey (1): + files: initialize a variable before referencing it + +Liu Hao (1): + syntax: c: change the highlighting of preprocessor directives + + +Changes between v3.2 and v4.0: +------------------------------ + +Benno Schulenberg (190): + bindings: change the action of / to 'scroll linewise' + bindings: hard-bind ASCII code 0x08 (BS) to the backspace function + bindings: make the normal scrolling keystrokes work also in help viewer + bindings: provide usable shortcuts for prevword/nextword in tiny version + bindings: rename 'cutwordleft' to 'chopwordleft', and similar for right + browser, help: make page up also when terminfo mismatches terminal + browser: say "Close" instead of "Exit" for the ^X shortcut + browser: show the ^G item again in the help lines + build: eradicate the --disable-wrapping-as-root configure option + build: fix compilation when configured with --disable-utf8 + build: use wget over https (instead of plain rsync) to fetch PO files + build: verify that 'pkg.m4' is available when building from git + bump version numbers and add a news item for the 4.0 release + copyright: update the years for significantly changed files + copyright: update the years for the FSF + copyright: update the years for the FSF in the documentation too + cutting: cover the corner cases where cut commands do not cut anything + cutting: give feedback when otherwise nothing happens + cutting: when ^K does not actually cut anything, do not add an undo item + display: account for horizontal scrolling when drawing the guide stripe + display: account for zero-width characters when reserving space for '>' + display: change the "$" continuation character to ">" and "<" + display: dot the stripe when it's in the last column, to defeat a VTE bug + display: ensure that spotlighted text is not treated as a prompt answer + display: highlight the ">"/"<" continuation characters in reverse video + display: represent half of a double-width character with "[" and "]" + display: scroll horizontally one column earlier + display: show "[" for half of two-column character also when softwrapping + display: show it in title bar when starting up in restricted mode + display: use non-breaking space instead of dot for VTE-bug workaround + docs: add notes to draw attention to the changed defaults + docs: adjust and extend the Pico-compatibility section in the manual + docs: adjust for the enhancement of the default quoting regex + docs: correct the descriptions of 'speller' and 'linter' functions + docs: deprecate the use of morespace, smooth, nonewlines, and nowrap + docs: describe breaklonglines, emptyline, finalnewline, jumpyscrolling + docs: describe the four new options (-b, -f, -j, -e) + docs: describe the new options -J, --guidestripe, and 'set stripecolor' + docs: harmonize the style of bindable-function descriptions + docs: mention nano's major features directly instead of referring + docs: mention that 'cutwordleft' is bound to + docs: mention that --morespace and --smooth are obsolete and ignored + docs: mention that 'quotestr' enables the rewrapping of comment blocks + docs: mention three features in their proper place + docs: remove from the FAQ some items that are no longer relevant + docs: remove the mentioning of --disable-wrapping-as-root from the FAQ + docs: reword and reshuffle the description of --rawsequences + docs: say that --rebinddelete can correct both and + docs: stop implying that nano wants to be fully compatible with Pico + docs: stop saying that --fill switches on automatic hard-wrapping + docs: suggest a setting for 'stripecolor' in the sample nanorc + docs: update the links in the FAQ to the mailing-list info pages + feedback: complete the removal of some superfluous words + feedback: make two error messages better match the option + feedback: remove some superfluous words from Undid/Redid messages + files: retain a Shift-selected region when switching between buffers + gnulib: update to its current upstream state + help, docs: say "Delete" when things don't go into the cutbuffer + help: don't advertise ^S and ^Q when --preserve is used + help: don't list the obsoleted -O and -S options in the --help output + help: don't list the unbound and in the tiny version + help: in the tiny version, don't list an option that is the default + help: reword the description of ^U to avoid the impression of "Undo" + help: reword the tags for deleting a word left and right + justify: correctly detect when we've reached end of buffer + justify: extend the quoting regex, to cover more types of comments + justify: move the check for a bad quoting regex to a better place + menus: don't show ^S and ^Q in the help lines in the tiny version + menus: move the paragraph-jumping functions from Search to Goto-Line + menus: put the ^T toggle in Search in the same position as in Goto-Line + menus: remove the ^Y and ^V shortcuts from the Search menus + new feature: option --guidestripe that shows a vertical guiding bar + options: actually rename --rebindkeypad to --rawsequences (-K) + options: add -b, --breaklonglines, the counterpart of --nowrap + options: add -e, --emptyline, the counterpart of --morespace + options: add -f, --finalnewline, the counterpart of --nonewlines + options: add -j, --jumpyscrolling, the counterpart of --smooth + options: disable hard-wrapping and automatic newlines by default + options: let --fill no longer imply automatic hard-wrapping + options: make -d (--rebinddelete) work without -K (--rebindkeypad) + options: make --rawsequences disable --mouse, to prevent entering junk + options: rename long version of -K from --rebindkeypad to --rawsequences + options: stop recognizing and ignoring -b, -e, -f, -j, and -q + options: stop recognizing and mentioning --quiet and 'set quiet' + options: warn when option -O or -S is given, and ignore them + prompt: trim a double-width character at the screen's edge + rcfile: add 'stripecolor' for changing the color of the guiding stripe + rcfile: add the options that correspond to -b, -f, -j, and -e + rcfile, docs: remove deprecated forms of two options and five bindables + rcfile: don't report an error when the globbing pattern matches nothing + rcfile: reject an attempt to bind ^[ + rcfile: when a keystroke is rebound, don't bother unbinding it + rcfile: when an old flag is unset, set the corresponding new flag + rcfile: when rebound, DO unbind a keystroke from its earlier function + startup: check again for a Linux console after reading all files + startup: check that a backup directory is valid also when backups are off + startup: improve two error messages by mentioning the invalid operand + syntax: nanorc: stop coloring 'unset fill ...' as if it were valid + syntax: tcl: colorize comments normally, not with a background hue + text: turn the mark off when justifying, to not confuse an undo + tweaks: add a consistency check plus a corresponding warning + tweaks: add an alias for a string variable, so the code makes more sense + tweaks: add deprecation comments to the four superseded options + tweaks: add two comments, and reduce the scope of another variable + tweaks: adjust indentation after previous change, and rename a parameter + tweaks: adjust the indentation after the previous change + tweaks: avoid parsing the same character twice + tweaks: calculate the length of a completion word in a more direct way + tweaks: change do_para_end() to not step beyond end of paragraph + tweaks: condense a comment, and drop two others + tweaks: condense a couple of comments and rewrap a few lines + tweaks: condense a handful of comments + tweaks: condense and correct a comment + tweaks: condense and improve a couple of comments + tweaks: condense and improve a handful of comments, and rewrap two lines + tweaks: condense the logic of find_paragraph() + tweaks: condense two regexes in the Tcl syntax, and add a comment + tweaks: correct a comment typo, and trim a few other comments + tweaks: don't bother executing two functions that are empty + tweaks: don't bother special-casing non-UTF8 when checking for a blank + tweaks: don't bother trying to draw characters beyond the screen's edge + tweaks: don't bother zeroing the x position when doing a full justify + tweaks: don't pass a pointer when a boolean is expected + tweaks: elide a function that is called just once + tweaks: elide an unneeded intermediate variable + tweaks: elide a one-line function that is used just twice + tweaks: elide a parameter -- do the NULL checks in the caller + tweaks: elide a parameter that is always TRUE + tweaks: elide a tiny function by making a variable global + tweaks: elide a variable that is a copy of another + tweaks: elide two unneeded intermediate variables + tweaks: escape hyphens that must be hard hyphens in the man pages + tweaks: exclude the guide-stripe code from the tiny version + tweaks: hard-bind ASCII DEL in a slightly more economical way + tweaks: improve a comment, and add an intermediate variable for clarity + tweaks: improve a comment, to better match the changed code + tweaks: improve and condense some comments, and remove an unneeded one + tweaks: make an assignment only when the option is valid, like elsewhere + tweaks: move declaration of variable that does not need to be global + tweaks: move the character/word-deletion functions to a better location + tweaks: move the check for beginning-of-paragraph to a better place + tweaks: move the checks for git and gettext to a far earlier point + tweaks: reduce a bunch of repetitious comments to their essence + tweaks: reduce the scope of a variable, and rename it + tweaks: reduce the scope of two variables, and rename one of them + tweaks: reduce two parameters to a single one by summing them + tweaks: refer to the magic line as "magic line", not as "magicline" + tweaks: remove a superfluous check for a special case + tweaks: remove a superfluous incrementing and decrementing of a variable + tweaks: remove a variable that is no longer used + tweaks: remove two tag definitions that are no longer needed + tweaks: rename a function for aptness, and two variables for shortness + tweaks: rename a function, to be simpler and more accurate + tweaks: rename and invert a function, to avoid double negatives + tweaks: rename an overlooked variable from a single letter to a word + tweaks: rename a parameter plus a variable, and reshuffle an assignment + tweaks: rename a struct element, to make sense + tweaks: rename a symbol, to match its corresponding option + tweaks: rename a type, to make more sense + tweaks: rename a variable, because it also serves as "last line" + tweaks: rename a variable, elide another, and adjust two comments + tweaks: rename a variable, to be more distinct + tweaks: rename four functions, to make more sense + tweaks: rename some variables from a single letter to meaningful word + tweaks: rename some variables, to match others that have the same task + tweaks: rename three functions and two symbols, to match the new wording + tweaks: rename three variables, and reshuffle two declarations + tweaks: rename two parameters to be more descriptive + tweaks: rename two variables, to be less confusing + tweaks: rename two variables, to be more descriptive + tweaks: rename two variables, to indicate better what they mean + tweaks: renumber some FAQ items, to compensate for the deleted ones + tweaks: reorder some ifs, to reduce the average number of comparisons + tweaks: reshuffle a bit of code, to have the exit point near the end + tweaks: reshuffle a few lines, and condense some comments + tweaks: reshuffle and frob a couple of comments, and reindent two lines + tweaks: reshuffle some code, to require two fewer ifs + tweaks: reword the description of the disadvantages of Pico + tweaks: rewrap a line and improve a few comments + tweaks: schedule a call of edit_refresh() instead calling it directly + tweaks: slightly indent warnings and errors during the configure phase + tweaks: slightly reword, for esthetics of the resulting Info document + tweaks: split a variable into two, as they have different roles + tweaks: switch from checking MORE_SPACE to checking EMPTY_LINE + tweaks: switch from checking SMOOTH_SCROLL to checking JUMPY_SCROLLING + tweaks: switch from referencing NO_NEWLINES to referencing FINAL_NEWLINE + tweaks: switch from referencing NO_WRAP to referencing BREAK_LONG_LINES + tweaks: word some comments more concisely + undo: set the correct file size for a redo of a character deletion + utils: retire the fixbounds() function -- it is no longer needed + +Brand Huntsman (1): + history: use an unfreed 'position_history' to avoid a possible crash + +David Lawrence Ramsey (34): + display: correctly trim an overshooting character from a prompt answer + display: correct the logic for making room for the ">" character + display: properly handle double-width characters when spotlighting + display: properly trim double-width characters at the edit window's edge + display: show the guide stripe for double-width/multi-byte characters + docs: remove references to not being able to undo justifications + input: properly handle s followed by a shifted Meta+letter + justify: handle the leading part when justifying a marked region + justify: initialize a variable before making use of its value + justify: put a mid-line marked region onto separate lines + justify: when justifying a marked region, strip whitespace after the lead + moving: make the generic paragraph movement functions work on any buffer + new feature: marked text gets justified into a single, new paragraph + options: exit on a bad quoting regex, instead of crashing later + text: hook the new justify mechanism up to the undo system + text: make do_justify() use the cutbuffer + text: make find_paragraph() work on any buffer + text: make justify_format() work on any buffer + text: make justify_paragraph() work on any buffer + text: prepare to make find_paragraph() work on any buffer + text: properly check again for no paragraphs after the current line + text: remove the old unjustify mechanism, to prepare for the new justify + tweaks: adapt find_paragraph()/justify_paragraph() for multiple quotes + tweaks: adjust indentation after the previous commit + tweaks: adjust some indentation after the previous change + tweaks: normalize the indentation, and remove unneeded braces + tweaks: remove unnecessary variable initializations + tweaks: rename a variable, to prepare for its new role + tweaks: split justify_paragraph() into three separate functions + tweaks: swap the names of the variables 'wrap_at' and 'fill' + tweaks: use proper variable types in the word-completion functions + undo: after undoing a cut, don't remove the magicline if we're on it + undo: set and check 'xflags' in a bitwise manner + undo: when undoing a cut, remove also the magicline if it added one + + +Changes between v3.1 and v3.2: +------------------------------ + +Benjamin Mintz (1): + syntax: python: do not highlight 'print' and 'exec' in Python 3 + +Benno Schulenberg (87): + bindings: allow using to exit from the linter + bindings: allow using ^X to exit from the linter + bindings: drop M-| as a keystroke for 'cutwordleft' -- set it free again + bindings: in tiny version with help, don't show unfunctional M-◀ and M-▶ + bindings: make and work also on a Linux console + bindings: make the linter separately accessible, through M-B by default + bindings: make the Shift+arrow keys work by default on more terminals + bindings: no longer bind F13 and F14 and F15 + bindings: recognize ASCII DEL as backspace also in viewer and browser + bindings: recognize also on a Linux console + bindings: rename 'prevhistory' to 'older' and 'nexthistory' to 'newer' + bindings: stop binding to do_backspace() in the browser menu + bindings: when implanting a string, make sure to use positive values + build: exclude scrolling functions only from tiny version without help + build: fix compilation again when configured with --enable-tiny + build: fix compilation when configured with --disable-multibuffer + build: verify that --enable-tiny compiles before allowing a release + bump version numbers and add a news item for the 3.1 release + debug: report for which modified editing keys ncurses has no keycode + display: correct a mistaken label in the help lines of the browser + display: ensure that the help lines are shown when in linting mode + display: let the title bar show when nano is in linting mode + display: show the cursor also in a help text (when --showcursor is used) + display: use a different color when showing a linting message + docs: document the slightly changed workings of the --view option + docs: give suggestions for alternative key bindings in the sample nanorc + docs: remove a no-longer-needed suggestion from the sample nanorc + docs: update the description of -R/--restricted, as it now reads nanorc + docs, usage: mention that --showcursor now covers help texts too + feedback: give proper message for ^R when combining --view & --restricted + gnulib: update to its current upstream state + help: add a relevant explanatory text for the linter + help: move the linter to the end, to restore pairing in the help lines + help: pull "Older" and "Newer" into view on an 80-column terminal + help: restore the blank line between manipulation and position stuff + help: show and instead of F7 and F8 for pagewise scrolling + help: show the keystroke as "Sh-^Del" + linter: allow using and to jump to other message + linter: do not pause when there are no messages for unopened files + linter: for "first"/"last", reshow actual message after a short pause + options: --ignorercfiles is now available in restricted mode + options: let view mode activate "multibuffer" to allow viewing more files + speller: remove a pointless message -- it is never seen + startup: allow reading nanorc in restricted mode, to permit customization + syntaxes: remove several redundant end-of-line anchors from regexes + tweaks: add a comment, and correct an indentation + tweaks: add two more translator hints + tweaks: capitalize the word "nano" when at the start of a sentence + tweaks: change a bunch of URLs to use 'https' instead of 'http' + tweaks: condense a handful of comments, and drop an assert + tweaks: condense another bit of code + tweaks: define a symbol to make the code itself a little simpler + tweaks: don't bother asking ncurses for keycodes for shifted Left/Right + tweaks: drop a check for the needle (the search string) being empty + tweaks: drop the checking of two flags that can no longer be toggled + tweaks: elide a function that is used just once and is a oneliner + tweaks: elide a wrapper function that is no longer useful + tweaks: exclude word-deletion keystrokes from the tiny version + tweaks: fold a few pairs of regexes into each other + tweaks: group a series of related variables together + tweaks: improve two comments, and reshuffle a line for consistency + tweaks: include an extra function call only where it is needed + tweaks: move all the function keys to the end of the shortcuts list + tweaks: move some calls of edit_redraw() to where they are needed + tweaks: redefine MMOST to exclude MBROWSER, to simplify the bindings + tweaks: reduce some repetitious and superfluous comments to just one + tweaks: remove a check that was made redundant by the previous commit + tweaks: remove a now-unused parameter from four functions + tweaks: remove an unneeded check for NULL, and rename a parameter + tweaks: remove a stray file that was accidentally committed + tweaks: remove some old debugging code + tweaks: rename a bunch of variables, to make it clearer what they contain + tweaks: rename a flag, to match the name of the option + tweaks: rename a variable, to be a bit more fitting + tweaks: renumber a couple of symbols, and reshuffle a bit of code + tweaks: reorder some code to put backward motion before the forward one + tweaks: reshuffle a couple of conditions, to group things better + tweaks: reshuffle some conditions, putting the least likely one first + tweaks: reshuffle some lines to get standard order (first up, then down) + tweaks: reshuffle some lines, to put things in order of option name + tweaks: snip trailing whitespace that ended with a non-breaking space + tweaks: stop setting and requiring the Meta flag for special keycodes + tweaks: swap and reword two bullet points in the rnano manpage + tweaks: there is no reason to block SIGWINCHes while waiting for speller + undo: move another piece of checking to the two places that need it + undo: move some special checking code to the one place that needs it + wrapping: make the --fill option override 'set fill' again + +Brand Huntsman (5): + bindings: hard-bind the zap function to M-Del (Alt+Delete) + display: make all dying messages end in a newline + linter: throttle "first"/"last" message on repeated key presses + new feature: a bindable 'zap', to erase text without changing cutbuffer + options: add --zap, that makes and erase a marked region + +David Lawrence Ramsey (16): + display: do spotlighting as part of drawing the screen + docs: update rnano manpage, as -R/--restricted now reads nanorc + input: don't detect on Linux console in tiny version + input: properly consume a modified Delete key also in the tiny version + input: properly recognize Alt+Delete when using -K/--rebindkeypad + input: recognize some escape sequences for + speller: restore the mark coordinates slightly later + syntax: nanohelp: properly color the keystroke "Sh-^Del" + tweaks: don't define controldelete or controlshiftdelete in tiny version + tweaks: join two lines, and add a clarifying comment + tweaks: move the justifying of a single paragraph into its own function + tweaks: normalize the indentation of the shuffled code + tweaks: reshuffle some code to avoid several checks for having justified + tweaks: simplify by using a 'do/while' loop instead of 'while (TRUE)' + weeding: remove the 'active' parameter from spotlight() + wrapping: make relative fill values work again also for screen resizes + + +Changes between v3.0 and v3.1: +------------------------------ + +Benno Schulenberg (13): + bindings: bind ASCII DEL during startup instead of repeatedly at runtime + bindings: make ^H rebindable also on NetBSD, FreeBSD and macOS + bindings: when Ctrl+Shift+Delete has no keycode, don't use KEY_BSP + bump version numbers and add a news item for the 3.1 release + input: keep the cursor in edit window after message, also on NetBSD + input: recognize the sequences for Ctrl+Shift+Delete on xterm and urxvt + main: allow toggling all editor features when in view mode + suspension: don't try to show the cursor position when going to sleep + syntax: sh: let the header regex match also busybox shell scripts + tweaks: condense a bit of code + tweaks: remove a superfluous comment and a redundant assignment + tweaks: rename a variable to be special and distinct + tweaks: sharpen an optimization, to allow DEL to be a shortcut + +Liu Hao (1): + search: disallow switching to the Replace prompt when in view mode + + +Changes between v2.9.8 and v3.0: +-------------------------------- + +Benno Schulenberg (113): + bindings: bind M-Q to 'findprevious' by default, and M-W to 'findnext' + bindings: hard-bind to 'cutwordleft' + bindings: make ^Q and M-Q available also in the help viewer + bindings: move the noconvert toggle from the main to the insert menu + bindings: reassign the M-| keystroke to 'cutwordleft' by default + bindings: remove backup and new-buffer toggles (M-B, M-F) from main menu + bindings: remove the More-Space toggle entirely + bindings: remove the 'searchagain' function entirely + bindings: rename two bindable functions: copytext to copy, uncut to paste + bindings: unassign the M-? keystroke, to free it up for future use + build: add the release script to the repository + build: fix compilation again when configured with --enable-tiny + build: fix compilation when configured with --enable-tiny + build: verify that 'msgfmt' is available when building from git + bump version numbers and add a news item for the 3.0 release + chars: make the UTF-8 case ever so slightly faster by eliding an 'if' + chars: speed up the counting of string length for the plain ASCII case + chars: speed up the parsing of a character for the plain ASCII case + completion: when the cursor is not after a word fragment, say so + cut: concentrate the logic for clearing the cutbuffer mostly in one place + cutting: when deleting whole words, don't join lines unexpectedly + debug: add some code to time the performance of get_totsize() + docs: improve a comment about rebinding + docs: mention that also Ctrl increases the stride when selecting text + docs: mention that "normal" can be used to give things the default color + docs: mention that the 'formatter' command has been superseded + docs: reshuffle a bindable function to a slightly better position + docs: say that 'cutwordright' is now bound to by default + docs: slightly reword the description of four bindable functions + docs: the 'noconvert' bindable function was renamed to 'flipconvert' + dropping a feature: remove the ability to use the 'formatter' command + easter: show the crawl only when there is room enough for the lines + files: add the file format on the status bar when switching buffers + filtering: wait for the data-sending process to terminate too + gnulib: update to its current upstream state + help: for ^R^X, mention that the buffer can be piped to the command + help: move "Search Again" away from "Find Next" and "Find Previous" + input: consume the whole escape sequence for modified PgUp and PgDn keys + input: fully consume modified PgUp and PgDn keys also in the tiny version + input: ignore any s before a valid command keystroke + input: stop from entering "3~" into the buffer + input: stop a modified Delete key from entering stuff into the buffer + mouse: put the row/column arguments in the proper order [coverity scan] + prompt: concentrate manipulations of 'statusbar_x' into a single file + prompt: remove redundant redrawings of the prompt bar + rcfile: allow to rebind the Cancel function in the yesno menu + rcfile, docs: no longer recognize nor mention 'set backwards' + rcfile: do not accept rebinding F0 nor function keys above F16 + rcfile: ensure that in the yesno menu Cancel is bound to some keystroke + rcfile: explicitly check for disallowed keywords in included files + rcfile: reject things like "M-Del" and "^{" as invalid key names + rcfile: when a vital function is not mapped, mention in which menu + search: include 'findprevious' and 'findnext' in the tiny version + signals: don't call a print routine in a signal handler + speller: do not replace the text when the temporary file did not change + startup: don't overwrite rcfile error messages on a Linux console + startup: show the correct number of lines when opening multiple files + syntax: awk: recognize any {g,m,n,}awk script also by its shebang line + syntax: default: colorize also two-digit and capitalized nano versions + syntaxes: remove all traces of the 'formatter' command + syntax: nanorc: recognize 'yesno' as a valid menu to bind/unbind keys in + syntax: nanorc: show ^@ as validly rebindable, but not any ^digit + syntax: python: avoid coloring the three special values inside strings + text: add auto-whitespace to the file size after creating the undo item + tweaks: adjust indentation after the previous change + tweaks: adjust one more translator hint, for removed toggles + tweaks: adjust some translator hints for past changes, and add two more + tweaks: adjust two comments, to be more accurate and general + tweaks: avoid dereferencing a pointer when it is NULL [coverity scan] + tweaks: close a temp file only when descriptor is valid [coverity scan] + tweaks: correct a comment, rewrap a line, and drop some debugging stuff + tweaks: delete some old debugging code that no longer seems useful + tweaks: don't bother having debug code that deallocates all memory + tweaks: don't call va_start() without calling va_end() [coverity scan] + tweaks: drop a condition that has been made redundant two commits ago + tweaks: drop some old debugging code + tweaks: elide a bunch of unneeded constant strings + tweaks: elide a function that is used just once + tweaks: elide another function that is used just once + tweaks: elide an unneeded/duplicate variable + tweaks: elide a one-line function -- no, a half-line function + tweaks: elide a subfunction that is used just once + tweaks: exclude a global flagging variable when it is not needed + tweaks: exclude the file-prepending code from the tiny version + tweaks: fix a pasting error from a month ago + tweaks: implement the name-to-menu function in another manner + tweaks: improve a couple of comments in the sample nanorc + tweaks: improve a translator hint and some other comments + tweaks: move a call to where it will be executed [coverity scan] + tweaks: normalize the indentation after the previous change + tweaks: properly escape "\" in a man page and "@" in a texi document + tweaks: recognize escape sequences of modified Ins/Del more precisely + tweaks: reduce the counting of characters to just the needed function + tweaks: remove a redundant "struct" word, and replace it in comments + tweaks: remove a superfluous condition and a redundant refresh + tweaks: remove redundant braces and conditions after the previous change + tweaks: remove some braces that are now superfluous + tweaks: remove some ineffectual parts from header-line regexes + tweaks: remove the superfluous calls that reset the mbtowc() state + tweaks: remove two needless words, and split up a changed text further + tweaks: remove two superfluous assignments + tweaks: rename a constant, to match what it actually means + tweaks: rename a function and place its call better + tweaks: rename a function to better match its counterpart + tweaks: rename a function, to better state what it does + tweaks: rename a variable and a function, for more clarity + tweaks: rename a variable, to better match its task + tweaks: reshuffle some lines, in order to elide one + tweaks: reshuffle the order of the bindings, for help-line esthetics + tweaks: show "Space" and "Bsp" in the help text of the browser + tweaks: slightly improve error message when vital function is unmapped + tweaks: use a shorter message, because when the screen is small... + undo: differentiate between general filtering and spell checking + +Brand Huntsman (4): + input: give feedback for all unbound keys also in the help viewer + statusbar: elevate three messages to an ALERT, to make them more visible + tweaks: correct four spaces of indentation to a tab, in two places + tweaks: remove the 'bright' field from the colortype struct + +David Lawrence Ramsey (13): + bindings: make "n" work again in file browser and help viewer + bindings: make ^Q start a backward search also in the file browser + docs: mention that "Ins" and "Del" are valid rebindable keys + justify: verify being in a paragraph before trying to find its beginning + speller: hook up a full alternative spellcheck to the undo system + speller: hook up a marked-text alternative spellcheck to the undo system + speller: make replace_buffer() use the cutting functions directly + speller: make replace_marked_buffer() use the cutting functions directly + undo: actually enable undoing/redoing an alternative spellcheck + undo: always initialize the 'newsize' element in the undo struct + undo: position the cursor properly when undoing/redoing magicline cuts + undo: restore the cursor position when a cut and paste are paired + undo: store the correct cursor position after a paired cut+insert + +Devin Hussey (2): + files: speed up reading by using getc_unlocked() instead of getc() + syntax: sh: recognize more file extensions and header lines + +Marco Diego Aurélio Mesquita (1): + input: erase the next word when Ctrl is held while pressing Delete + +Mark-Weston (2): + build: fix compilation when CC=tcc + syntax: lua: do not color strings inside comments, and add a linter + + +Changes between v2.9.7 and v2.9.8: +---------------------------------- + +Benno Schulenberg (64): + build: fix compilation failure when configured with --enable-tiny + build: fix compilation when configured with --disable-justify + build: fix compilation when configured with --disable-multibuffer + build: fix compilation with --enable-{tiny,help,multibuffer} + bump version numbers and add a news item for the 2.9.8 release + copyright: update the years for significantly changed files + credits: sort the names roughly according to amount of influence + docs: add a missing double quote in the default brackets string + docs: describe what constitutes a paragraph + docs: improve description of 'speller' and related bindable functions + docs: improve the description of --nonewlines, and properly sort it + docs: improve the description of the --autoindent option + docs: make quotes around regexes bold, as they are part of the command + docs: mark the filtering of text through an external command as done + docs: register Marco as the author of the filtering feature + docs: remove mention of the quotestr for when regex support is lacking + docs: remove quotes around the name of a syntax -- they are not needed + docs: thank Kamil for his bug fixes, and update an email address + docs, usage: make it clear that the argument of --quotestr is a regex + files: give feedback during writeout also when prepending or appending + filtering: pair the cut and the insert, so they can be undone together + gnulib: update to its current upstream state + justification: find the beginning of a paragraph in a better way + justification: limit the amount of recursion to prevent a stack overflow + justification: recognize indented paragraphs also without --autoindent + justification: when leading whitespace exceeds fill width, wrap anyway + linter: don't try to access absent stat info, as that gives a crash + linter: make sure that the margin is updated before displaying a buffer + linter: make sure the shortcuts bar will redrawn when exiting early + main: add "/" to the quoting regex, to allow justifying //-comments + main: interpret only a double slash (//) as quoting, not a single one + rcfile: don't crash when a bind to a string lacks the closing quote + startup: provide a hint for people unfamiliar with the ^char convention + syntaxes: condense and/or correct some extension regexes + syntax: makefile: color all keywords that GNU make recognizes + tweaks: adjust a translator hint + tweaks: avoid an unused-variable warning with --enable-tiny + tweaks: avoid a warning with --enable-{tiny,help,multibuffer} + tweaks: condense a comment, and elide an unneeded 'if' + tweaks: condense some repetitious comments, and check before assigning + tweaks: condense two statements into one, and elide a 'break' + tweaks: elide a function that is called just once + tweaks: elide another function that is called just once + tweaks: exclude an unneeded 'if' from the single-buffer version + tweaks: frob a couple of comments + tweaks: frob some comments, and rename two parameters to make sense + tweaks: give some continuation lines a more obvious indentation + tweaks: improve a couple of comments, and reshuffle a group of lines + tweaks: make better use of an existing variable + tweaks: make better use of an intermediate variable + tweaks: reduce the abundance of the word 'toggle' in the Info manual + tweaks: remove a superfluous assignment -- the lead length never changes + tweaks: remove two superfluous checks, after making one of them so + tweaks: rename a function, for more aptness and extra contrast + tweaks: rename a variable, for contrast, and improve two comments + tweaks: rename a variable, to give it some meaning + tweaks: rename two variables, to better fit their tasks + tweaks: reshuffle a condition, and adjust a comment and some indentation + tweaks: reshuffle a couple of assignments + tweaks: simplify the determining of the prefix for justified lines + tweaks: stop decreasing both the iterator and the limit of a loop + tweaks: use a more meaningful variable name, and avoid a distant 'else' + wrapping: use "smart" autoindenting only when hard-wrapping is enabled + wrapping: when autoindenting, use indentation of next line as example + +Brand Huntsman (1): + tweaks: avoid two unused variable warnings when NLS is disabled + +Cristian Caloghera (1): + syntax: makefile: recognize also an all-lowercase makefile name + +David Lawrence Ramsey (3): + bindings: add the "flippipe" bindable function + tweaks: avoid an unused variable warning with --enable-tiny + tweaks: fix some grammar plus a typo in the comments + +Marco Diego Aurélio Mesquita (2): + linter: check all open buffers, instead of just the next one + new feature: allow piping (selected) text to an external command + + +Changes between v2.9.6 and v2.9.7: +---------------------------------- + +Benno Schulenberg (21): + bindings: add the 'linenumbers' bindable function + bindings: rename constupdate to constantshow, cuttoend to cutfromcursor + bump version numbers and add a news item for the 2.9.7 release + docs: add notes about deprecated options and function names + docs: break down some old improvements further per version + docs: note a small difference with Pico in the default hard-wrapping + docs: say thanks to three recent translators, and re-sort two others + docs: slightly improve the description of the file browser in the manual + main: clear a spurious error number, to avoid irrelevant messages later + prompt: when asking for Yes/No/All, recognize also UTF-8 letters + scrolling: only do a scroll when the edit window has more than one row + signals: don't trap segfault/abort when envvar NANO_NOCATCH is defined + signals: exclude the crash handler from the tiny version + startup: suggest using ^D to finish reading from standard input + tweaks: improve a couple of comments + tweaks: normalize indentation and whitespace after previous changes + tweaks: put check for -h and -l options in their alphabetical positions + tweaks: put Yes/No/All in a consistent order (for the translators) + tweaks: rename two variables, to be more descriptive + tweaks: sort an option better, and reschedule a removal + tweaks: use symbolic names instead of puzzling TRUE and FALSE + +Devin Hussey (1): + signals: upon a crash, save changed buffers and reset terminal state + +Mark-Weston (1): + new feature: an option to make the 'nextword' function stop at word ends + + +Changes between v2.9.5 and v2.9.6: +---------------------------------- + +Benno Schulenberg (39): + build: do not prefix an alternative rcfilename with a dot + build: fix compilation when configured with --disable-help + bump version numbers and add a news item for the 2.9.6 release + command-execution: do not crash when opening the pipe would fail + completion: correctly do a signed comparison, to avoid a segfault + files: prevent a hang when a call to sigaction() would fail + formatting, linting: redetermine the argument list for every run + gnulib: update to its current upstream state + memory: use a reallocation to reduce the amount of leakage + prompt: recognize Yes/No/All in English when the locale gives no match + rcfile: skip color commands where some color name is invalid + scrolling: don't redraw entire edit window when cursor goes offscreen + search: always go forward by default, also when coming from Goto-Line + search: use a better value to mean "nothing was typed" + speller: don't add an extra newline when saving the text to a tempfile + syntax: po: highlight also other escaped characters, not just \n + syntax: sh: colorize options only when they are preceded by whitespace + tweaks: adjust the translator hint about Yes/No/All + tweaks: correct or improve a couple of comments + tweaks: elide a function that is called just once + tweaks: fix a typo, remove a blank line, and improve some comments + tweaks: frob a couple of comments + tweaks: group some more of the empty functions together + tweaks: improve some comments, and exit with nonzero status upon error + tweaks: improve the ordering of a couple of functions + tweaks: invert two conditions and reshuffle, to reduce duplication + tweaks: move a function to its proper location + tweaks: move a function to its proper location + tweaks: rearrange a few if statements more symmetrically + tweaks: remove the group handling for undoing/redoing (un)indents + tweaks: rename a function, to be more distinct from its caller + tweaks: rename a function, to be more fitting and descriptive + tweaks: rename a variable, for clarity + tweaks: rename a variable, to be a bit more fitting + tweaks: rename a variable, to be more clear and to match another + tweaks: rename a variable, to match another and to be more visible + tweaks: reshuffle two declarations + tweaks: set the correct flags just once for each spell-fixing session + tweaks: use meaningful names instead of puzzling values + +Liu Hao (1): + replacing: always clear the backwards flag for ^\, just like for ^W + + +Changes between v2.9.4 and v2.9.5: +---------------------------------- + +Benno Schulenberg (45): + build: exclude more things when configured with --disable-multibuffer + build: fix compilation again when configured with --enable-tiny + build: fix compilation when configured with --disable-multibuffer + build: fix compilation with --enable-{tiny,help,multibuffer} + bump version numbers and add a news item for the 2.9.5 release + cut: avoid calling renumber() on what might be NULL + docs: clarify how the Linux console is deficient: in the arrow keys + docs: clarify what the scrollup and scrolldown bindable functions do + docs: document the newly added color name "normal" + docs: mention in the FAQ that pastes from the clipboard + files: prevent an infinite loop when reading from standard input fails + files: prevent the undo of reading a file into a new buffer + help: describe the Scroll-Up and Scroll-Down commands more precisely + help: do not reserve space for line numbers, as they are absent + linting: drop messages for other files when configured for one buffer + memory: plug a leak, by actually freeing a discarded undo struct + scrolling: first move the cursor before pushing current chunk offscreen + scrolling: let Scroll-Up/Down keep the cursor in the same text position + selecting: don't cancel a softmark when just scrolling the screen + small addition: understand color name "normal" to mean the default color + syntax: sh: color also the 'cut', 'head', 'tail', and 'sort' commands + syntax: sh: color options distinctively, and color also long options + syntax: sh: uncolor "tar" when it's part of a filename + tweaks: adjust a couple of types, to reduce the number of warnings + tweaks: adjust or correct some comments, and rename a function + tweaks: adjust the indentation after the previous changes + tweaks: bundle some settings for a new buffer + tweaks: change a parameter of open_buffer() and invert its logic + tweaks: condense some code, to remove a bit of duplication + tweaks: drop a handful of unhelpful asserts + tweaks: elide an unneeded and shadowing variable + tweaks: elide a parameter, as it's always the inverse of another + tweaks: elide a parameter that is always 1 + tweaks: elide two parameters and thus a pair of wrapper functions + tweaks: factor out the check for 'viewok' into its own function + tweaks: fix a typo and adjust some wording and formatting in the FAQ + tweaks: frob some comments plus miscellaneous other stuff + tweaks: fuse two ifs into one + tweaks: move an 'if' and then remove an unneeded label + tweaks: reduce the font size of the questions in the FAQ + tweaks: remove an inconsistent space from two pointer declarations + tweaks: remove unneeded settings and unsettings of MULTIBUFFER + tweaks: reshuffle some movement code, to reduce the number of conditions + tweaks: revert commit c88a2fd9 -- the extra variable is needed + tweaks: rewrap and amend some lines in the NEWS file + +David Lawrence Ramsey (1): + tweaks: correct several parameter types + +Kamil Dudka (1): + input: do not crash if sctofunc() returns NULL + +Liu Hao (1): + build: fix compilation error when configured with --disable-justify + + +Changes between v2.9.3 and v2.9.4: +---------------------------------- + +Benno Schulenberg (65): + bindings: make a key defined as string work also in browser and viewer + bindings: rename the bindable function 'gototext' to 'flipgoto' + bindings: revert the ^/ changes, as ^/ is not always Go-To-Line + bindings: show ^/ instead of ^_ for Go-To-Line + build: fix compilation when configured with --enable-tiny + bump version numbers and add a news item for the 2.9.4 release + docs: mention that a key can be bound to a string + docs: note also in the Info manual that text can be selected with Shift + editing: when --smooth is used, make -at-bottom scroll one row + general: detect in a better way whether we're running on a Linux console + gnulib: update to its current upstream state + goto: avoid a segfault, by initializing 'answer' when it is NULL + help: mention that some keys work on a region when the mark is on + help: tweak the descriptions of ^X and ^R + input: handle the implant() function separately also for the prompt + input: handle the implant() function separately, as it is special + memory: avoid a leak when toggling from Search to Goto + memory: squeal when there is something wrong, instead of stumbling on + new feature: allow binding a key to a string (in a nanorc file) + prompt: disallow pasting when in restricted mode + rcfile: allow a syntax name to be unquoted + search: clear the existing answer when starting a new search + search: get rid of some unneeded recursion when just toggling things + selecting: cancel the softmark upon any attempt to move the cursor + small addition: allow customizing the color of an error message + syntax: color also ^/ in nano's help texts and in nanorc files + syntaxes: remove quotes from each syntax name, and color it differently + syntax: nanorc: color also bindings to a string as valid + tweaks: adjust comments and indentation after the previous change + tweaks: adjust two comments, move two declarations, rewrap three lines + tweaks: appease valgrind concerning syscalls with uninitialized values + tweaks: condense a comment and elide an 'if' + tweaks: correct a typo in NEWS + tweaks: correct a typo that broke binding a key to a string + tweaks: do not needlessly renumber the lines in the buffer + tweaks: don't call strcmp() to determine whether a string is empty + tweaks: drop an assert, add a warning, and change a 'for' to a 'while' + tweaks: drop some debugging stuff, and adjust what remains of it + tweaks: elide another variable, to call a function less often + tweaks: elide an unneeded variable + tweaks: elide an unneeded variable + tweaks: elide an unneeded variable + tweaks: elide an unused variable and parameter + tweaks: elide two unneeded booleans + tweaks: exclude an unlikely error message from the tiny version + tweaks: exclude an unlikely warning from the tiny version + tweaks: fix a copy-and-paste error + tweaks: make the fsfromline() call only for the undo types that need it + tweaks: plug a memory leak when using Verbatim Input at a prompt + tweaks: refactor the implanting of a key expansion + tweaks: remove another superfluous check + tweaks: remove a superfluous check + tweaks: remove two deprecated options and six rebindable function names + tweaks: remove two superfluous checks, and restrict two others + tweaks: rename a parameter and a variable, to be more fitting + tweaks: rename a variable to be more distinct and greppable + tweaks: rename two variables, to be more meaningful + tweaks: reshuffle some code, to be slightly less ugly + tweaks: reshuffle some of the search-and-replace cleanup calls + tweaks: reshuffle the undo types into mostly the same order everywhere + tweaks: shorten the name of two record elements + tweaks: slightly rewrap the FAQ's table of contents + tweaks: transform a 'do' to a 'while', and reshuffle a comment + tweaks: unabbreviate two variable names + undo: when redoing, don't try to find a line number that might not exist + +Brand Huntsman (1): + color: remove unneeded bright comparison to prevent duplicate pairs + +David Lawrence Ramsey (3): + docs: mention that errorcolor does have default colors + input: don't stop prepending when the user adds text via a shortcut + tweaks: fix typo in rebindable function name + +Tom Levy (1): + syntax: go: highlight also floats with leading zeroes as valid + + +Changes between v2.9.2 and v2.9.3: +---------------------------------- + +Benno Schulenberg (65): + build: fix compilation when configured with --enable(tiny,color,nanorc} + build: fix compilation with --enable-tiny --enable-justify + build: let ./configure fail (not just warn) when curses.h is missing + bump version numbers and add a news item for the 2.9.3 release + copyright: update the years for the FSF + display: wipe the status bar when doing a total refresh + docs: remove the note about needing a recent ncurses for macros to work + docs: update the FAQ for the changed default location of history files + docs: update the TODO file to the current state of affairs + gnulib: update to its current upstream state + help: don't get stuck when there is an unwrappable piece of text + input: consume only the actual length of an escape sequence + input: fully reset state when a three-digit character code is cut short + input: make do an unindent also on a Manjaro console + input: recognize escape sequences for and + input: recognize more escape sequences for and + input: recognize the deviant keycode for in urxvt + options: recognize -M and --trimblanks on the command line + painting: look for an end match only after a start match, if any + prompt: show whitespace only in the filename, not in the whole line + replacing: don't skip the first character of a backwards-marked region + search: suppress the occurrence at the cursor only when replacing + startup: allow a named pipe as file argument when --noread is used + startup: make an error message succinct and to the point + startup: move the initialization of colors, so any error gets printed + syntax: go: colorize only valid octal numbers + syntax: lua: do not color debug.setinfo as it doesn't exist + syntax: nanohelp: color also the Sh-Tab key combo + tweaks: change a 'do' to a 'while', and return early to elide an 'if' + tweaks: check for the type of terminal far earlier + tweaks: condense a condition and a comment, and reshuffle a line + tweaks: condense and rewrap some comments, and reindent two lines + tweaks: condense the conditional compilation of shortcut reassignments + tweaks: don't bother freeing the key buffer, just reallocate it + tweaks: don't bother to reallocate when the keybuffer size decreases + tweaks: drop a superfluous parameter, as it is always 1 + tweaks: drop a useless assert, and don't abort over an unhandled option + tweaks: drop two unneeded initializations, and trim a comment + tweaks: elide a tiny intermediate buffer, and rename two variables + tweaks: exclude --trimblanks when no wrapping or justifying is configured + tweaks: fully include Savefile and Wherewas in the tiny version + tweaks: indenting text files with tabs is not a good idea + tweaks: mark the two blocks that have a deviant indentation + tweaks: move a bunch of comments to the lines that they refer to + tweaks: move two functions to their proper place, orderingwise + tweaks: remove a fragment of dead code + tweaks: remove a handful of redundant (because always true) asserts + tweaks: remove a superfluous case -- there can never be four digits + tweaks: remove a superfluous check, as we insert always one code + tweaks: rename a function, for aptness, and drop a superfluous check + tweaks: rename a function, to be more distinct + tweaks: rename a variable, and further condense some comments + tweaks: rename a variable, for more contrast + tweaks: rename a variable, to better fit its usage + tweaks: rename two variables, and swap their declaration order + tweaks: rename two variables, for preciseness and shortness + tweaks: reshuffle a couple of lines + tweaks: reshuffle a couple of lines, to make a bit more sense + tweaks: reshuffle some stuff, and avoid a memory leak + tweaks: reshuffle two condition series, to look better + tweaks: rewrap a bunch of lines in the NEWS file + tweaks: set a modifier in a single place, for conciseness + tweaks: swap the row and col parameters to a more consistent order + tweaks: transform a parameter, from a pointer to the value itself + wrapping: don't trim a blank character that the user just typed + +Brand Huntsman (1): + startup: parse interface colors when they are read, not when initialized + + +Changes between v2.9.1 and v2.9.2: +---------------------------------- + +Benjamin Mintz (1): + syntax: python: add 'async', 'await', and 'nonlocal' as keywords + +Benno Schulenberg (62): + bump version numbers and add a news item for the 2.9.2 release + display: ensure that cursor is visible when compiled with --with-slang + docs: mention that the source code is best viewed with a tab size of 4 + docs: say thanks to some fairly recent translators, and rename one + gnulib: pull in the fix for the missing stat include + gnulib: update to its current upstream state + help: show that "Tab" will indent, just like "Sh-Tab" will unindent + help: swap the order of the Complete and Comment functions + indenting: don't exclude last line of region when region is empty + indenting: keep affecting last line of marked region if it was at first + input: allow using and to (un)indent selected region + input: make work also when using --rebindkeypad + input: optimize a bit for non-shortcut keys, as they are most frequent + options: rename 'justifytrim' to 'trimblanks', because it has morphed + prompt: blank the bar when a "continue?" is answered with No or ^C + syntaxes: remove redundant word-boundary markers + syntax: javascript: add some comments, and color explicit numbers too + syntax: javascript: add some keywords, and sort them more logically + syntax: javascript: color strings differently from major keywords + syntax: javascript: require that a comment is preceded by whitespace + syntax: lua: condense some regexes, tweak comments, reorder things + syntax: nanorc: don't color parts of valid strings as if invalid + syntax: python: color also the special values 'False', 'None', 'True' + text: allow unindenting when not all lines are indented + text: keep cursor at left edge when it IS there when indenting/commenting + text: let a Shift-selection persist when indenting and commenting + text: let indenting/commenting skip the last line if its x is zero + text: set and reset the Modified state correctly when undoing/redoing + tweaks: add a separate function that actually wipes the status bar + tweaks: avoid incrementing a variable that won't be used again later + tweaks: condense or rewrap a bunch of repetitious comments + tweaks: condense, reword, and rewrap a bunch of comments + tweaks: condense some debugging code, and rewrap a line + tweaks: convert the indentation of the NEWS file too + tweaks: convert the indentation to use only tabs + tweaks: drop some old debugging code plus a superfluous comment + tweaks: elide two parameters from the get_region() function + tweaks: elide two variables that are used just once + tweaks: factor out a piece of common code + tweaks: fix some whitespace errors, and convert alignment tabs to spaces + tweaks: fold some regexes into one another, for conciseness + tweaks: frob four comments, and rewrap two lines + tweaks: invert the logic of a variable, and rename it + tweaks: limit the resetting of "Modified" to writing a full buffer + tweaks: move some frequently-used keystrokes to the top of the list + tweaks: remove a redundant call of renumber() + tweaks: remove a superfluous condition + tweaks: remove a superfluous placing of a terminating nul byte + tweaks: remove some unneeded parentheses, and shorten two function calls + tweaks: remove two irrelevant conditions + tweaks: rename three variables, for more contrast and variety + tweaks: reshuffle a bit of common code, moving it to an existing function + tweaks: reshuffle another bit of code, for conciseness + tweaks: rewrap some lines and some comments, and trim two others + tweaks: slightly rename four functions, for aptness and variety + tweaks: strip some debugging stuff, and condense a bit of code + tweaks: trim another placing of a terminating nul byte + tweaks: use for git the more faithful "less -x1,5" suggested by Brand + tweaks: use spaces for alignment also in the THANKS file + wrapping: delete trailing blanks upon hardwrapping, when requested + wrapping: keep prepending to the same next line as long as possible + wrapping: we're still on the same line if the next line has not changed + +David Lawrence Ramsey (3): + input: support backtab when Slang and/or --rebindkeypad is used + tweaks: use printf's z modifier for (s)size_t, instead of casting + undo: when adding text adds a magicline, an undo should remove both + +Liu Hao (1): + syntax: c: increase the color contrast of reminders like FIXME + +Michael Francis (1): + syntax: php: function and variable names can contain uppercase and digits + +Mike Frysinger (1): + syntax: javascript: add newer keywords and string syntax + +Tom Levy (6): + syntax: go: fix word boundary before dot in number literal + syntax: go: sign of exponent in number literal is optional + syntax: lua: add new and missing standard library functions + syntax: lua: correct the word boundaries on standard library functions + syntax: lua: require at least one digit for hexadecimal numbers + syntax: lua: support fractional part and exponent for decimal and hex + + +Changes between v2.9.0 and v2.9.1: +---------------------------------- + +Benno Schulenberg (20): + build: fix compilation with --disable-browser --disable-tabcomp + bump version numbers and add a news item for the 2.9.1 release + files: always update the stat info when the entire file is written + files: save the marked region only when we've prompted for a file name + gnulib: update to its current upstream state + history: create the path '~/.local/share/' when it is needed + history: make nano's state directory accessible for the user only + history: save the positions file also when a record was deleted + input: make the macro key discoverable by giving feedback when undefined + linting: switch the mark off when the linter starts + selecting: do not cancel the softmark when the cursor is not moved + selecting: let a justification cancel a softmark + syntax: adjust the magic strings for the changes since file-5.10 + tweaks: adjust indentation after previous change + tweaks: elide the 'mark_set' boolean -- the 'mark' pointer is enough + tweaks: rename, rewrap, and reshuffle some stuff, and frob some comments + tweaks: reshuffle a couple of lines, and frob a comment or two + tweaks: reshuffle a couple of lines, to put similar things together + undo: clear the Modified state when the very first edit is undone + undo: discarding the stack does not always lose information + + +Changes between v2.8.7 and v2.9.0: +---------------------------------- + +Benno Schulenberg (103): + bindings: don't allow calling help when searching in the help viewer + bindings: make ^Q and ^S do something useful by default + bindings: make the search function rebindable again in help and browser + bindings: make ^W start always a forward search (as there is ^Q now) + browser: place the cursor properly on the selected file when -g is used + build: let git ignore also the generated PDF file + bump version numbers and add a news item for the 2.9.0 release + copyright: update some years, and standardize on the dashed format + display: keep the cursor switched on when resizing the screen + display: rework the switching on and off of the cursor + display: stop the help viewer from turning on the multibuffer indicator + display: switch off the cursor early on during startup + docs: make it clearer that a Signed-off-by is wanted on patches + docs: mention that macros work correctly only on terminal emulators + docs: remove another remark about indenting lacking undo capability + docs: update references to the nanorc files for the XDG changes + files: avoid an abortion when executing a command in a new buffer + gnulib: update to its current upstream state + help: don't fall back to other syntaxes if there is no nanohelp one + history: after loading the lists, mark them as unchanged + history: remove the migration service for the old searches file + input: recognize Option+Arrow keys on iTerm2 in "xterm mode" + moving: don't slither and slide over tabs when they are overlong + moving: prevent the cursor sticking on or skipping over overwide tabs + new feature: a bindable function that starts always a backward search + options: remove '--quiet' and 'set quiet', because they hide problems + options: retire 'set backwards' -- it's still recognized but a no-op + organization: move all history-related stuff to its own file + ouch: set the positions-file name also when using the legacy state dir + painting: evade an ncurses bug by adding the A_PROTECT attribute + search: suppress the "not found" message when replacements were made + search: suppress the "Search Wrapped" message when doing replacements + search: wipe reassuring feedback as soon as searching has finished + startup: don't ask the user to press Enter upon an rcfile error + startup: don't produce more than three consecutive beeps + startup: when an rcfile contains errors, report this on the status bar + syntax: default: use colors that are readable also on dark backgrounds + titlebar: don't reshow version when dropping back to a single buffer + titlebar: don't show nano's name and version when in the file browser + titlebar: drop the prefix "File: " from before the filename + tweaks: add a translator hint, and adjust two others + tweaks: adjust a comment, and condense a fragment of code + tweaks: adjust indentation and comments after the previous change + tweaks: adjust two comments, and correct and a few cosmetic mistakes + tweaks: avoid an unused-variable warning with --disable-nanorc + tweaks: change some mayday messages, to urge the user to report a bug + tweaks: change the arrows to triangles also for searching in file browser + tweaks: change the help-text arrows to triangles, to be more visible + tweaks: chuck a bunch of asserts -- they have lost their usefulness + tweaks: chuck an assert, and then condense the code and a comment + tweaks: constify the result strings of getenv(), as a reminder + tweaks: correct two minor things in the documentation + tweaks: discard another set of useless asserts + tweaks: discard some obsolete debugging stuff + tweaks: don't construct the positions-history filename time and again + tweaks: drop a bunch of outdated asserts + tweaks: drop the ineffective cgitrc -- sorting by "age" does not work + tweaks: elide a comment, and improve a couple of others + tweaks: elide an unneeded check + tweaks: elide an unneeded function now that stuff is grouped together + tweaks: elide a superfluous allocation + tweaks: elide two variables by using a pointer instead of an index + tweaks: fix compilation when configured with --disable-histories + tweaks: fix compilation when configured with --enable-tiny + tweaks: fix compilation with --enable-tiny --enable-histories + tweaks: frob a couple of comments + tweaks: frob some comments and rename a few variables and a function + tweaks: get rid of some cluttering conditional compilation + tweaks: improve some comments, and rename a variable for symmetry + tweaks: make the switching on and off of the cursor a bit more compact + tweaks: move a general function to the utils.c file + tweaks: reduce a bit of code duplication + tweaks: remove a comment from the docs that is no longer accurate + tweaks: remove another bit of conditional compilation + tweaks: remove a superfluous no-op function call + tweaks: remove a useless prefix from a hundred constants + tweaks: rename a function and swap its two parameters + tweaks: rename a function plus two parameters, to be more fitting + tweaks: rename a macro, to make a little more sense + tweaks: rename a variable, to avoid a possible confusion + tweaks: rename a variable, to make more sense + tweaks: rename one variable once more + tweaks: rename some constants, to follow the same underscoreless scheme + tweaks: rename three functions, to be shorter or clearer + tweaks: rename three variables, for more contrast + tweaks: rename two variables, for contrast, and frob some comments + tweaks: rename two variables, to be more indicative of what they do + tweaks: rename two variables, to make a little more sense + tweaks: reshuffle a bit of code and elide an unneeded variable + tweaks: reshuffle a couple of lines, and trim some comments + tweaks: reshuffle some code, and rename a variable + tweaks: reshuffle some code in order to elide a variable + tweaks: reshuffle some regexes, for order and compactness + tweaks: strip four unneeded checks + tweaks: transform the token DISABLE_COLOR to ENABLE_COLOR + tweaks: transform the token DISABLE_EXTRA to ENABLE_EXTRA + tweaks: transform the token DISABLE_HISTORIES to ENABLE_HISTORIES + tweaks: transform the token DISABLE_JUSTIFY to ENABLE_JUSTIFY + tweaks: transform the token DISABLE_OPERATINGDIR to ENABLE_OPERATINGDIR + tweaks: transform the token DISABLE_SPELLER to ENABLE_SPELLER + tweaks: transform the token DISABLE_WRAPJUSTIFY to ENABLED_WRAPORJUSTIFY + tweaks: transform the token DISABLE_WRAPPING to ENABLE_WRAPPING + tweaks: use mnemonic constants instead of TRUE and FALSE + +Brand Huntsman (3): + bindings: allow exiting from the help viewer with F1, like with ^G + history: prevent overwriting of positions between multiple instances + syntax: nanohelp: colorize Up, Down, Left and Right (when not in UTF-8) + +David Lawrence Ramsey (18): + build: add history.c to the list of files with translatable strings + display: don't cut off zero-width characters at the end of a chunk + docs: describe the bindable functions 'recordmacro' and 'runmacro' + docs: document the more everyday names of three bindable functions + docs: remove man page reference to indent/unindent lacking undo/redo + files: don't change file format when inserting into an existing buffer + help: allow firstline and lastline to work at the search prompt + history: fix the check for an existing $HOME/.nano/ directory + moving: set the preferred column properly when doing a smart home + search: don't bother saving and restoring the search direction + search: trim a failed search string for width instead of length + softwrap: break before multi-column Unicode blanks when they overshoot + syntax: nanorc: properly color valid arguments of 'selectedcolor' + text: hook up indenting and unindenting to the undo/redo code + text: move the indenting of a single line into its own function + text: move the unindenting of a single line into its own function + tweaks: use printf's z modifier for most of the size_t/ssize_t types + undo: generalize update_comment_undo() into update_multiline_undo() + +Lion Yang (1): + input: ensure that standard input uses blocking mode + +Marco Diego Aurélio Mesquita (5): + general: do not free strings gotten from getenv(), to avoid a crash + history: remember the commands that were executed during this session + history: remember the list of executed commands across sessions + new feature: show current and total number of open buffers in title bar + new feature: the ability to record and play back a series of keystrokes + +Simon Ochsenreither (1): + startup: look for nanorc and history files also in the XDG directories + +Viorel Bota (1): + files: check for a changed disk file also for 'savefile' and --tempfile + + +Changes between v2.8.6 and v2.8.7: +---------------------------------- + +Benno Schulenberg (54): + bindings: hard-bind Alt+Up and Alt+Down to findprevious and findnext + browser: correct the inverted search behavior for Alt+Up/Alt+Down + bump version numbers and add a news item for the 2.8.7 release + display: catch all cases where the cursor can be pushed offscreen + display: don't doubly show tabs that cross a chunk boundary + files: do not silently ignore an invalid backup directory, but die + files: don't close a file descriptor when opening failed [coverity scan] + files: don't try to open a negative file descriptor [coverity scan] + gnulib: update to its current upstream state + linting: don't try to put the cursor at a negative x position + linting: skip the introductory message produced by 'gcc -fshow-column' + mouse: one click of the wheel should move three lines, not three pages + moving: don't push x forward when backward movement lands on a split tab + moving: get unstuck when trying to pass over a sprawling tab + moving: improve retention of the target column somewhat + moving: the current chunk is always 0 when not in softwrap mode + moving: use the correct formula for pushing the index forward + rcfile: don't leak a shortcut when something goes wrong [coverity scan] + softwrap: properly move up and down over tabs that are split over rows + syntax: c: give labels some color too + syntax: html: don't bother coloring tags that cross line boundaries + syntax: python: don't require a character after an opening triple quote + text: properly unindent lines that consist of only whitespace + tweaks: a comma does not end a sentence, and is not part of a variable + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: adjust the indentation after the previous change + tweaks: allow enough space for the Y/N/A characters [coverity scan] + tweaks: avoid trying to stat a file that might be NULL [coverity scan] + tweaks: close a file also in the error path [coverity scan] + tweaks: condense or improve some comments + tweaks: condense some logic, to elide a variable and a comment + tweaks: do not leak the indentation when all lines are empty + tweaks: don't close a descriptor when its stream has already been closed + tweaks: drop some debugging stuff + tweaks: drop some debugging stuff, and frob two comments + tweaks: elide an unneeded pointer + tweaks: elide the global variable 'full_operating_dir' + tweaks: fix compilation with --enable-{tiny,help,multibuffer} + tweaks: group all movement routines in corresponding pairs + tweaks: keep the const qualifier of the syntax name [coverity scan] + tweaks: remove includes that appear to be superfluous + tweaks: rename a function, to let it make more sense + tweaks: rename a label, to better match its task + tweaks: renumber the special key codes, to be in sequence and grouped + tweaks: reshuffle code and frob comments, to reduce the number of lines + tweaks: reshuffle some code to harmonize two related functions + tweaks: reshuffle some declarations and trim a few comments + tweaks: restore an include that is necessary on some platforms + tweaks: show "where is next" in the help lines of the file browser + tweaks: simply set the proper scrolling mode, instead of imitating it + tweaks: snip a superfluous clearing of the bottom bars after help + tweaks: sort the includes, so it's a little easier to see what is there + tweaks: specify more directly in what manner to move the viewport + +David Lawrence Ramsey (23): + browser: allow backward/forward re-searches with Alt+Up/Alt+Down + display: constrain line numbers on softwrapped lines with sprawling tabs + display: do show the visible character for a tab when it starts a row + display: revamp how screen updates are done in the movement code + moving: redraw not just the new current line but also the prior one + small addition: allow customizing the color of selected text + softwrap: correctly move vertically through overwide tabs + softwrap: don't push a straddling tab to the next chunk + softwrap: improve left/right navigation across line boundaries + softwrap: make sure char_len is set when a tab is wider than a chunk + softwrap: properly update the viewport when adding text at firstcolumn + text: make indenting add to the beginning of the line + text: make unindenting remove from the beginning of the line + tweaks: adjust spacing and wording in sample.nanorc + tweaks: correct a comment typo and an indentation error + tweaks: harmonize some prototypes with their functions + tweaks: remove unneeded parentheses and blank line and braces + tweaks: replace a misplaced tab with a space + tweaks: set the target row for smooth scrolling more directly + tweaks: use charalloc() instead of (char *)nmalloc() * sizeof(char) + weeding: drop the forreal parameter from place_the_cursor() + weeding: remove redundant casts of nmalloc() + weeding: remove the unused be_clever parameter from do_home()/do_end() + +Rishabh Dave (1): + new feature: allow pasting at all input prompts + +Urja Rannikko (1): + bindings: hard-bind Alt+Left and Alt+Right to buffer switching + + +Changes between v2.8.5 and v2.8.6: +---------------------------------- + +Benno Schulenberg (58): + build: for Solaris, tell the linker to use a threading lib + bump version numbers and add a news item for the 2.8.6 release + display: avoid a jumpy cursor by redrawing bottom bars only when needed + display: when back in the main loop, always redraw the help lines + display: wipe stale messages from the status bar straightaway + docs: add some more mark-up to the Info document + docs: be more precise about when a dash is given instead of a filename + docs: drop the cluttering Info-style links from the HTML manual + docs: improve cross references and mark-up in the Info document + docs: improve some spacing, especially of the synopsis in the PDF + docs: make the guillemot and the middle dot appear correctly in HTML + docs: move the descriptions of 'header' and 'magic' next to 'syntax' + docs: remove the mention of backslashes for the argument of 'comment' + docs: reword the explanation of the 'syntax' command + docs: use real cross references in the Info document + docs: use the @command and @option mark-up more consistently + files: don't bother counting rows when opening a fresh buffer + files: warn more conspicuously when the file on disk has changed + gnulib: update to its current state + input: recognize the Ctrl+Arrow key sequences from Haiku's Terminal + options: recognize -a and --atblanks on the command line + options: rename --cut to --cutfromcursor, to be clearer + pasting: restore the cap on the number of chunks to move backward + rcfile: don't require backslashing in the argument of 'comment' + screen: defeat a VTE/Konsole bug also for the case of --constantshow + screen: retain the same help-line tags when the window is resized + softwrap: when possible, go back a whole bunch of chunks at a time + startup: don't try parsing color names that were not specified + startup: in default mode, display the tail of the file as Pico does + suspension: prevent entering an invalid byte upon resume (with S-Lang) + syntax: gentoo: make it clearer that the file contains two syntaxes + syntax: man, groff: fix the string that introduces a comment + syntax: nanorc: don't color numeric arguments specially + syntax: nanorc: don't color the argument of 'linter' as if invalid + syntax: texinfo: cover also some special cases like @U, @OE and @TeX + tweaks: adjust an error message so it fits all possible cases + tweaks: avoid a clang warning about an expression being treated as NULL + tweaks: avoid a failure with black diamonds in a PDF + tweaks: avoid an unused-variable warning for the tiny version + tweaks: chuck some debugging stuff + tweaks: chuck two useless asserts, and elide a call to strncasecmp() + tweaks: correct two conditions for conditional compilation + tweaks: drop a bunch of useless asserts + tweaks: elide unneeded calls of get_last_chunk_leftedge() + tweaks: fix compilation with --enable-tiny + tweaks: move an include to the file that actually makes use of it + tweaks: put declarations always first, so it will compile on Haiku + tweaks: recognize the empty string as comment inhibitor, instead of NULL + tweaks: remove two superfluous includes + tweaks: rename a constant, to match the corresponding option + tweaks: rename another constant, to be more precise + tweaks: rename a variable, to have more contrast + tweaks: rename four functions, to be more distinct + tweaks: rename two variables, to make a little sense + tweaks: reshuffle some things to condense the code + tweaks: simplify the parsing of color combinations + tweaks: spell an option correctly in NEWS + tweaks: swap ^X and ^L in the help lines of the help viewer + +David Lawrence Ramsey (29): + display: when converting tabs, don't go beyond the screen width + docs: consistently describe the -U/-c and -r/-w overrides + docs: mention that boldtext can be overridden also for function tags + docs: mention the default values for comment and whitespace directives + moving: fix the cursor jumping back and forth with non-smooth paging + moving: make vertical movement account for varying chunk width + new feature: allow lines to be softwrapped at whitespace + replacing: make spotlight() account for varying chunk width + softwrap: add new functions for chunks of varying width + softwrap: don't flag EOL too early, nor break continuous text too early + softwrap: in do_mouse(), keep the cursor before a softwrap breakpoint + softwrap: make the changes to actually allow the chunk width to vary + softwrap: prepare for allowing the chunk width to vary + softwrap: remove unneeded caps on the number of chunks to move + syntax: nanorc: properly color a "fill" option with a negative value + text: adjust the comments in do_indent() and do_unindent() + text: make do_unindent() an exact copy of do_indent() + text: make sure commenting is disabled when comment "" was specified + text: normalize the indentation in do_indent() and do_unindent() + text: remove indent-related code from do_unindent() + text: remove the last usage of cols in do_indent() and do_unindent() + text: remove unindent-related code from do_indent() + text: remove unneeded references to cols from the indentation routines + text: update placewewant properly when indenting/unindenting + tweaks: correct a parameter type, and correct two empty initializations + tweaks: fix a typo in NEWS + tweaks: only compensate for a partially-offscreen line in softwrap mode + tweaks: remove unneeded braces, and mark empty parameter list as void + usage: a dash doesn't have to come first among the filenames + + +Changes between v2.8.4 and v2.8.5: +---------------------------------- + +Benno Schulenberg (35): + bindings: in the tiny version exclude word jumping from the prompts + bump version numbers and add a news item for the 2.8.5 release + display: don't let a SIGCONT write anything to the screen + display: don't show the cursor while we are busy calculating its position + display: redraw title bar and edit window only when needed + display: show the cursor position also when searching took a while + docs: avoid a double "see" for cross references in the HTML manual + docs: spell "title bar" and "status bar" correctly + gnulib: update to its current state + input: give an appropriate message when there are too many errors + startup: allow negative line and column numbers on the command line + startup: allow positioning the cursor also when reading standard input + startup: always open with the file that was mentioned first + startup: don't crash when opening standard input would fail + startup: don't mark the buffer as modified when in view mode + startup: don't mark the buffer as modified when nothing was read + startup: don't try placing the cursor when reading standard input failed + startup: don't use position history when reading from standard input + suspension: fake a SIGWINCH when coming back out of the background + suspension: remove a duplicate setting of the HUP and TERM handler + syntax: default: allow leading whitespace before a hash comment + tweaks: adjust indentation after preceding changes + tweaks: avoid compiler warning about implicit type + tweaks: be consistent in the spelling of title bar and status bar + tweaks: don't bother calculating the position when we won't show it + tweaks: elide a function that should not be a separate one + tweaks: elide a variable + tweaks: frob a few comments, and elide and #ifndef + tweaks: reduce the scope of three variables, and rename them besides + tweaks: reduce the scope of two variables, and rename them too + tweaks: rename a function and a variable, to better match what they do + tweaks: rename a variable, and frob a couple of comments + tweaks: rename two functions and a variable, and invert its logic + tweaks: reshuffle some stuff, to put related things closer together + tweaks: unglobalize the nodelay_mode variable + + +Changes between v2.8.3 and v2.8.4: +---------------------------------- + +Benno Schulenberg (11): + build: correct the inverted logic for the nanorc man page + bump version numbers and add a news item for the 2.8.4 release + gnulib: update to its current state + syntax: default: color also hash comments and email addresses + syntax: php: color "static" again as "function", like it used to be + tweaks: adjust the indentation after the preceding change + tweaks: avoid an unused-variable warning when using --disable-comment + tweaks: do actual screen refreshes in a single call, when possible + tweaks: remove the no-op x$disable tests + tweaks: reorder three items in the Info document + tweaks: reshuffle a few things to reduce duplication + + +Changes between v2.8.2 and v2.8.3: +---------------------------------- + +Benno Schulenberg (34): + bindings: allow toggling a new buffer when multiple buffers are enabled + build: don't use a dummy dependency, as it breaks non-GNU makes + build: for Solaris, tell the linker where to find clock_gettime() + build: use backticks to avoid a warning during autoreconf + build: use the "force" mechanism to always run the revision rule + bump version numbers and add a news item for the 2.8.3 release + chars: optimize moving a character left in the non-UTF-8 case + chars: probe for a valid UTF-8 starter byte, instead of overstepping + chars: valid UTF-8 codes are at most 4 bytes long, so look only that far + display: keep the cursor put, also when toggling nohelp or morespace + files: don't ask "save anyway" when user orders to discard the buffer + history: don't save the cursor position for temporary help files + moving: limit the target column when it is beyond the last chunk + replacing: don't let placewewant influence the placement of the cursor + startup: don't call delwin() with NULL, to avoid crashing on Solaris + syntax: makefile: color comments only at start of line or after whitespace + syntax: nanohelp: color also ^6 as a shortcut keystroke + syntax: php: color also variable names, and color more reserved words + syntax: php: recognize also the .phtml and .php7 extensions + syntax: xml: recognize an XML file also by its first line + tweaks: add another warning for an impossible condition + tweaks: adjust whitespace and comments after the preceding change + tweaks: avoid an empty function call in tiny version with line numbers + tweaks: exclude from the tiny version five error-betraying messages + tweaks: exclude from the tiny version two messages that will never occur + tweaks: fix compilation with --enable-tiny ...-help and ...-multibuffer + tweaks: remove an old fault-catching message + tweaks: remove five dummy function definitions from the tiny version + tweaks: rename three empty functions, and reshuffle some others + tweaks: rewrap a couple of old items in NEWS, and fix an article + tweaks: swap a comparison, to be clearer + tweaks: transform the token DISABLE_BROWSER to ENABLE_BROWSER + tweaks: transform the token DISABLE_NANORC to ENABLE_NANORC + tweaks: transform the token DISABLE_TABCOMP to ENABLE_TABCOMP + +David Lawrence Ramsey (2): + display: ensure smooth scrolling when the edit window is resized + tweaks: fix several whitespace irregularities + + +Changes between v2.8.1 and v2.8.2: +---------------------------------- + +Benno Schulenberg (64): + bindings: allow using to scroll back up in the help viewer + bindings: allow using '/' to start a search in the help viewer + bindings: show Home and End in browser help text, instead of M-| and M-? + browser: make ^End work properly by fixing a paste error + build: make --enable-help properly depend on --enable-multibuffer + bump version numbers and add a news item for the 2.8.2 release + display: initialize the colors only when starting to draw the content + display: push the titlebar to the screen as soon as it has been drawn + docs: add an item to the FAQ, about pasting from Windows to a remote nano + docs: harmonize the nanorc man page and Info document a bit + docs: in the FAQ, extend the answer to the pasting problem + docs: reword the main paragraph of the man page + docs: update the list of who authored what + gnulib: update to its current state in git + help: after a search, show the cursor only when something was found + help: allocate enough space for the descriptions, so we don't crash + help: don't crash when nano was started with --noread + help: don't cycle forward in the buffers when exiting from help + help: keep the same position also after M-\ or M-/ has been used + help: keep the text at the same position when the screen is resized + help: remove the final blank line, so does the same as all + help: set tabsize to the default width while showing a help text + help: suppress nano's name and number to make it clearer this is help + help: use a dedicated syntax to color shortcuts in a help text + help: when searching, do it forward, without case, and without regexes + input: avoid crashing when resizing the window during verbatim input + options: allow -U (--quickblank) to be used in the tiny version + scrolling: don't bother to limit the number of lines to step back + startup: warn about a strange character size only in the UTF-8 case + syntax: nanohelp: change the hue of the keystrokes to match sample.nanorc + tweaks: add a warning for a condition that should never occur + tweaks: add three warnings for conditions that should never occur + tweaks: avoid an unused-variable warning + tweaks: be more precise about what --disable-extra does + tweaks: check for an empty needle in a central place + tweaks: complete the exclusion of backups and such from the tiny version + tweaks: condense two bits of code, and drop two asserts + tweaks: distinguish (in the comments) between buffers and linestructs + tweaks: drop a bunch of asserts + tweaks: elide a function that is used just once + tweaks: fix compilation with --enable-tiny --enable-color --enable-speller + tweaks: fix two typos + tweaks: remove a superfluous check + tweaks: remove a superfluous strlen() call from the reverse searches + tweaks: remove some superfluous placements of the cursor + tweaks: remove two superfluous calls of wnoutrefresh() + tweaks: rename a constant, to match the corresponding option + tweaks: rename a function, to be more accurate + tweaks: rename a function, to better suit what it does + tweaks: rename another function, to better describe what it does + tweaks: rename a parameter, to be more imperative + tweaks: rename a variable, use a faster comparison, and reshuffle a bit + tweaks: rename one variable again + tweaks: rename some more of these 'rev_start' variables + tweaks: rename three variables, elide another, and reshuffle some stuff + tweaks: rename two variables, because this 'rev_start' is irksome + tweaks: reshuffle a couple of lines to avoid a duplicate call + tweaks: reshuffle help-text initialization, to elide a save-and-restore + tweaks: reshuffle some more stuff, and rename two more variables + tweaks: swap the names of two variables, to make more sense + tweaks: transform the token DISABLE_MOUSE to ENABLE_MOUSE + tweaks: transform the token DISABLE_MULTIBUFFER to ENABLE_MULTIBUFFER + tweaks: use the logic from revstrstr() also in mbrevstrcasestr() + tweaks: use the logic from revstrstr() also in revstrcasestr() + +David Lawrence Ramsey (1): + docs: mention that also numbercolor overrides boldtext + +Rishabh Dave (1): + new feature: add a search facility to the help viewer + + +Changes between v2.8.0 and v2.8.1: +---------------------------------- + +Benno Schulenberg (33): + bindings: make ^Home and ^End go to top and tail of buffer + bindings: make ^Up/^Down go to first/last row in the file browser + bindings: use arrows instead of words to designate the cursor keys + bump version numbers and add a news item for the 2.8.1 release + copyright: update the year in --version, and use the standard hyphen + copyright: update the years, use ranges, and explain this usage + display: check the correct character for being double-width + display: with softwrap, show the cursor where the eye expects it + docs: correct an answer to a question in the FAQ + docs: mention another difference with Pico in the Info document + docs: remove the self-referencing stuff and the changelog from the FAQ + docs: trim the TODO file a bit, and put the more important items first + editing: avoid creating blank lines when using autoindent + files: check also for write errors when prepending, not just read errors + gnulib: update to current state + linting: treat a tab as one "column", not eight + linting: when no is said to a file, remove all corresponding entries + moving: when determining where we are on the screen, use placewewant + tweaks: adjust a couple of comments + tweaks: again use memory on the stack instead of malloc() and free() + tweaks: close the backup file also when we skip making a backup + tweaks: delete a function that hasn't been used since 2005 + tweaks: delete unnecessary function prototypes + tweaks: elide a variable and a pair of braces + tweaks: fix some inconsistencies in an old Changelog + tweaks: fix two typos in the NEWS file + tweaks: group ^D and ^H together in the help lines + tweaks: keep the help text aligned, also with the narrow arrows + tweaks: put M-A before ^6, to look better above M-6 in the help lines + tweaks: put unshifted shortcuts ^6 and M-6 first, instead of ^^ and M-^ + tweaks: reduce the number of additions that actual_x() performs + tweaks: replace a function call or a macro with a hard number + tweaks: use memory on the stack instead of calling malloc() and free() + +David Lawrence Ramsey (5): + bindings: use arrows instead of words for search history too + display: show '<' and '>' placeholders for characters that get split + input: support escape sequences for ^Home and ^End + scrolling: properly compensate for the onscreen chunks + tweaks: avoid a compilation warning + +Kamil Dudka (1): + backup: prevent a symlink attack by operating on the file descriptor + +Mike Frysinger (2): + configure: fix up word boundary regex logic now that we have gnulib + configure: ignore the REG_ENHANCED test when we use gnulib + + +Changes between v2.7.5 and v2.8.0: +---------------------------------- + +Benno Schulenberg (56): + bindings: accept "q" and "x" to exit from help viewer and file browser + bindings: group the three search-again shortcuts together + bump version numbers and add a news item for the 2.8.0 release + docs: mention some more differences with Pico in the Info document + files: drop the pointless "[from ./]" from the insert-file prompt + files: on second thought... keep the "[from ./]" + input: count a manually entered unicode as one character + moving: don't try to redraw lines that have gone outside the viewport + moving: /do/ redraw the prior line when the viewport hasn't changed + moving: the current chunk cannot be beyond the last chunk of a line + oops -- that's what you get when you don't test things before pushing + painting: don't try to start highlighting before column zero + screen: don't push the longer-line indicator ($) to the next row + spelling: keep the cursor at end-of-line if it was there + startup: add option 'nopauses' to disable pausing after a warning + tweaks: add a warning for a condition that should never occur + tweaks: avoid a few needless reallocations + tweaks: chuck some debugging stuff and some useless asserts + tweaks: condense some declarations by reshuffling + tweaks: correct some formatting irregularities in the FAQ + tweaks: don't loop over an initializer + tweaks: don't optimize for the wrong case + tweaks: don't turn the mark off before it's needed + tweaks: ehm... the warning is more important for the softwrap case + tweaks: elide an intermediate variable + tweaks: elide a small intermediate buffer + tweaks: elide a variable + tweaks: elide two variables, and condense some statements + tweaks: factor out a bit of common code + tweaks: fix compilation with --enable-tiny --enable-help + tweaks: frob a couple of comments + tweaks: frob some parentheses and other things, to be more consistent + tweaks: gettextize a forgotten error message + tweaks: make WhereIsNext available in browser in tiny version + tweaks: mark a message for translation + tweaks: optimize determining the number of columns that a text spans + tweaks: reduce the scope of five variables, and frob some comments + tweaks: remove a disabled warning, and adjust a translator hint + tweaks: rename and shorten a small helper function + tweaks: rename a variable and invert its logic + tweaks: rename a variable, drop a false assert, and reshuffle a bit + tweaks: rename three variables, to better distinguish bytes from columns + tweaks: rename two variables, to be more distinctive + tweaks: reshuffle some lines and adjust some comments + tweaks: reshuffle some more lines and improve four comments + tweaks: reshuffle some statements, to avoid double assignments + tweaks: reshuffle the bindings to group things more logically + tweaks: reshuffle three statements, and shorten a comment + tweaks: reshuffle two declarations for a more consistent order + tweaks: shorten a bit of logic + tweaks: simplify and correct a computation + tweaks: suggest a separate color scheme for root + tweaks: trim a displayable string in a more efficient manner + tweaks: use two extra variables to make it clearer what is being done + usage: don't mention +LINE,COLUMN as an option, because it isn't + wrapping: add the correct char length when skipping consecutive blanks + +David Lawrence Ramsey (52): + configure: don't check for the existence of iswspace() anymore + display: don't compensate for chunks before firstcolumn + display: don't draw more chunks than the screen can hold + display: limit an optimization to non-softwrap mode + display: make PageUp/PageDown use the correct beginning of the viewport + docs: update README.GIT for gnulib-related changes + files: revamp the insertion of a file, to be more like pasting text + moving: determine the correct leftedge when paging up/down too + replacing: fix spotlight() to highlight words properly in softwrap mode + softwrap: account for firstcolumn in reset_cursor() + softwrap: account for firstcolumn when checking for offscreen current + softwrap: account for firstcolumn when scrolling up a line + softwrap: account for softwrap in get_page_start() + softwrap: account for softwrapped chunks when adding text + softwrap: account for softwrap when checking whether current is offscreen + softwrap: add two chunk-iterator functions + softwrap: adjust firstcolumn when the window width changes + softwrap: count softwrapped chunks properly in do_gotolinecolumn() + softwrap: count softwrapped chunks properly in do_uncut_text() + softwrap: count softwrapped chunks properly in read_file() + softwrap: improve End's behavior with softwrapped chunks + softwrap: improve Home's behavior with softwrapped lines + softwrap: improve Left and Right's behavior with softwrapped chunks + softwrap: improve PageUp and PageDown's behavior with softwrapped chunks + softwrap: improve Up and Down's behavior with softwrapped chunks + softwrap: iterate through softwrapped chunks better in do_mouse() + softwrap: iterate through softwrapped chunks in adjust_viewport() + softwrap: iterate through softwrapped chunks in edit_scroll() + softwrap: move the updating of a softwrapped line to a new function + softwrap: prepare for a more flexible viewport + softwrap: remove and replace workarounds for firstcolumn + softwrap: save and restore firstcolumn when copying text + softwrap: save and restore firstcolumn when internally spell-fixing text + softwrap: save and restore firstcolumn when replacing text + softwrap: save firstcolumn when justifying, restore it when unjustifying + speller: fix replacing marked text in the alternate spell checker + syntax: nanorc: color also the option "linenumbers" as being valid + tweaks: add a parameter to do_home() and do_end() + tweaks: fix a comment typo + tweaks: mention nano's ability to read from standard input in usage() + tweaks: move comments outside of if blocks in break_line() + tweaks: prepare for improvements to do_home() and do_end() + tweaks: remove cluttering #ifdefs from break_line() + tweaks: rename need_horizontal_scroll() to line_needs_update() + tweaks: slightly optimize an allocation in display_string() + tweaks: stop converting text once we overshoot span columns + undo: fix undoing/redoing insertions, since they no longer do partitioning + usage: mention the -g/--showcursor option + weeding: remove ensure_line_is_visible() + weeding: remove maxlines and related code + weeding: remove partitioning and related stuff from do_insertfile() + weeding: remove partitioning and related stuff from do_justify() + +Hans-Bernhard Broeker (1): + tweaks: make sure calls to functions/macros use "unsigned char" + +Mike Frysinger (19): + add an explicit test for set_escdelay() + add support for gnulib + assume getopt_long support is always available + assume regex.h support is always available + configure: require autoconf-2.69/automake-1.14 + configure: require gettext-0.18.3, and drop our bundled m4 files + drop the getdelim/getline fallback functions + drop the glib fallback for snprintf/vsnprintf + drop the isblank/iswblank fallback functions + drop the wchar.h/wctype.h/stdarg.h checks + drop various str fallback functions + fix build on systems without pwd.h + handle builds on systems without termios.h + handle deficient signal systems + pull in the glob module from gnulib + pull in the lstat module from gnulib + pull in the nl_langinfo & wcwidth modules from gnulib + pull in the sys_wait module from gnulib + tweaks: disable gnulib's workaround for the globbing of broken symlinks + + +Changes between v2.7.4 and v2.7.5: +---------------------------------- + +Benno Schulenberg (65): + bump version numbers and add a news item for the 2.7.5 release + files: leave out the confusing "[from ./]" when prompting for a command + general: stop the spell checker from crashing after the changes in search + justify: reduce the character count when trimming trailing spaces + painting: account for index maybe being zero after the preceding change + painting: advance only when both start /and/ end match are zero-length + painting: do not bluntly ignore zero-length start matches -- handle them + painting: do not let a match for 'end' overlap a match for 'start' + painting: don't look at the current multidata when coloring a line + painting: make use of the multidata of the preceding line + painting: mark an unpaired start match as CWOULDBE + painting: properly detect a change in start/end matches + painting: properly look for a new start match only after the end match + painting: stay within the line when skipping zero-length matches + painting: when skipping a zero-length match, skip a character, not a byte + rcfile: don't accept empty regexes for syntax coloring + replacing: compensate cursor position only for replacements /before/ it + replacing: detect when the whole region has already been covered + replacing: don't go outside of the selected region + replacing: ignore the first match when the user said no + replacing: start at the region's edge instead of one step before it + replacing: stop searching in a region when edge of buffer is reached + screen: don't compare a character index with a column position + screen: ehm... no, that was wrong: page_start /is/ a column position + search: begin from where we are, to be able to find the first \B + search: make the \b and \B anchors work correctly in both directions + spelling: correctly adjust the length of a single-line region + spelling: don't unnecessarily fiddle with the viewport + startup: report an error when the given line or column number is invalid + statusbar: display at most three consecutive alert messages + tweaks: adjust some comments, reshuffle a line, and use a while loop + tweaks: adjust two comments, to be more accurate + tweaks: adjust whitespace after preceding changes + tweaks: and rename another variable, to keep in style + tweaks: chuck some obscuring debugging stuff + tweaks: condense a comment, rename a variable, and use a while loop + tweaks: differentiate single-regex matches from paired-regex matches + tweaks: discard the now unused multidata-resetting routine + tweaks: elide a variable plus its corresponding dark logic + tweaks: fiddle with some wordings in the texinfo document + tweaks: free an option string also when it was invalid + tweaks: move a comment and rewrap a line + tweaks: normalize some paragraph formatting in the FAQ + tweaks: rearrange some code to separate softwrap and normal mode more + tweaks: rename a function, and drop an unneeded parameter + tweaks: rename a function, to show it refers to screen rows + tweaks: rename another variable, to be shorter + tweaks: rename a variable and condense an if + tweaks: rename a variable -- lines refers to buffer, rows to screen + tweaks: rename a variable, to be more general + tweaks: rename a variable, to be more general and match one elsewhere + tweaks: rename some variables, to better distinguish rows from lines + tweaks: rename some variables, to show they refer to screen rows + tweaks: rename two variables, and always pass a valid result back + tweaks: rename two variables, to avoid double negatives + tweaks: reshuffle an assignment and trim some comments + tweaks: reshuffle a test to a better place + tweaks: reshuffle three variables + tweaks: scrap a bunch of debugging lines -- they obscure the logic + tweaks: scrap some debugging stuff + tweaks: slightly speed up the change detection for multiline matches + tweaks: swap two blocks of code to reduce the number of #ifdefs + tweaks: update some copyright years + tweaks: use a cheaper way to detect an end-of-line + tweaks: use a subtraction instead of a counter + +David Lawrence Ramsey (16): + docs: mention the ability to read from stdin + screen: don't hide two-column characters at left edge in softwrap mode + tweaks: adjust and correct some comments + tweaks: always directly do a refresh when the margin changes + tweaks: do a comparison a bit differently in do_output() and do_deletion() + tweaks: fix compilation when configured with --enable-tiny + tweaks: improve comments and formatting in update_line() + tweaks: let update_line() return the correct value on error + tweaks: reduce duplicate code in new_magicline() and move_to_filestruct() + tweaks: rename a variable and adjust some types in edit_scroll() + tweaks: rename a variable in edit_redraw(), to make sense + tweaks: rename a variable in edit_scroll(), to make sense + tweaks: rename mouse_x & mouse_y to mouse_col & mouse_row in do_mouse() + tweaks: rename the functions for moving to and copying from a buffer + tweaks: rewrap two lines and fix two typos + tweaks: split the grafting code off from copy_from_buffer() + +Mike Frysinger (3): + syntax: c++: add override keyword + syntax: gentoo: flag mixed whitespace + syntax: gentoo: match .eblit files too + + +Changes between v2.7.3 and v2.7.4: +---------------------------------- + +Benno Schulenberg (48): + build: check for GNU-style word-boundary support also in the tiny version + build: include the old Changelogs in the tarball + build: install the Info and Html manuals even when 'makeinfo' is missing + build: move all documentation into a single directory + build: move the syntax files out of the doc/ directory + build: rename the sample config file, so it will be colored like a nanorc + bump version numbers and add a news item for the 2.7.4 release + copy: properly set preferred x position when region was marked backwards + cut: indicate a buffer as modified only if actually something was deleted + docs: add a new Changelog -- a list of the short commit messages + docs: bring some air into the FAQ, so that become useful + docs: fix some spellos and trim some trailing tabs in the old Changelog + docs: rename the Changelogs to indicate which periods they cover + docs: snip some obsolete items from the FAQ, and normalize its dates + docs: standardize the dates in the old Changelog + inserting: adjust the desired x position (don't restore the old one) + screen: examine the whole line when painting, to set the correct info + search: make a regex with a beginning-of-word anchor work correctly + softwrap: don't scroll half a page when just a few lines will do + softwrap: when pasting an overlong line, ensure it is fully visible + softwrap: when typing M-/, ensure the last line is fully visible + syntax: html: be more precise with tags, and paint attribute names + tweaks: adjust whitespace after the previous change + tweaks: chuck a couple of useless asserts + tweaks: condense two ifs to a single one + tweaks: discard some conditional compilation + tweaks: don't compare a character offset with a column position + tweaks: don't use a variable for two different purposes + tweaks: fix compilation when configured with --disable-wrapping + tweaks: frob some comments, and transform one variable + tweaks: frob some comments, elide a variable, and use 'while' loops + tweaks: if there is no end match, there is nothing to paint + tweaks: miscellaneous frobbings + tweaks: rearrange and reindent some lines in the painting routines + tweaks: remove the cluttering conditional compilation of a parameter + tweaks: rename another variable, to show it refers to columns not chars + tweaks: rename a variable, chuck an assert, and frob a comment + tweaks: rename three painting variables, to be more distinct + tweaks: rename two variables, for distinguishing characters from columns + tweaks: rename two variables to be just one as they play the same role + tweaks: rename two variables, to be more telling + tweaks: reshuffle a statement to a better place and condense some comments + tweaks: set the length of a search match in a clearer manner + tweaks: slightly condense a function and its comment + tweaks: terminate lots of sentences with a period in the old Changelog + tweaks: the starting point for painting /cannot/ be offscreen + tweaks: when allow_tabs is FALSE, allow_files is irrelevant + undo: properly create separate items for deletes at different positions + +David Lawrence Ramsey (7): + screen: properly place the cursor after inserting a file + softwrap: ensure the current line is fully visible after inserting a file + tweaks: avoid an unnecessary fiddling with current_y in do_mouse() + tweaks: line numbers are ssize_t, not int + tweaks: move a setting, fix a type, and rearrange a line in do_mouse() + weeding: remove another unnecessary setting of openfile->current_y + weeding: remove unnecessary settings of openfile->current_y + +Felix Janda (1): + speller: fix build when tiny build is enabled + + +Changes between v2.7.2 and v2.7.3: +---------------------------------- + +Arturo Borrero González (1): + syntax: nftables: add two new families, and add set references + +Benno Schulenberg (62): + binding: use plain codes instead of function calls for the jumping keys + binding: use the code for the Enter directly instead of a function call + bump version numbers and add a news item for the 2.7.3 release + chars: optimize for the most common case + chars: use memory on the stack instead of calling malloc() and free() + docs: clarify the difference between "Esc Esc ddd" and "M-V xxxxxx" + files: don't change embedded newlines into nulls in filenames + files: show newlines in filenames as ^J also in error messages + general: simplify the detection of a SIGWINCH + history: avoid crashing when the positionlog file is malformed + history: don't bother encoding search items -- they cannot contain newlines + history: encode newlines in filenames as nulls + history: search for the two position numbers from EOL instead of BOL + history: search items *can* contain newlines -- encoded NUL bytes + input: detect again when both Shift and Ctrl are being held on a VT + input: discard a verbatim 0x0A or 0x00 byte, depending on the mode + input: don't crash when receiving a KEY_CANCEL + locking: disable an annoying warning + memory: don't bother making a snug fit for things that will be freed soon + oops: forgot to add and amend this to the previous commit + po: update translations and regenerate POT file and PO files + prompt: do not treat a leading newline in a filename specially + prompt: represent newlines as ^J instead of breaking the bar + screen: display byte value 0x0A in the right places as ^@ or as ^J + screen: draw new content immediately, to prevent color flashes + screen: show an embedded newline in filenames as ^J instead of ^@ + text: avoid a crash when a spell-checked line has gotten shorter + text: discard the undo stack after formatting and after spell checking + titlebar: always pass a pathname through display_string() + tweaks: adjust some comments and indentation and ordering + tweaks: chuck a special case, and reduce the scope of two variables + tweaks: condense the setting of three flags + tweaks: conditionalize a function that is not used in the tiny version + tweaks: delete a bunch of unneeded asserts + tweaks: don't bother making the next line of an end point NULL + tweaks: don't bother reallocating a string of which there is only one + tweaks: don't bother trimming the final newline from a position item + tweaks: drive closer to the edge + tweaks: elide a counter and a comparison + tweaks: elide a function that is called just once + tweaks: move a setting to a better place -- it needs setting just once + tweaks: put some prototypes in the proper order, and move a bit of code + tweaks: remove pointless or obscuring asserts + tweaks: rename a function to describe what it does + tweaks: rename a function to something less abbrevy + tweaks: rename a variable and rewrap two lines + tweaks: rename a variable to be shorter and clearer + tweaks: rename five variables, for uniformity with a few others + tweaks: rename four variables, for density and aptness + tweaks: rename three variables, for visibility + tweaks: rename three variables, to be more fitting + tweaks: rename two variables, for self-documentation + tweaks: retype, rename, and reshuffle a function + tweaks: start searching at a better place + tweaks: use a faster comparison + tweaks: use a slightly faster comparison + tweaks: use memory on the stack instead of calling malloc() and free() + tweaks: write two pieces of conditionalized code like all others + undo: there are just two forms of deletion: backspacing and deleting + utils: go on to parse the line number even if the column number is bad + utils: slightly speed up the calculation of the size of a buffer + version: properly mention --disable-wordcomp if it was used + +David Lawrence Ramsey (2): + tweaks: adjust the type of two arguments + tweaks: elide two unneeded variables from line numbering mode + + +Changes between v2.7.1 and v2.7.2: +---------------------------------- + +Benno Schulenberg (53): + binding: allow to rebind the word-completion function, and document it + binding: always initialize some keycode variables to a standard value + build: add configure option --disable-wordcomp to disable word completion + build: clean out the revision.h file, to make 'make distcheck' pass + bump version numbers and add a news item for 2.7.2 + docs: correct and improve the description of --disable-wrapping + docs: harmonize the indentation of the README, and tweak some wordings + docs: mention that a foreground color can be bright + docs: mention that libncursesw5-dev is needed for building from git + docs: note Sumedh as the author of the word-completion feature + docs: tweak some lines in the NEWS file + files: trying to open a non-existent file will never succeed + input: add the shifted PageUp and PageDown keycodes produced by VTE + input: distinguish from on an rxvt terminal + input: distinguish from on an rxvt terminal + mouse: use the correct screen width for calculating the cursor position + oops: the yesno prompt for replacing does not want a visible cursor + po: update translations and regenerate POT file and PO files + prompt: remove two fragments of dead code + rcfile: actually avoid opening directories and devices + rcfile: actually don't try to open things that cannot be syntax files + rcfile: check the vital shortcuts just once, not for every included file + rcfile: let a 'set fill' reenable hardwrapping + screen: do a refresh before changing the value of 'focusing' + screen: don't hide the cursor when --constantshow is used + screen: don't request an update of the edit window for every yesno prompt + screen: don't restore the previous menu after a yesno prompt + screen: remove an unneeded blanking of the statusbar + screen: switch the cursor back on only in the main loop + screen: use the correct width to determine whether a softwrap occurred + spelling: correctly restore the selected region + startup: activate restricted mode earlier, so --help will reflect it + syntax: don't leave the number after 'fill' and 'tabsize' in red + syntax: give the statistics part of a git patch a different color + tweaks: add a few translator hints + tweaks: correct the wording of a string + tweaks: delete some obscuring debugging stuff + tweaks: factor out a small function + tweaks: fix compilation when configured with --enable-tiny + tweaks: get rid of some spurious textual references to edit_refresh() + tweaks: miscellaneous frobbings and rewrappings + tweaks: move a cursor-on switch to a more logical place (again) + tweaks: move a switching on of the cursor to a more logical place + tweaks: remove a bit of obscuring conditional compilation + tweaks: remove an annoying conditional compilation of an argument + tweaks: remove a superfluous cleanup call + tweaks: remove some cluttering conditional compilation + tweaks: remove some more annoying conditional compilation + tweaks: rename two variables to make more sense + tweaks: replace some unneeded direct calls of edit_refresh() + tweaks: reshuffle some things in a more linear manner + tweaks: reshuffle three initializations and trim some comments + tweaks: use a while loop when the end point is not known in advance + +David Lawrence Ramsey (8): + docs: add info about Slang to README.GIT, and improve info about glib2 + files: give feedback when restricted mode prevents overwriting a file + general: gettextize three overlooked statusbar messages + input: make Shift+Alt+Arrow work properly on rxvt and Eterm terminals + input: properly check the full escape sequences for all keys + moving: always account for the margin when in line numbering mode + tweaks: adjust the type of four lockfile variables + tweaks: conditionalize a bit of softwrap code + +Mike Frysinger (3): + configure: fix ncurses lib symbol checking + syntax: avoid using black colors + syntax: gentoo: various updates + +Sumedh Pendurkar (1): + new feature: complete a fragment to a longer word found in the buffer + + +Changes between v2.7.0 and v2.7.1: +---------------------------------- + +Benno Schulenberg (71): + binding: fix some duplicated carets and too restrictive menus + binding: properly conditionalize the UTF-8 parts + binding: supply the keycode for most special keys directly + binding: use arrows instead of words to designate the cursor keys + browser: add the option showcursor, to place the cursor on the highlight + build: avoid an annoying warning at configure time + build: avoid updated PO files being remerged upon every make + bump version numbers and add a news item for 2.7.1 + docs: add 'linenumbers' and 'numbercolor' to the sample nanorc + docs: add 'set linenumbers' and '--linenumbers' to the texinfo document + docs: brush up the TODO list + docs: mark some rebindable function names as deprecated + docs: mention the existence of the toggles in the man page + docs: refresh some info in the FAQ + docs: remove a reference that was only valid on Debian systems + files: alert about an unwritable file also in the tiny version + files: mark a new buffer as modified after inserting command output + general: add the option -g/--showcursor, to match Pico + general: include word-jumping and block-jumping into the tiny version + history: slate the search-history migration for removal + input: don't return zero when some function is completely unbound + input: handle the "resize key" in a better way + input: keep the Ctrl+Arrow keys working when their synonyms are unbound + moving: adjust the Y position to correspond with the changed X position + po: update translations and regenerate POT file and PO files + rcfile: add an option to customize the color of line numbers + screen: defeat a VTE bug by doing an extra cursor move and update + screen: keep the help items aligned in more configurations + screen: keep the help items nicely lined up also in the tiny version + screen: move the margin determination to the main loop + screen: refresh when a new magicline is added in line-numbering mode + screen: repaint the edit window in a single place -- the main loop + screen: suppress line numbers when the terminal is very narrow + scrolling: don't put the last line at the bottom when softwrap in on + scrolling: use a comparison that will work also in softwrap mode + softwrap: ensure the current line is fully visible when moving in it + softwrap: initialize 'editwincols' early, for computing the number of wraps + softwrap: scroll 'enough' whenever it surpasses 'amount' + softwrap: scroll the current line fully into view when jumping words + softwrap: scroll when searching lands on an overlong bottom line + startup: allow to rebind the RegExp toggle also in the tiny version + startup: always initialize 'margin' and 'editwincols' + syntax: make the contents of the X-Bugs field in a PO file stand out + syntax: show another deprecated keyword (replace2) in red + syntax: show deprecated keywords in red, and 'wordchars' in green + tweaks: adjust some comments and reduce the scope of some variables + tweaks: adjust some indentation + tweaks: adjust some whitespace and a comment + tweaks: compile two parameters unconditionally + tweaks: don't bother redrawing some lines when whole screen will be redrawn + tweaks: don't spread a statement over multiple lines unnecessarily + tweaks: elide an unneeded variable + tweaks: elide a parameter that is always FALSE + tweaks: fix compilation when configured with --enable-tiny + tweaks: frob a few comments + tweaks: make several small adjustments to the documentation + tweaks: make tiny nano a teeny bit smaller + tweaks: move a variable that doesn't need to be global + tweaks: preen some comments, and reshuffle a few ifdefs + tweaks: remove a band-aid condition that is no longer needed + tweaks: remove a bit of duplication + tweaks: remove a superfluous blanking of the statusbar + tweaks: remove a superfluous setting, and add a comment + tweaks: remove a useless cursor movement + tweaks: rename a function to better describe what it does + tweaks: rename a variable, for consistency + tweaks: reshuffle a couple of items + tweaks: reshuffle an if statement + tweaks: reshuffle some ifdefs, for less fragmentation + tweaks: stop compiling the whole_word_only parameter conditionally + tweaks: use hard-baked keycodes where possible + +Faissal Bensefia (1): + new feature: the ability to show line numbers before the text + +Rishabh Dave (2): + rcfile: reject key names that are wrong or too long + rcfile: reject rebindings that have no effect or have side effects + + +Changes between v2.6.3 and v2.7.0: +---------------------------------- + +Benno Schulenberg (47): + AUTHORS: add Mahyar Abbaspour and Mike Scalora for their contributions + bottombar: only count help items that have a shortcut bound to them + bump version numbers and add a news item for 2.7.0 + docs: explain how to contribute code + files: close a lockfile after reading it + input: ignore the resize "key", to prevent reporting an unbound key + input: look at the modifier keys only when compiled on Linux + input: unset a softmark whenever a character is typed + moving: make PgUp and PgDown functional also in very flat terminals + new feature: allow text selection by holding Shift with the cursor keys + po: update translations and regenerate POT file and PO files + prompt: don't crash when the terminal is less than four columns wide + prompt: leave always at least the last character of the answer visible + prompt: mouse clicks that moved the cursor need no further processing + prompt: recompose the statusbar text whenever the window size changes + prompt: set up the prepared answer before allowing to change it + prompt: show a trailing $ when the tail of the answer is offscreen + prompt: use angular brackets as continuation mark, as Pico does + prompt: work around a VTE bug by outdancing an ncurses optimization + restore the GNU marker in nano's name + screen: continue to function also in a terminal with very few lines + screen: don't die when the window is narrower than four columns + screen: retain the placewewant also when using an alternate speller + startup: don't crash when dying early + statusbar: leave out the brackets when the message is very long + tweaks: adjust indentation after previous change + tweaks: adjust indentation after previous change + tweaks: adjust some braces and indentations + tweaks: adjust some comments and remove needless asserts + tweaks: don't bother avoiding unneeded rewrites of the promptbar + tweaks: don't bother trimming the prompt again + tweaks: elide a variable and rename some others + tweaks: fix compilation when configured with --with-slang + tweaks: fix compilation with --disable-histories + tweaks: fix compilation with --enable-tiny again + tweaks: improve some indentation and reshuffle a few lines + tweaks: make a call in one place instead of in four different ones + tweaks: remove an unneeded check, reshuffle some things, add a comment + tweaks: rename a function and adjust indentation + tweaks: rename three variables + tweaks: rename two variables, to make some sense + tweaks: reshuffle some stuff in a more logical order + tweaks: reshuffle some things, and remove a misplaced comment + tweaks: simplify the determination of the number of shown help items + tweaks: use a separate function to ask ncurses for keycodes + update the copyright notices + update the license text to the preferred version + + +Changes between v2.6.2 and v2.6.3: +---------------------------------- + +Benno Schulenberg (53): + bump version numbers and add a news item for 2.6.3 + chars: don't persist when only one of the compared sequences is invalid + chars: make searching case-insensitively some ten percent faster + chars: properly compare strings of different lengths + chars: remove a special case that never occurs + chars: remove superfluous afterchecks + chars: straighten out the flow of a loop, so it is easier to follow + debug: add a timing instrument to the main search routine + docs: tweak some spacing and spelling + files: avoid a warning about not being able to write a lockfile + files: make allowances for 32-bit PIDs + input: after an Esc, don't discard starter byte of a multibyte sequence + input: be more strict in recognizing certain escape sequences + input: don't bother putting a keycode into byte range + input: don't use a function call when a literal value will do + input: fix a pasto from eight years ago, from commit e347efb + input: ingest as verbatim just one control code or one or two escapes + input: make the Ctrl+Arrow keys work on a Linux console + locking: remove any lock files when dying + po: update translations and regenerate POT file and PO files + screen: don't look at placewewant but at where we actually were and are + screen: remove redundant redrawings of the entire edit window + shortcuts: group the setting of key string and keycode into one function + shortcuts: remove any unnecessary classifying of keys + spelling: don't abort when a misspelled word isn't found, just note it + spelling: don't consider digits as word parts, because GNU spell doesn't + tweaks: add a variable, in preparation for making returning easier + tweaks: adjust indentation after previous changes + tweaks: adjust indentation after the previous changes + tweaks: check earlier on for sufficient length of the sequence + tweaks: compile a parameter unconditionally + tweaks: condense three asserts into a single one + tweaks: consistently use a parameter instead of a struct element + tweaks: correct one comment, and adjust another + tweaks: don't bother setting meta_key to false when a key is invalid + tweaks: don't optimize for a special case -- it is far too seldom + tweaks: don't use a function call when reference to the variable will do + tweaks: elide the global variable 'func_key' + tweaks: move some debugging stuff, and move modified editing keys too + tweaks: move the modified editing keys again + tweaks: normalize some indentation + tweaks: normalize some whitespace and adjust several comments + tweaks: reduce two comparisons to a single one + tweaks: remove some unnecessary keycodes from a switch statement + tweaks: rename a function, and adjust some comments + tweaks: rename a struct element, to be more fitting + tweaks: rename three constants, for clarity, and hardcode two others + tweaks: replace a three-case switch with an if and an else + tweaks: reshuffle two ifs for a little more speed + tweaks: restore earlier conditions to prevent superfluous redrawings + tweaks: return quicker from the key parsing routine + tweaks: unconditionally compile a couple of parameters + usage: show that the option --wordchars needs an argument + +Rishabh Dave (1): + shortcuts: zero the value of 'toggle' for keys that are not toggles + + +Changes between v2.6.1 and v2.6.2: +---------------------------------- + +Benno Schulenberg (81): + browser: elide another call of opendir() + browser: trim all trailing slashes (just in case there are more) + build: refresh the git description whenever something is recompiled + build-sys: ignore the revision header file + bump version numbers and add a news item for 2.6.2 + chars: delete a now-unused function + chars: don't try to see a character in an empty line + chars: invalid sequences are not blank, nor text, nor punctuation + chars: look at bytes in their context, so only valid sequences are accepted + chars: measure invalid sequences and unassigned codepoints more quickly + chars: plug a gushing memory leak + chars: represent the high-bit controls more intelligibly + chars: speed up the determination whether something is a control character + chars: speed up two reverse-searching routines a bit + chars: the representation of a control character is always two bytes + color: forget about aborting the precalculation for multiline regexes + color: integrate the hilite attribute into the pair number + color: push the resets further when start and end match are equal + color: refresh the screen whenever the active syntax changes + credits: don't bother blanking the second line nor the help lines + debug: remove duplicate information + files: beep whenever writing out a file fails + input: accept only the four iTerm sequences that actually get handled + input: add some missing keycodes to the parsing routine + input: consider only O, o and [ as starters of multi-character sequences + input: don't crash when the window is resized during verbatim input + input: don't drop a keystroke on the floor when the terminal resizes + input: don't drop the first byte when user starts typing during loading + input: elide an extra buffer for inserting stuff into the text + input: plug a memory leak + input: report keystroke M-[ as being unbindable instead of just unbound + input: treat Ctrl+Alt+key different from Esc followed by Ctrl+key + moving: don't do an automatic smart home with Ctrl+Up and Ctrl+Down + new feature: add the option --wordchars, to set extra word characters + new feature: functions to jump to previous or following block of text + po: update translations and regenerate POT file and PO files + screen: again, look at the bytes in their context + screen: avoid converting each character twice from multibyte to wide + screen: avoid looking up the width of whitespace and control codes + screen: don't check for every character whether there is still enough space + screen: don't simulate a sigwinch but directly reinitialize the screen + screen: elide another intermediate buffer for every visible character + screen: elide the intermediate buffer for every single character + screen: include a workaround only when compiling against older ncurses + search: match a beginning-of-line anchor just once per line + tweaks: adjust a comment for removed definitions + tweaks: adjust a couple of comments + tweaks: adjust indentation after the previous change, and edit comments + tweaks: avoid a runtime error when compiled with -fsanitize=undefined + tweaks: avoid two compiler warnings + tweaks: compute the sizes of the subwindows in a more direct manner + tweaks: correct a comment + tweaks: delete an element that is always FALSE and never used + tweaks: don't bother resetting the Unicode code holder + tweaks: don't call a thing malloc... when it doesn't call malloc() + tweaks: elide a bit of code duplication + tweaks: elide a typedef, as it now has just one element + tweaks: elide two unneeded variables + tweaks: factor out a common condition + tweaks: fix compilation with --enable-tiny + tweaks: fuse two handlings of a delete key, and fix a comment + tweaks: improve a few comments + tweaks: improve two comments + tweaks: move a debug statement to its proper place, and improve aspect + tweaks: put all the movement functions together + tweaks: put similar things together + tweaks: put some case labels closer to their statements + tweaks: put the case labels (the keycodes) in a more sensible order + tweaks: rearrange a function in my style, and rename a variable + tweaks: reduce the scope of two variables + tweaks: rename another variable, for aptness + tweaks: rename a variable and a type, to be less confusing + tweaks: rename a variable to be more accurate + tweaks: rename a variable, to clarify it refers to columns, not to bytes + tweaks: rename a variable -- to match others and to be more concise + tweaks: rename two variables, to match others + tweaks: shuffle the resetting of a counter to the tail of the routine + tweaks: straighten out the flow of a loop + tweaks: trim some comments, and simplify a condition + tweaks: use mallocstrcpy() instead of strdup(), for a graceful death + utils: don't bother to check line and column for NULL + +David Lawrence Ramsey (1): + input: provide feedback on the Unicode digits typed so far + +Dirkjan Ochtman (1): + syntax: allow capital letters in Rust struct/trait names + +Rishabh Dave (4): + browser: elide a variable by fusing the uses of 'newpath' and 'path' + browser: select an inaccessible directory also when tabbed + tweaks: reduce the number of wattron/wattrof calls + utils: accept mistypings and common separators between line and column + + +Changes between v2.6.0 and v2.6.1: +---------------------------------- + +Benno Schulenberg (20): + browser: don't use a term that is not explained in the documentation + bump version numbers and add a news item for 2.6.1 + docs: adjust the description of the verbatim function + linter: refresh the edit window in order to actually place the cursor + main: let the main loop restore the main menu, if needed + moving: allow specifying negative numbers in "Go To Line" + moving: ignore any number when ^Y or ^V is given + po: make the linguas script regenerate the POT file + po: update translations and regenerate POT file and PO files + tabs: compute the number of required spaces without iterating + tweaks: add a reporter's name + tweaks: add a translator hint + tweaks: elide an impossible case + tweaks: elide an intermediate copy of some line data + tweaks: elide an unneeded variable + tweaks: fix a date and an email address + tweaks: normalize a type, and rewrap a line + tweaks: reshuffle two lines and improve two comments + tweaks: rewrap a bunch of lines and some comments + tweaks: try to distinguish between keystrokes and characters + +Jordi Mallach (2): + docs: bump pointers to the newest version available + docs: use https for nano-editor.org, and drop the www + +Luke Francl (1): + syntaxes: add highlighting rules for Rust + +Rishabh Dave (1): + browser: don't seem to enter a directory when it is inaccessible + + +Changes between v2.5.3 and v2.6.0 since 2016 April 1: +----------------------------------------------------- + +Benno Schulenberg (192): + all: eradicate SVN's $Id$ tags + backups: take an unlikely condition into account + browser: add a binding for the refresh function + browser: after getting a mouse click, don't try any further interpretation + browser, files: use full path in error message when in confined mode + browser: fix a memory leak + browser: keep the highlight in the same spot or column, when possible + browser: make Ctrl+Left and Ctrl+Right jump to left and right column + browser: make the calculation of files-per-line a straightforward one + browser: provide tab completion also outside of the working directory + browser: rearrange the search loop to elide two unneeded variables + browser: show a message when getcwd() fails, instead of just beeping + browser: show an error message when selecting an inaccessible directory + browser: use the reselection mechanism also after resizing and after help + browser: when nothing was found, restore the global search flags + build-sys: detect a build from git and show its short commit hash + build-sys: identify a build from git not as one from svn + build-sys: ignore .patch, .orig and .swp files + chars: a control character can never be an invalid multibyte sequence + chars: ensure that files are sorted also when strncasecmp() is strange + chars: make comparing multibyte strings twice as fast + chars: the representation of control characters is always two columns wide + docs: add a list of the important changes since version 2.2.6 + docs: mention that pkg-config is needed when building from git + docs: rename a file, to be less confusing + docs: update the version number for the upcoming release + files: allocate enough space for the prompt when finding a lock file + files: do not call free on the result of dirname + files: do not use two variables for two different purposes each + files: don't reuse a variable that may have been modified by dirname() + files: fix a memory leak + files: free all the multidata when a file is saved, then recompute it + files: handle systems that disallow NULL as first parameter of getcwd + files: it is fine to "change" the name of a nameless buffer + files: limit the number of attempts at climbing up the directory tree + files: make an 'if' more transparent and snip an unneeded condition + files: miscellaneous tweaks of braces, comments, and variable names + files: prevent dereferencing a possible (although very unlikely) NULL + files: prune a message to be less than 76 characters + files: recompute the multidata only when the applicable syntax changed + files: remove a redundant condition + files: remove a superfluous condition, and do not ignore a "No" + files: remove the special 'quiet' mechanism for not overwriting messages + files: report an unwritable file in a separate message + files: rewrap en reindent some lines + files: tweak the function tail() and rename two variables + files: upgrade the locking errors, so they will not be overwritten + files: when opening a buffer, make sure to expand a tilde in its name + files: when the requested operating directory cannot be set, fail + files: when writing a lockfile fails, continue loading the file + help: add an extra blank line to the lists of searching shortcuts + help: bring some air into the lists of shortcuts, giving the eye a hold + help: only speak of Control and Meta sequences + i18n: advise the translators about the maximum length of some strings + i18n: gather three more translatable strings into the POT file + input: after an unknown sequence, reenable cursor only when in main menu + input: distinguish an unknown escape sequence from an unbound key + input: don't allocate too much, and don't move too many + input: don't take multiple keystrokes to be a single sequence + input: give more detailed feedback when an unbound key is struck + input: properly restore waiting mode, or retain non-waiting mode + input: simplify a bit of code, reducing a four-case switch to a single if + input: trim some oververbose comments + input: write a few ifs more compactly + inserting: differentiate not finding a file from not finding a string + inserting: don't bother zero-terminating every single character + inserting: prune a duplicate variable + inserting: prune some superfluous settings, and do one differently + inserting: reshuffle some conditions for a teeny bit more speed + inserting: strip a carriage return before copying the line + inserting: treat also the final \r of a Mac file as a newline + justify: enable cursor display also for the first keystroke afterward + keyboard: reshuffle some lines to avoid an empty while + locking: don't try to read more bytes than the buffer can hold + po: correctly advertise whether new PO files have arrived + po: delete an obsolete script + po: regenerated POT file, and updated PO files from TP + prompt: properly save and restore the x position in the statusbar + rcfile: disallow 'bind' and 'unbind' in an included file + rcfile: make an error message equal to another, and more informative + README.GIT: reformat the text a bit + remove the GNU marker from nano's name + replacing: properly detect when we've rereached the starting position + screen: a full refresh is only needed when softwrap is on + screen: avoid redrawing a line twice + screen: catch a window resize also when the keyboard is in nodelay mode + screen: check for the most frequent character first: a space + screen: concentrate the setting of placewewant + screen: displaying the cursor position should not suppress it next time + screen: don't always set 'edit_refresh_needed' when adjusting edittop + screen: don't redraw some lines when doing a full refresh anyway + screen: don't redraw the current line unnecessarily + screen: elide a variable and serialize some logic for clarity + screen: fix compilation when configured with --enable-tiny + screen: improve the conditional placement of a help-line item + screen: make better use of the available space in the titlebar + screen: rename a variable, because 'disable' sounds too permanent + screen: rename 'edit_refresh_needed' to 'refresh_needed' + screen: when using positionlog, show as much of the file as possible + scrolling: catch the special case of reading a file from standard input + scrolling: center the cursor when inserted stuff does not fit on screen + scrolling: don't scroll too much when having to bridge blank lines + scrolling: elide a variable, to make clearer that edittop is being moved + search: avoid saving and restoring placewewant when bracket matching + search: don't set placewewant when we are just iterating + search: elide an unneeded function + search: find, and thus delete, only exact matches from history + search: fix compilation when configured with --enable-tiny + searching: don't keep track of current_y, but calculate it at the end + search: modify a function to take a length as parameter instead of a word + search: rename a variable and a function, for clarity and contrast + search: terminate the loop a tiny bit earlier when spell checking + search: untangle two lines and tweak two comments + search: when looking for whole words, examine the entire line + search: when polling the keyboard, consume all waiting keystrokes + softwrap: adjust for current_x when computing the amount to scroll + speller: don't proceed when the user aborts the searching + speller: simplify the calculation of the width of the misspelled word + spelling: don't partition the file for replacements in a marked region + spelling: gettextize the next-word message + spelling: if rereading the file fails, don't destroy the current buffer + spelling: pass the correct position of the cursor + spelling: retreat one x position, to not miss the first word + spelling: separate the fixing of different words with a short pause + startup: show an error message when argument of --operatingdir is invalid + statusbar: add a non-beeping message type that does not get overwritten + statusbar: prevent error messages from overwriting each other + syntax: don't call getcwd() with a NULL pointer + tabbing: avoid recalculating the length of the first match every time + tabbing: don't null-terminate a directory name on the slash but after it + tabbing: don't refresh the edit window when nothing was printed on it + tabbing: fix erroneous use of strnlenpt() + tabbing: make sure to refresh the edit window when returning to it + tabbing: refresh the edit window in case a previous tab listed names + tabbing: refresh the window also when Goto-Dir in browser was cancelled + tabbing: rename four variables, snipping a redundant part + text: add an undo item before starting to comment or uncomment lines + text: after undoing or redoing something, unset the mark + text: remove a pointless setting of an undo element; it is never used + text: remove a redundant undo element + text: store the new file size in the undo item also when joining lines + titlebar: snip two superfluous tests for having enough space + TODO: tidy up the punctuation + tweaks: add come comments and rename a variable + tweaks: adjust a couple of comments + tweaks: a few last tiny adjustments before release + tweaks: avoid a warning when configured with --disable-wrapping + tweaks: do an assignment in a more transparent way + tweaks: elide an unneeded variable + tweaks: elide four #ifdefs, improve one comment and unwrap some others + tweaks: elide unneeded intermediate assignments + tweaks: fix compilation when configured with --enable-tiny + tweaks: fix compilation when configured with --enable-tiny --enable-browser + tweaks: harmonize some indentations, elide an #ifdef, and rewrap a line + tweaks: harmonize the routine for tabs with the one for spaces + tweaks: improve a couple of comments + tweaks: improve a few comments + tweaks: improve a few comments + tweaks: make advancing and retreating more symmetrical + tweaks: make the conditions for statusbar blanking more transparent + tweaks: more consistently use * instead of [0] when checking for '\0' + tweaks: normalize some whitespace + tweaks: normalize some whitespace + tweaks: put some conditions in a better order: the main one first + tweaks: rearrange some key reading stuff in a clearer way + tweaks: reindent and rewrap a few lines, and shorten a comment + tweaks: remove an unnecessary intermediate assignment + tweaks: remove a redundant assignment + tweaks: remove a superfluous call of 'wnoutrefresh' + tweaks: remove a superfluous condition + tweaks: remove a superfluous setting of 'refresh_needed' + tweaks: remove the fiddling with an unrelated setting + tweaks: remove two redundant assignments + tweaks: rename a function, and move the sorting there too + tweaks: rename a variable, because nothing is returned there + tweaks: rename a variable, for aptness + tweaks: rename a variable, to indicate better what it contains + tweaks: rename a variable, to indicate what it contains + tweaks: rename some variables for contrast + tweaks: rename some variables to be more readable + tweaks: rename two more variables + tweaks: rename two variables, and elide a third + tweaks: rename two variables, to avoid using a name for different purposes + tweaks: reshuffle a few things + tweaks: trim or improve some comments, and rewrap two lines + tweaks: use an available macro to silence a compiler warning + undo: start renumbering from the head of the paste, not from its tail + utils: distinguish between width (columns) and length (bytes) + utils: provide a failure message for all uses of 'fsfromline' + utils: rename some variables, to match those in strnlenpt() + utils: snip a superfluous check for NULL + version: cover the copyrights that are not assigned to the FSF + +Chris Allegretta (2): + add /intl to gitignore + rename README.SVN -> README.GIT and take out the branch details + +Mike Frysinger (3): + more svn->git updates + README.GIT: update a few more points to match current tree + syntax: changelog: support more bug/issue styles + +Mike Scalora (3): + keyboard: recognize four escape sequences produced by iTerm2 + new feature: comment/uncomment current line or selected lines + text: keep the file size correct when undoing/redoing a comment/uncomment + +Rishabh Dave (2): + browser: keep the same file selected when the directory contents change + browser: move all openings and closings of a directory to the same function + + +====================================================================== +For older changes, see in https://ftp.gnu.org/gnu/nano/nano-5.0.tar.xz +====================================================================== diff --git a/IMPROVEMENTS b/IMPROVEMENTS new file mode 100644 index 0000000..ad24836 --- /dev/null +++ b/IMPROVEMENTS @@ -0,0 +1,217 @@ +Improvements in GNU nano +======================== + +Since 7.0: + - String binds may contain bindable function names between braces. + - Word completion looks for candidates in all open buffers. + - Unicode codes can be entered without leading zeroes. + +Since 6.0: + - Option --zero hides the interface and uses the whole terminal for editing. + - Colors can be given also in #rgb hexadecimal, to select the nearest color + from the 6x6x6 color-cube palette available on 256-color terminals. + - Fourteen new color names are available, from rosy to crimson. + +Since 5.0: + - A search briefly spotlights the found text, in black on yellow by default. + - Option --minibar reduces the interface to a bottom bar with basic info. + - The cursor skips over combining characters, deletes them together + with the character they combine with, but deletes them separately. + - For using libmagic the option --magic or -! or 'set magic' is required. + - With --stateflags the state of some things is shown in the title bar. + - M-Bsp deletes a word leftward. + - With --indicator a "scrollbar" is shown, indicating position+portion. + - M-Ins places an anchor, M-PgUp/M-PgDn jump to the nearest anchor. + - Toggling help lines (M-X) and Refresh (^L) work nearly everywhere. + - Colors can be modified with the attributes "bold," and/or "italic,". + - Nine new color names: from pink and purple to orange and latte. + +Since 4.0: + - Pasting from outside into nano suppresses auto-indentation. + - Such an external paste can be undone with a single M-U. + - Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter ...'. + - A custom nanorc file may be specified with -f / --rcfile. + - What the key produces can be specified per syntax with 'tabgives'. + - The ability to perform a search at startup with +/string or +?string. + - Comment characters are copied when automatic hard-wrapping occurs. + - The ability to both read from and write to a FIFO. + - Automatic hard-wrapping is no longer the default. + - Addition of --guidestripe to draw a helpful vertical bar. + - Meta-Up and Meta-Down scroll the screen linewise. + - Continuation is shown with a highlighted ">" instead of a plain "$". + - A marked region gets justified into a single, separate paragraph. + - Any number of justifications can be undone. + +Since 3.0: + - Addition of --zap to make and obliterate marked text. + - wipes next word and preceding word. + - An external spell check can be undone. + +Since 2.9.0: + - The ability to filter text through an external command. + - Better detection of paragraphs, allowing a less indented beginning. + - Option 'set afterends' for making Ctrl+Right stop at word ends. + - A crash handler that saves changed buffers in case of a crash. + - Addition of the color name "normal", meaning the default color. + - A key can be bound to a string -- any mix of text and control codes. + - Error messages are shown by default in bright white on red. + - and can be used to indent/unindent a marked region. + - Can snip trailing whitespace while typing, with 'set trimblanks'. + - The ability to record and replay a series of keystrokes (a macro). + - Assigned functions to ^S (save file) and ^Q (start backward search). + - Indenting and unindenting have been integrated into the undo system. + - Support for $XDG_CONFIG_HOME for the nanorc file, and $XDG_DATA_HOME + for the history files (of search strings and cursor positions). + +Since 2.8.0: + - ^U pastes the first line of the cutbuffer at a prompt. + - Softwrapping can be done at whitespace (with --soft --atblanks). + - The ^G help texts have become searchable (with ^W and M-W). + - Ctrl+Home and Ctrl+End jump to start and end of file. + - In softwrap mode the cursor now moves per visual row instead of + per logical line, and the screen will scroll per row. + +Since 2.7.0: + - The keystroke ^] to complete a fragment to an existing full word. + - The ability to display line numbers in front of the text (M-#). + +Since 2.6.0: + - Shift plus the cursor keys can be used for selecting text. + - Ctrl+Arrow should now work also on a Linux virtual console. + - Ctrl+Up and Ctrl+Down jump to previous or next block of text. + - Feedback during Unicode Input (M-V followed by six digits). + - The option 'wordchars' for specifying extra word characters. + - Hi-bit control characters are shown in a more readable manner. + - The ability to use negative numbers at the Go To Line prompt. + - The ability to comment/uncomment lines with a single keystroke (M-3). + - The ability to refresh the file list in the browser (^L). + - The ability to abort re-searches (^C after an M-W). + - Better feedback at startup when opening large or multiple files. + +Since 2.5.0: + - The option 'justifytrim' for snipping whitespace from justified lines. + - The ability to discard a buffer (^O ^Q) when --tempfile is used. + - On most terminals Ctrl+Left / Ctrl+Right now work for PrevWord/NextWord. + - When in the middle of a word, PrevWord now jumps to the start of this + word (like Pico does) instead of to the start of the preceding word. + - The ability to delete whole words with 'cutwordleft' and 'cutwordright'. + - The ability to save a file without prompting for its name ('savefile'). + - The ability to search backward without having to toggle the direction. + +Since 2.4.0: + - Replacing things in a marked region now takes place in situ, in context, + instead of changing the view to only the marked text. + - Invalid byte sequences are properly displayed and not mistakenly found. + - Resizing the window does not exit from help viewer nor file browser. + +Since 2.3.0: + - System syntaxes can be improved upon with the 'extendsyntax' command. + - Whitespace display (M-P) does not require configuration to be useful. + - Undo/redo is enabled by default (M-U/M-E) and works nearly everywhere + -- just not yet for justifying and indenting/unindenting. + - The ability to color the title bar, the status bar and the help lines. + - The ability to run a linter or formatter (^T) on the current buffer. + - The ability to only write to named pipes with --noread. + - Determination of the applicable syntax through libmagic -- when the + file extension nor the first line give an answer. + - The option 'positionlog' for saving/restoring the cursor position. + - The ability to read and write vim-style lock files. + +Since 2.0.0: + - The ability to rebind keys, via a nanorc file. + - The ability to read standard input like a pager ("nano -"). + - Color syntax highlighting can be set by the first line of a file. + - The ability to silence nanorc error messages (-q). + - Undo/redo operations (M-U/M-E, enabled with -u). + - Soft wrapping of text (-$). + - Better handling of backup files: if nano can't write a backup file, + it won't try to write the original file afterward. + - Emergency savefiles retain ownerships and permissions when possible. + - Performance improvements in color syntax highlighting. + +Since 1.2.0: + - Support for UTF-8. + - Moving to a specified line and column of a file, instead of just a + line (+LINE,COLUMN). + - Smart home key (-A). + - Creation of unique backup files in a specified directory (-C ). + - Insertion of spaces instead of a tab when Tab is pressed (-E). + - The long option for -K is now --rebindkeypad. + - Regular expression searching can now be toggled when nano is built + with --enable-tiny, so -R now means something else (see next item). + - Restricted mode that provides more security than -o (-R). + - Blanking of the statusbar after 1 keystroke instead of 25 (-U). + - Word searches can optionally skip over punctuation (-W). + - Workaround for Delete's acting like Backspace (-d). + - Many more options are supported in the nanorc. + - Improvements to color syntax highlighting support: case insensitive + matching, the ability to include color syntaxes in separate files, + the ability to specify background colors without foreground colors... + - Insertion of single-byte characters via Esc Esc <000-255>. + - Insertion of any character via Meta-V, "Verbatim Input". + - Workaround for the "NumLock glitch". + - Meta-W now repeats the last search. Wrapping is toggled via Meta-L. + - Replacing and spell checking only selected text. + - Indenting lines with one keystroke. + - Copying text into the cutbuffer without cutting it. + - Scrolling the text up and down single lines without moving the cursor. + - PageUp and PageDown work more smoothly when using -S. + - Scrolling the help text up and down single lines. + - Cutting all text from the current position to the end of the file + with one keystroke (Meta-T). + - Justifying the entire file with one keystroke (Meta-J). + - Justifying without removing spaces from the ends of lines. + - Unjustifying after justifying and immediately resizing. + - Going to the first or last line of the current paragraph. + - Going to the first or last line of the file without having to go to + the "Search" prompt. + - Searching for filenames in the file browser. + - Spaces and tabs are shown differently to make it easier to tell them apart. + - Many more functions are available at the prompt: moving to the next or + previous word, searching for matching brackets, "Verbatim Input"... + - "To Line" (^W^T) and "Read from Command" (^R^X) return to their parent + menu when their keystroke is entered again (^W^T^T and ^R^X^X). + - Automatic adding of newlines to the ends of files without them can + now be disabled (-L). + - Converting from and to DOS/Mac file format is now toggled only at the + "Write File" prompt, via Meta-D and Meta-M, and the default file format + to save in is now set depending on what format the file was originally + in. -D now makes nano use bold text instead of reverse video text, + and Meta-D at the edit window now does a word/line/character count. + -O now makes the unused second line of the screen part of the edit + window, and Meta-O now toggles this behavior while editing. + - Converting files that contain a mix of DOS and Mac format lines. + - Automatic switching on of -N with binary files has been removed, as + it causes problems with UTF-8 support. + +Since 1.0 + - Complete Pico compatibility (option --pico has been removed, + and -p now means something else, see below). + - Support for nanorc files. + - Smooth scrolling (-S). + - Jumping to the matching brace, bracket, etc. + - Help for all editor features. + - Color syntax highlighting support. + - Quote string support, useful for mail agents, etc. (-Q). + - Insertion of output of external commands. + - Optional enabling of XON and XOFF control characters (-p). + - Option -o (--operatingdir) implements a chroot of sorts. + - Mouse support (-m) also allows clicking on shortcuts. + - Option -r allows a negative argument. + - Overwriting and appending or prepending to files. + - Writing marked text to separate files. + - Multiple file buffers (-F). + - Converting from and to DOS/Mac file format (-D/-M, -N to disable). + - Better control character handling. + - Creation of backup files (-B). + - Search/replace history (-H). + +Available in 1.0: + - Spell checking (^T). + - Justification (^J) and unjustification (^U). + - Internationalization (more translations are welcome). + - Help texts (^G). + - Resizing in X. + - On PageUp/Down, the cursor is put on the first screen line (like Pico). + - Tab completion at the prompt (for filenames and ~user). + - Cut-to-end-of-line option (-k). diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..8865734 --- /dev/null +++ b/INSTALL @@ -0,0 +1,368 @@ +Installation Instructions +************************* + + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command './configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the 'README' file for +instructions specific to this package. Some packages provide this +'INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The 'configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that +you can run in the future to recreate the current configuration, and a +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). + + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can +be considered for the next release. If you are using the cache, and at +some point 'config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. + + The simplest way to compile this package is: + + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. + + Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type 'make' to compile the package. + + 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the 'make install' phase executed with root + privileges. + + 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other + targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the 'configure' script does not know about. Run './configure --help' +for details on some of the pertinent environment variables. + + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU 'make'. 'cd' to the +directory where you want the object files and executables to go and run +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. + + With a non-GNU 'make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use 'make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to 'configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +'make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, 'make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. + + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the +package recognizes. + + For packages that use the X Window System, 'configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of 'make' will be. For these packages, running './configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with 'make V=1'; while running './configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with 'make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. + + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features 'configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, 'configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option '--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with '--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to 'configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified 'gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +'configure' Invocation +====================== + + 'configure' recognizes the following options to control how it +operates. + +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. + +'--help=short' +'--help=recursive' + Print a summary of the options unique to this package's + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' + script, and exit. + +'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + 'configure' can determine that directory automatically. + +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. + +'--no-create' +'-n' + Run the configure checks, but stop before creating any output + files. + +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..ad76876 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,17 @@ +AUTOMAKE_OPTIONS = gnu no-dependencies + +SUBDIRS = doc lib m4 po src + +if USE_COLOR +SUBDIRS += syntax +endif + +EXTRA_DIST = IMPROVEMENTS + +ACLOCAL_AMFLAGS = -I m4 + +showinfo: + @ echo + @ echo " The global nanorc file is: @sysconfdir@/nanorc" + @ echo " Syntaxes get installed in: @PKGDATADIR@/" + @ echo diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..8ae4d74 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,2209 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@USE_COLOR_TRUE@am__append_1 = syntax +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ + $(top_srcdir)/m4/absolute-header.m4 \ + $(top_srcdir)/m4/ac_define_dir.m4 $(top_srcdir)/m4/alloca.m4 \ + $(top_srcdir)/m4/assert_h.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/chdir-long.m4 \ + $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ + $(top_srcdir)/m4/ctype_h.m4 $(top_srcdir)/m4/d-type.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/error_h.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ + $(top_srcdir)/m4/exponentl.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/filenamecat.m4 \ + $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ + $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \ + $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/free.m4 \ + $(top_srcdir)/m4/frexp.m4 $(top_srcdir)/m4/frexpl.m4 \ + $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ + $(top_srcdir)/m4/futimens.m4 $(top_srcdir)/m4/getcwd.m4 \ + $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \ + $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getlogin.m4 \ + $(top_srcdir)/m4/getlogin_r.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/getrandom.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glob.m4 \ + $(top_srcdir)/m4/glob_h.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/include_next.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ + $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/isnand.m4 \ + $(top_srcdir)/m4/isnanf.m4 $(top_srcdir)/m4/isnanl.m4 \ + $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/langinfo_h.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libunistring-base.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ + $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ + $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ + $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ + $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ + $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ + $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ + $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \ + $(top_srcdir)/m4/mkstemps.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ + $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/open-cloexec.m4 \ + $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ + $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pid_t.m4 \ + $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf-frexp.m4 \ + $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readdir.m4 \ + $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ + $(top_srcdir)/m4/save-cwd.m4 \ + $(top_srcdir)/m4/setlocale_null.m4 \ + $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ + $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/signbit.m4 \ + $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf-posix.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \ + $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ + $(top_srcdir)/m4/std-gnu11.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ + $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ + $(top_srcdir)/m4/strcasestr.m4 $(top_srcdir)/m4/strdup.m4 \ + $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ + $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \ + $(top_srcdir)/m4/sys_random_h.m4 \ + $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \ + $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/timespec.m4 \ + $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utime_h.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \ + $(top_srcdir)/m4/visibility.m4 \ + $(top_srcdir)/m4/vsnprintf-posix.m4 \ + $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ + $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ + $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ + $(top_srcdir)/m4/wmemchr.m4 $(top_srcdir)/m4/wmempcpy.m4 \ + $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/zzgnulib.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +depcomp = +am__maybe_remake_depfiles = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = doc lib m4 po src syntax +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + ABOUT-NLS AUTHORS COPYING COPYING.DOC ChangeLog INSTALL NEWS \ + README THANKS TODO compile config.guess config.rpath \ + config.sub depcomp install-sh missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASSERT_H = @ASSERT_H@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CLOCK_TIME_LIB = @CLOCK_TIME_LIB@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURSES_LIB = @CURSES_LIB@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ERROR_H = @ERROR_H@ +EXEEXT = @EXEEXT@ +FLOAT_H = @FLOAT_H@ +FNMATCH_H = @FNMATCH_H@ +GETLOGIN_LIB = @GETLOGIN_LIB@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETRANDOM_LIB = @GETRANDOM_LIB@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLOB_H = @GLOB_H@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ +GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ +GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ +GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ +GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ +GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ +GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ +GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ +GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ +GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ +GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ +GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ +GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ +GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ +GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_COSF = @GL_GNULIB_COSF@ +GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ +GL_GNULIB_COSL = @GL_GNULIB_COSL@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ +GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ +GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ +GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ +GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ +GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ +GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ +GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ +GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFS = @GL_GNULIB_FFS@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ +GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ +GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ +GL_GNULIB_FMA = @GL_GNULIB_FMA@ +GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ +GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ +GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ +GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ +GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ +GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ +GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ +GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GLOB = @GL_GNULIB_GLOB@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ +GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ +GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ +GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ +GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ +GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ +GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ +GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ +GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ +GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ +GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ +GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LOG = @GL_GNULIB_LOG@ +GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ +GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ +GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ +GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ +GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ +GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ +GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ +GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ +GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ +GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ +GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ +GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ +GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ +GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ +GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ +GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_UTIME = @GL_GNULIB_MDA_UTIME@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ +GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ +GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_MODF = @GL_GNULIB_MODF@ +GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ +GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_POWF = @GL_GNULIB_POWF@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ +GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ +GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ +GL_GNULIB_RINT = @GL_GNULIB_RINT@ +GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ +GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ +GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ +GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SINF = @GL_GNULIB_SINF@ +GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ +GL_GNULIB_SINL = @GL_GNULIB_SINL@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ +GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TANF = @GL_GNULIB_TANF@ +GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ +GL_GNULIB_TANL = @GL_GNULIB_TANL@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ +GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIME = @GL_GNULIB_UTIME@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WAITPID = @GL_GNULIB_WAITPID@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ +HAVE_ACOSF = @HAVE_ACOSF@ +HAVE_ACOSL = @HAVE_ACOSL@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ +HAVE_ASINF = @HAVE_ASINF@ +HAVE_ASINL = @HAVE_ASINL@ +HAVE_ATAN2F = @HAVE_ATAN2F@ +HAVE_ATANF = @HAVE_ATANF@ +HAVE_ATANL = @HAVE_ATANL@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CBRT = @HAVE_CBRT@ +HAVE_CBRTF = @HAVE_CBRTF@ +HAVE_CBRTL = @HAVE_CBRTL@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ +HAVE_COPYSIGN = @HAVE_COPYSIGN@ +HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_COSF = @HAVE_COSF@ +HAVE_COSHF = @HAVE_COSHF@ +HAVE_COSL = @HAVE_COSL@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ +HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ +HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ +HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ +HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ +HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ +HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ +HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ +HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_GETW = @HAVE_DECL_GETW@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ +HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ +HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ +HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ +HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ +HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ +HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ +HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ +HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ +HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ +HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DIRENT_H = @HAVE_DIRENT_H@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_ERROR = @HAVE_ERROR@ +HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPF = @HAVE_EXPF@ +HAVE_EXPL = @HAVE_EXPL@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_EXPM1 = @HAVE_EXPM1@ +HAVE_EXPM1F = @HAVE_EXPM1F@ +HAVE_FABSF = @HAVE_FABSF@ +HAVE_FABSL = @HAVE_FABSL@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFS = @HAVE_FFS@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FMA = @HAVE_FMA@ +HAVE_FMAF = @HAVE_FMAF@ +HAVE_FMAL = @HAVE_FMAL@ +HAVE_FMODF = @HAVE_FMODF@ +HAVE_FMODL = @HAVE_FMODL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FREXPF = @HAVE_FREXPF@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GLOB = @HAVE_GLOB@ +HAVE_GLOB_H = @HAVE_GLOB_H@ +HAVE_GLOB_PATTERN_P = @HAVE_GLOB_PATTERN_P@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_HYPOTF = @HAVE_HYPOTF@ +HAVE_HYPOTL = @HAVE_HYPOTL@ +HAVE_ILOGB = @HAVE_ILOGB@ +HAVE_ILOGBF = @HAVE_ILOGBF@ +HAVE_ILOGBL = @HAVE_ILOGBL@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISNAND = @HAVE_ISNAND@ +HAVE_ISNANF = @HAVE_ISNANF@ +HAVE_ISNANL = @HAVE_ISNANL@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LDEXPF = @HAVE_LDEXPF@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LOG10F = @HAVE_LOG10F@ +HAVE_LOG10L = @HAVE_LOG10L@ +HAVE_LOG1P = @HAVE_LOG1P@ +HAVE_LOG1PF = @HAVE_LOG1PF@ +HAVE_LOG1PL = @HAVE_LOG1PL@ +HAVE_LOGBF = @HAVE_LOGBF@ +HAVE_LOGBL = @HAVE_LOGBL@ +HAVE_LOGF = @HAVE_LOGF@ +HAVE_LOGL = @HAVE_LOGL@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MODFF = @HAVE_MODFF@ +HAVE_MODFL = @HAVE_MODFL@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OPENDIR = @HAVE_OPENDIR@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_POWF = @HAVE_POWF@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READDIR = @HAVE_READDIR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_REMAINDER = @HAVE_REMAINDER@ +HAVE_REMAINDERF = @HAVE_REMAINDERF@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_REWINDDIR = @HAVE_REWINDDIR@ +HAVE_RINT = @HAVE_RINT@ +HAVE_RINTL = @HAVE_RINTL@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SINF = @HAVE_SINF@ +HAVE_SINHF = @HAVE_SINHF@ +HAVE_SINL = @HAVE_SINL@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_SQRTF = @HAVE_SQRTF@ +HAVE_SQRTL = @HAVE_SQRTL@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASECMP = @HAVE_STRCASECMP@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRINGS_H = @HAVE_STRINGS_H@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_TANF = @HAVE_TANF@ +HAVE_TANHF = @HAVE_TANHF@ +HAVE_TANL = @HAVE_TANL@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIME = @HAVE_UTIME@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_UTIME_H = @HAVE_UTIME_H@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__EXIT = @HAVE__EXIT@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTHREAD = @LIBTHREAD@ +LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ +LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETLOGIN = @LIB_GETLOGIN@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MBRTOWC_LIB = @MBRTOWC_LIB@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NCURSESW_CFLAGS = @NCURSESW_CFLAGS@ +NCURSESW_CONFIG = @NCURSESW_CONFIG@ +NCURSESW_LIBS = @NCURSESW_LIBS@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_LIBS = @NCURSES_LIBS@ +NEXT_ASSERT_H = @NEXT_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_GLOB_H = @NEXT_AS_FIRST_DIRECTIVE_GLOB_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_UTIME_H = @NEXT_AS_FIRST_DIRECTIVE_UTIME_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_GLOB_H = @NEXT_GLOB_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRINGS_H = @NEXT_STRINGS_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_UTIME_H = @NEXT_UTIME_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGDATADIR = @PKGDATADIR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ACOSF = @REPLACE_ACOSF@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_ASINF = @REPLACE_ASINF@ +REPLACE_ATAN2F = @REPLACE_ATAN2F@ +REPLACE_ATANF = @REPLACE_ATANF@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CBRTF = @REPLACE_CBRTF@ +REPLACE_CBRTL = @REPLACE_CBRTL@ +REPLACE_CEIL = @REPLACE_CEIL@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_COSF = @REPLACE_COSF@ +REPLACE_COSHF = @REPLACE_COSHF@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DIRFD = @REPLACE_DIRFD@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_ERROR = @REPLACE_ERROR@ +REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_EXP2 = @REPLACE_EXP2@ +REPLACE_EXP2L = @REPLACE_EXP2L@ +REPLACE_EXPF = @REPLACE_EXPF@ +REPLACE_EXPL = @REPLACE_EXPL@ +REPLACE_EXPM1 = @REPLACE_EXPM1@ +REPLACE_EXPM1F = @REPLACE_EXPM1F@ +REPLACE_EXPM1L = @REPLACE_EXPM1L@ +REPLACE_FABSL = @REPLACE_FABSL@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FLOOR = @REPLACE_FLOOR@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FMA = @REPLACE_FMA@ +REPLACE_FMAF = @REPLACE_FMAF@ +REPLACE_FMAL = @REPLACE_FMAL@ +REPLACE_FMOD = @REPLACE_FMOD@ +REPLACE_FMODF = @REPLACE_FMODF@ +REPLACE_FMODL = @REPLACE_FMODL@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPF = @REPLACE_FREXPF@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GLOB = @REPLACE_GLOB@ +REPLACE_GLOB_PATTERN_P = @REPLACE_GLOB_PATTERN_P@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ +REPLACE_HYPOT = @REPLACE_HYPOT@ +REPLACE_HYPOTF = @REPLACE_HYPOTF@ +REPLACE_HYPOTL = @REPLACE_HYPOTL@ +REPLACE_ILOGB = @REPLACE_ILOGB@ +REPLACE_ILOGBF = @REPLACE_ILOGBF@ +REPLACE_ILOGBL = @REPLACE_ILOGBL@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_ISINF = @REPLACE_ISINF@ +REPLACE_ISNAN = @REPLACE_ISNAN@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_ITOLD = @REPLACE_ITOLD@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LOG = @REPLACE_LOG@ +REPLACE_LOG10 = @REPLACE_LOG10@ +REPLACE_LOG10F = @REPLACE_LOG10F@ +REPLACE_LOG10L = @REPLACE_LOG10L@ +REPLACE_LOG1P = @REPLACE_LOG1P@ +REPLACE_LOG1PF = @REPLACE_LOG1PF@ +REPLACE_LOG1PL = @REPLACE_LOG1PL@ +REPLACE_LOG2 = @REPLACE_LOG2@ +REPLACE_LOG2F = @REPLACE_LOG2F@ +REPLACE_LOG2L = @REPLACE_LOG2L@ +REPLACE_LOGB = @REPLACE_LOGB@ +REPLACE_LOGBF = @REPLACE_LOGBF@ +REPLACE_LOGBL = @REPLACE_LOGBL@ +REPLACE_LOGF = @REPLACE_LOGF@ +REPLACE_LOGL = @REPLACE_LOGL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_MODF = @REPLACE_MODF@ +REPLACE_MODFF = @REPLACE_MODFF@ +REPLACE_MODFL = @REPLACE_MODFL@ +REPLACE_NAN = @REPLACE_NAN@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMAINDER = @REPLACE_REMAINDER@ +REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ +REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RINTL = @REPLACE_RINTL@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ +REPLACE_SINF = @REPLACE_SINF@ +REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_SQRTF = @REPLACE_SQRTF@ +REPLACE_SQRTL = @REPLACE_SQRTL@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TANF = @REPLACE_TANF@ +REPLACE_TANHF = @REPLACE_TANHF@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNC = @REPLACE_TRUNC@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TRUNCF = @REPLACE_TRUNCF@ +REPLACE_TRUNCL = @REPLACE_TRUNCL@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIME = @REPLACE_UTIME@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ +SED = @SED@ +SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDARG_H = @STDARG_H@ +STDCKDINT_H = @STDCKDINT_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = gnu no-dependencies +SUBDIRS = doc lib m4 po src $(am__append_1) +EXTRA_DIST = IMPROVEMENTS +ACLOCAL_AMFLAGS = -I m4 +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + dist-zstd distcheck distclean distclean-generic distclean-hdr \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +showinfo: + @ echo + @ echo " The global nanorc file is: @sysconfdir@/nanorc" + @ echo " Syntaxes get installed in: @PKGDATADIR@/" + @ echo + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e02b47c --- /dev/null +++ b/NEWS @@ -0,0 +1,2153 @@ +2023.01.18 - GNU nano 7.2 "Boer doe mij 't hekke lös!" +• is prevented from pasting in view mode. + +2022.12.14 - GNU nano 7.1 "And the devices shall be made of wood" +• When --autoindent and --breaklonglines are combined, pressing + at a specific position no longer eats characters. + +2022.11.15 - GNU nano 7.0 "Una existencia simple bajo el sol" +• String binds may contain bindable function names between braces. + For example, to move the current line down to after the next one: + bind ^D "{cut}{down}{paste}{up}" main. Of course, braced function + names may be mixed with literal text. If an existing string bind + contains a literal {, replace it with {{}. +• Unicode codes can be entered (via M-V) without leading zeroes, + by finishing short codes with or . +• Word completion (^]) looks for candidates in all open buffers. +• No regular expression matches the final empty line any more. + + +2022.08.02 - GNU nano 6.4 "Regentag Dunkelbunt Hundertwasser" +• The file browser does not crash when moving up to the root folder. +• Softwrapping very long lines is done more efficiently. +• Invoking the formatter does not blink the screen. + +2022.04.28 - GNU nano 6.3 "Wat zullen we drinken? Wat een dorst!" +• For multiline regexes, text is now colored as soon as a start match + is found, also when there is no end match at all. +• The colorizing of any line is stopped after two thousand bytes, + to avoid frustrating delays. +• When environment variable NO_COLOR is set, the two default colors + (yellow for the spotlight, red for error messages) are suppressed + when no interface colors are specified in a nanorc file. +• Full justification and piping the whole buffer through a command + now keep the cursor at the same line number. +• Utility 'xsel' can be used to copy a marked region to the system's + clipboard. See doc/sample.nanorc for an example. + +2022.02.18 - GNU nano 6.2 "Kamperfoelie" +• The file browser clears the prompt bar also when using --minibar. +• Linting now works also with a newer 'pyflakes'. + +2022.02.09 - GNU nano 6.1 "Rețelele de socializare sunt ca un frigider" +• The behavior of ^K at a prompt has been enhanced: when there is some + text after the cursor, just this text is erased. In the most common + situation, when the cursor is at the end of the answer, the behavior + is as before: the whole answer is erased. +• At a prompt, M-6 copies the current answer into the cutbuffer. +• Large external pastes into nano are handled more quickly. + +2021.12.15 - GNU nano 6.0 "Humor heeft ook zijn leuke kanten" +• Option --zero hides the title bar, status bar and help lines, and + uses all rows of the terminal as editing area. The title bar and + status bar can be toggled with M-Z. +• Colors can now be specified also as three-digit hexadecimal numbers, + in the format #rgb. This picks from the 216 index colors (that most + terminals know) the color that is nearest to the given values. +• For users who dislike numbers, there are fourteen new color names: + rosy, beet, plum, sea, sky, slate, teal, sage, brown, ocher, sand, + tawny, brick, and crimson. +• Suspension is enabled by default, invokable with ^T^Z. The options + -z, --suspendable, and 'set suspendable' are obsolete and ignored. + (In case you want to be able to suspend nano with a single keystroke, + you can put 'bind ^Z suspend main' in your nanorc.) +• When automatic hard-wrapping is in effect, pasting just a few words + (without a line break) will now hard-wrap the line when needed. +• Toggling Append or Prepend clears the current filename. +• The word count as shown by M-D is now affected by option --wordbounds; + with it, nano counts words as 'wc' does; without it (the new default), + words are counted in a more human way: seeing punctuation as space. +• The YAML syntax file is now actually included in the tarball. + + +2021.10.06 - GNU nano 5.9 "El manicomio ha decidido: mañana sol!" +• The extension of a filename is added to the name of a corresponding + temporary file, so that spell checking a C file, for example, will + check only the comments and strings (when using 'aspell'). +• The process number is added to the name of an emergency save file, + so that when multiple nanos die they will not fight over a filename. +• Undoing a cutting operation will restore an anchor that was located + in the cut area to its original line. +• When using --locking, saving a new buffer will create a lock file. +• Syntax highlighting for YAML files has been added. + +2021.06.15 - GNU nano 5.8 "Why is it necessary to be special?" +• After a search, the spotlighting is dropped after 1.5 seconds (0.8 + seconds with --quick) to avoid the idea that the text is selected. +• A + and a space before a filename on the command line will put the + cursor at the end of the corresponding buffer. +• Linter messages no longer include filename and line/column numbers. +• Color name "grey" or "gray" can be used instead of "lightblack". +• The color of the minibar can be chosen with 'set minicolor'. + +2021.04.29 - GNU nano 5.7 "Toți ceilalți arau câmpurile" +• The output of --constantshow (without --minibar) is more stable. +• When opening multiple buffers and there is an error message, this + message is shown again upon first switch to the relevant buffer. +• The position and size of the indicator now follow actual lines, + instead of visual lines when in softwrap mode, meaning that the + size of the indicator can change when scrolling in softwrap mode. + +2021.03.03 - GNU nano 5.6.1 "Geelgors" +• Search matches are properly colorized in softwrap mode too. +• Option 'highlightcolor' has been renamed to 'spotlightcolor'. + +2021.02.24 - GNU nano 5.6 "Wielewaal" +• A search match gets highlighted (in black on yellow by default), + in addition to placing the cursor at the start of the match. + The color combination can be changed with 'set highlightcolor'. + By default the cursor is hidden until the next keystroke, but + it can be forced on with --showcursor / 'set showcursor'. +• Option --markmatch / 'set markmatch' has been removed. +• Cursor position and character code are displayed in the minibar + only when option --constantshow / 'set constantshow' is used, + and their display can be toggled with M-C. +• The state flags are displayed in the minibar only when option + --stateflags / 'set stateflags' is used. + +2021.01.14 - GNU nano 5.5 "Rebecca" +• Option 'set minibar' makes nano suppress the title bar and instead + show a bar with basic editing information at the bottom: file name + (plus an asterisk when the buffer is modified), the cursor position + (line,column), the character under the cursor (U+xxxx), the flags + that --stateflags normally shows, plus the percentage of the buffer + that is above the cursor. +• With 'set promptcolor' the color combination of the prompt bar can + be changed, to allow contrasting it with the mini bar (which always + has the same color as the title bar). +• Option 'set markmatch' highlights the result of a successful search + by putting the mark at the end of the match, making the match more + visible. It also suppresses the cursor until the next keystroke. + (If you dislike the hiding of the cursor, use 'set showcursor'.) +• The bindable toggle 'nowrap' has been renamed to 'breaklonglines', + to match the corresponding option, like for all other toggles. +• Support for Slang has been removed. + +2020.12.02 - GNU nano 5.4 "Terre des hommes" +• Moving the cursor now skips over combining characters (and other + zero-width characters). Deleting a character deletes also any + succeeding zero-width characters, but backspacing deletes just + one character at a time. +• Workarounds for older ncurses and older libvtes were removed. + +2020.10.07 - GNU nano 5.3 "Revolution!" +• Option 'set stateflags' makes nano show the state of auto-indenting, + the mark, hard-wrapping, macro recording, and soft-wrapping in the + title bar. The flags take the place of "Modified", and a modified + buffer is instead indicated by an asterisk (*) after its name. +• Nano no longer by default tries using libmagic to determine the type + of a file (when neither filename nor first line gave a clue), because + in most cases it is a waste of time. It requires using the option + --magic or -! or 'set magic' to make nano try libmagic. +• The color of the indicator can be changed with 'set scrollercolor'. + +2020.08.24 - GNU nano 5.2 "Ranrapalca" +• Making certain replacements after a large paste does not crash. +• Hitting a toggle at the Search prompt does not clear the answer. +• Using --positionlog does not complain at the first start. +• A macro containing a Search command will not sometimes fail. + +2020.08.12 - GNU nano 5.1 "Cantabria" +• M-Bsp (Alt+Backspace) deletes a word backwards, like in Bash. +• M-[ has become bindable. (Be careful, though: as it is the + starting combination of many escape sequences, avoid gluing + it together with other keystrokes, like in a macro.) +• With --indicator and --softwrap, the first keystroke in an + empty buffer does not crash. +• Invoking the formatter while text is marked does not crash. +• In UTF-8 locales, an anchor is shown as a diamond. + +2020.07.29 - GNU nano 5.0 "Among the fields of barley" +• With --indicator (or -q or 'set indicator') nano will show a kind + of scrollbar on the righthand side of the screen to indicate where + in the buffer the viewport is located and how much it covers. +• With any line can be "tagged" with an anchor, and + and will jump to the nearest anchor. + When using line numbers, an anchor is shown as "+" in the margin. +• The Execute Command prompt is now directly accessible from the + main menu (with ^T, replacing the Spell Checker). The Linter, + Formatter, Spell Checker, Full Justification, Suspension, and + Cut-Till-End functions are available in this menu too. +• On terminals that support at least 256 colors, nine new color + names are available: pink, purple, mauve, lagoon, mint, lime, + peach, orange, and latte. These do not have lighter versions. +• For the color names red, green, blue, yellow, cyan, magenta, + white, and black, the prefix 'light' gives a brighter color. + Prefix 'bright' is deprecated, as it means both bold AND light. +• All color names can be preceded with "bold," and/or "italic," + (in that order) to get a bold and/or italic typeface. +• With --bookstyle (or -O or 'set bookstyle') nano considers any + line that begins with whitespace as the start of a paragraph. +• Refreshing the screen with ^L now works in every menu. +• In the main menu, ^L also centers the line with the cursor. +• Toggling the help lines with M-X now works in all menus except + in the help viewer and the linter. +• At a filename prompt, the first lists the possibilities, + and these are listed near the bottom instead of near the top. +• Bindable function 'curpos' has been renamed to 'location'. +• Long option --tempfile has been renamed to --saveonexit. +• Short option -S is now a synonym of --softwrap. +• The New Buffer toggle (M-F) has become non-persistent. Options + --multibuffer and 'set multibuffer' still make it default to on. +• Backup files will retain their group ownership (when possible). +• Data is synced to disk before "... lines written" is shown. +• The raw escape sequences for F13 to F16 are no longer recognized. +• Distro-specific syntaxes, and syntaxes of less common languages, + have been moved down to subdirectory syntax/extra/. The affected + distros and others may wish to move wanted syntaxes one level up. +• Syntaxes for Markdown, Haskell, and Ada were added. + + +2020.05.23 - GNU nano 4.9.3 "Almendras" +• One more bug introduced in version 4.9 is fixed: a crash when + the terminal screen is resized while at a lock-file prompt. + +2020.04.07 - GNU nano 4.9.2 "Mali Lošinj" +• Another bug introduced in version 4.9 is fixed: a likely crash + after undoing an at the end of leading whitespace. + +2020.03.31 - GNU nano 4.9.1 "Sapperdeflap" +• Two bugs introduced in version 4.9 are fixed: the cursor + getting misplaced when undoing line cuts, and filtering + of the whole buffer to a new buffer not working. + +2020.03.24 - GNU nano 4.9 "die fetten Jahre sind vorbei" +• When justifying a selection, the new paragraph and the + succeeding one get the appropriate first-line indent. +• Trying to justify an empty selection does not crash. +• Redoing the insertion of an empty file does not crash. +• On the BSDs and macOS, ^H has become rebindable again + (in most terminal emulators, not on the console). +• DOS line endings in nanorc files are accepted. +• Option --suspend / 'set suspend' has been renamed to + the more logical --suspendable / 'set suspendable'. + +2020.02.07 - GNU nano 4.8 "Jaška" +• When something is pasted into nano, auto-indentation is suppressed, + and the paste can be undone as a whole with a single M-U. +• When a lock file is encountered during startup, pressing ^C/Cancel + quits nano. (Pressing 'No' just skips the file and continues.) +• Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter'. + Making any such binding dismisses the default behavior of ignoring + Shift for all Meta+letter keystrokes. +• The configuration option --with-slang (to be avoided when possible) + can now be used only together with --enable-tiny. +• A custom nanorc file can be specified on the command line, with + -f filename or --rcfile=filename. + +2019.12.23 - GNU nano 4.7 "Havikskruid" +• A will indent a marked region only when mark and cursor are + on different lines. +• Two indentations (any mix of tabs and spaces) are considered the + same when they look the same (that is: indent to the same level). +• When using --breaklonglines or ^J, a line will never be broken in + its leading whitespace or quoting. +• The keywords in nanorc files must be in lowercase. + +2019.11.29 - GNU nano 4.6 "And don't you eat that yellow snow" +• The 'formatter' command has returned, bound by default to M-F. + It allows running a syntax-specific command on the contents of + the buffer. +• ^T will try to run 'hunspell' before 'spell', because it checks + spelling for the locale's language and understands UTF-8. +• Multiple errors or warnings on startup will no longer slow nano + down but will be indicated on the status bar with trailing dots. + +2019.10.04 - GNU nano 4.5 "Košice" +• The new 'tabgives' command allows you to specify per syntax what + the key should produce: some spaces, a hard TAB, ... +• The output of --help is properly aligned again for all languages. +• will indent a marked region also when M-} has been rebound. + +2019.08.25 - GNU nano 4.4 "Hagelslag" +• At startup, the cursor can be put on the first or last occurrence + of a string by preceding the filename with +/string or +?string. +• When automatic hard-wrapping occurs (--breaklonglines), any leading + quoting characters will be automatically copied to the new line. +• M-6 works again also when the cursor is at end of buffer. + +2019.06.18 - GNU nano 4.3 "Musa Kart" +• The ability to read from and write to a FIFO has been regained. +• Opening a file no longer triggers an inotify CLOSE_WRITE event. +• Startup time is reduced by fully parsing a syntax only when needed. +• Asking for help (^G) when using --operatingdir does not crash. +• The reading of a huge or slow file can be stopped with ^C. +• Cut, zap, and copy operations are undone separately when intermixed. +• M-D reports the correct number of lines (zero for an empty buffer). + +2019.04.24 - GNU nano 4.2 "Tax the rich, pay the teachers" +• The integrated spell checker does not crash when 'spell' is missing. +• Option --breaklonglines works also when --ignorercfiles is used. +• Automatic hard-wrapping is more persistent in pushing words to the + same overflow line. + +2019.04.15 - GNU nano 4.1 "Qué corchos será eso?" +• By default, a newline character is again automatically added at the + end of a buffer, to produce valid POSIX text files by default, but + also to get back the easy adding of text at the bottom. +• The now unneeded option --finalnewline (-f) has been removed. +• Syntax files are read in alphabetical order when globbing, so that + the precedence of syntaxes becomes predictable. +• In the C syntax, preprocessor directives are highlighted differently. +• M-S now toggles soft wrapping, and M-N toggles line numbers. +• The jumpy-scrolling toggle has been removed. +• The legacy keystrokes ^W^Y and ^W^V are recognized again. +• Executing an external command is disallowed when in view mode. +• Problems with resizing during external or speller commands were fixed. + +2019.03.24 - GNU nano 4.0 "Thy Rope of Sands" +• An overlong line is no longer automatically hard-wrapped. +• Smooth scrolling (one line at a time) has become the default. +• A newline character is no longer automatically added at end of buffer. +• The line below the title bar is by default part of the editing space. +• Option --breaklonglines (-b) turns automatic hard-wrapping back on. +• Option --jumpyscrolling (-j) gives the chunky, half-screen scrolling. +• Option --finalnewline (-f) brings back the automatic newline at EOF. +• Option --emptyline (-e) leaves the line below the title bar unused. +• and now do a linewise scroll instead of a findnext. +• Any number of justifications can be undone (like all other operations). +• When marked text is justified, it becomes a single, separate paragraph. +• Option --guidestripe= draws a vertical bar at the given column. +• Option --fill= no longer turns on automatic hard-wrapping. +• When a line continues offscreen, it now ends with a highlighted ">". +• The halves of a split two-column character are shown as "[" and "]". +• A line now scrolls horizontally one column earlier. +• The bindable functions 'cutwordleft' and 'cutwordright' were renamed + to 'chopwordleft' and 'chopwordright' as they don't use the cutbuffer. +• The paragraph-jumping functions were moved from Search to Go-to-Line. +• Option --rebinddelete is able to compensate for more misbindings. +• Options --morespace and --smooth are obsolete and thus ignored. +• The --disable-wrapping-as-root configure option was removed. + + +2018.11.11 - GNU nano 3.2 "Het kromme hout" changes the default binding + for the linter to M-B so that the spell checker (^T) can + always be used, and changes (when linting) the text in the + title bar and the color of the status bar to make linting + mode more obvious. It also adds a bindable 'zap' function + for deleting a line or marked region without changing the + cutbuffer, adds --zap to bind the and + keys to the zap function when something is marked, and + hard-binds to 'zap'. Furthermore, it shows the + cursor also in the help viewer (when --showcursor is used), + renames the bindable functions 'prevhistory' to 'older' and + 'nexthistory' to 'newer' (update your nanorcs when needed), + reads the nanorc files also in restricted mode to allow + customization by the user (if this should not be allowed, + use --ignorercfiles in addition to --restricted), allows + in view mode to open also other files (if this should not + be allowed, use --restricted in addition to --view), makes + resizes respect a relative --fill again, no longer binds + F13...F15 by default, properly re-highlights a misspelled + word after invoking help in the internal spell checker, + and does not skip Unicode characters in string binds. + +2018.09.18 - GNU nano 3.1 "Je faisais des bonds comme ça!" fixes a + misbinding of ^H on some terminals and some systems, + does not leave stray stuff after the prompt upon exit + when having suspended nano while using --constantshow, + and does not allow to toggle to Replace in view mode. + +2018.09.09 - GNU nano 3.0 "Water Flowing Underground" speeds up the + reading of a file by seventy percent, roughly doubles the + speed of handling ASCII text, changes the way words at line + boundaries are deleted, makes wipe the next + word and the preceding word, binds M-Q + to 'findprevious' by default (the Tabs-to-Spaces toggle is + placed on M-O, and the More-Space toggle is fully removed), + makes an external spell check undoable, shows the correct + number of lines on the status bar when opening multiple + files, removes the 'formatter' command, removes the + 'searchagain' bindable function (M-W is now bound to + 'findnext' by default), moves the No-Convert toggle to the + Insert menu, removes the Backup and New-Buffer toggles from + the main menu (they remain in the Write-Out and Insert + menus, respectively), is more precise in what it accepts as + a rebindable key name, ignores any presses of before + a valid command keystroke, recognizes some more escape + sequences for modified editing-pad keys, does not hide + rcfile error messages on a Linux console, renames the + bindable functions 'copytext' to 'copy' and 'uncut' to + 'paste', and avoids a possible hang during a Full-Justify. + + +2018.06.02 - GNU nano 2.9.8 "Espresso" brings the ability to filter the + buffer (or the marked region) through an external command + (^R^X and prefix the command with the pipe symbol, "|"), is + better at detecting and maintaining paragraphs, is able to + justify //-style comments, fixes a crash when the binding + of a key to a string lacks a closing quote, gives feedback + about the number of lines written also when prepending or + appending, and fixes a couple of bugs with the linter. + +2018.05.15 - GNU nano 2.9.7 "Hvide Sande" adds the option '--afterends' + for making Ctrl+Right (the nextword function) stop at word + ends instead of beginnings, accepts multibyte letters for + the Yes/No/All answers, does emergency saves of changed + buffers in the unlikely event that nano crashes, adds the + until-now missing bindable function 'linenumbers', and + renames the toggles 'constupdate' to 'constantshow' and + 'cuttoend' to 'cutfromcursor', for consistency with the + corresponding options -- adjust your nanorc files soon. + +2018.04.27 - GNU nano 2.9.6 "Gomance" fixes a crash in word completion, + makes --enable-altrcname work again, improves the fluidity + of scrolling when using the touchpad, tweaks the syntaxes + for shell scripts and PO files, makes a replacing session + go always forward by default, no longer inserts a newline + after an external spell check of a selected region, always + accepts the English Y and N (and A) at a yes-no prompt in + any locale, and solves a few hypothetical bugs. + +2018.03.29 - GNU nano 2.9.5 "Kiša pada" changes the way the Scroll-Up + and Scroll-Down commands work (M-- and M-+): instead of + keeping the cursor in the same screen position they now + keep the cursor in the same text position (if possible). + This version further adds a new color name, "normal", + which gives the default foreground or background color, + which is useful when you want to undo some overzealous + painting by earlier syntax regexes. Bug fixes include: + a segfault when trying to insert a file in restricted + mode, the reading in of a new file being "undoable", a + slight miswrapping of help texts when --linenumbers was + used, and the shell syntax coloring the word "tar" in + file names. + +2018.03.08 - GNU nano 2.9.4 "Isabel" allows binding a key to a string + (any piece of text and/or commands), permits customizing + the color of error messages with 'set errorcolor', colors + those error messages by default in bright white on red, + makes at the bottom of the screen scroll just one + row when --smooth is used, does not fail when redoing a + file insertion, and cancels a Shift-selection when any + cursor key is pressed without Shift even when the cursor + cannot move. Further, it treats tabs fully the same as + spaces when doing automatic hard-wrapping, allows syntax + names to be unquoted, and removes two deprecated options + and six deprecated bindable function names. + +2018.01.29 - GNU nano 2.9.3 "Córdoba" fixes a segfault with trimblanks + that could occur when a typed space caused the word after + it to be pushed to the next line. It further makes macros + work also when your keyboard still emits escape sequences, + adds the options -M and --trimblanks for the command line, + recognizes key combos with Shift on a few more terminals, + no longer shows dots in certain prompt texts when visible + whitespace is turned on, fixes two corner cases when doing + replacements in a marked region, allows to open a named + pipe again when using --noread, and accurately detects + a needed color change when a line contains a start match + but not a corresponding end match any more. Plus some + other small fry. + +2018.01.02 - GNU nano 2.9.2 "Pussy Riot" correctly displays the Modified + state when undoing/redoing (also when the file was saved + somewhere midway), improves the undoing of an automatic + linefeed at EOF, fixes a build issue on the BSDs, shows + the cursor again when compiled with --withslang, renames + the option 'justifytrim' to 'trimblanks' because it will + now snip trailing whitespace also while you are typing + (and hard-wrapping is enabled), continues pushing words + to the next line much longer (when hard-wrapping), makes + and indent and unindent a marked region, + allows unindenting when not all lines are indented, lets a + region marked with Shift persist when indenting/unindenting + or commenting/uncommenting it, and in those cases excludes + the last line of the region when it is not visibly marked + (which makes for a more intuitive behavior). + +2017.11.27 - GNU nano 2.9.1 "Damyatta" fixes a bug where, when the mark + is on, ^S would overwrite the file with just the marked + region. This release further clears the "Modified" flag + when all edits are undone, adds or updates some magic + strings, and does not forget when the cursor was last + at line 1, column 1. + +2017.11.18 - GNU nano 2.9.0 "Eta" introduces the ability to record and + replay keystrokes (M-: to start and stop recording, M-; + to play the macro back), makes ^Q and ^S do something + useful by default (^Q starts a backward search, and ^S + saves the current file), changes ^W to start always a + forward search, shows the number of open buffers (when + more than one) in the title bar, no longer asks to press + Enter when there are errors in an rc file, retires the + options '--quiet' and 'set quiet' and 'set backwards', + makes indenting and unindenting undoable, will look in + $XDG_CONFIG_HOME for a nanorc file and in $XDG_DATA_HOME + for the history files, adds a history stack for executed + commands (^R^X), does not overwrite the position-history + file of another nano, and fixes a score of tiny bugs. + + +2017.08.27 - GNU nano 2.8.7 "Fragrance" fixes a lockup when tabs are + wider than the screen, makes indenting + unindenting + more predictable by retaining relative indentations, + allows pasting (^U) at a prompt, allows triple quotes + in Python to not be followed by a character, does not + scroll three pages on a roll of the mouse wheel, binds + Alt+Up and Alt+Down to findprevious and findnext, and + fixes some hard-to-describe issues with softwrapping + and boundary-crossing tabs. Enjoy. + +2017.07.21 - GNU nano 2.8.6 "Kekulé" offers a new feature: the ability + to do softwrapping between words -- at whitespace -- + instead of always at the edge of the screen. This can + be activated with -a or --atblanks or 'set atblanks' + together with the softwrap option. This release further + fixes a handful of rare display glitches, fixes a build + failure on AIX, harmonizes the quoting rules in the rc + files, and renames the option 'cut' to 'cutfromcursor' + (please update your nanorc files before 2020). + +2017.06.25 - GNU nano 2.8.5 "Farouche" avoids a crash when waking from + a suspension that was induced from the outside, allows + negative line and column numbers on the command line, + avoids some flickering when resizing the screen while + in the file browser, opens files in the order they were + mentioned on the command line, and does not pretend to + have woken from suspension when receiving a SIGCONT. + +2017.05.21 - GNU nano 2.8.4 "Our Version of Events" includes the nanorc + man page again. + +2017.05.18 - GNU nano 2.8.3 "Hirsch" fixes a misplacement of the spotlight + during interactive replacing, avoids build failures on AIX + and Solaris, fixes a crash on Solaris, speeds up backwards + searching, improves PHP syntax highlighting, and no longer + asks “save anyway?” when the user ^Q discards the buffer. + +2017.05.04 - GNU nano 2.8.2 "Krats" adds another new feature: it makes + the ^G help texts searchable with ^W. Apart from that, + it fixes a crash when resizing the window in the middle + of verbatim input, avoids an unlikely crash when used + without UTF-8 support in some locales, avoids redrawing + the screen twice when switching between buffers while + line numbers are active, and works around a coloring + bug on musl. Plus tweaks to the documentation; plus + translation updates for fifteen languages. + +2017.04.12 - GNU nano 2.8.1 "Ellert" fixes build failures on MacOS and + on musl, fixes scrolling problems in softwrap mode when + double-width characters on row boundaries are involved, + shows double-width characters as ">" and "<" when split + across two rows, moves the cursor more predictably (at + the cost of sometimes putting it on the second "half" + of a character), avoids creating lines that consist of + only blanks when using autoindent, makes ^Home and ^End + go to the start and end of the file (on terminals that + support those keystrokes), places the cursor better when + linting, lets the linter ask only once whether to open + an included file, and adds bindings for ^Up and ^Down + in the file browser. Don't sit on your hands. + +2017.03.31 - GNU nano 2.8.0 "Axat" makes it easier to move around in + softwrapped lines: the Up and Down keys now step from + visual row to visual row instead of jumping between + logical lines, and the Home and End keys now move to + the start and end of a row, and only when already + there, then to the start and end of the logical line. + Furthermore, the screen can now scroll per row instead + of always per logical line. On an entirely different + front: nano now makes use of gnulib, to make it build + on more platforms. In short: there were many internal + changes, not many user-visible ones (apart from the + new softwrap navigation). The conversion to gnulib + was done by Mike Frysinger, the softwrap overhaul by + David Ramsey. + + +2017.02.23 - GNU nano 2.7.5 "Nijntje" can properly search and replace + the \B and \b regex anchors, correctly repaints things + when multiline regexes with identical start and end are + involved, fixes a crash with zero-length regex matches, + does replacements at the edges of a marked region right, + no longer hides double-width characters at the head of + softwrapped rows, displays at most three warnings at + startup, and documents the ability to read a file from + standard input. Come tickle my ears. + +2017.01.10 - GNU nano 2.7.4 "Red dress" undoes deletions in an orderly + manner again (bug was introduced in previous version), + sets the preferred x position for vertical movements + more consistently, avoids some scrolling problems in + softwrap mode, installs the Info manual also when your + system lacks 'makeinfo', and corrects the behavior of + the beginning-of-word anchor (\<) in regex searches. + +2016.12.28 - GNU nano 2.7.3 "Ontbijtkoek" wipes away a handful of bugs: + your editor is now able to handle filenames that contain + newlines, avoids a brief flash of color when switching + between buffers that are governed by different syntaxes, + makes the Shift+Ctrl+Arrow keys select text again on a + Linux console, is more resistant against malformations + in the positionlog file, and does not crash when ^C is + typed on systems where it produces the code KEY_CANCEL. + Oh, and it no longer mistakenly warns about editing an + unlocked file just after saving a new one. That's it. + Tastes great with thick butter. + +2016.12.12 - GNU nano 2.7.2 "Shemesh! Shemesh!" brings another feature: + the ability to complete with one keystroke (^] by default) + a fragment of a word to a full word existing elsewhere in + the current buffer. Besides, this release fixes two bugs + related to using line numbers in softwrap mode, allows to + use the PageUp and PageDown keys together with Shift on + VTE-based terminals, stops the help lines from flickering + during interactive replacing, makes a 'set fill' override + an earlier 'set nowrap', properly restores the selected + region after an external spell check, and improves a few + other tidbits. If you should find any more bugs, please + run 'man nano | grep bugs' and report them there. + +2016.10.29 - GNU nano 2.7.1 "Leuven" adds an often-asked-for feature: the + ability to display line numbers beside the text. This can + be activated with -l or --linenumbers on the command line, + or with 'set linenumbers' in your nanorc, or toggled with + M-#. The coloring of these numbers can be chosen via the + option 'set numbercolor'. This release furthermore fixes + some bugs with scrolling in softwrap mode, is more strict + in the parsing of key rebindings, and marks a new buffer + as modified when the output of a command (^R^X) has been + read into it. Come and check it out! + +2016.09.01 - GNU nano 2.7.0 "Suni" adds a new feature: allowing text to + be selected by holding Shift together with the cursor keys. + Besides that, nano now works also when run in very tiny + terminals (down to one line, one column), and improves + the handling of the prompt in cramped spaces. Not much, + but it's time to get it out there. + + +2016.08.10 - nano 2.6.3 "Marika" makes the Ctrl+Arrow keys work also on + a Linux virtual console, takes as verbatim only the very + first keystroke after M-V, removes any lock files that it + holds when dying, doesn't abort when a word contains digits + (when using the default speller), fixes a small sorting bug + in the file browser, makes searching case-insensitively in + a UTF-8 locale a little faster, and doesn't enter invalid + bytes when holding down both Alt keys. Santé! + +2016.07.28 - nano 2.6.2 "Le vent nous portera" adds two new features: the + keystrokes Ctrl+Up and Ctrl+Down for jumping between blocks + of text, and the option 'wordchars' for specifying which + characters (beside alphanumeric ones) should be considered + word-forming. Further, it provides feedback during Unicode + input (M-V followed by a six-digit hexadecimal number which + must start with 0 or 10), avoids a crash when resizing the + window during Verbatim input, doesn't drop a keystroke after + having been suspended, and replaces the beginning-of-line + anchor (^) just once per line. There are also several tiny + improvements in screen rendering and key handling. Come get + your hair tousled! + +2016.06.27 - nano 2.6.1 "Stampede" is chiefly a translation update, but + also adds one little feature (the ability to use negative + numbers with Go To Line: -1 meaning the first line from the + bottom), includes syntax highlighting for Rust, and fixes + three tiny bugs (but in such far corners of the editor that + they aren't even worth mentioning). + +2016.06.17 - nano 2.6.0 "Rubicon" fixes more than fifty little bugs -- + and some of them not so little. It improves moving about + in the file browser, corrects failings of the internal spell + checker, adds a new feature (comment/uncomment lines, with + default binding M-3), makes some error messages clearer, + shows more of a file when positionlog is used and the cursor + is near the end, displays all error messages at startup if + there are multiple ones, does not misinterpret keystrokes + when typing very fast, is less eager to trim the filename + on narrow terminals, speeds up case-insensitive searches, + and allows to abort re-searches. Among bunches of other + things. It is worth the trouble to upgrade. + + +2016.02.25 - GNU nano 2.5.3 "Alphys" is released. This release contains + fixes for bugs like: stray cursor positioning errors, many + many memory leaks including during file reading, using the + file browser, searching for multibyte characters, history + completion, and many other places. + New features include the ability to trim whitespace + from the ends of lines when justifying text, see nanorc(5) + option justifytrim for deets. As always thank you for your + continued support of nano, and keep sparing. + +2016.02.12 - GNU nano 2.5.2 is carrying too many dogs. This release + includes several fixes for various memory leaks, position- + history size growth, and a long-standing issue with using + nano under sudo creating root-owned files. There are also + the usual bevy of documentation and other miscellaneous + fixes and touchups. Upgrade today while supplies last, + operators are standing by! + +2016.01.11 - GNU nano 2.5.1 "Salzburg" is released. It includes fixes + for a syntax-highlighting bug and a positionlog bug, it + disables a time-eating multiline regex in the C syntax, + and it adds an escape hatch to the WriteOut menu when + --tempfile is used: the discardbuffer command, ^Q. It + also has translation updates for fifteen languages, and + a small fix in the softwrap code. So... you are heartily + invited to upgrade. Enjoy! + +2015.12.05 - GNU nano 2.5.0 "Karma", the first release of the 2.5 series, + is now available. Please note that as of this release, + there will no longer be separate stable and unstable + branches. The development team will prioritize bug fixes + as needed, and make new releases in proportion to the + severity of the bugs which are fixed. + This release includes all of the fixes now in 2.4.3, as + well as color syntax highlighting improvements, undo fixes, + and many more improvements! Thank you for using nano! + + +2015.11.18 - GNU nano 2.4.3 "Apocalypse" is now available for your + downloading pleasure. This release includes a myriad + of fixes including several memory leaks, issues with + color syntax highlighting, search/replace, file insertion + and help menu bugs. Many thanks to Benno Schulenberg for + tireless efforts on the vast majority of fixes for some + time now. As always please report bugs via the Savannah + page, and remember to Share and Enjoy. + +2015.07.05 - GNU nano 2.4.2 "Portorož" is released. This release + includes several fixes, including the ability to resize + when in modes other than the main editing window, proper + displaying of invalid UTF-8 bytes, new syntax definitions + for Elisp, Guile, and PostgreSQL, and better display of + shortcuts in the help viewer and file browser. Thanks + for your patience and using nano! + +2015.04.14 - GNU nano 2.4.1 "Glitch Gremlin" is released. This release + includes several fixes for issues with the file browser + menu, linter and formatter functions, spell checker, + undo/redo with some specific marked-cutting situations, + and some small improvements to the color syntax + highlighting definitions. There are also various + documentation and code comment updates included, and + finally, fixes for compilation on non-GNU/Linux systems + and certain configure combinations. Toasters! + +2015.03.22 - GNU nano 2.4.0 "lizf" is released. This is the first + stable release in many years, and brings together many + new features from the 2.3 series, including: + a fully functional undo system (now enabled by default), + vim-compatible file locking, linter support, formatter + support, syntax highlighting flexibility, and many fixes + for issues reported since 2.2. Many sincere thanks + to all of the bug reports, patches, well wishes and + contributions from everyone who has continued to + support us. Thank you for using nano! + + +2015.02.27 - GNU nano 2.3.99pre3 "Ashley" is released. This is likely + to be the last release before the next major (2.4.0) + release. Please test it out and send us any feedback + via Savannah (https://savannah.gnu.org/bugs/?group=nano). + This release includes fixes for rebinding toggles via + nanorc, several memory alignment fixes, and documentation + and build updates. As always thank you for using nano - + Share and Enjoy! + +2015.02.06 - GNU nano 2.3.99pre2 "Snowblind" is released. This release + contains only fixes, including: a long-standing problem + with cutting in nano-tiny, several memory alignment + improvements, and issues with leftover file locks. Please + keep reporting bugs so we can get a happy and healthy + 2.4.0 soon. Thanks for using nano! + +2015.01.06 - GNU nano 2.3.99pre1 "Junior" is released. As the first + 2.4 release candidate there will be fewer new features + but many bugfixes going forward. This release contains + new support for language reformatters like Go's gofmt + command which takes the place of the spelling checker. + Fixes in this release include many syntax highlighting + fixes and improvements, and documentation formatting updates. + As always please report bugs via the Savannah bug page for + nano (https://savannah.gnu.org/bugs/?group=nano), so we can + release a super awesome and bug-free 2.4.0 soon! + +2014.07.17 - GNU nano 2.3.6 "Columbo" is released. This release + contains a fix for installing internationalization + files. Also included are scattered documentation + (in particular man page) fixes, and a few touchups + to syntax highlighting definitions. Oh, just one + more thing, thanks for using nano! + +2014.07.11 - GNU nano 2.3.5 "lucky day" is released. This release + contains many visible and under-the-hood fixes for + components such as file locking, more fixes to the + undo system, and you no longer have to explicitly ask + nano to have undo/redo support as it now defaults to + being enabled. Other notable fixes include a better + handling of --tempfile mode, and better handling of + command line arguments when also attempting to specify + +. As always, please file any bugs you + find via https://savannah.gnu.org/bugs/?group=nano + and thanks for using nano. + +2014.06.02 - GNU nano 2.3.4 won't leave you high, won't leave you dry. + This release contains only a small number of fixes, but + in particular allows nano to compile on non-UTF-8 curses + implementations (i.e. libncursesw). Other small fixes to + the undo implementation and the default syntax config are + also included. As always, Share and Enjoy! + +2014.05.28 - GNU nano 2.3.3 is in its right place. This release + contains many many improvements to the core system, + including substantial improvements to the undo/redo code, + UTF-8 handling, the configure script, and display of + shortcuts on very wide terminals. New features include + the ability to write to named pipes (--noread), as well + as linter support (see the nanorc man page for details). + Also included are much improved syntax highlighting code, + and configurations for JSON, texinfo, Go, and a default + syntax for catch-all highlighting. Finally, nano now has + the ability to set the color of the title bar, status bar, + and shortcut keys (e.g. "^X") and their descriptions. + Again see the nanorc page for details. There's much more, + too much to include here, but please keep those reports + and general feedback coming! Thank you for helping us + help you help us all. + +2013.03.22 - GNU nano 2.3.2 "Annoy your coworkers for fun and profit" is + released. This release introduces vim-style file locking + (though not backup/restore), useful when using nano in a + multi-editor environment. Feedback is welcome if you run + into any issues with this new code. Other new features + include additional support for word boundary checking when + cross compiling, fixes for trying to go to an invalid + line number, and the usual documentation tweaks. + +2011.05.10 - GNU nano 2.3.1 "I'm in space" is released. This release + includes some fixes for the new libmagic code, as well as + a fix for improper character counts when using auto-indent. + Also included are new syntax highlighting definitions for + RPM spec and Lua files. Thanks for using nano and keep + circulating the tapes. + +2011.02.26 - GNU nano 2.3.0 "Septic surprise" is released. This first + release in the 2.3 unstable series brings several new + features. First, libmagic support for syntax highlighting + has been added on top of the existing file extension and + header support already available. Secondly, cursor position + can be saved between editing sessions with the -P or --poslog + command-line flag, or via 'set poslog' in your .nanorc. Also + included are some fixes for compilation with g++, and better + handling of issues writing the backup file, which should + reduce the need for the 'set allow_insecure_backup' nanorc + option. Don't stop, get it get it, don't stop, get it get it. + + +2010.11.22 - GNU nano 2.2.6 "Pimp my BBS" wants you to go to + www.desertbus.org and donate a few bucks for the great + Child's Play Charity! This is just a small release to + update a bug where restricted mode was not particularly + restricted since key bindings were introduced. It also + signals the return of win32 builds which now feature + nanorc support; please see the FAQ for details of how + to enable it, this feature is a bit of a kludge for now. + Remember that when all else fails, USE SPACE JUMP. + +2010.08.05 - GNU nano 2.2.5 "Inactivity timeout" is now available. + This release includes slightly less restrictive checking + when writing files in strange environments (e.g. when + being used out of crontab). For very strange situations + (such as where you cannot change the permissions on the + file you're writing), there is a new rc file option + 'allow_insecure_backup' to be even more permissive and + allow the write to proceed. Also included are some + syntax highlighting updates, and that is about it. + Keep fighting the good fight children. + +2010.04.15 - GNU nano 2.2.4 is nobody's fool. First and foremost, + this release includes some security fixes due to + an assessment of nano's vulnerability to symlink attacks + on open files. The CVEs fixed with this release are + CVE-2010-1160 and CVE-2010-1161. Also included are fixes + for various crash modes when using the spell checker + on new files in multibuffer mode (surely you've used + that combination recently? no?) as well as a fixing + the 'file was modified' message when saving to a + new filename (since how would nano know?). And + the list would not be complete without our + third-times-the-charm fixes to page up/down due to + the soft wrapping code. The lone new feature + included is a new syntax highlighting definition for + cmake-related files. Please do consider upgrading to + this release if still using the 2.0 series since + fixes for that version are still forthcoming. + +2010.02.11 - GNU nano 2.2.3 "fumbling toward stability" is released. + This release contains a fix for only one bug, but a + rather irritating one: when paging up/down with smooth + scrolling, the cursor position was not being preserved + due to a bug in 2.2.2. With such a targeted fix + like this what could POSSIBLY go WRONG? Hahaha. + Enjoy and if you find new bugs, as always please + use Savannah's bug tracker. + https://savannah.gnu.org/bugs/?func=additem&group=nano + +2010.01.17 - GNU nano 2.2.2 is released for you, you, you. This + release includes fixes for: crashes when writing + backup files in certain conditions, improper + screen centering when moving up/down in various + combination of smooth scrolling and soft wrapping modes, + a search crash on the armel arch, and issues with + lots of keybinding customizations causing crashing + particularly on FreeBSD. Also included are better + help menu entries for forward/back in the file browser, + some man page tweaks and one assert fix. As always, + share and enjoy! + +2009.12.12 - GNU nano 2.2.1 "DLR strikes back" is open for business. + This release fixes many bugs, including: missing + keybindings for page up/down and GotoDir in the browser, + ^P/^N in the help menu, and restoration of M-W as the + default re-search binding. Other fixes include several + issues with compiler warnings and configure options, and + documentation updates, including the nano texinfo manual, + nano and nanorc man pages, and UPGRADE file, and some + missing syntax highlighting entries for the sample nanorc. + And no release would be complete without the latest round + of 'final' soft wrapping fixes! Finally, nano will no + longer print a warning when attempting to insert the + contents of a read-only file into an existing buffer. + Enjoy and Happy Hanukkah. + +2009.11.30 - GNU nano 2.2.0 "Doc Brown" is released! The culmination + of almost two years of development and hot on the heels + of nano's 10th birthday is available for all your editing + needs! Bugs fixed since the last release include several + fixes for tiny mode (involving both the help keys and + replace menu text), more 'final' fixes for soft wrapping, + and several typo and documentation updates including nanorc + tweaks and a new syntax highlighting file for makefiles. + Also included is a long-standing fix for random crashing + when using nanorc on FreeBSD, and nano will no longer clear + the screen on suspend to maintain compatibility with other + *nix editors. For those who haven't been playing along at + home, please see the official web page for the summary of + new features since 2.0. Special thanks to all who have + submitted bug reports recently in support of our new stable + release, and apologies for all those bugs we didn't yet + find :-) Peace to all. + + +2009.11.21 - GNU nano 2.1.99pre2 is available for a special pre-Black + Friday discount. Included are some (hopefully final) + fixes for issues with last page display caused by the + soft wrapping code, and a fix for a long-standing issue + with hitting the Home key when going through the search + history. On the features front, nano will now attempt to + retain the proper ownership and permissions when trying + to create a .save file due to receiving a signal. Nano + can now also unbind keys from one or more menus via the + 'unbind' keyword. Finally, passing --fill or --nowrap on + the command line will now override any related .nanorc + entries. Speak now or forever hold your bugs! + +2009.11.15 - GNU nano 2.1.99pre1 "take a bow" is out there, man, + it's out there all right. This release contains mainly + bugfixes, underscoring that we are preparing for the + next stable series release. Included are many fixes + for the new soft wrapping code, compiler warning tweaks, + and the modification time warning no longer triggers + when saving a file with a new name. Also included are + some fixes for various nanorc options, and there are + surely more bugs to find before we call the code base + stable, so please keep those reports coming! + +2009.09.14 - GNU nano 2.1.11 is on very thin ice, very thin ice, very + thin ice. This release includes two new features: first, + nano will check whether the current file is writable when + it is opened, and warn if it is not on the status bar. + Secondly, a new soft-wrapping (AKA full-line display) + option is available, which will attempt to fully display + the contents of lines longer than the width of the screen + without the usual truncation and a '$' symbol at the end + of the line. It can be enabled via Meta-$ inside the + editor, via the -$ or --softwrap command-line flags, + or via "set softwrap" in your .nanorc. As always, + please report any bugs to the nano Savannah project page + (https://savannah.gnu.org/bugs/?func=additem&group=nano) + Remember: data loss happens, back up your files. + +2009.07.28 - GNU nano 2.1.10 "Ellie" is released. This version includes + various fixes for portability including some older HP-UX + compiler combos, various compiler warnings, and some crash + fixes in the undo code. On the topic of the latter item, + the undo code is now marked as experimental since it can + cause severe stability and memory issues, and thus now + requires a flag (-u, --undo) in order to enable it. + Please feel free to continue to test the undo code and + thanks again for using nano for your text editing needs. + Go team Nano! + +2009.02.16 - GNU nano 2.1.9 wonders what all that glass is doing on the + floor! This release is primarily meant as a less buggy + version of 2.1.8, particularly for issues with the new + sped-up syntax highlighting code. Other fixes include + configure-time detection of groff HTML support before + attempting to generate the HTML version of man pages, + and using ~ or ~username syntax in .nanorc should now + work again. Also, nano will now only ask for one + acknowledgement of errors it encounters when parsing + nanorc files, and a new flag -q (--quiet) will silence + these messages altogether. Give it a go, and happy + birthday lenny! + +2009.02.07 - GNU nano 2.1.8 "unsafe at any speed" is released. This + release includes some long overdue performance improvements + in syntax color highlighting, the ability to abort running + searches (useful mainly when editing very large files) and + the ability to use nano like a pager for viewing standard + input (i.e. "nano -"). Additionally, there are gentoo + syntax highlighting updates and fixes for issues with + reading files in a directory with strange parent directory + permissions. The key-bindings code was also substantially + changed in order to be more ISO-C compatible. Be sure to + use the Savannah page not only for bug reports but for any + features you would like to see before the next stable + series is released. Have fun with it! + +2008.11.10 - GNU nano 2.1.7 "Effingham" is ready to make good on those + campaign promises of lower bug rates and 50% more pie. + This release includes a new check for external modifications + when saving a file, some code and documentation cleanups, + and more bug fixes for the new undo code (but we continue + to welcome your bug reports via the Savannah bug page at + https://savannah.gnu.org/bugs/?func=additem&group=nano). + Come get some. + +2008.10.03 - GNU nano 2.1.6 was for new features before it was against + them. This release includes more undo capability, several + new syntax highlighting configurations including Objective + C, OCaml, and Fortran, and a new capability to activate + highlighting based on the 1st line of the file being + edited. Also, the new default configure options now + include color syntax highlighting, .nanorc support, + multibuffer and extras. These items can still be disabled + and are not enabled with --enable-tiny. Bug fixes include + better signal handling under Cygwin, and that's about it. + Again please remember to submit bug reports via Savannah at + https://savannah.gnu.org/bugs/?func=additem&group=nano as + undo functions certainly need more testing. Bon appetit. + +2008.08.30 - GNU nano 2.1.5 is ready to lead on day one. This release + contains a better fix for incorrectly reported successful + writes on full filesystems, more helpful messages when + an internal error occurs in the undo code, and fixes for + various combinations of configure-time options and + compiler flags. Also included is new support for + changing the rc file name at configure time, and using + GNU-style regexes for word-boundaries on systems which + do not support them natively, as well as the ever popular + translation updates. Rock the tarball. + +2008.08.09 - GNU nano 2.1.4 "I told you so!" is released. This release + includes fixes for several severe issues with the new + undo/redo code. Also the behavior of writing files when + using backup mode has changed as well: if writing the + backup file fails, nano will not attempt to write the + current file. This should help folks who enjoy "extreme + text editing", i.e. editing files on file systems which + are likely to run out of space; see Savannah bug #24000. + Have fun with it! + +2008.08.04 - GNU nano 2.1.3 "least stable version ever" is released. + This release includes new (and experimental) undo and redo + functionality for most text operations. The default key + bindings are Meta-U for undo and Meta-E for redo, but these + can be remapped using the new 2.1 keybinding code. Also + included are some fixes for configuring using wide curses, + crashing when invoking the help menu with certain locales, + and not saving the search history when compiled with + configure options. + +2008.06.24 - GNU nano 2.1.2 "New York City" is released. This + release contains fixes for binding bad keys, some + configure-specific compilation failures, and more + issues with the new input back end and in particular + the status bar. Also fixed are some long-standing + issues with compiling on AIX, and a segfault when + making the terminal window too small. Rest in Peace + Tim and George! + +2008.04.01 - GNU nano 2.1.1 won't get fooled again. This release + contains fixes for the new user-rebindable keys (in + particular bracket match which was mis-bound), and + various problems with translations and configure- + related compilation problems are now fixed as well. + It also contains new syntax highlighting definitions + for Tcl, PHP, Gentoo and Debian-related files, and + some documentation updates as well. Please continue to + send reports with the key binding code to the Savannah + page (https://savannah.gnu.org/bugs/?group=nano). + +2008.03.18 - GNU nano 2.1.0 "under old mismanagement" is released. + This first release in the 2.1 development series + introduces rebindable keys for most actions inside + the editor. Please see the nanorc(5) page for more + information on configuring key bindings. Please + also report all keybinding bugs (crashes, missing + menu functions) using the Savannah bug tracker URL, + https://savannah.gnu.org/bugs/?group=nano and + thanks for sticking with us! + + +2007.12.20 - GNU nano 2.0.7 keeps its balance. This release fixes + several bugs, among others: a segfault and several + cursor positioning problems when uncutting text or + inserting files into the current buffer; a problem where + the total number of characters would be miscalculated + when replacing single-byte characters with multibyte + ones; several minor issues with the statusbar prompt + involving text display and mouse support; and several + oddities when tab-completing in the middle of a line. + It also improves autodetection of DOS and Mac format + files, properly supports the mouse wheel when using a + version of ncurses built with the --enable-ext-mouse + option, fixes some problems under NetBSD curses, adds a + lot of translation updates, and adds more minor + documentation updates. Slang curses emulation support + has also been changed to turn off all the options that + --enable-tiny does, as it's hopelessly broken otherwise. + Finally, nano is now licensed under the GNU GPL version + 3 or later, and its documentation is now dual-licensed + under the GNU GPL version 3 or later and the GNU FDL + version 1.2 or later. Have fun. + +2007.04.26 - GNU nano 2.0.6 "that was quick" is released. This release + fixes a potential segfault after justifying text marked + from the bottom up. It also adds one more minor + documentation update. Enjoy. + +2007.04.22 - GNU nano 2.0.5 braces for impact. Among other things, this + release fixes various problems (including a segfault) + when trying to open or save a file in a directory + beginning with "~" that isn't a home directory; fixes a + problem where a file with no name could be saved over an + existing filename with no warning about overwriting it; + properly disallows opening directories or device files + from "include" commands in nanorc files; no longer + displays a misleading prompt when trying to save in + restricted mode with the mark on; and properly supports + the Cancel and Shift-Cancel keys. It also improves + several color syntaxes to highlight trailing whitespace, + just as the Java syntax does, and adds yet more minor + documentation updates. Have fun. + +2007.04.06 - GNU nano 2.0.4 heralds the dawn. This release contains + proper support for the Ctrl-[arrow key], Shift-[arrow + key], and F13-F16 keys under Xfce's Terminal. It also + adds still more minor documentation updates. Enjoy. + +2007.01.29 - GNU nano 2.0.3 flows toward its ending. This release + contains several minor optimizations to make the + executable a little smaller under some circumstances, + some translation updates, improvements to the color + syntax for Python, and still more minor documentation + updates. Have fun. + +2006.12.20 - GNU nano 2.0.2 forges ahead. This release fixes a segfault + when trying to save in a nonexistent directory; fixes + handling of strings containing nulls at the "Write File", + "Insert File", "Execute Command", and "Go to Directory" + prompts; fixes several minor memory leaks; fixes two + more potential compilation warnings; adds a few + translation updates; and adds a few more minor + documentation updates. Enjoy. + +2006.11.20 - GNU nano 2.0.1 emerges from its cocoon. This release + contains several bugfixes: saving one file over another + will now always warn about overwriting it, overwriting + a file is no longer possible when saving a new file in + restricted mode, and zero-length Unicode characters are + now highlighted properly when nano is built without + regular expression support. It also adds several minor + documentation updates. Have fun with it. + +2006.11.06 - GNU nano 2.0.0 does its little dance. This release adds + documentation updates and a few cosmetic tweaks. + For those who haven't been following nano 1.3 + development, there are a ton of new features, including + support for UTF-8, moving to a specified line and column + instead of just a line, improved color syntax + highlighting, inserting previously untypeable characters + using "Verbatim Input" mode, and copying text into the + cutbuffer without cutting it. There are also fixes for + some long-standing bugs, such as the "NumLock glitch" + from nano 1.2.x, and the inability to unjustify text + after resizing. Finally, there are also a ton of + translation updates and new translations, as well as new + color syntaxes. See the UPGRADE file for more + information, and enjoy the new stable release. + + +2006.10.25 - GNU nano 1.9.99pre3 learns to appreciate life. This + release fixes a bug where the screen sometimes wouldn't + be updated properly after copying text into the + cutbuffer, fixes a potential warning while compiling, + and fixes a few other minor inconsistencies. Have fun. + +2006.10.02 - GNU nano 1.9.99pre2 crosses the threshold. This release + fixes a few more bugs: cursor positioning after leaving + the statusbar prompt has been fixed, and verbatim input + at the statusbar prompt now properly handles newlines. + Enjoy. + +2006.08.29 - GNU nano 1.9.99pre1 passes through the flames. This + release fixes various bugs in the last version: the + mouse support properly ignores everything except clicks + of the left mouse button; the statusbar is now blanked + properly when it should be; indenting and unindenting + operate on the current line when the mark is off; nano + should build on Tru64, NetBSD, and other systems that + use termcap instead of terminfo in their curses + libraries; the built-in file browser now properly + navigates file lists that take up only one row; the + cursor position is now completely restored after + inserting a file into the current buffer, and after + inserting the output of a command into a new buffer; the + ^X shortcut at the search prompt has been removed, as + official Pico doesn't include it and it's too easily + confused with Exit; the screen is updated properly after + scrolling a line without moving the cursor; the keyboard + input routines behave more consistently; and so on. + Have fun with it. + +2006.06.26 - GNU nano 1.3.12 escapes the darkness. This release + contains the last new features that nano will have + before 2.0: copying text into the cutbuffer without + cutting it, indenting lines of marked text with a single + keystroke, reworked help text that should be easier for + new users, searching for filenames in the file browser, + the ability to include color regexes in files separate + from nanorc files, etc. It also contains many bugfixes. + Text can now be unjustified after justifying it and + resizing the window; the screen is now cleared when + suspending; the "default" color syntax is now handled + properly at all times; lines of text containing tabs are + now wrapped at the right place; double-column characters + are now properly displayed when past the right edge of + the screen; invalid multiline color regexes are now + ignored; and so on. Enjoy. + +2006.03.30 - GNU nano 1.3.11 awakens from its fever dream. This release + focuses mostly on bugfixes, which include better + handling of the cursor at the statusbar prompt, support + for certain combinations of Shift and keypad keys in + both normal and --rebindkeypad mode, a fix for a minor + display problem after some searches, a real fix for a + long-standing segfault when displaying overly long + lines, and a real fix for nano's not hanging up properly + in xterm under certain circumstances. There are also + several new features, such as the ability to set the + characters used as brackets when searching for matching + brackets, and tab completion of directories at the "Go + To Directory" prompt. Have fun. + +2005.12.23 - GNU nano 1.3.10 rises to the surface. This release + contains several new features as well as fixes for + several long-standing bugs. The former include the + ability to scroll up or down single lines without + scrolling the cursor, reworked bracket searching code + that doesn't require regular expression support, + reworked command execution code that uses $SHELL if + available instead of hardcoding "/bin/sh", and the + ability to no longer add newlines to files that don't + end in them via the -L/--nonewlines option. The latter + include fixes to the statusbar prompt so that mouse + clicks work properly on it, fixes to the Yes/No/All + prompt so that mouse clicks on it work properly when + -O/--morespace is used, and fixes to the resize handling + so that nano dies properly when the terminal is too + small to display a prompt. Enjoy. + +2005.10.23 - GNU nano 1.3.9 breaks through the wall. This release + includes major enhancements as well as bugfixes. The + enhancements include better handling of invalid UTF-8, + expansion of the word count option to also count lines + and characters in the file or selection, more efficient + screen update routines, a readded -K/--rebindkeypad + option to work around numeric keypad problems on + terminals that don't show the usual NumLock glitch, a + new -W/--wordbounds option to properly detect words + containing punctuation when moving among them, and + massive improvements to the color code such as handling + of unspecified foreground colors, more efficient memory + usage for color regexes, and new reserved syntaxes + "default" and "none". The bugfixes include fixes for + the rewritten history code, fixes for potential line + numbering problems on 64-bit platforms, fixes for a few + long-standing minor display problems, a fix for erroneous + hangups occurring while waiting for input, and a fix for + a segfault when displaying certain overly long lines. + Have fun with it. + +2005.06.30 - GNU nano 1.3.8 floats at its own level. This release + contains several new features. Among other things, + you can now move to a specified column number as well + as line number within a file, file backups saved in a + backup directory will have unique names, the search and + replace history routines should work more consistently, + you can get a word count by pressing Meta-D at the edit + window, and there's a new -E/--tabstospaces option to + convert all typed tabs to spaces (--backupdir's short + option has been changed to -C). In terms of bugfixes, + this release contains fixes for minor problems with + screen updates, UTF-8 display, and flow control; a fix + for a segfault when displaying some lines ending with + tabs; better handling of constant cursor position + display; improved color parsing in the rcfile; + and support for the "Regexp" toggle in tiny mode + (-R/--regexp is gone, and --restricted's short option + has been changed to -R), among other things. Enjoy. + +2005.04.10 - GNU nano 1.3.7 claws its way to the top. This release + mostly contains bugfixes for the massive amount of new + code in 1.3.6. Among other things, nano builds with + debug support again; going into the help browser at the + "Read File" prompt no longer kicks you out of the prompt + after you exit the help browser; paragraph searching no + longer skips over certain cases of single-line + paragraphs; the titlebar no longer cuts off some UTF-8 + strings prematurely; and the text displayed in the help + browser is now wrapped as it was in nano 1.2.x, taking + UTF-8 support into account. New features include an + --enable/disable-utf8 configure option to explicitly + turn detection of UTF-8 support on or off, and sample + regexes for C++ as well as C. Have fun. + +2005.03.20 - GNU nano 1.3.6 "shout it from the rooftops" is released. + This release finally includes the long-awaited support + for UTF-8. Other new features include the ability to + insert UTF-8 characters using verbatim input; the + ability to delete all text from the cursor position to + the end of the file via ^W^X as (patched) Pico does; + improvements to input and output so that pasted text + displays faster, improvements to the statusbar prompt so + that more edit window shortcuts, including verbatim + input and previous/next word search, work in it; a new + option to allow using the formerly always-blank second + line of the screen as part of the edit window; and the + ability to refresh the help browser and file browser + windows via Ctrl-L. Notable bug fixes include a fix for + a segfault when using full justify, and a fix for the + long-standing bug where nano would keep running if the + terminal it was in died unexpectedly. Enjoy. + +2004.11.22 - GNU nano 1.3.5 hurls itself forward. New features in this + release include the ability to replace only marked text + when the mark is on, improvements to smooth scrolling so + that it applies everywhere instead of just affecting the + movement keys, improvements to how files are opened so + that they are no longer displayed unnecessarily, support + for multiple +LINE arguments in addition to multiple + filenames on the command line, autodetection of the + format to save a file in based on the format it was in + when it was opened, the ability to toggle both ways + between the "Read File" and "Execute Command" prompts + and the "Search" and "Go to Line" prompts, and support + for cross-compiling nano. As for bug fixes, the + "tabsize" nanorc option works again, mouse clicks on the + shortcut list trigger the right shortcuts again, + tab-completing a filename with %'s in it no longer + causes a segfault, the internal spell checker no longer + skips words after the cursor position when the cursor is + in the middle of the file, and spell checking of only + marked text now works properly. Have fun with it. + +2004.08.17 - GNU nano 1.3.4 marches forth after a false start. This + release mainly features fixes for the bugs that crept + into the last release. Among other things, nano now + compiles again with certain options, quoted justify now + works properly on systems without regex.h, full justify + no longer segfaults when used on a file with no + paragraphs, previous paragraph searching works properly + again, tab completion is properly disabled when needed + in restricted mode, Ctrl-C is no longer disabled after + using the alternate spell checker, the permissions of a + newly created file now match those of nano 1.2.x again, + and replacing all text in a file now properly updates + the screen in all cases. New features include sample + regexes for patch files, improvements to the sample + regexes for C files, and support for strings greater + than 1023 characters and/or containing nulls in + .nano_history. Additionally, the full justify keystroke + has been changed to match current Pico, and whitespace + display mode is now turned off by default. Enjoy. + +2004.06.28 - GNU nano 1.3.3 marches forth. There are several new + features in this release, including a restricted mode + that provides better security than just setting an + operating directory, the ability to justify the entire + file at once, support for a "smart" Home key that can + leap from the beginning of text on a line to the true + beginning of the line (or the reverse) in one stroke, + support for specifying an alternative spell checker in + $SPELL, the ability to specify the characters used to + display spaces and tabs so that they can easily be told + apart, and the ability to specify the characters marking + the ends of sentences as used in justification. There + are also several bug fixes; among other things, + justification now keeps spaces at the ends of all but + the last line of a paragraph as Pico does, saving a + marked selection no longer changes the current filename + to the filename the selection was saved under, resizing + now works better and no longer corrupts the screen under + slang, and the movement functions now avoid doing + unnecessary redraws and hence work faster. In short, + there are a lot of new things to play with. Enjoy. + +2004.03.31 - GNU nano 1.3.2 is prepared for the void. New features in + this release include the ability to spell-check only + marked text and the ability to save all backup files in + a specified directory instead of wherever the original + files are. Bug fixes include a fix for a segfault when + replacing certain regular expressions, fixes for some + misbehavior when doing searches, minor fixes to verbatim + input mode and keyboard input in general, better + handling of window resizes at certain times, and + allowing the mark to be saved properly again when + switching between multiple file buffers. nano has also + been ported to the Tandem NonStop Kernel. Have fun. + +2004.01.09 - GNU nano 1.3.1 is outside the gates. This release + features, among other things, fixes for the input + routines to deal with some problems they had, a + reorganized shortcut list for the help browser, minor + Pico compatibility improvements for the file browser, + fixes for misbehavior when replacing certain regular + expressions, and the ability to highlight those regular + expressions properly. It also allows searching without + prompting to work in view mode, adds support for glib + 2.x for those systems that need it, updates the .spec + file for the 1.3 branch, prompts you first when you try + to save a file under a different name, and adds a new + verbatim input mode that acts as ^V does under vi, but + with additional Pico compatibility (explained in the + FAQ). Basically, a bunch of fixes and a few new + features for your editor of choice. Enjoy. + +2003.10.22 - GNU nano 1.3.0 is loosed upon the world. This is the first + release in the unstable 1.3.x series, and as such it + includes a lot of new features, including the addition + of a -d option for those FreeBSD users with Backspace + keys that act like Delete keys, the ability to repeat + the last search without prompting, the ability to search + for the beginning or end of a paragraph, new smooth + paging routines to go with the smooth scrolling + routines, and various improvements to the input and + display routines to make them behave more intuitively. + It also includes the usual load of bugfixes. Enjoy. + + +2003.08.11 - GNU nano 1.2.2 is released, only four months since the + last version :-). This release includes fixes for + broken regex detection, search history recall, and + keypad handling with -K. Debugging strings are no + longer translated and comments denote where translations + should be as short as possible (i.e. the statusbar). + There are new examples for syntax highlighting, and + documentation updates and fixes. The 1.3.0 CVS tree + will be opening soon for all your nano desires, so stay + tuned! + +2003.04.19 - Happy Easter! GNU nano 1.2.1 is released. This release + features a new check for broken regexec() + implementations and some variable, function and macro + cleanups. Fixes are included for search history, + cutting marked text, alt keyboard mode, and the usual + translation and documentation updates. + +2003.02.19 - GNU nano 1.2.0 is released. Few changes from pre3, just + some doc and translation updates, and bugfixes for + justify and file conversion. For those of you who + haven't kept up with the 1.1 unstable series, v1.2 + brings nanorc support, color syntax highlighting, + multiple file buffers, search/replace history and much + much more. Please read the UPGRADE file for details, + and enjoy GNU nano 1.2.0. + + +2003.02.13 - GNU nano 1.1.99pre3 "The last testing version, no really!" + is released. This release includes fixes for wrapping + (again), resizing, color syntax highlighting, rcfile + parsing, the mouse code, more memory leaks, and some + reversion of the code to get the user's home directory + (nano will now again rely on $HOME). There are also + translation updates, a new manual page for the nanorc + file, and an UPGRADE file detailing the changes since + version 1.0. Please submit reports for any bugs you + might find to the development team (nano-devel@gnu.org), + and enjoy nano almost-1.2.0 ;-) + +2003.02.03 - GNU nano 1.1.99pre2 "bugs in my pockets, bugs in my shoes" + is released. There are, not surprisingly, only bugfixes + in this release as we move toward the stable 1.2.0 + release. Fixes are included for translatable string + format, subexpression replacement, constant cursor + position, invalid search regexes, justify, screen state on + SIGHUP and SIGTERM, cutting to end cuts with long lines, + many file browser and operating directory bugs, memory and + file descriptor leaks, marker code, spell checker, the + mouse code with long lines, multiple buffers and non-file + open errors, replacement string length, and a silly but + serious history message crash. There is also a drastic + improvement in CPU utilization for the color regex code. + Depending on the number of bugs found in this release, + there may be a 1.1.99pre3 or RC1, or just a 1.2.0 release. + Most of the major bugs seem to have been worked out, so if + you are waiting for a good time to test nano before the + official 1.2.0 release, this would be the one to use. + Happy bug hunting! + +2003.01.17 - GNU nano 1.1.99pre1 "enough already" has been released. + This release is, barring bug fixes and documentation + updates, what version 1.2.0 has looked like, feature + wise. There will very likely be bugs, just due the + volume of changes made in this release. Search and + replace string history has been added, including an + option to log history to ~/.nano_history (-H, + --historylog). Because of this, the Pico incompatible + search/replace string behavior that used to be the + default has been deleted. The old "pico" flag (-p) is + now compatible with Pico's "preserve" mode for allowing + flow control characters; by default this version ignores + both ^Q and ^S. The --disable-wrapping-as-root + configure option has been forward ported from version + 1.0.x, and a new flag to enable all extra options + (--enable-all) has been added. The internal spell + checker has been improved, meaning you will now be + prompted only once for each unique capitalization of a + given word. + There have also been lots of bug fixes, + including the "trying to insert a directory name in + multibuffer mode bug", the ugly spell checker scrolling, + the color code, cutting text crashes, justification, + deleting the "magic line" via replace, and cursor + positioning on the statusbar. There have also been the + usual helping of translation and documentation updates. + Please send all new feedback on this release + direct to the development list (nano-devel@gnu.org). + +2002.10.24 - GNU nano 1.1.12 "Make Jordi happy" is released. This + release demonstrates that nano is starting to freeze for + version 1.2. New features include a Meta-Y toggle for + syntax highlighting, pluralized i18n, and a handler for + SIGTERM. Nano now ignores XOFF (^S) to stop accidental + lock-ups, and no longer references malloc.h. + Also included are fixes for zero-length regex + matches, segfaults with --disable-mouse, justification, + memory corruption with the browser, version and help + cmdline output, and translation updates. Aside from the + (currently up in the air) search history behavior, the + next version of nano should be 1.1.99pre1. Have fun! + +2002.10.01 - GNU nano 1.1.11 "Oddball" is released. This release + features a new version of gettext, a new and improved + syntax highlighting engine, and some updates for the + nanorc.sample file. The toggles for case sensitivity + (Meta-C) and regular expressions (Meta-R) have changed + in the search and replace prompts, multibuffer status is + now displayed and can be toggled from the insert file + menu, and some wrapping behavior that changed in 1.1.10 + has reverted. The --enable-color warning was also made + less severe, as the color syntax code has improved, and + nano now uses extended regexes in the .nanorc file. + Also included are fixes for various memory + leaks, the operating directory option, username tab + completion, the page_up and down arrow, go to previous + word and next word, nanorc parser and line wrapping + code. Have fun! + +2002.07.25 - At long last! GNU nano 1.1.10 "What didn't we break?" + is released. This version of GNU nano features version + 0.11.2 of gettext, building with automake 1.6, some new + code for displaying control characters, browser + improvements, a new backup file option (-B, --backup), + a new option to ignore rc files (-I, --ignorercfiles), + compatibility with -pedantic, handling null characters + before EOF, a slightly sportier nanorc.sample and more. + Fixes are included for justification, the reading + and writing file routines, resizing and fill length, + millions of memory leaks, the usage screen was updated, + and the --quotestr and --regexp really work now ;-) + Enjoy :) + +2002.05.12 - GNU nano 1.1.9 is released, happy Mother's Day! This + release includes many new features, including a prepend + mode (^O,M-P), a new "syntax" command in the .nanorc to + allow multiple syntax highlighting types, and a new -Y, + --syntax flag to set a specific one if there's no + filename regex to match it against (i.e. w/mutt). The + ^space and M-space keys will now show up in the help + menu, which itself has been tweaked a bit, and many more + configure options should now cooperate (like the odd + pairing of --enable-tiny and --enable-multibuffer). The + marker should now work when using multiple buffers, and + the huge memory leak in color syntax highlighting has + been fixed. A lot of new stuff for everyone's favorite + text editor ;) Have fun! + +2002.03.30 - GNU nano 1.1.8 is released. New features include an + "Insert Output of External Command", ^R^X, and a .spec + file is now included in the distribution. There are + cleanups in the usage code, fixes for regex parsing, the + file browser, the NO_CONVERT auto-detect, indented + justification, the internal spell checker, and a serious + bug where reading a file of 0 lines would hang nano. + Also, the "show position" code now shows the starting + column as 1 instead of 0. Have fun! + +2002.03.05 - GNU nano 1.1.7 "let's change everything and see what breaks" + is released. New features include the new flags + -N, --noconvert (to stop any file format conversion) and + -Q, --quotestr (for the new quoted text justification), + a new tempnam() implementation to avoid silly warnings, + DOS and Mac file options in the Write File dialog, + multiple save files (file.1) for abnormal exits, + ^C now showing column as well as character position, and + multibuffer allowing duplicate files, even unnamed ones. + Also, the static shortcut and toggle lengths are history, + nano now reads SYSCONFDIR/nanorc if rc file support is + enabled, and nano is now built with (and for rebuilding + requires) autoconf 2.5. + This release also includes fixes for some memory + leaks, detecting DOS and Mac file format, justification, + suspending keys, search & replace under various + conditions, variable width for shortcuts, and the usual + ton of translation updates. + +2002.01.25 - GNU nano 1.1.6 is released. Lots of new features in this + release. New Meta-keys were added as alternates for + control sequences: Meta-A for the marker key (^^), and + Meta-G for the 'goto dir' key in the file browser (^_). + The color syntax highlighting now supports multiple + lines via start="regex" end="regex" syntax, and the + .nanorc regex format itself has changed. Also, the + gettext code was upgraded to version 0.10.40, and nano + will now display a message if only occurrence of a given + search exists. + For bugfixes, there are fixes for spelling, + stray newlines in the usage() function, suspend issues + with tcsh, auto-indent and wrapping clashes, ugly code + in rcfile.c, global variable compatibility with AIX. + There are also oodles of translation updates. Have fun + with it. + +2002.01.05 - GNU nano 1.1.5 is out. The main new feature in this + release is the changed behavior of the keypad. Nano + now does the Right Thing and uses keypad() by default. + If you wish to use the keypad arrow keys in certain + terminals, you may use the -K or --keypad flag to get + the old behavior. Users of other OSes should see better + handling of their non-keypad keys in this release. + Other changes include more Hurd fixes, fixes parsing the + .nanorc, display fixes for the color syntax highlighting, + gettext stabilization and many translation updates. + This is almost like a stable release, much like in the + 0.9.x series when every other release was the most stable + one :) Have fun! + +2001.12.11 - GNU nano 1.1.4 is released. This release contains + rudimentary color syntax support (but it's still + broken), compatibility fixes for the Hurd and FreeBSD, + spell checker and wrapping fixes, and more. It seems + that the amount of interest in the code is inversely + proportional to the amount of time since last release, + so it's time to show the world all the changes since + 1.1.3 ;) Have fun with it! + +2001.10.26 - GNU nano 1.1.3 is released. As far as new features go, + the help system is now available for all functions in + the editor. Also, nano will now also print a message on + the status bar when it automatically converts a file + from Mac or DOS format, and trying to load a file that + has already been loaded in multibuffer mode will now + also cause an error message. There is now a "goto + previous word" which you can use by hitting Meta-Space + Bar. + As for fixes, a SEVERE bug in the null_at code + which discarded the memory address of reallocated memory + has been fixed. This is probably the biggest bug fix in + well over the last year of development. There are also + some display fixes for when the screen shouldn't center + itself on cut or uncut text. Also, the comments in the + header files incorrectly said that nano was distributed + under version 1 of the GPL when the accompanying license + was the GPLv2. + If you're using nano-1.1, it is highly + recommended you upgrade to this release. If using 1.0, + wait for version 1.0.6 which should be available early + next week. Enjoy! + +2001.10.03 - GNU nano 1.1.2 is out there. Many new features in this + release, including support for auto-converting from DOS + and Mac formatted files, as well as toggles for writing + out files in these formats. Pico's -o flag has been + implemented, as has some new smooth scrolling code + (which can be used in place of the default jerky + scrolling behavior). Also, there is now a "find + matching bracket/brace/etc" feature (Meta-]). The + .nanorc file now accepts setting the tabsize, and the + help text at the bottom of the editor is now better + spaced out in the search/replace prompts. There are + also the usual helping of bugfixes, translation updates + and, surely a bug or two. You better get ready! + +2001.07.28 - GNU nano 1.1.1 is released. Our second 1.1 unstable + release features many bugfixes from the initial release, + in particular fixes for the multibuffer code, and + various compiler macro fixes. The shortcut lists for + the search and replace prompts are a little more logical + (with cancel the last option again), and the included + gettext was re-downgraded to 0.10.35 due to problems on + the PPC platform. GNU nano now includes its own aclocal + macros in the m4/ directory to allow rebuilding the + configure script to work on platforms regardless of + their gettext version. + +2001.07.15 - GNU nano 1.1.0 is released. This is the first release + in the 1.1.x unstable series of GNU nano. It + incorporates all changes up to the 1.0.3 release, and + also includes many many new features, including + appending to as well as overwriting files, writing + marked text to a separate file, dynamic wrap length, + lots more compatibility with Pico, and new optional + features like .nanorc file support and multiple file + buffers! All in all, plenty of new stuff that's sure to + introduce lots of bugs ;-) Have fun with it, but be + careful, unstable means unstable. + + +2001.07.01 - GNU nano 1.0.3 is the "mutt" release. This release + features oodles of bug fixes with cutting text, + especially with the -k (cut to end) option. There is + also a new suspend handler which should make nano play + better with mutt (the code for which came from mutt + itself; many many thanks to Jordi Mallach and Tom Lear + for working late into the night fixing this). Nano now + also features mutt's case insensitive string compare + function for more speed and less memory usage. Two new + translations are included, Ukrainian and Russian. + +2001.05.12 - GNU nano 1.0.2 is the "just the bugfixes ma'am" release. + The most noticeable fixes are for display errors using + page up/down with the marker code, and view mode (-v) + not stopping the replace function. Other fixes include + being able to use the arrow keys while holding down the + ctrl key in certain TERMs, and there are many + documentation updates and spelling tweaks. We also have + a new Galician translation (provided by Jacobo Tarrío). + Have fun with it! + +2001.04.06 - GNU nano 1.0.1 is out there. The only new feature is a + configure option for those who want to disable all word + wrapping from nano, --disable-wrapping. Bug fixes this + release include some bugs with autoconf and i18n, and + several fixes in the file browser including a segfault + on Solaris, symlinks to directories now work properly, + and nano now sorts files case insensitively like Pilot. + Have fun with it. + +2001.03.22 - GNU Nano 1.0 is released! The autoindent wrapping bug + has been fixed, as well as a strange bug when using Pico + mode and regex search. There have also been some minor + spelling and documentation updates. As stated on the + website, there are currently no known bugs with nano, + but some will pop up eventually and they will be + addressed in subsequent releases. We hope you enjoy + this first stable release of nano, and as always, + feedback is welcome! + + +2001.02.19 - Nano 0.9.99pre3 brings a lot of changes! The most important + being that nano is now officially a GNU program. Some + changes have been made for GNU compatibility (like in the + default list of shortcuts: "^G Get Help" is now listed + and "^_ Goto Line" is not). The Yes/No/All keys have + finally been internationalized also. All in all, quite + a few changes, considering nano is supposed to be in + a code freeze. But there are the usual helping of + bugfixes, a nasty bug when cutting text in -k mode and + some compatibility issues with older ncurses libraries + have also been fixed. All in all, a lot to see. + +2001.01.31 - Nano 0.9.99pre2 is released. Not surprisingly, all that + is new is bugfixes, bugfixes, bugfixes. There were a + few cleanups in unneeded global variables and duplicate + functions, but most is just fixing. Specifically, there + is now a preliminary (read: needs testing) fix for + resizing the editor in any mode other than normal edit + mode. Other fixes include some more tab completion + segfaults, and a silly segfault that occurred when + successfully writing a file on the 2nd try (i.e. after + an initial write error). Slowly but surely, on toward + 1.0 we travel. + +2001.01.17 - Nano 0.9.99pre1 is released. This is the first pre-1.0 + release of nano, and is also the first release since the + code freeze for nano 1.0. Don't expect (or request) any + new features between now and nano 1.0, only bugfixes, + optimizations and doc/translation updates. For fixes, a + nasty segfault when trying to insert one's home directory + (~), some checks for the NumLock key making the keypad go + awry, window size sanity checks, many autoconf fixes, and + support for the KDE Konsole keypad layout. Have fun. + +2001.01.07 - Nano 0.9.25 is the "Just one more feature I swear!" + release. It includes one new feature that Pico has had + forever, a built-in file browser. Since not everyone + may want this option, there is a --disable-browser + option to the configure script as well. Other changes + include slightly different keypad handling, and a bugfix + for crashes when tab completion in certain instances. + Have fun and Happy New Year! + +2000.12.18 - Nano 0.9.24 is released. This version contains the last + of the security fixes for writing files, as well as for + a nasty segfault when nano is unable to open a file for + reading, among other fixes. Nano now also cowardly + refuses to open device files, to stop silly things like + trying to open /dev/zero. New features include being + able to use Meta-Meta- as Control-, better + HURD support, and some new flags have been added for + Pico compatibility. Upgrading to this version is highly + recommended. + +2000.12.08 - Nano 0.9.23 is the "race conditions bite" release. The + main reason for this release is the less-than-optimal + fix for the security issue in nano with following + symbolic links. Hopefully this will fix the problem + permanently. The --nofollow option also works again + for those who are real security nuts. There are also + some display and search fixes, and the --disable-spell + function was renamed to --disable-speller to be in line + with nano and Pico's "speller" term. + +2000.12.02 - Nano 0.9.22 is released, with many more changes and + additions than imaginable. The most important change is + a fix for unsafe handling of symbolic links which could + lead to symlink attacks if nano were to exit because of + an error or signal. Also there are better checks when + saving files. + As for new features, username tab completion is now + working well, the internal spell checker code has been + tweaked, you can now unjustify if you don't like how the + justify formatted your text, and there are more options + for configure, including --disable-spell and + --disable-justify and --enable-extra (for those who like + surprises). All in all, a whole lot of changes in a + little over a week. + +2000.11.23 - Happy Thanksgiving! Nano 0.9.21 is our "last version was + a big turkey" release. It fixes several bugs introduced + by the previous version, as well as a few long-standing + display bugs. All 0.9.20 users are strongly encouraged + to upgrade to this release. + +2000.11.18 - Nano 0.9.20 is finally out the door. Probably the biggest + change is the brand new way nano displays previous search + and replace strings (they are now editable!) This is a + break from Pico's (inconsistent) interface, so if you + don't like the new way, "Pico" mode (-p on the command + line or Meta-P within nano) still works the "old" way. + Other new features include being able to deal with + search strings of any length, a new internal spell feature + (courtesy of Mr. Rocco Corsi) and tab completion when + reading in or writing out files! There's also the usual + billion or so bug fixes. Feedback on this release is + welcome because so much has changed, especially with the + previous string display in search and replace. Email + -> nano@nano-editor.org <-. If you like something, + don't like something, or just want to order a pizza, + let us know! + +2000.10.02 - Nano 0.9.19 is the "Chris is getting married in less than + a week and needs a distraction" release. There are only + a few actual code changes, mainly portability and + compiler warning fixes. Nano now also supports + PDCurses, which enables easily-built nano executables + for Windows NT and 95/98 for the brave. The official + nano site has changed (again) as well, check out + www.nano-editor.org for all the latest nano schtuff. + +2000.09.18 - Nano 0.9.18 is unleashed. It has some new keyboard + handling code, Cygwin support out of the box, and a more + portable handler for the NOHELP toggle. There is also a + fix for a somewhat serious bug whereby trying to insert + a directory instead of a normal file would destroy the + contents of the editor. A must-see. Four stars. + +2000.09.04 - Nano 0.9.17, the Labor Day release, is released after a + quiet spell (almost an entire month since last release!) + New features include better (not yet perfect) binary + display support and toggle support for most of the + program flags (M-c, M-i, M-z, M-x, M-p, M-w, M-m, M-k + and M-e for -c, -i, -z, -x, -p, -w, -m, -k, and -R). + +2000.08.09 - Nano 0.9.16, after some struggling, is released. This + release should fix a few of the holes that 0.9.15 dug. + The "cutting text on the first line" bug is fixed, as is + the "cutting text on the last line" bug. Nice symmetry + there huh? Also the --tabsize argument should now work + as well as by using -T. + +2000.08.03 - Nano 0.9.15 is the "I can't think of a release description" + release. There are the usual gala of display bugfixes, + a fix for the nasty bug in -k mode that could create + a loop in the file being edited, and some other code + cleanup. Also, the -T option should now work regardless + of the curses library used. Yay. + +2000.07.27 - Nano 0.9.14 is officially the "13 is so unlucky it should + be skipped as a version number" release. One typo caused + unending problems (calling nano with either -t or -k + caused both flags to be used). The -k code is now also + closer in functionality to Pico's -k mode; please note + that this code is not finished yet. Working on this code + has made me realize that there is not enough abstraction + in the code, and I will be working on that for the next + release. Until then, have fun with this version. + +2000.07.23 - Nano 0.9.13 has a few new bits and bobs, most notably the + -k option from Pico (cut to end of line). The majority + of changes in this release are bugfixes, however, + including the usual display fixes and fixes for writing + to symbolic links and unwritable files. Barring any + other major changes, this should be the feature set for + nano 1.0, whenever it might be released =-) + +2000.07.07 - Nano 0.9.12 (the "lucky day" release) is bursting with + new features, bug fixes, and yummy fruit flavor. For + changes, the alternate replace keystroke ^W^T is now + ^W^R to be compatible with later versions of Pico. ^W^T + is now goto line, again for Pico compatibility. As for + new features, the wonderful/hated magic line code has + returned with a vengeance! Also, regular expression + searches and replaces have been incorporated via the -R + flag. And, of course, there are the usual helping of + display and other bug fixes to top it all off. + +2000.06.20 - Nano 0.9.11 presents drastic rewrites of the most buggy + routines in the program, specifically the wrapping code + and almost all of the display routines. There are many + improvements and bugfixes to the display subsystem in + general, but there may be bugs lurking yet. Also, after + many MANY requests, there is now an option to set the + displayed tab width (-T, --tabsize). Note that this + function just changes the way tabs LOOK in the editor, + the tabs you input are still real tabs of normal width + (usually 8 characters); nano just makes them look + smaller or bigger while in the editor. New in the + translation department is an Indonesian translation + (id). + +2000.06.06 - Nano 0.9.10 is primarily a bugfix for the loss of SIGINT + when using "run and terminate" flags (for example, --help). + There are also some minor documentation updates. This + version of nano is the most stable in quite some time, + and is likely to be the most stable for awhile. Users + are encouraged to upgrade to this version. + +2000.05.31 - Nano 0.9.9 introduces much better working i18n support, + more portability, and a ton of bugfixes. While nano is + not likely anywhere near 1.0 in terms of code quality, + it gets a quantum leap closer with this release. + +2000.05.18 - Nano 0.9.8 (the 'what broke now?' release) should fix + the resize crash people have been experiencing. It also + offers a new input method that should allow nano to do + things the right way (like ^S, ^Q, custom suspend keys) + and hopefully won't break with non-US keyboards. There + are also the obligatory display fixes and speedups. + Have fun with it. + +2000.05.14 - Nano 0.9.7 (the Mother's Day release) continues in the + long line of display fixes, and also fixes the broken + symlink behavior (i.e. symlinks weren't being followed + by default). Hopefully all major bugs can be worked out + soon and we can have a 1.0 release before the end of the + year, but who knows. + +2000.05.08 - Nano 0.9.6 cleans up a lot of the display bugs that 0.9.5 + uncovered. There are improvements (and some remaining + segfaults) in the wrapping code, and even more display + optimizations. I would still say 0.9.4 or 0.9.2 are the + most stable versions of nano to date, but this one may + not be too bad =-) + +2000.05.01 - Nano 0.9.5 attempts to speed up the display of text to be + at least somewhat reasonable. Much code profiling has been + done to reduce the ridiculous number of redundant display + updates. This will probably expose a lot of bugs that can + then be fixed, so this release is probably not for the faint + of heart. For anyone curious, I would call nano 0.9.2 the + most stable version recently, so use that if you're not + particularly concerned with being on the bleeding edge. + +2000.04.25 - Nano 0.9.4 fixes some problems in 0.9.3 with the last + line code and related segfaults. It now also has much + better handling for 8-bit characters. The --enable-tiny + code also produces a smaller executable. + +2000.04.19 - Nano 0.9.3 is officially the "Micro$oft" release. It + underscores the recent problem of bugfixes introducing + more bugs than they fix. The most important change to + this version of nano is the removal of the "magic line". + You will no longer see a blank line at the end of the + file. If you want a new line at the end of your file, + you'll have to hit enter to get one. + + NOTE: THIS BREAKS COMPATIBILITY WITH PICO. + Unfortunately, this feature has been causing many many + problems with nano so it is being removed for the time + being, and perhaps indefinitely. + + Other new stuff includes an --enable-tiny option to make + nano ultra small (disabling i18n, detailed help and the + marker and mouse code), and --with-slang to use the + slang libraries instead of ncurses. + +2000.04.15 - Nano 0.9.2 just fixes the serious segfault problem if + nano is invoked any way other than using the absolute + path. The bug was in the new code for checking whether + nano is invoked as 'pico'. + +2000.04.14 - Nano 0.9.1 has some more Pico compatibility built-in. The + option to switch to/from Search and Search/Replace (^T) + is now available, and nano now displays the more + Pico-like shortcut list when invoked as 'pico' (i.e. if + 'pico' is a symlink to nano). There is an important + change to the handling of symbolic links as well. Now, + nano does the "correct" thing and automatically writes + to the object of the symlink, rather than replace the + symlink with the updated file. This behavior is still + available with the --nofollow or -l flags. + Other new things include a fix for the infamous + "recursive replace" bug, and more bugfixes in the + wrapping code. + +2000.04.07 - Nano 0.9.0 has some updates, new language support and + a much better refresh setup (It's still not great, + but...) There should also be more stability editing + long lines, as there was a stupid mistake in the + update_line call. Silly me =) + +2000.03.22 - Nano 0.8.9 is basically just a bugfix release of 0.8.8 + to reflect the current stagnant status of the project. + Most things work, the rest doesn't doesn't work because + (a) I can't fix it or I would have already done so, and + (b) the amount of patches I'm receiving right now is + quite negligible. Fortunately, this release marks the + first release since I have acquired ownership of the + nano pages on SourceForge. Here's hoping SF will get us + some more visibility, translators and patches. + +2000.03.12 - After a hiatus, I have finally moved (not unpacked though) + to my new home into Albany. Thus I should now have more + time to work on nano. Nano 0.8.8, the "dear god what + broke this time?" release, incorporates patches for both + i18n and many bugfixes. It is VERY likely something + broke this version, and it's likely I didn't even apply + the i18n stuff properly, so *it* may not even work. + + I would like to announce that I'm going to need + translations soonish, so if you are fluent in other + languages than English (or even better, if your native + language is not English) and you would like to submit a + translation file to me, please feel free to do so. If + you do, I will list your name and email in the AUTHORS + file as the maintainer of the .po file, and from then on + it is yours to take care of and keep up to date. + +2000.03.01 - Well, to continue my trend of going back on my previous + release's comments, nano 0.8.7 is released. The crashing + behavior was still occurring, and this most recent fix + also fixes some other wrapping problems, so here you go. + There may be another release soon, there may not be, is + that vague enough? =) + +2000.02.25 - More minor bugfixes in 0.8.6, the bizarre behavior at the + end of a page has ceased, thankfully. I'm also moving + next weekend, so don't be shocked if you don't see a new + version of nano next week =-) + +2000.02.11 - Okay, here we go again. Aside from a few minor fixes + and some under-the-hood changes, you won't notice much + different in this version of nano. I haven't gotten + much feedback on the help feature, is it simply amazing + or does no one care? Write and let me know! =) + +2000.02.08 - Nano 0.8.3 marks the first time in a long time that there + has been more than three days since the last release. + New features include an initial help mode (YAY!), + hopefully much more support for i18n out of the box, and + a flag for more Pico compatibility in the shortcut lists + displayed. This release also marks the new nano + distribution site, http://www.asty.org/nano and email + address nano@asty.org for bugs, etc. + +2000.02.02 - Okay, I hate to go back on what I said in the last release, + but I may be changing jobs very soon. I will release version + 0.8.2 as is (no i18n, no help menu (yet)). I expect things + to settle down by the end of next week, and then I can try to + start on the i18n support and help menu; look for these new + features in version 0.8.5 to 0.9.0. + +2000.01.28 - Nano 0.8.1 marks our first official step toward + internationalization (i18n) and the help system (^G). + I will be merging in Jordi's patches for initial i18n + in the next version, and will implement the help system + with i18n built into it shortly after that. Please + don't hesitate to send bug reports, as long as you're + sure the fault lies with nano =-). + +2000.01.25 - Nano 0.8.0 is officially the "let's try and be at least + a little portable, mmmmkay?" release. There are many + portability checks and fixes; many thanks to Andy Kahn + for his patches. I removed the broken do_spell behavior + with the 'spell' program; for now, we only try to call + 'ispell' until I write a better method to handle the + output of the normal 'spell' command. + +2000.01.24 - Nano 0.7.9 features many new features. Among them are a + new autoindent feature (-i, --autoindent), tempfile flag + like Pico's -t flag (-t, --tempfile), and preliminary + spelling program support. The spelling function tries to + run 'spell' and then 'ispell' in that order, but you can + specify another spelling program with -s or --speller. + +2000.01.17 - Nano 0.7.7 is officially the "way too much stuff changed + this release" release. It's the busy time at work for me, + so please don't get offended if your patch doesn't get + included in the next immediate version of nano. I'm sure + all the changes in this release will cause a few bugs, so + 0.7.8 will primarily be about fixing those bugs. + + Things added this release include resizability (kinda), + new -x and -c flags (see nano -h for help), long command + line flag support, and the usual array of bugfixes. + +2000.01.15 - Nano 0.7.6 is officially the "lightning" release. + It now loads large files much faster than previous + versions, and is even much faster than Pico or vi + in some rather rudimentary tests. Many thanks to + Adam Rogoyski for the read_byte patch! + +2000.01.09 - As of this version (0.7.4), TIP has officially + been renamed to nano. The new homepage is at + http://faculty.plattsburgh.edu/astyanax/nano. + Please update your bookmarks, tell your friends, + and all that jazz. diff --git a/README b/README new file mode 100644 index 0000000..b746045 --- /dev/null +++ b/README @@ -0,0 +1,122 @@ + + GNU nano -- a simple editor, inspired by Pico + +Purpose + + Nano is a small and simple text editor for use on the terminal. + It copied the interface and key bindings of the Pico editor but + added several missing features: undo/redo, syntax highlighting, + line numbers, softwrapping, multiple buffers, selecting text by + holding Shift, search-and-replace with regular expressions, and + several other conveniences. + +Appearance + + In rough ASCII graphics, this is what nano's screen looks like: + + ____________________________________________________________________ + | GNU nano 7.2 filename Modified | + -------------------------------------------------------------------- + | This is the text window, displaying the contents of a 'buffer', | + | the contents of the file you are editing. | + | | + | The top row of the screen is the 'title bar'; it shows nano's | + | version, the name of the file, and whether you modified it. | + | The two bottom rows display the most important shortcuts; in | + | those lines ^ means Ctrl. The third row from the bottom shows | + | some feedback message, or gets replaced with a prompt bar when | + | you tell nano to do something that requires extra input. | + | | + -------------------------------------------------------------------- + | [ Some status message ] | + |^G Help ^O Write Out ^W Where Is ^K Cut ^T Execute | + |^X Exit ^R Read File ^\ Replace ^U Paste ^J Justify | + -------------------------------------------------------------------- + +Origin + + The nano project was started in 1999 because of a few "problems" + with the wonderfully easy-to-use and friendly Pico text editor. + + First and foremost was its license: the Pine suite does not use + the GPL, and (before using the Apache License) it had unclear + restrictions on redistribution. Because of this, Pine and Pico + were not included in many GNU/Linux distributions. Furthermore, + some features (like go-to-line-number or search-and-replace) were + unavailable for a long time or require a command-line flag. Yuck. + + Nano aimed to solve these problems by: 1) being truly free software + by using the GPL, 2) emulating the functionality of Pico as closely + as is reasonable, and 3) including extra functionality by default. + + Nowadays, nano wants to be a generally useful editor with sensible + defaults (linewise scrolling, no automatic line breaking). + + The nano editor is an official GNU package. For more information on + GNU and the Free Software Foundation, please see https://www.gnu.org/. + +License + + Nano's code and documentation are covered by the GPL version 3 or + (at your option) any later version, except for two functions that + were copied from busybox which are under a BSD license. Nano's + documentation is additionally covered by the GNU Free Documentation + License version 1.2 or (at your option) any later version. See the + files COPYING and COPYING.DOC for the full text of these licenses. + + When in any file of this package a copyright notice mentions a + year range (such as 1999-2011), it is a shorthand for a list of + all the years in that interval. + +How to compile and install nano + + Download the latest nano source tarball, and then: + + tar -xvf nano-x.y.tar.gz + cd nano-x.y + ./configure + make + make install + + You will need the header files of ncurses installed for ./configure + to succeed -- get them from libncurses-dev (Debian) or ncurses-devel + (Fedora) or a similarly named package. Use --prefix with ./configure + to override the default installation directory of /usr/local. + + After installation you may want to copy the doc/sample.nanorc file + to your home directory, rename it to ".nanorc", and then edit it + according to your taste. + +Web Page + + https://nano-editor.org/ + +Mailing Lists + + There are three nano-related mailing-lists. + + * is a very low traffic list used to announce + new nano versions or other important info about the project. + + * is for those seeking to get help without + wanting to hear about the technical details of its development. + + * is the list used by the people that make nano + and a general development discussion list, with moderate traffic. + + To subscribe, send email to -request@gnu.org with a subject + of "subscribe", where is the list you want to subscribe to. + + The archives of the development and help mailing lists are here: + + https://lists.gnu.org/archive/html/nano-devel/ + https://lists.gnu.org/archive/html/help-nano/ + +Bug Reports + + If you find a bug, please file a detailed description of the problem + on nano's issue tracker: https://savannah.gnu.org/bugs/?group=nano + (you will need an account to be able to do so), or send an email + to the nano-devel list (no need to subscribe, but mention it if + you want to be CC'ed on an answer). + diff --git a/THANKS b/THANKS new file mode 100644 index 0000000..be13adb --- /dev/null +++ b/THANKS @@ -0,0 +1,106 @@ +The following people have helped GNU nano in some way or another. +If we missed you here, let us know! + + +Translations: +============ +Pedro Albuquerque Portuguese +Josef Andersson Swedish +Mario Blättermann German +Besnik Bleta Albanian +Laurențiu Buzdugan Romanian +Ricardo Cárdenes Medina Spanish +Antonio Ceballos Spanish +Wei-Lun CHAO Chinese (traditional) +Seong-ho Cho Korean +Yuri Chornoivan Ukrainian +Marco Colombo Italian +Mihai Cristescu Romanian +Yavor Doganov Bulgarian +Karl Eichwalder German +A. Murat EREN Turkish +Sveinn í Felli Icelandic +Marek Felšöci Slovak +Doruk Fisek Turkish +Rafael Fontenelle Brazilian Portuguese +Pavel Fric Czech +Jorge González Spanish +Jean-Philippe Guérard French +Václav Haisman Czech +Takeshi Hamasaki Japanese +Geir Helland Norwegian Bokmål +Tedi Heriyanto Indonesian +Kjetil Torgrim Homme Norwegian Nynorsk +Szabolcs Horvath Hungarian +Jorma Karvonen Finnish +Mehmet Kececi Turkish +Gabor Kelemen Hungarian +Kalle Kivimaa Finnish +Eivind Kjørstad Norwegian Nynorsk +Florian König German +Klemen Košir Slovenian +Wojciech Kotwica Polish +Clement Laforet French +Ask Hjorth Larsen Danish +LI Daobing Chinese (simplified) +Jordi Mallach Catalan +João Victor Duarte Martins Brazilian Portuguese +Pavel Maryanov Russian +Daniele Medri Italian +Gergely Nagy Hungarian +Claudio Neves Brazilian Portuguese +Kalle Olavi Niemitalo Finnish +Мирослав Николић Serbian +Lauri Nurmi Finnish +Daniel Nylander Swedish +Mikel Olasagasti Basque +Yi-Jyun Pan Chinese (traditional) +Michael Piefel German +Sergey Poznyakoff Polish +Božidar Putanec Croatian +Trần Ngọc Quân Vietnamese +Sharuzzaman Ahmat Raslan Malay +Sergey A. Ribalchenko Ukrainian and Russian +Michel Robitaille French +Christian Rose Swedish +Dimitriy Ryazantcev Russian +Stig E Sandø Norwegian Bokmål +Kevin Patrick Scannell Irish +Benno Schulenberg Dutch and Esperanto +Danilo Segan Serbian +Clytie Siddall Vietnamese +Keld Simonsen Danish +Guus Sliepen Dutch +Cezary Sliwa Polish +Johnny A. Solbu Norwegian Bokmål +Pierre Tane French +Yasuaki Taniguchi Japanese +Jacobo Tarrío Galician +Andika Triwidada Indonesian +Francisco Javier Tsao Santín Galician +Balázs Úr Hungarian +Miquel Vidal Catalan +Phan Vinh Thinh Vietnamese +Pauli Virtanen Finnish +Aron Xu Chinese (simplified) +Boyuan Yang <073plan@gmail.com> Chinese (simplified) +Peio Ziarsolo Basque +Anton Zinoviev Bulgarian + + +Other stuff: +=========== +Ben Armstrong Negative -r value idea, code +Thomas Dickey Curses help and advice +Kamil Dudka Several small bug fixes +Sven Guckes Advice and advocacy +Thijs Kinkhorst rnano.1 manpage +Jim Knoble Pico compat for browser +Ryan Krebs Many bug fixes and testing +Roy Lanek Advice and advocacy +Chuck Mead Feedback and RPM stuff +Mike Melanson Bug reports +Neil Parks Bug reports and fixes +Jeremy Robichaud Beta tester +Bill Soudan Regex code, etc +Ken Tyler Search fixes and more diff --git a/TODO b/TODO new file mode 100644 index 0000000..252bd33 --- /dev/null +++ b/TODO @@ -0,0 +1,5 @@ + +For a list of open bugs and requested features see: + + https://savannah.gnu.org/bugs/?group=nano + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..b5f6100 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1622 @@ +# generated automatically by aclocal 1.16.3 -*- Autoconf -*- + +# Copyright (C) 1996-2020 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.2]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $2]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# Copyright (C) 2002-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.16.3], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.16.3])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_COND_IF -*- Autoconf -*- + +# Copyright (C) 2008-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_COND_IF +# _AM_COND_ELSE +# _AM_COND_ENDIF +# -------------- +# These macros are only used for tracing. +m4_define([_AM_COND_IF]) +m4_define([_AM_COND_ELSE]) +m4_define([_AM_COND_ENDIF]) + +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) +# --------------------------------------- +# If the shell condition COND is true, execute IF-TRUE, otherwise execute +# IF-FALSE. Allow automake to learn about conditional instantiating macros +# (the AC_CONFIG_FOOS). +AC_DEFUN([AM_COND_IF], +[m4_ifndef([_AM_COND_VALUE_$1], + [m4_fatal([$0: no such condition "$1"])])dnl +_AM_COND_IF([$1])dnl +if test -z "$$1_TRUE"; then : + m4_n([$2])[]dnl +m4_ifval([$3], +[_AM_COND_ELSE([$1])dnl +else + $3 +])dnl +_AM_COND_ENDIF([$1])dnl +fi[]dnl +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/00gnulib.m4]) +m4_include([m4/__inline.m4]) +m4_include([m4/absolute-header.m4]) +m4_include([m4/ac_define_dir.m4]) +m4_include([m4/alloca.m4]) +m4_include([m4/assert_h.m4]) +m4_include([m4/ax_check_compile_flag.m4]) +m4_include([m4/btowc.m4]) +m4_include([m4/builtin-expect.m4]) +m4_include([m4/c-bool.m4]) +m4_include([m4/chdir-long.m4]) +m4_include([m4/clock_time.m4]) +m4_include([m4/close.m4]) +m4_include([m4/closedir.m4]) +m4_include([m4/codeset.m4]) +m4_include([m4/ctype_h.m4]) +m4_include([m4/d-type.m4]) +m4_include([m4/dirent_h.m4]) +m4_include([m4/dirfd.m4]) +m4_include([m4/double-slash-root.m4]) +m4_include([m4/dup2.m4]) +m4_include([m4/eealloc.m4]) +m4_include([m4/errno_h.m4]) +m4_include([m4/error.m4]) +m4_include([m4/error_h.m4]) +m4_include([m4/exponentd.m4]) +m4_include([m4/exponentf.m4]) +m4_include([m4/exponentl.m4]) +m4_include([m4/extensions.m4]) +m4_include([m4/extern-inline.m4]) +m4_include([m4/fchdir.m4]) +m4_include([m4/fcntl-o.m4]) +m4_include([m4/fcntl.m4]) +m4_include([m4/fcntl_h.m4]) +m4_include([m4/filenamecat.m4]) +m4_include([m4/flexmember.m4]) +m4_include([m4/float_h.m4]) +m4_include([m4/fnmatch.m4]) +m4_include([m4/fnmatch_h.m4]) +m4_include([m4/fpieee.m4]) +m4_include([m4/free.m4]) +m4_include([m4/frexp.m4]) +m4_include([m4/frexpl.m4]) +m4_include([m4/fstat.m4]) +m4_include([m4/fstatat.m4]) +m4_include([m4/futimens.m4]) +m4_include([m4/getcwd.m4]) +m4_include([m4/getdelim.m4]) +m4_include([m4/getdtablesize.m4]) +m4_include([m4/getline.m4]) +m4_include([m4/getlogin.m4]) +m4_include([m4/getlogin_r.m4]) +m4_include([m4/getopt.m4]) +m4_include([m4/getprogname.m4]) +m4_include([m4/getrandom.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/gettime.m4]) +m4_include([m4/gettimeofday.m4]) +m4_include([m4/glob.m4]) +m4_include([m4/glob_h.m4]) +m4_include([m4/gnulib-common.m4]) +m4_include([m4/gnulib-comp.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/include_next.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/intmax_t.m4]) +m4_include([m4/inttypes.m4]) +m4_include([m4/inttypes_h.m4]) +m4_include([m4/isblank.m4]) +m4_include([m4/isnand.m4]) +m4_include([m4/isnanf.m4]) +m4_include([m4/isnanl.m4]) +m4_include([m4/iswblank.m4]) +m4_include([m4/langinfo_h.m4]) +m4_include([m4/largefile.m4]) +m4_include([m4/ldexpl.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libunistring-base.m4]) +m4_include([m4/limits-h.m4]) +m4_include([m4/localcharset.m4]) +m4_include([m4/locale-fr.m4]) +m4_include([m4/locale-ja.m4]) +m4_include([m4/locale-zh.m4]) +m4_include([m4/locale_h.m4]) +m4_include([m4/localeconv.m4]) +m4_include([m4/lock.m4]) +m4_include([m4/lstat.m4]) +m4_include([m4/malloc.m4]) +m4_include([m4/malloca.m4]) +m4_include([m4/math_h.m4]) +m4_include([m4/mbrtowc.m4]) +m4_include([m4/mbsinit.m4]) +m4_include([m4/mbsrtowcs.m4]) +m4_include([m4/mbstate_t.m4]) +m4_include([m4/mbtowc.m4]) +m4_include([m4/memchr.m4]) +m4_include([m4/mempcpy.m4]) +m4_include([m4/memrchr.m4]) +m4_include([m4/minmax.m4]) +m4_include([m4/mkdir.m4]) +m4_include([m4/mkstemps.m4]) +m4_include([m4/mmap-anon.m4]) +m4_include([m4/mode_t.m4]) +m4_include([m4/msvc-inval.m4]) +m4_include([m4/msvc-nothrow.m4]) +m4_include([m4/multiarch.m4]) +m4_include([m4/nl_langinfo.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/nocrash.m4]) +m4_include([m4/off_t.m4]) +m4_include([m4/open-cloexec.m4]) +m4_include([m4/open-slash.m4]) +m4_include([m4/open.m4]) +m4_include([m4/openat.m4]) +m4_include([m4/opendir.m4]) +m4_include([m4/pathmax.m4]) +m4_include([m4/pid_t.m4]) +m4_include([m4/pipe.m4]) +m4_include([m4/po.m4]) +m4_include([m4/printf-frexp.m4]) +m4_include([m4/printf-frexpl.m4]) +m4_include([m4/printf.m4]) +m4_include([m4/progtest.m4]) +m4_include([m4/pthread_rwlock_rdlock.m4]) +m4_include([m4/raise.m4]) +m4_include([m4/readdir.m4]) +m4_include([m4/realloc.m4]) +m4_include([m4/regex.m4]) +m4_include([m4/save-cwd.m4]) +m4_include([m4/setlocale_null.m4]) +m4_include([m4/sigaction.m4]) +m4_include([m4/signal_h.m4]) +m4_include([m4/signalblocking.m4]) +m4_include([m4/signbit.m4]) +m4_include([m4/size_max.m4]) +m4_include([m4/snprintf-posix.m4]) +m4_include([m4/snprintf.m4]) +m4_include([m4/ssize_t.m4]) +m4_include([m4/stat-time.m4]) +m4_include([m4/stat.m4]) +m4_include([m4/std-gnu11.m4]) +m4_include([m4/stdarg.m4]) +m4_include([m4/stddef_h.m4]) +m4_include([m4/stdint.m4]) +m4_include([m4/stdint_h.m4]) +m4_include([m4/stdio_h.m4]) +m4_include([m4/stdlib_h.m4]) +m4_include([m4/strcase.m4]) +m4_include([m4/strcasestr.m4]) +m4_include([m4/strdup.m4]) +m4_include([m4/strerror.m4]) +m4_include([m4/string_h.m4]) +m4_include([m4/strings_h.m4]) +m4_include([m4/strnlen.m4]) +m4_include([m4/sys_random_h.m4]) +m4_include([m4/sys_socket_h.m4]) +m4_include([m4/sys_stat_h.m4]) +m4_include([m4/sys_time_h.m4]) +m4_include([m4/sys_types_h.m4]) +m4_include([m4/sys_wait_h.m4]) +m4_include([m4/tempname.m4]) +m4_include([m4/threadlib.m4]) +m4_include([m4/time_h.m4]) +m4_include([m4/timespec.m4]) +m4_include([m4/unistd-safer.m4]) +m4_include([m4/unistd_h.m4]) +m4_include([m4/utime.m4]) +m4_include([m4/utime_h.m4]) +m4_include([m4/utimens.m4]) +m4_include([m4/utimes.m4]) +m4_include([m4/vararrays.m4]) +m4_include([m4/vasnprintf.m4]) +m4_include([m4/visibility.m4]) +m4_include([m4/vsnprintf-posix.m4]) +m4_include([m4/vsnprintf.m4]) +m4_include([m4/warn-on-use.m4]) +m4_include([m4/wchar_h.m4]) +m4_include([m4/wchar_t.m4]) +m4_include([m4/wcrtomb.m4]) +m4_include([m4/wctype_h.m4]) +m4_include([m4/wcwidth.m4]) +m4_include([m4/wint_t.m4]) +m4_include([m4/wmemchr.m4]) +m4_include([m4/wmempcpy.m4]) +m4_include([m4/xsize.m4]) +m4_include([m4/zzgnulib.m4]) diff --git a/compile b/compile new file mode 100644 index 0000000..23fcba0 --- /dev/null +++ b/compile @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/* | msys/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.guess b/config.guess new file mode 100644 index 0000000..f50dcdb --- /dev/null +++ b/config.guess @@ -0,0 +1,1480 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-02-24' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > "$dummy.c" ; + for c in cc gcc c89 c99 ; do + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + 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 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval "$set_cc_for_build" + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + then + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + 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) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*: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 ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + *:GNU:*:*) + # the GNU system + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; + i*86:Minix:*:*) + echo "$UNAME_MACHINE"-pc-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + eval "$set_cc_for_build" + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval "$set_cc_for_build" + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&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-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..ced68d2 --- /dev/null +++ b/config.h.in @@ -0,0 +1,2385 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define to the number of bits in type 'ptrdiff_t'. */ +#undef BITSIZEOF_PTRDIFF_T + +/* Define to the number of bits in type 'sig_atomic_t'. */ +#undef BITSIZEOF_SIG_ATOMIC_T + +/* Define to the number of bits in type 'size_t'. */ +#undef BITSIZEOF_SIZE_T + +/* Define to the number of bits in type 'wchar_t'. */ +#undef BITSIZEOF_WCHAR_T + +/* Define to the number of bits in type 'wint_t'. */ +#undef BITSIZEOF_WINT_T + +/* Define if you wish *printf() functions that have a safe handling of + non-IEEE-754 'long double' values. */ +#undef CHECK_PRINTF_SAFE + +/* Define to 1 if using 'alloca.c'. */ +#undef C_ALLOCA + +/* Define as the bit index in the word where to find bit 0 of the exponent of + 'double'. */ +#undef DBL_EXPBIT0_BIT + +/* Define as the word index where to find the exponent of 'double'. */ +#undef DBL_EXPBIT0_WORD + +/* Define as the bit index in the word where to find the sign of 'double'. */ +#undef DBL_SIGNBIT_BIT + +/* Define as the word index where to find the sign of 'double'. */ +#undef DBL_SIGNBIT_WORD + +/* Define this to enable debug messages and abortion on failing asserts. */ +#undef DEBUG + +/* the name of the file descriptor member of DIR */ +#undef DIR_FD_MEMBER_NAME + +#ifdef DIR_FD_MEMBER_NAME +# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) +#else +# define DIR_TO_FD(Dir_p) -1 +#endif + + +/* Define to 1 if // is a file system root distinct from /. */ +#undef DOUBLE_SLASH_IS_DISTINCT_ROOT + +/* Define this to enable the built-in file browser. */ +#undef ENABLE_BROWSER + +/* Define this to have syntax highlighting. */ +#undef ENABLE_COLOR + +/* Define this to enable the comment/uncomment function. */ +#undef ENABLE_COMMENT + +/* Define this to have an Easter egg. */ +#undef ENABLE_EXTRA + +/* Define this to have access to a formatter. */ +#undef ENABLE_FORMATTER + +/* Define this to enable the Ctrl+G help texts. */ +#undef ENABLE_HELP + +/* Define this to have search and position histories. */ +#undef ENABLE_HISTORIES + +/* Define this to have the routines for justifying. */ +#undef ENABLE_JUSTIFY + +/* Define this to enable line numbering. */ +#undef ENABLE_LINENUMBERS + +/* Define this to have access to a linter. */ +#undef ENABLE_LINTER + +/* Define this to enable mouse support. */ +#undef ENABLE_MOUSE + +/* Define this to enable multiple file buffers. */ +#undef ENABLE_MULTIBUFFER + +/* Define this to enable the use of .nanorc files. */ +#undef ENABLE_NANORC + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define this to allow setting an operating directory (a chroot of sorts). */ +#undef ENABLE_OPERATINGDIR + +/* Define this to have access to a spell checker. */ +#undef ENABLE_SPELLER + +/* Define this to have tab completion for filenames and search strings. */ +#undef ENABLE_TABCOMP + +/* Define this if your system has sufficient UTF-8 support. */ +#undef ENABLE_UTF8 + +/* Define this to enable the word-completion function. */ +#undef ENABLE_WORDCOMPLETION + +/* Define this to have hard text wrapping. */ +#undef ENABLE_WRAPPING + +/* Define this to 1 if F_DUPFD behavior does not match POSIX */ +#undef FCNTL_DUPFD_BUGGY + +/* Define to nothing if C supports flexible array members, and to 1 if it does + not. That way, with a declaration like 'struct s { int n; short + d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 + compilers. Use 'FLEXSIZEOF (struct s, d, N * sizeof (short))' to calculate + the size in bytes of such a struct containing an N-element array. */ +#undef FLEXIBLE_ARRAY_MEMBER + +/* Define as the bit index in the word where to find bit 0 of the exponent of + 'float'. */ +#undef FLT_EXPBIT0_BIT + +/* Define as the word index where to find the exponent of 'float'. */ +#undef FLT_EXPBIT0_WORD + +/* Define as the bit index in the word where to find the sign of 'float'. */ +#undef FLT_SIGNBIT_BIT + +/* Define as the word index where to find the sign of 'float'. */ +#undef FLT_SIGNBIT_WORD + +/* Define to 1 if mkdir mistakenly creates a directory given with a trailing + dot component. */ +#undef FUNC_MKDIR_DOT_BUG + +/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ +#undef FUNC_NL_LANGINFO_YESEXPR_WORKS + +/* Define to 1 if futimesat mishandles a NULL file name. */ +#undef FUTIMESAT_NULL_BUG + +/* Define this to 'void' or 'struct timezone' to match the system's + declaration of the second argument to gettimeofday. */ +#undef GETTIMEOFDAY_TIMEZONE + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fd-safer-flag shall be considered present. */ +#undef GNULIB_FD_SAFER_FLAG + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fscanf shall be considered present. */ +#undef GNULIB_FSCANF + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module isblank shall be considered present. */ +#undef GNULIB_ISBLANK + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module lock shall be considered present. */ +#undef GNULIB_LOCK + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module mkstemps shall be considered present. */ +#undef GNULIB_MKSTEMPS + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module msvc-nothrow shall be considered present. */ +#undef GNULIB_MSVC_NOTHROW + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module openat shall be considered present. */ +#undef GNULIB_OPENAT + +/* Define to 1 if printf and friends should be labeled with attribute + "__gnu_printf__" instead of "__printf__" */ +#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module scanf shall be considered present. */ +#undef GNULIB_SCANF + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module snprintf shall be considered present. */ +#undef GNULIB_SNPRINTF + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module strerror shall be considered present. */ +#undef GNULIB_STRERROR + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module tempname shall be considered present. */ +#undef GNULIB_TEMPNAME + +/* Define to 1 when the gnulib module btowc should be tested. */ +#undef GNULIB_TEST_BTOWC + +/* Define to 1 when the gnulib module chdir should be tested. */ +#undef GNULIB_TEST_CHDIR + +/* Define to 1 when the gnulib module cloexec should be tested. */ +#undef GNULIB_TEST_CLOEXEC + +/* Define to 1 when the gnulib module close should be tested. */ +#undef GNULIB_TEST_CLOSE + +/* Define to 1 when the gnulib module closedir should be tested. */ +#undef GNULIB_TEST_CLOSEDIR + +/* Define to 1 when the gnulib module dirfd should be tested. */ +#undef GNULIB_TEST_DIRFD + +/* Define to 1 when the gnulib module dup2 should be tested. */ +#undef GNULIB_TEST_DUP2 + +/* Define to 1 when the gnulib module fchdir should be tested. */ +#undef GNULIB_TEST_FCHDIR + +/* Define to 1 when the gnulib module fcntl should be tested. */ +#undef GNULIB_TEST_FCNTL + +/* Define to 1 when the gnulib module fgetc should be tested. */ +#undef GNULIB_TEST_FGETC + +/* Define to 1 when the gnulib module fgets should be tested. */ +#undef GNULIB_TEST_FGETS + +/* Define to 1 when the gnulib module fnmatch should be tested. */ +#undef GNULIB_TEST_FNMATCH + +/* Define to 1 when the gnulib module fprintf should be tested. */ +#undef GNULIB_TEST_FPRINTF + +/* Define to 1 when the gnulib module fputc should be tested. */ +#undef GNULIB_TEST_FPUTC + +/* Define to 1 when the gnulib module fputs should be tested. */ +#undef GNULIB_TEST_FPUTS + +/* Define to 1 when the gnulib module fread should be tested. */ +#undef GNULIB_TEST_FREAD + +/* Define to 1 when the gnulib module free-posix should be tested. */ +#undef GNULIB_TEST_FREE_POSIX + +/* Define to 1 when the gnulib module frexp should be tested. */ +#undef GNULIB_TEST_FREXP + +/* Define to 1 when the gnulib module frexpl should be tested. */ +#undef GNULIB_TEST_FREXPL + +/* Define to 1 when the gnulib module fscanf should be tested. */ +#undef GNULIB_TEST_FSCANF + +/* Define to 1 when the gnulib module fstat should be tested. */ +#undef GNULIB_TEST_FSTAT + +/* Define to 1 when the gnulib module fstatat should be tested. */ +#undef GNULIB_TEST_FSTATAT + +/* Define to 1 when the gnulib module futimens should be tested. */ +#undef GNULIB_TEST_FUTIMENS + +/* Define to 1 when the gnulib module fwrite should be tested. */ +#undef GNULIB_TEST_FWRITE + +/* Define to 1 when the gnulib module getc should be tested. */ +#undef GNULIB_TEST_GETC + +/* Define to 1 when the gnulib module getchar should be tested. */ +#undef GNULIB_TEST_GETCHAR + +/* Define to 1 when the gnulib module getcwd should be tested. */ +#undef GNULIB_TEST_GETCWD + +/* Define to 1 when the gnulib module getdelim should be tested. */ +#undef GNULIB_TEST_GETDELIM + +/* Define to 1 when the gnulib module getdtablesize should be tested. */ +#undef GNULIB_TEST_GETDTABLESIZE + +/* Define to 1 when the gnulib module getline should be tested. */ +#undef GNULIB_TEST_GETLINE + +/* Define to 1 when the gnulib module getlogin_r should be tested. */ +#undef GNULIB_TEST_GETLOGIN_R + +/* Define to 1 when the gnulib module getopt-posix should be tested. */ +#undef GNULIB_TEST_GETOPT_POSIX + +/* Define to 1 when the gnulib module getrandom should be tested. */ +#undef GNULIB_TEST_GETRANDOM + +/* Define to 1 when the gnulib module gettimeofday should be tested. */ +#undef GNULIB_TEST_GETTIMEOFDAY + +/* Define to 1 when the gnulib module glob should be tested. */ +#undef GNULIB_TEST_GLOB + +/* Define to 1 when the gnulib module iswblank should be tested. */ +#undef GNULIB_TEST_ISWBLANK + +/* Define to 1 when the gnulib module localeconv should be tested. */ +#undef GNULIB_TEST_LOCALECONV + +/* Define to 1 when the gnulib module lstat should be tested. */ +#undef GNULIB_TEST_LSTAT + +/* Define to 1 when the gnulib module malloc-posix should be tested. */ +#undef GNULIB_TEST_MALLOC_POSIX + +/* Define to 1 when the gnulib module mbrtowc should be tested. */ +#undef GNULIB_TEST_MBRTOWC + +/* Define to 1 when the gnulib module mbsinit should be tested. */ +#undef GNULIB_TEST_MBSINIT + +/* Define to 1 when the gnulib module mbsrtowcs should be tested. */ +#undef GNULIB_TEST_MBSRTOWCS + +/* Define to 1 when the gnulib module mbtowc should be tested. */ +#undef GNULIB_TEST_MBTOWC + +/* Define to 1 when the gnulib module memchr should be tested. */ +#undef GNULIB_TEST_MEMCHR + +/* Define to 1 when the gnulib module mempcpy should be tested. */ +#undef GNULIB_TEST_MEMPCPY + +/* Define to 1 when the gnulib module memrchr should be tested. */ +#undef GNULIB_TEST_MEMRCHR + +/* Define to 1 when the gnulib module mkdir should be tested. */ +#undef GNULIB_TEST_MKDIR + +/* Define to 1 when the gnulib module mkstemps should be tested. */ +#undef GNULIB_TEST_MKSTEMPS + +/* Define to 1 when the gnulib module nl_langinfo should be tested. */ +#undef GNULIB_TEST_NL_LANGINFO + +/* Define to 1 when the gnulib module open should be tested. */ +#undef GNULIB_TEST_OPEN + +/* Define to 1 when the gnulib module openat should be tested. */ +#undef GNULIB_TEST_OPENAT + +/* Define to 1 when the gnulib module opendir should be tested. */ +#undef GNULIB_TEST_OPENDIR + +/* Define to 1 when the gnulib module pipe should be tested. */ +#undef GNULIB_TEST_PIPE + +/* Define to 1 when the gnulib module printf should be tested. */ +#undef GNULIB_TEST_PRINTF + +/* Define to 1 when the gnulib module putc should be tested. */ +#undef GNULIB_TEST_PUTC + +/* Define to 1 when the gnulib module putchar should be tested. */ +#undef GNULIB_TEST_PUTCHAR + +/* Define to 1 when the gnulib module puts should be tested. */ +#undef GNULIB_TEST_PUTS + +/* Define to 1 when the gnulib module raise should be tested. */ +#undef GNULIB_TEST_RAISE + +/* Define to 1 when the gnulib module readdir should be tested. */ +#undef GNULIB_TEST_READDIR + +/* Define to 1 when the gnulib module realloc-posix should be tested. */ +#undef GNULIB_TEST_REALLOC_POSIX + +/* Define to 1 when the gnulib module scanf should be tested. */ +#undef GNULIB_TEST_SCANF + +/* Define to 1 when the gnulib module setlocale_null should be tested. */ +#undef GNULIB_TEST_SETLOCALE_NULL + +/* Define to 1 when the gnulib module sigaction should be tested. */ +#undef GNULIB_TEST_SIGACTION + +/* Define to 1 when the gnulib module signbit should be tested. */ +#undef GNULIB_TEST_SIGNBIT + +/* Define to 1 when the gnulib module sigprocmask should be tested. */ +#undef GNULIB_TEST_SIGPROCMASK + +/* Define to 1 when the gnulib module snprintf should be tested. */ +#undef GNULIB_TEST_SNPRINTF + +/* Define to 1 when the gnulib module stat should be tested. */ +#undef GNULIB_TEST_STAT + +/* Define to 1 when the gnulib module strcasestr should be tested. */ +#undef GNULIB_TEST_STRCASESTR + +/* Define to 1 when the gnulib module strdup should be tested. */ +#undef GNULIB_TEST_STRDUP + +/* Define to 1 when the gnulib module strerror should be tested. */ +#undef GNULIB_TEST_STRERROR + +/* Define to 1 when the gnulib module strnlen should be tested. */ +#undef GNULIB_TEST_STRNLEN + +/* Define to 1 when the gnulib module utime should be tested. */ +#undef GNULIB_TEST_UTIME + +/* Define to 1 when the gnulib module vfprintf should be tested. */ +#undef GNULIB_TEST_VFPRINTF + +/* Define to 1 when the gnulib module vprintf should be tested. */ +#undef GNULIB_TEST_VPRINTF + +/* Define to 1 when the gnulib module vsnprintf should be tested. */ +#undef GNULIB_TEST_VSNPRINTF + +/* Define to 1 when the gnulib module wcrtomb should be tested. */ +#undef GNULIB_TEST_WCRTOMB + +/* Define to 1 when the gnulib module wcwidth should be tested. */ +#undef GNULIB_TEST_WCWIDTH + +/* Define to 1 when the gnulib module wmemchr should be tested. */ +#undef GNULIB_TEST_WMEMCHR + +/* Define to 1 when the gnulib module wmempcpy should be tested. */ +#undef GNULIB_TEST_WMEMPCPY + +/* Define to 1 if you have 'alloca' after including , a header that + may be supplied by this distribution. */ +#undef HAVE_ALLOCA + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#undef HAVE_ALLOCA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_BCRYPT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_BP_SYM_H + +/* Define to 1 if you have the `btowc' function. */ +#undef HAVE_BTOWC + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if you have the `chmod' function. */ +#undef HAVE_CHMOD + +/* Define to 1 if you have the `chown' function. */ +#undef HAVE_CHOWN + +/* Define to 1 if you have the `clock_getres' function. */ +#undef HAVE_CLOCK_GETRES + +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 if you have the `clock_settime' function. */ +#undef HAVE_CLOCK_SETTIME + +/* Define to 1 if you have the `closedir' function. */ +#undef HAVE_CLOSEDIR + +/* Define if the copysignf function is declared in and available in + libc. */ +#undef HAVE_COPYSIGNF_IN_LIBC + +/* Define if the copysignl function is declared in and available in + libc. */ +#undef HAVE_COPYSIGNL_IN_LIBC + +/* Define if the copysign function is declared in and available in + libc. */ +#undef HAVE_COPYSIGN_IN_LIBC + +/* Define to 1 if you have the header file. */ +#undef HAVE_CRTDEFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CURSES_H + +/* Define to 1 if bool, true and false work as per C2023. */ +#undef HAVE_C_BOOL + +/* Define to 1 if the static_assert keyword works. */ +#undef HAVE_C_STATIC_ASSERT + +/* Define to 1 if C supports variable-length arrays. */ +#undef HAVE_C_VARARRAYS + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. + */ +#undef HAVE_DECL_ALARM + +/* Define to 1 if you have the declaration of `copysign', and to 0 if you + don't. */ +#undef HAVE_DECL_COPYSIGN + +/* Define to 1 if you have the declaration of `copysignf', and to 0 if you + don't. */ +#undef HAVE_DECL_COPYSIGNF + +/* Define to 1 if you have the declaration of `copysignl', and to 0 if you + don't. */ +#undef HAVE_DECL_COPYSIGNL + +/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't. + */ +#undef HAVE_DECL_DIRFD + +/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. + */ +#undef HAVE_DECL_ECVT + +/* Define to 1 if you have the declaration of `execvpe', and to 0 if you + don't. */ +#undef HAVE_DECL_EXECVPE + +/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't. + */ +#undef HAVE_DECL_FCHDIR + +/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you + don't. */ +#undef HAVE_DECL_FCLOSEALL + +/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. + */ +#undef HAVE_DECL_FCVT + +/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. + */ +#undef HAVE_DECL_GCVT + +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_GETC_UNLOCKED + +/* Define to 1 if you have the declaration of `getdelim', and to 0 if you + don't. */ +#undef HAVE_DECL_GETDELIM + +/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you + don't. */ +#undef HAVE_DECL_GETDTABLESIZE + +/* Define to 1 if you have the declaration of `getline', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLINE + +/* Define to 1 if you have the declaration of `getlogin', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLOGIN + +/* Define to 1 if you have the declaration of `getlogin_r', and to 0 if you + don't. */ +#undef HAVE_DECL_GETLOGIN_R + +/* Define to 1 if you have the declaration of `getw', and to 0 if you don't. + */ +#undef HAVE_DECL_GETW + +/* Define to 1 if you have the declaration of `isblank', and to 0 if you + don't. */ +#undef HAVE_DECL_ISBLANK + +/* Define to 1 if you have the declaration of `iswblank', and to 0 if you + don't. */ +#undef HAVE_DECL_ISWBLANK + +/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you + don't. */ +#undef HAVE_DECL_MBRTOWC + +/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you + don't. */ +#undef HAVE_DECL_MBSINIT + +/* Define to 1 if you have the declaration of `mbsrtowcs', and to 0 if you + don't. */ +#undef HAVE_DECL_MBSRTOWCS + +/* Define to 1 if you have the declaration of `memrchr', and to 0 if you + don't. */ +#undef HAVE_DECL_MEMRCHR + +/* Define to 1 if you have the declaration of `program_invocation_name', and + to 0 if you don't. */ +#undef HAVE_DECL_PROGRAM_INVOCATION_NAME + +/* Define to 1 if you have the declaration of `program_invocation_short_name', + and to 0 if you don't. */ +#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME + +/* Define to 1 if you have the declaration of `putw', and to 0 if you don't. + */ +#undef HAVE_DECL_PUTW + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#undef HAVE_DECL_SNPRINTF + +/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. + */ +#undef HAVE_DECL_STRDUP + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR_R + +/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNCASECMP + +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNLEN + +/* Define to 1 if you have the declaration of `towlower', and to 0 if you + don't. */ +#undef HAVE_DECL_TOWLOWER + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#undef HAVE_DECL_VSNPRINTF + +/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you + don't. */ +#undef HAVE_DECL_WCRTOMB + +/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. + */ +#undef HAVE_DECL_WCSDUP + +/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you + don't. */ +#undef HAVE_DECL_WCWIDTH + +/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you + don't. */ +#undef HAVE_DECL__SNPRINTF + +/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. + */ +#undef HAVE_DECL___ARGV + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the `dirfd' function. */ +#undef HAVE_DIRFD + +/* Define to 1 if you have the `error' function. */ +#undef HAVE_ERROR + +/* Define to 1 if you have the `fchdir' function. */ +#undef HAVE_FCHDIR + +/* Define to 1 if you have the `fchmod' function. */ +#undef HAVE_FCHMOD + +/* Define to 1 if you have the `fchown' function. */ +#undef HAVE_FCHOWN + +/* Define to 1 if you have the `fcntl' function. */ +#undef HAVE_FCNTL + +/* Define to 1 if you have the header file. */ +#undef HAVE_FEATURES_H + +/* Define to 1 if you have the `flockfile' function. */ +#undef HAVE_FLOCKFILE + +/* Define to 1 if you have the `fnmatch' function. */ +#undef HAVE_FNMATCH + +/* Define to 1 if you have the header file. */ +#undef HAVE_FNMATCH_H + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* Define if the 'free' function is guaranteed to preserve errno. */ +#undef HAVE_FREE_POSIX + +/* Define if the frexpl function is available in libc. */ +#undef HAVE_FREXPL_IN_LIBC + +/* Define if the frexp function is available in libc. */ +#undef HAVE_FREXP_IN_LIBC + +/* Define to 1 if you have the `fstatat' function. */ +#undef HAVE_FSTATAT + +/* Define to 1 if you have the `fsync' function. */ +#undef HAVE_FSYNC + +/* Define to 1 if you have the `funlockfile' function. */ +#undef HAVE_FUNLOCKFILE + +/* Define to 1 if you have the `futimens' function. */ +#undef HAVE_FUTIMENS + +/* Define to 1 if you have the `futimes' function. */ +#undef HAVE_FUTIMES + +/* Define to 1 if you have the `futimesat' function. */ +#undef HAVE_FUTIMESAT + +/* Define to 1 if you have the `getdelim' function. */ +#undef HAVE_GETDELIM + +/* Define to 1 if you have the `getdtablesize' function. */ +#undef HAVE_GETDTABLESIZE + +/* Define to 1 if you have the `geteuid' function. */ +#undef HAVE_GETEUID + +/* Define to 1 if you have the `getexecname' function. */ +#undef HAVE_GETEXECNAME + +/* Define to 1 if you have the `getlogin_r' function. */ +#undef HAVE_GETLOGIN_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long_only' function. */ +#undef HAVE_GETOPT_LONG_ONLY + +/* Define to 1 if you have the `getprogname' function. */ +#undef HAVE_GETPROGNAME + +/* Define to 1 if you have the `getpwnam_r' function. */ +#undef HAVE_GETPWNAM_R + +/* Define to 1 if you have the `getrandom' function. */ +#undef HAVE_GETRANDOM + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the `glob' function. */ +#undef HAVE_GLOB + +/* Define to 1 if you have the header file. */ +#undef HAVE_GLOB_H + +/* Define to 1 if you have the `glob_pattern_p' function. */ +#undef HAVE_GLOB_PATTERN_P + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define if you have the 'intmax_t' type in or . */ +#undef HAVE_INTMAX_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#undef HAVE_INTTYPES_H_WITH_UINTMAX + +/* Define to 1 if you have the `isblank' function. */ +#undef HAVE_ISBLANK + +/* Define if the isnan(double) function is available in libc. */ +#undef HAVE_ISNAND_IN_LIBC + +/* Define if the isnan(float) function is available in libc. */ +#undef HAVE_ISNANF_IN_LIBC + +/* Define if the isnan(long double) function is available in libc. */ +#undef HAVE_ISNANL_IN_LIBC + +/* Define to 1 if you have the `iswalnum' function. */ +#undef HAVE_ISWALNUM + +/* Define to 1 if you have the `iswalpha' function. */ +#undef HAVE_ISWALPHA + +/* Define to 1 if you have the `iswblank' function. */ +#undef HAVE_ISWBLANK + +/* Define to 1 if you have the `iswcntrl' function. */ +#undef HAVE_ISWCNTRL + +/* Define to 1 if you have the `iswctype' function. */ +#undef HAVE_ISWCTYPE + +/* Define to 1 if you have the `iswpunct' function. */ +#undef HAVE_ISWPUNCT + +/* Define this if your curses library has the key_defined() function. */ +#undef HAVE_KEY_DEFINED + +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LANGINFO_H + +/* Define if the ldexpl function is available in libc. */ +#undef HAVE_LDEXPL_IN_LIBC + +/* Define if the ldexp function is available in libc. */ +#undef HAVE_LDEXP_IN_LIBC + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBINTL_H + +/* Define to 1 if you have the `magic' library (-lmagic). */ +#undef HAVE_LIBMAGIC + +/* Define to 1 if you have the `z' library (-lz). */ +#undef HAVE_LIBZ + +/* Define to 1 if the bcrypt library is guaranteed to be present. */ +#undef HAVE_LIB_BCRYPT + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if the system has the type 'long long int'. */ +#undef HAVE_LONG_LONG_INT + +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + +/* Define to 1 if you have the `lutimes' function. */ +#undef HAVE_LUTIMES + +/* Define to 1 if you have the header file. */ +#undef HAVE_MAGIC_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if malloc, realloc, and calloc set errno on allocation failure. */ +#undef HAVE_MALLOC_POSIX + +/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including + config.h and . */ +#undef HAVE_MAP_ANONYMOUS + +/* Define to 1 if you have the header file. */ +#undef HAVE_MATH_H + +/* Define to 1 if you have the `mbrtowc' function. */ +#undef HAVE_MBRTOWC + +/* Define to 1 if you have the `mbsinit' function. */ +#undef HAVE_MBSINIT + +/* Define to 1 if you have the `mbsrtowcs' function. */ +#undef HAVE_MBSRTOWCS + +/* Define to 1 if declares mbstate_t. */ +#undef HAVE_MBSTATE_T + +/* Define to 1 if you have the `mbstowcs' function. */ +#undef HAVE_MBSTOWCS + +/* Define to 1 if you have the `mbtowc' function. */ +#undef HAVE_MBTOWC + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `mempcpy' function. */ +#undef HAVE_MEMPCPY + +/* Define to 1 if you have the `memrchr' function. */ +#undef HAVE_MEMRCHR + +/* Define to 1 if you have the header file. */ +#undef HAVE_MINIX_CONFIG_H + +/* Define to 1 if defines the MIN and MAX macros. */ +#undef HAVE_MINMAX_IN_LIMITS_H + +/* Define to 1 if defines the MIN and MAX macros. */ +#undef HAVE_MINMAX_IN_SYS_PARAM_H + +/* Define to 1 if you have the `mkstemps' function. */ +#undef HAVE_MKSTEMPS + +/* Define to 1 if you have the `mprotect' function. */ +#undef HAVE_MPROTECT + +/* Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept. */ +#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER + +/* Define to 1 if you have the header file. */ +#undef HAVE_NCURSES_H + +/* Define to 1 if you have the `nl_langinfo' function. */ +#undef HAVE_NL_LANGINFO + +/* Define to 1 if you have the `openat' function. */ +#undef HAVE_OPENAT + +/* Define to 1 if you have the `opendir' function. */ +#undef HAVE_OPENDIR + +/* Define to 1 if you have the `pipe' function. */ +#undef HAVE_PIPE + +/* Define if you have the header and the POSIX threads API. */ +#undef HAVE_PTHREAD_API + +/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ +#undef HAVE_PTHREAD_MUTEX_RECURSIVE + +/* Define if the POSIX multithreading library has read/write locks. */ +#undef HAVE_PTHREAD_RWLOCK + +/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a + reader. */ +#undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER + +/* Define to 1 if you have the header file. */ +#undef HAVE_PWD_H + +/* Define to 1 if you have the `raise' function. */ +#undef HAVE_RAISE + +/* Define to 1 if you have the `readdir' function. */ +#undef HAVE_READDIR + +/* Define to 1 if 'long double' and 'double' have the same representation. */ +#undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE + +/* Define to 1 if you have the header file. */ +#undef HAVE_SDKDDKVER_H + +/* Define to 1 if you have the `setdtablesize' function. */ +#undef HAVE_SETDTABLESIZE + +/* Define this if your curses library has the set_escdelay() function. */ +#undef HAVE_SET_ESCDELAY + +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION + +/* Define to 1 if you have the `sigaltstack' function. */ +#undef HAVE_SIGALTSTACK + +/* Define to 1 if the system has the type `siginfo_t'. */ +#undef HAVE_SIGINFO_T + +/* Define to 1 if you have the `siginterrupt' function. */ +#undef HAVE_SIGINTERRUPT + +/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ +#undef HAVE_SIGNED_SIG_ATOMIC_T + +/* Define to 1 if 'wchar_t' is a signed integer type. */ +#undef HAVE_SIGNED_WCHAR_T + +/* Define to 1 if 'wint_t' is a signed integer type. */ +#undef HAVE_SIGNED_WINT_T + +/* Define to 1 if the system has the type `sigset_t'. */ +#undef HAVE_SIGSET_T + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define if the return value of the snprintf function is the number of of + bytes (excluding the terminating NUL) that would have been produced if the + buffer had been large enough. */ +#undef HAVE_SNPRINTF_RETVAL_C99 + +/* Define if the string produced by the snprintf function is always NUL + terminated. */ +#undef HAVE_SNPRINTF_TRUNCATION_C99 + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDCKDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define if exists, doesn't clash with , and declares + uintmax_t. */ +#undef HAVE_STDINT_H_WITH_UINTMAX + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strcasestr' function. */ +#undef HAVE_STRCASESTR + +/* Define to 1 if you have the `strerror_r' function. */ +#undef HAVE_STRERROR_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strncasecmp' function. */ +#undef HAVE_STRNCASECMP + +/* Define to 1 if you have the `strnlen' function. */ +#undef HAVE_STRNLEN + +/* Define if there is a member named d_type in the struct describing directory + headers. */ +#undef HAVE_STRUCT_DIRENT_D_TYPE + +/* Define to 1 if `decimal_point' is a member of `struct lconv'. */ +#undef HAVE_STRUCT_LCONV_DECIMAL_POINT + +/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */ +#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION + +/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMENSEC + +/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC + +/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC + +/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC + +/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC + +/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC + +/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC + +/* Define to 1 if you have the `symlink' function. */ +#undef HAVE_SYMLINK + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CDEFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RANDOM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* Define to 1 if you have the `thrd_create' function. */ +#undef HAVE_THRD_CREATE + +/* Define to 1 if you have the header file. */ +#undef HAVE_THREADS_H + +/* Define if you have the timespec_get function. */ +#undef HAVE_TIMESPEC_GET + +/* Define to 1 if you have the `towlower' function. */ +#undef HAVE_TOWLOWER + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if the system has the type 'unsigned long long int'. */ +#undef HAVE_UNSIGNED_LONG_LONG_INT + +/* Define this if your curses library has the use_default_colors() function. + */ +#undef HAVE_USE_DEFAULT_COLORS + +/* Define to 1 if you have the `utime' function. */ +#undef HAVE_UTIME + +/* Define to 1 if you have the `utimensat' function. */ +#undef HAVE_UTIMENSAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_UTIME_H + +/* Define if you have a global __progname variable */ +#undef HAVE_VAR___PROGNAME + +/* Define to 1 if you have the `vasnprintf' function. */ +#undef HAVE_VASNPRINTF + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Define to 1 if you have the `wait' function. */ +#undef HAVE_WAIT + +/* Define to 1 if you have the `waitpid' function. */ +#undef HAVE_WAITPID + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCHAR_H + +/* Define if you have the 'wchar_t' type. */ +#undef HAVE_WCHAR_T + +/* Define to 1 if you have the `wcrtomb' function. */ +#undef HAVE_WCRTOMB + +/* Define to 1 if you have the `wcslen' function. */ +#undef HAVE_WCSLEN + +/* Define to 1 if you have the `wcsnlen' function. */ +#undef HAVE_WCSNLEN + +/* Define to 1 if you have the `wctomb' function. */ +#undef HAVE_WCTOMB + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCTYPE_H + +/* Define to 1 if you have the `wcwidth' function. */ +#undef HAVE_WCWIDTH + +/* Define to 1 if the compiler and linker support weak declarations of + symbols. */ +#undef HAVE_WEAK_SYMBOLS + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINSOCK2_H + +/* Define if you have the 'wint_t' type. */ +#undef HAVE_WINT_T + +/* Define to 1 if you have the `wmempcpy' function. */ +#undef HAVE_WMEMPCPY + +/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX + 7.1. */ +#undef HAVE_WORKING_FSTATAT_ZERO_FLAG + +/* Define to 1 if O_NOATIME works. */ +#undef HAVE_WORKING_O_NOATIME + +/* Define to 1 if O_NOFOLLOW works. */ +#undef HAVE_WORKING_O_NOFOLLOW + +/* Define if utimes works properly. */ +#undef HAVE_WORKING_UTIMES + +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ZLIB_H + +/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ +#undef HAVE__SET_INVALID_PARAMETER_HANDLER + +/* Define to 1 if the compiler supports __builtin_expect, + and to 2 if does. */ +#undef HAVE___BUILTIN_EXPECT +#ifndef HAVE___BUILTIN_EXPECT +# define __builtin_expect(e, c) (e) +#elif HAVE___BUILTIN_EXPECT == 2 +# include +#endif + + +/* Define to 1 if ctype.h defines __header_inline. */ +#undef HAVE___HEADER_INLINE + +/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Oracle Developer Studio 12.6 + (Sun C 5.15 SunOS_sparc 2017/05/30). + + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: + + OS X 10.8 and earlier; see: + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log + + FreeBSD; see: + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html + + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ + && (defined HAVE___HEADER_INLINE \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) +# define _GL_EXTERN_INLINE_STDHEADER_BUG +#endif +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !defined __PGI \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE +#else +# define _GL_INLINE _GL_UNUSED static +# define _GL_EXTERN_INLINE _GL_UNUSED static +#endif + +/* In GCC 4.6 (inclusive) to 5.1 (exclusive), + suppress bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + and + . */ +#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif + +/* Define to 1 if the compiler supports the keyword '__inline'. */ +#undef HAVE___INLINE + +/* Define as the bit index in the word where to find bit 0 of the exponent of + 'long double'. */ +#undef LDBL_EXPBIT0_BIT + +/* Define as the word index where to find the exponent of 'long double'. */ +#undef LDBL_EXPBIT0_WORD + +/* Define as the bit index in the word where to find the sign of 'long + double'. */ +#undef LDBL_SIGNBIT_BIT + +/* Define as the word index where to find the sign of 'long double'. */ +#undef LDBL_SIGNBIT_WORD + +/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing + slash. */ +#undef LSTAT_FOLLOWS_SLASHED_SYMLINK + +/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ +#undef MALLOC_0_IS_NONNULL + +/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ +#undef MAP_ANONYMOUS + +/* Define if the mbrtowc function does not return (size_t) -2 for empty input. + */ +#undef MBRTOWC_EMPTY_INPUT_BUG + +/* Define if the mbrtowc function may signal encoding errors in the C locale. + */ +#undef MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ + +/* Define if the mbrtowc function has the NULL pwc argument bug. */ +#undef MBRTOWC_NULL_ARG1_BUG + +/* Define if the mbrtowc function has the NULL string argument bug. */ +#undef MBRTOWC_NULL_ARG2_BUG + +/* Define if the mbrtowc function does not return 0 for a NUL character. */ +#undef MBRTOWC_NUL_RETVAL_BUG + +/* Define if the mbrtowc function returns a wrong return value. */ +#undef MBRTOWC_RETVAL_BUG + +/* Define if the mbrtowc function stores a wide character when reporting + incomplete input. */ +#undef MBRTOWC_STORES_INCOMPLETE_BUG + +/* Use GNU style printf and scanf. */ +#ifndef __USE_MINGW_ANSI_STDIO +# undef __USE_MINGW_ANSI_STDIO +#endif + + +/* Flag(s) to use to get the full range of extended regular expressions */ +#undef NANO_REG_EXTENDED + +/* Define this to make the nano executable as small as possible. */ +#undef NANO_TINY + +/* Shut up assert warnings :-) */ +#undef NDEBUG + +/* Define if the vasnprintf implementation needs special code for the 'a' and + 'A' directives. */ +#undef NEED_PRINTF_DIRECTIVE_A + +/* Define if the vasnprintf implementation needs special code for the 'F' + directive. */ +#undef NEED_PRINTF_DIRECTIVE_F + +/* Define if the vasnprintf implementation needs special code for the 'ls' + directive. */ +#undef NEED_PRINTF_DIRECTIVE_LS + +/* Define if the vasnprintf implementation needs special code for 'double' + arguments. */ +#undef NEED_PRINTF_DOUBLE + +/* Define if the vasnprintf implementation needs special code for surviving + out-of-memory conditions. */ +#undef NEED_PRINTF_ENOMEM + +/* Define if the vasnprintf implementation needs special code for the ' flag. + */ +#undef NEED_PRINTF_FLAG_GROUPING + +/* Define if the vasnprintf implementation needs special code for the '-' + flag. */ +#undef NEED_PRINTF_FLAG_LEFTADJUST + +/* Define if the vasnprintf implementation needs special code for the 0 flag. + */ +#undef NEED_PRINTF_FLAG_ZERO + +/* Define if the vasnprintf implementation needs special code for infinite + 'double' arguments. */ +#undef NEED_PRINTF_INFINITE_DOUBLE + +/* Define if the vasnprintf implementation needs special code for infinite + 'long double' arguments. */ +#undef NEED_PRINTF_INFINITE_LONG_DOUBLE + +/* Define if the vasnprintf implementation needs special code for 'long + double' arguments. */ +#undef NEED_PRINTF_LONG_DOUBLE + +/* Define if the vasnprintf implementation needs special code for supporting + large precisions without arbitrary bounds. */ +#undef NEED_PRINTF_UNBOUNDED_PRECISION + +/* Define this if you need the _XOPEN_SOURCE_EXTENDED macro for color support. + */ +#undef NEED_XOPEN_SOURCE_EXTENDED + +/* Define to 1 if nl_langinfo is multithread-safe. */ +#undef NL_LANGINFO_MTSAFE + +/* Define to 1 if open() fails to recognize a trailing slash. */ +#undef OPEN_TRAILING_SLASH_BUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Where data are placed to. */ +#undef PKGDATADIR + +/* Define to the type that is the result of default argument promotions of + type mode_t. */ +#undef PROMOTED_MODE_T + +/* Define if the pthread_in_use() detection is hard. */ +#undef PTHREAD_IN_USE_DETECTION_HARD + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'ptrdiff_t'. */ +#undef PTRDIFF_T_SUFFIX + +/* Specify an alternate rcfile name (default: .nanorc). */ +#undef RCFILE_NAME + +/* Define to 1 if gnulib's dirfd() replacement is used. */ +#undef REPLACE_DIRFD + +/* Define to 1 if gnulib's fchdir() replacement is used. */ +#undef REPLACE_FCHDIR + +/* Define to 1 if stat needs help when passed a file name with a trailing + slash */ +#undef REPLACE_FUNC_STAT_FILE + +/* Define to 1 if utime needs help when passed a file name with a trailing + slash */ +#undef REPLACE_FUNC_UTIME_FILE + +/* Define if nl_langinfo exists but is overridden by gnulib. */ +#undef REPLACE_NL_LANGINFO + +/* Define to 1 if open() should work around the inability to open a directory. + */ +#undef REPLACE_OPEN_DIRECTORY + +/* Define to 1 if strerror(0) does not return a message implying success. */ +#undef REPLACE_STRERROR_0 + +/* Define if vasnprintf exists but is overridden by gnulib. */ +#undef REPLACE_VASNPRINTF + +/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */ +#undef SETLOCALE_NULL_ALL_MTSAFE + +/* Define to 1 if setlocale (category, NULL) is multithread-safe. */ +#undef SETLOCALE_NULL_ONE_MTSAFE + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'sig_atomic_t'. */ +#undef SIG_ATOMIC_T_SUFFIX + +/* Define as the maximum value of type 'size_t', if the system doesn't define + it. */ +#ifndef SIZE_MAX +# undef SIZE_MAX +#endif + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'size_t'. */ +#undef SIZE_T_SUFFIX + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +#undef STAT_MACROS_BROKEN + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if strerror_r returns char *. */ +#undef STRERROR_R_CHAR_P + +/* Define to 1 if the type of the st_atim member of a struct stat is struct + timespec. */ +#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC + +/* Define if the combination of the ISO C and POSIX multithreading APIs can be + used. */ +#undef USE_ISOC_AND_POSIX_THREADS + +/* Define if the ISO C multithreading library can be used. */ +#undef USE_ISOC_THREADS + +/* Define if the POSIX multithreading library can be used. */ +#undef USE_POSIX_THREADS + +/* Define if references to the POSIX multithreading library are satisfied by + libc. */ +#undef USE_POSIX_THREADS_FROM_LIBC + +/* Define if references to the POSIX multithreading library should be made + weak. */ +#undef USE_POSIX_THREADS_WEAK + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +# undef _MINIX +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# undef _NETBSD_SOURCE +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# undef _OPENBSD_SOURCE +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +# undef _POSIX_SOURCE +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +# undef _POSIX_1_SOURCE +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# undef __STDC_WANT_IEC_60559_BFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# undef __STDC_WANT_IEC_60559_DFP_EXT__ +#endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# undef __STDC_WANT_IEC_60559_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ +#endif +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# undef __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# undef __STDC_WANT_LIB_EXT2__ +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# undef __STDC_WANT_MATH_SPEC_FUNCS__ +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif + + +/* Define if the native Windows multithreading API can be used. */ +#undef USE_WINDOWS_THREADS + +/* Version number of package */ +#undef VERSION + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wchar_t'. */ +#undef WCHAR_T_SUFFIX + +/* Define if the wcrtomb function does not work in the C locale. */ +#undef WCRTOMB_C_LOCALE_BUG + +/* Define if the wcrtomb function has an incorrect return value. */ +#undef WCRTOMB_RETVAL_BUG + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wint_t'. */ +#undef WINT_T_SUFFIX + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define _GL_GNUC_PREREQ(major, minor) \ + ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) +#else +# define _GL_GNUC_PREREQ(major, minor) 0 +#endif + + +/* Define to enable the declarations of ISO C 11 types and functions. */ +#undef _ISOC11_SOURCE + +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ +#undef _LARGE_FILES + +/* Define to 1 on Solaris. */ +#undef _LCONV_C99 + +/* The _Noreturn keyword of C11. */ +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER)) \ + && 0) + /* [[noreturn]] is not practically usable, because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would only be valid with 'extern' + and '_Noreturn' swapped, or without the 'extern' keyword. However, some + AIX system header files and several gnulib header files use precisely + this syntax with 'extern'. */ +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || (!defined __STRICT_ANSI__ \ + && (_GL_GNUC_PREREQ (4, 7) \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))))) + /* _Noreturn works as-is. */ +# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif + + +/* Define if you want to include , so that it consistently + overrides 's RE_DUP_MAX. */ +#undef _REGEX_INCLUDE_LIMITS_H + +/* Define if you want regoff_t to be at least as wide POSIX requires. */ +#undef _REGEX_LARGE_OFFSETS + +/* Number of bits in time_t, on hosts where this is settable. */ +#undef _TIME_BITS + +/* For standard stat data types on VMS. */ +#undef _USE_STD_STAT + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#undef __GETOPT_PREFIX + +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +#undef __MINGW_USE_VC2005_COMPAT + +/* Define to 1 if the system predates C++11. */ +#undef __STDC_CONSTANT_MACROS + +/* Define to 1 if the system predates C++11. */ +#undef __STDC_LIMIT_MACROS + +/* Define to 1 if C does not support variable-length arrays, and if the + compiler does not already define this. */ +#undef __STDC_NO_VLA__ + +/* The _GL_ASYNC_SAFE marker should be attached to functions that are + signal handlers (for signals other than SIGABRT, SIGPIPE) or can be + invoked from such signal handlers. Such functions have some restrictions: + * All functions that it calls should be marked _GL_ASYNC_SAFE as well, + or should be listed as async-signal-safe in POSIX + + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in + particular, are NOT async-signal-safe. + * All memory locations (variables and struct fields) that these functions + access must be marked 'volatile'. This holds for both read and write + accesses. Otherwise the compiler might optimize away stores to and + reads from such locations that occur in the program, depending on its + data flow analysis. For example, when the program contains a loop + that is intended to inspect a variable set from within a signal handler + while (!signal_occurred) + ; + the compiler is allowed to transform this into an endless loop if the + variable 'signal_occurred' is not declared 'volatile'. + Additionally, recall that: + * A signal handler should not modify errno (except if it is a handler + for a fatal signal and ends by raising the same signal again, thus + provoking the termination of the process). If it invokes a function + that may clobber errno, it needs to save and restore the value of + errno. */ +#define _GL_ASYNC_SAFE + + +/* Attributes. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 5 <= __clang_major__))) +# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) +#else +# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr +# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) +# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) +# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_diagnose_if 0 +# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) +# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) +# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) +# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) +# ifdef _ICC +# define _GL_ATTR_may_alias 0 +# else +# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) +# endif +# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) +# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) +# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) +# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) +# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) +#endif + +/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ +#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) +# pragma GCC diagnostic ignored "-Wpedantic" +#endif + + +/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function + is the size of the returned memory block. + _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied + by the Nth argument of the function is the size of the returned memory block. + */ +/* Applies to: function, pointer to function, function types. */ +#if _GL_HAS_ATTRIBUTE (alloc_size) +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) +#else +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) +#endif + +/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the + function and report an error if it cannot do so. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (always_inline) +# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#else +# define _GL_ATTRIBUTE_ALWAYS_INLINE +#endif + +/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show + in stack traces when debugging. The compiler should omit the function from + stack traces. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (artificial) +# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) +#else +# define _GL_ATTRIBUTE_ARTIFICIAL +#endif + +/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ +/* Applies to: functions. */ +/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at + . + Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ +#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ +# ifndef __SUNPRO_C +# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) +# else +# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) +# endif +#else +# define _GL_ATTRIBUTE_COLD +#endif + +/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate + calls to the function with the same arguments. + This attribute is safe for a function that neither depends on nor affects + observable state, and always returns exactly once - e.g., does not loop + forever, and does not call longjmp. + (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (const) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST +#endif + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. + _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#if _GL_GNUC_PREREQ (11, 0) +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +#else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +#endif +/* If gnulib's or has already defined this macro, continue + to use this earlier definition, since may not have been included + yet. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# if defined __cplusplus && defined __GNUC__ && !defined __clang__ +/* Work around GCC bug */ +# define _GL_ATTRIBUTE_DEALLOC_FREE \ + _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) +# else +# define _GL_ATTRIBUTE_DEALLOC_FREE \ + _GL_ATTRIBUTE_DEALLOC (free, 1) +# endif +#endif + +/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. + The compiler may warn if the entity is used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: namespace, class, template specialization. */ +#ifdef __has_c_attribute +# if __has_c_attribute (__deprecated__) +# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) +#endif +#ifndef _GL_ATTRIBUTE_DEPRECATED +# define _GL_ATTRIBUTE_DEPRECATED +#endif + +/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and + the function call is not optimized away. + _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and + the function call is not optimized away. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (error) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) +#elif _GL_HAS_ATTRIBUTE (diagnose_if) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) +#else +# define _GL_ATTRIBUTE_ERROR(msg) +# define _GL_ATTRIBUTE_WARNING(msg) +#endif + +/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain + visible to debuggers etc., even with '-fwhole-program'. */ +/* Applies to: functions, variables. */ +#if _GL_HAS_ATTRIBUTE (externally_visible) +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) +#else +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE +#endif + +/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if + the control flow falls through to the immediately following 'case' or + 'default' label. The compiler should not warn in this case. */ +/* Applies to: Empty statement (;), inside a 'switch' statement. */ +/* Always expands to something. */ +#ifdef __has_c_attribute +# if __has_c_attribute (__fallthrough__) +# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) +#endif +#ifndef _GL_ATTRIBUTE_FALLTHROUGH +# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) +#endif + +/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) + declares that the STRING-INDEXth function argument is a format string of + style ARCHETYPE, which is one of: + printf, gnu_printf + scanf, gnu_scanf, + strftime, gnu_strftime, + strfmon, + or the same thing prefixed and suffixed with '__'. + If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK + are suitable for the format string. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (format) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) +#endif + +/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other + compilation unit, it executes code from that unit only by return or by + exception handling. This declaration lets the compiler optimize that unit + more aggressively. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (leaf) +# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) +#else +# define _GL_ATTRIBUTE_LEAF +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (malloc) +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the + same storage as pointers to other types. Thus this declaration disables + strict aliasing optimization. */ +/* Applies to: types. */ +/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ +#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C +# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) +#else +# define _GL_ATTRIBUTE_MAY_ALIAS +#endif + +/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if + the entity is not used. The compiler should not warn if the entity is not + used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: class. */ +/* In C++ and C23, this is spelled [[__maybe_unused__]]. + GCC's syntax is __attribute__ ((__unused__)). + clang supports both syntaxes. */ +#ifdef __has_c_attribute +# if __has_c_attribute (__maybe_unused__) +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +# endif +#endif +#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED +# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED +#endif +/* Alternative spelling of this macro, for convenience and for + compatibility with glibc/include/libc-symbols.h. */ +#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED +/* Earlier spellings of this macro. */ +#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED + +/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not + discard the return value. The compiler may warn if the caller does not use + the return value, unless the caller uses something like ignore_value. */ +/* Applies to: function, enumeration, class. */ +#ifdef __has_c_attribute +# if __has_c_attribute (__nodiscard__) +# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) +# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) +#endif +#ifndef _GL_ATTRIBUTE_NODISCARD +# define _GL_ATTRIBUTE_NODISCARD +#endif + +/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the + function. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (noinline) +# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) +#else +# define _GL_ATTRIBUTE_NOINLINE +#endif + +/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... + must not be NULL. + _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be + null. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nonnull) +# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) +#else +# define _GL_ATTRIBUTE_NONNULL(args) +#endif + +/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is + not meant to be NUL-terminated. */ +/* Applies to: struct/union members and variables that are arrays of element + type '[[un]signed] char'. */ +#if _GL_HAS_ATTRIBUTE (nonstring) +# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) +#else +# define _GL_ATTRIBUTE_NONSTRING +#endif + +/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ + +/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. + */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus +# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) +#else +# define _GL_ATTRIBUTE_NOTHROW +#endif + +/* _GL_ATTRIBUTE_PACKED declares: + For struct members: The member has the smallest possible alignment. + For struct, union, class: All members have the smallest possible alignment, + minimizing the memory required. */ +/* Applies to: struct members, struct, union, + in C++ also: class. */ +#if _GL_HAS_ATTRIBUTE (packed) +# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) +#else +# define _GL_ATTRIBUTE_PACKED +#endif + +/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate + calls to the function with the same arguments if observable state is not + changed between calls. + This attribute is safe for a function that does not affect + observable state, and always returns exactly once. + (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (pure) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE +#endif + +/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is + a non-NULL pointer. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (returns_nonnull) +# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) +#else +# define _GL_ATTRIBUTE_RETURNS_NONNULL +#endif + +/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a + trailing NULL argument. + _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). + _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (sentinel) +# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) +#else +# define _GL_ATTRIBUTE_SENTINEL(pos) +#endif + +/* A helper macro. Don't use it directly. */ +#if _GL_HAS_ATTRIBUTE (unused) +# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_ATTRIBUTE_UNUSED +#endif + + +/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the + immediately preceding label is not used. The compiler should not warn + if the label is not used. */ +/* Applies to: label (both in C and C++). */ +/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' + syntax. But clang does. */ +#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ +# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED +#else +# define _GL_UNUSED_LABEL +#endif + + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* A replacement for va_copy, if needed. */ +#define gl_va_copy(a,b) ((a) = (b)) + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to long or long long if and don't define. */ +#undef intmax_t + +/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports + the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of + earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. + __APPLE__ && __MACH__ test for Mac OS X. + __APPLE_CC__ tests for the Apple compiler and its version. + __STDC_VERSION__ tests for the C99 mode. */ +#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ +# define __GNUC_STDC_INLINE__ 1 +#endif + +/* Define to a type if does not define. */ +#undef mbstate_t + +/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where + n1 and n2 are expressions without side effects, that evaluate to real + numbers (excluding NaN). + It returns + 1 if n1 > n2 + 0 if n1 == n2 + -1 if n1 < n2 + The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional + jump with nearly all GCC versions up to GCC 10. + This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many + GCC versions up to GCC 9. + The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 + avoids conditional jumps in all GCC versions >= 3.4. */ +#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) + + +/* Define to `int' if does not define. */ +#undef mode_t + +/* Define to the type of st_nlink in struct stat, or a supertype. */ +#undef nlink_t + +/* Define as a signed integer type capable of holding a process identifier. */ +#undef pid_t + +/* Define as the type of the result of subtracting two pointers, if the system + doesn't define it. */ +#undef ptrdiff_t + +/* Define to rpl_re_comp if the replacement should be used. */ +#undef re_comp + +/* Define to rpl_re_compile_fastmap if the replacement should be used. */ +#undef re_compile_fastmap + +/* Define to rpl_re_compile_pattern if the replacement should be used. */ +#undef re_compile_pattern + +/* Define to rpl_re_exec if the replacement should be used. */ +#undef re_exec + +/* Define to rpl_re_match if the replacement should be used. */ +#undef re_match + +/* Define to rpl_re_match_2 if the replacement should be used. */ +#undef re_match_2 + +/* Define to rpl_re_search if the replacement should be used. */ +#undef re_search + +/* Define to rpl_re_search_2 if the replacement should be used. */ +#undef re_search_2 + +/* Define to rpl_re_set_registers if the replacement should be used. */ +#undef re_set_registers + +/* Define to rpl_re_set_syntax if the replacement should be used. */ +#undef re_set_syntax + +/* Define to rpl_re_syntax_options if the replacement should be used. */ +#undef re_syntax_options + +/* Define to rpl_regcomp if the replacement should be used. */ +#undef regcomp + +/* Define to rpl_regerror if the replacement should be used. */ +#undef regerror + +/* Define to rpl_regexec if the replacement should be used. */ +#undef regexec + +/* Define to rpl_regfree if the replacement should be used. */ +#undef regfree + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported only directly. */ +#undef restrict +/* Work around a bug in older versions of Sun C++, which did not + #define __restrict__ or support _Restrict or __restrict__ + even though the corresponding Sun C compiler ended up with + "#define restrict _Restrict" or "#define restrict __restrict__" + in the previous line. This workaround can be removed once + we assume Oracle Developer Studio 12.5 (2016) or later. */ +#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define as a signed type of the same size as size_t. */ +#undef ssize_t + +/* Define to `int' if doesn't define. */ +#undef uid_t + + + /* This definition is a duplicate of the one in unitypes.h. + It is here so that we can cope with an older version of unitypes.h + that does not contain this definition and that is pre-installed among + the public header files. */ + # if defined __restrict \ + || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ + || __clang_major__ >= 3 + # define _UC_RESTRICT __restrict + # elif 199901L <= __STDC_VERSION__ || defined restrict + # define _UC_RESTRICT restrict + # else + # define _UC_RESTRICT + # endif + + +/* Define as a macro for copying va_list variables. */ +#undef va_copy + +#ifndef HAVE_C_BOOL +# if !defined __cplusplus && !defined __bool_true_false_are_defined +# if HAVE_STDBOOL_H +# include +# else +# if defined __SUNPRO_C +# error " is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." +# else +# error " does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." +# endif +# endif +# endif +# if !true +# define true (!false) +# endif +#endif + +#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ + && (!defined __cplusplus \ + || (__cpp_static_assert < 201411 \ + && __GNUG__ < 6 && __clang_major__ < 6))) + #include + #undef/**/assert + /* Solaris 11.4 defines static_assert as a macro with 2 arguments. + We need it also to be invocable with a single argument. */ + #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus + #undef/**/static_assert + #define static_assert _Static_assert + #endif +#endif diff --git a/config.rpath b/config.rpath new file mode 100644 index 0000000..c38b914 --- /dev/null +++ b/config.rpath @@ -0,0 +1,690 @@ +#! /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-2013 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 _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$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 + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # 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 + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + 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 + ;; + aix[4-9]*) + 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].*|aix[5-9]*) + 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 + : + 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*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | 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=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + 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 + else + ld_shlibs=no + 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* | sco3.2v5.0.[024]*) + ;; + 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 _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + 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* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +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_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +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. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | 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-pc + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2*) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + 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 + ;; + vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + 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 + ;; + x64) + basic_machine=x86_64-pc + ;; + 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 + ;; + 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 + ;; + 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 + ;; + 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 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) + # 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 | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ + | -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 + ;; + -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 + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-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 + ;; + *-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-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100644 index 0000000..4670b8e --- /dev/null +++ b/configure @@ -0,0 +1,44440 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for GNU nano 7.2. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and nano-devel@gnu.org +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='GNU nano' +PACKAGE_TARNAME='nano' +PACKAGE_VERSION='7.2' +PACKAGE_STRING='GNU nano 7.2' +PACKAGE_BUGREPORT='nano-devel@gnu.org' +PACKAGE_URL='http://www.gnu.org/software/nano/' + +ac_unique_file="src/nano.c" +ac_header_list= +# 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" + +gl_use_threads_default= +gl_use_winpthreads_default= +ac_config_libobj_dir=lib +ac_func_list= +gl_fnmatch_required=POSIX +gl_getopt_required=POSIX +gt_needs= +enable_year2038=no +enable_largefile=yes +ac_subst_vars='gltests_LIBOBJDEPS +gltests_LTLIBOBJS +gltests_LIBOBJS +gl_LIBOBJDEPS +gl_LTLIBOBJS +gl_LIBOBJS +am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +GROFF_HTML_FALSE +GROFF_HTML_TRUE +CURSES_LIB +NCURSESW_CONFIG +NCURSES_LIBS +NCURSES_CFLAGS +NCURSESW_LIBS +NCURSESW_CFLAGS +USE_NANORC_FALSE +USE_NANORC_TRUE +USE_COLOR_FALSE +USE_COLOR_TRUE +BUILDING_FROM_GIT_FALSE +BUILDING_FROM_GIT_TRUE +PKGDATADIR +USE_NLS_FALSE +USE_NLS_TRUE +POSUB +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +SED +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +LN_S +LIBGNU_LTLIBDEPS +LIBGNU_LIBDEPS +GL_CFLAG_GNULIB_WARNINGS +GL_CFLAG_ALLOW_WARNINGS +gltests_WITNESS +GL_COND_OBJ_WMEMPCPY_FALSE +GL_COND_OBJ_WMEMPCPY_TRUE +GL_COND_OBJ_WMEMCHR_FALSE +GL_COND_OBJ_WMEMCHR_TRUE +GL_COND_OBJ_WINDOWS_RWLOCK_FALSE +GL_COND_OBJ_WINDOWS_RWLOCK_TRUE +GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE +GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE +GL_COND_OBJ_WINDOWS_ONCE_FALSE +GL_COND_OBJ_WINDOWS_ONCE_TRUE +GL_COND_OBJ_WINDOWS_MUTEX_FALSE +GL_COND_OBJ_WINDOWS_MUTEX_TRUE +GL_COND_OBJ_WCWIDTH_FALSE +GL_COND_OBJ_WCWIDTH_TRUE +GL_COND_OBJ_WCRTOMB_FALSE +GL_COND_OBJ_WCRTOMB_TRUE +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H +NEXT_WCHAR_H +HAVE_UTIME_H +NEXT_AS_FIRST_DIRECTIVE_UTIME_H +NEXT_UTIME_H +GL_GNULIB_MDA_UTIME +GL_GNULIB_UTIME +GL_COND_OBJ_UTIME_FALSE +GL_COND_OBJ_UTIME_TRUE +REPLACE_UTIME +HAVE_UTIME +LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE +LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE +LIBUNISTRING_UNIWIDTH_H +LIBUNISTRING_UNITYPES_H +HAVE_UNISTD_H +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H +NEXT_UNISTD_H +GL_GNULIB_MDA_TZSET +GL_GNULIB_TZSET +GL_GNULIB_TIME_RZ +GL_GNULIB_TIME_R +GL_GNULIB_TIMESPEC_GETRES +GL_GNULIB_TIMESPEC_GET +GL_GNULIB_TIMEGM +GL_GNULIB_STRPTIME +GL_GNULIB_STRFTIME +GL_GNULIB_NANOSLEEP +GL_GNULIB_LOCALTIME +GL_GNULIB_MKTIME +GL_GNULIB_CTIME +TIME_H_DEFINES_TIME_UTC +UNISTD_H_DEFINES_STRUCT_TIMESPEC +PTHREAD_H_DEFINES_STRUCT_TIMESPEC +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC +TIME_H_DEFINES_STRUCT_TIMESPEC +NEXT_AS_FIRST_DIRECTIVE_TIME_H +NEXT_TIME_H +REPLACE_LOCALTIME +REPLACE_GMTIME +GNULIB_GETTIMEOFDAY +REPLACE_TZSET +REPLACE_TIMEGM +REPLACE_STRFTIME +REPLACE_NANOSLEEP +REPLACE_MKTIME +REPLACE_LOCALTIME_R +REPLACE_CTIME +HAVE_TIMEZONE_T +HAVE_TIMESPEC_GETRES +HAVE_TIMESPEC_GET +HAVE_TIMEGM +HAVE_STRPTIME +HAVE_NANOSLEEP +HAVE_DECL_LOCALTIME_R +GL_GNULIB_WAITPID +NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H +NEXT_SYS_WAIT_H +WINDOWS_STAT_INODES +WINDOWS_64_BIT_OFF_T +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H +NEXT_SYS_TYPES_H +HAVE_SYS_RANDOM_H +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H +NEXT_SYS_RANDOM_H +GL_COND_OBJ_STRNLEN_FALSE +GL_COND_OBJ_STRNLEN_TRUE +GL_GNULIB_FFS +HAVE_STRINGS_H +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H +NEXT_STRINGS_H +NEXT_AS_FIRST_DIRECTIVE_STRING_H +NEXT_STRING_H +GL_COND_OBJ_STRERROR_OVERRIDE_FALSE +GL_COND_OBJ_STRERROR_OVERRIDE_TRUE +GL_COND_OBJ_STRERROR_FALSE +GL_COND_OBJ_STRERROR_TRUE +GL_COND_OBJ_STRDUP_FALSE +GL_COND_OBJ_STRDUP_TRUE +GL_COND_OBJ_STRNCASECMP_FALSE +GL_COND_OBJ_STRNCASECMP_TRUE +GL_COND_OBJ_STRCASECMP_FALSE +GL_COND_OBJ_STRCASECMP_TRUE +HAVE_DECL_STRNCASECMP +HAVE_STRCASECMP +HAVE_FFS +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H +NEXT_STDLIB_H +GL_COND_OBJ_STDIO_WRITE_FALSE +GL_COND_OBJ_STDIO_WRITE_TRUE +GL_COND_OBJ_STDIO_READ_FALSE +GL_COND_OBJ_STDIO_READ_TRUE +NEXT_AS_FIRST_DIRECTIVE_STDIO_H +NEXT_STDIO_H +GL_GENERATE_STDINT_H_FALSE +GL_GENERATE_STDINT_H_TRUE +STDINT_H +GL_GENERATE_STDDEF_H_FALSE +GL_GENERATE_STDDEF_H_TRUE +STDDEF_H +GL_GENERATE_STDCKDINT_H_FALSE +GL_GENERATE_STDCKDINT_H_TRUE +STDCKDINT_H +GL_GENERATE_STDARG_H_FALSE +GL_GENERATE_STDARG_H_TRUE +STDARG_H +NEXT_AS_FIRST_DIRECTIVE_STDARG_H +NEXT_STDARG_H +GL_COND_OBJ_STAT_FALSE +GL_COND_OBJ_STAT_TRUE +HAVE_FEATURES_H +GL_COND_OBJ_SIGPROCMASK_FALSE +GL_COND_OBJ_SIGPROCMASK_TRUE +GL_COND_OBJ_SIGNBIT3_FALSE +GL_COND_OBJ_SIGNBIT3_TRUE +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H +NEXT_SIGNAL_H +GL_COND_OBJ_SIGACTION_FALSE +GL_COND_OBJ_SIGACTION_TRUE +GL_COND_OBJ_SETLOCALE_LOCK_FALSE +GL_COND_OBJ_SETLOCALE_LOCK_TRUE +GL_COND_OBJ_REGEX_FALSE +GL_COND_OBJ_REGEX_TRUE +GL_COND_OBJ_READDIR_FALSE +GL_COND_OBJ_READDIR_TRUE +GL_GNULIB_SIGACTION +GL_GNULIB_SIGPROCMASK +GL_GNULIB_SIGNAL_H_SIGPIPE +GL_GNULIB_RAISE +GL_GNULIB_PTHREAD_SIGMASK +GL_COND_OBJ_RAISE_FALSE +GL_COND_OBJ_RAISE_TRUE +REPLACE_RAISE +REPLACE_PTHREAD_SIGMASK +HAVE_SIGHANDLER_T +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T +HAVE_STRUCT_SIGACTION_SA_SIGACTION +HAVE_SIGACTION +HAVE_SIGINFO_T +HAVE_SIGSET_T +HAVE_RAISE +HAVE_PTHREAD_SIGMASK +HAVE_POSIX_SIGNALBLOCKING +GL_COND_OBJ_PIPE_FALSE +GL_COND_OBJ_PIPE_TRUE +GL_COND_OBJ_OPENDIR_FALSE +GL_COND_OBJ_OPENDIR_TRUE +GL_COND_OBJ_OPENAT_FALSE +GL_COND_OBJ_OPENAT_TRUE +GL_COND_OBJ_OPEN_FALSE +GL_COND_OBJ_OPEN_TRUE +GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE +GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE +GL_COND_OBJ_NL_LANGINFO_FALSE +GL_COND_OBJ_NL_LANGINFO_TRUE +LIB_NL_LANGINFO +GL_COND_OBJ_MSVC_NOTHROW_FALSE +GL_COND_OBJ_MSVC_NOTHROW_TRUE +GL_COND_OBJ_MSVC_INVAL_FALSE +GL_COND_OBJ_MSVC_INVAL_TRUE +GL_COND_OBJ_MKSTEMPS_FALSE +GL_COND_OBJ_MKSTEMPS_TRUE +GL_COND_OBJ_MKDIR_FALSE +GL_COND_OBJ_MKDIR_TRUE +GL_COND_OBJ_MEMRCHR_FALSE +GL_COND_OBJ_MEMRCHR_TRUE +GL_COND_OBJ_MEMPCPY_FALSE +GL_COND_OBJ_MEMPCPY_TRUE +GL_GNULIB_MDA_STRDUP +GL_GNULIB_MDA_MEMCCPY +GL_GNULIB_STRVERSCMP +GL_GNULIB_STRSIGNAL +GL_GNULIB_SIGDESCR_NP +GL_GNULIB_SIGABBREV_NP +GL_GNULIB_STRERRORNAME_NP +GL_GNULIB_STRERROR_R +GL_GNULIB_STRERROR +GL_GNULIB_MBSTOK_R +GL_GNULIB_MBSSEP +GL_GNULIB_MBSSPN +GL_GNULIB_MBSPBRK +GL_GNULIB_MBSCSPN +GL_GNULIB_MBSCASESTR +GL_GNULIB_MBSPCASECMP +GL_GNULIB_MBSNCASECMP +GL_GNULIB_MBSCASECMP +GL_GNULIB_MBSSTR +GL_GNULIB_MBSRCHR +GL_GNULIB_MBSCHR +GL_GNULIB_MBSNLEN +GL_GNULIB_MBSLEN +GL_GNULIB_STRTOK_R +GL_GNULIB_STRCASESTR +GL_GNULIB_STRSTR +GL_GNULIB_STRSEP +GL_GNULIB_STRPBRK +GL_GNULIB_STRNLEN +GL_GNULIB_STRNDUP +GL_GNULIB_STRNCAT +GL_GNULIB_STRDUP +GL_GNULIB_STRCHRNUL +GL_GNULIB_STPNCPY +GL_GNULIB_STPCPY +GL_GNULIB_RAWMEMCHR +GL_GNULIB_MEMSET_EXPLICIT +GL_GNULIB_MEMRCHR +GL_GNULIB_MEMPCPY +GL_GNULIB_MEMMEM +GL_GNULIB_MEMCHR +GL_GNULIB_FFSLL +GL_GNULIB_FFSL +GL_GNULIB_EXPLICIT_BZERO +GL_COND_OBJ_MEMCHR_FALSE +GL_COND_OBJ_MEMCHR_TRUE +UNDEFINE_STRTOK_R +REPLACE_STRSIGNAL +REPLACE_STRERRORNAME_NP +REPLACE_STRERROR_R +REPLACE_STRERROR +REPLACE_STRTOK_R +REPLACE_STRCASESTR +REPLACE_STRSTR +REPLACE_STRNLEN +REPLACE_STRNDUP +REPLACE_STRNCAT +REPLACE_STRDUP +REPLACE_STRCHRNUL +REPLACE_STPNCPY +REPLACE_MEMMEM +REPLACE_MEMCHR +REPLACE_FFSLL +HAVE_STRVERSCMP +HAVE_DECL_STRSIGNAL +HAVE_SIGDESCR_NP +HAVE_SIGABBREV_NP +HAVE_STRERRORNAME_NP +HAVE_DECL_STRERROR_R +HAVE_DECL_STRTOK_R +HAVE_STRCASESTR +HAVE_STRSEP +HAVE_STRPBRK +HAVE_DECL_STRNLEN +HAVE_DECL_STRNDUP +HAVE_DECL_STRDUP +HAVE_STRCHRNUL +HAVE_STPNCPY +HAVE_STPCPY +HAVE_RAWMEMCHR +HAVE_DECL_MEMRCHR +HAVE_MEMSET_EXPLICIT +HAVE_MEMPCPY +HAVE_DECL_MEMMEM +HAVE_FFSLL +HAVE_FFSL +HAVE_EXPLICIT_BZERO +HAVE_MBSLEN +GL_COND_OBJ_MBTOWC_FALSE +GL_COND_OBJ_MBTOWC_TRUE +GL_COND_OBJ_MBSRTOWCS_FALSE +GL_COND_OBJ_MBSRTOWCS_TRUE +GL_COND_OBJ_MBSINIT_FALSE +GL_COND_OBJ_MBSINIT_TRUE +HAVE_VISIBILITY +CFLAG_VISIBILITY +GL_COND_OBJ_MBRTOWC_FALSE +GL_COND_OBJ_MBRTOWC_TRUE +LIB_MBRTOWC +MBRTOWC_LIB +LOCALE_ZH_CN +LOCALE_FR_UTF8 +LOCALE_JA +NEXT_AS_FIRST_DIRECTIVE_MATH_H +NEXT_MATH_H +GL_COND_OBJ_LSTAT_FALSE +GL_COND_OBJ_LSTAT_TRUE +LTLIBMULTITHREAD +LIBMULTITHREAD +LTLIBTHREAD +LIBTHREAD +LIBSTDTHREAD +GL_COND_OBJ_LOCALECONV_FALSE +GL_COND_OBJ_LOCALECONV_TRUE +GL_GNULIB_LOCALENAME +GL_GNULIB_DUPLOCALE +GL_GNULIB_SETLOCALE_NULL +GL_GNULIB_SETLOCALE +GL_GNULIB_LOCALECONV +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H +NEXT_LOCALE_H +HAVE_XLOCALE_H +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H +NEXT_STDDEF_H +HAVE_WCHAR_T +HAVE_MAX_ALIGN_T +REPLACE_NULL +LOCALENAME_ENHANCE_LOCALE_FUNCS +REPLACE_STRUCT_LCONV +REPLACE_FREELOCALE +REPLACE_DUPLOCALE +REPLACE_NEWLOCALE +REPLACE_SETLOCALE +REPLACE_LOCALECONV +HAVE_FREELOCALE +HAVE_DUPLOCALE +HAVE_NEWLOCALE +LOCALCHARSET_TESTS_ENVIRONMENT +GL_GENERATE_LIMITS_H_FALSE +GL_GENERATE_LIMITS_H_TRUE +LIMITS_H +GL_GNULIB_NL_LANGINFO +HAVE_LANGINFO_YESEXPR +HAVE_LANGINFO_ERA +HAVE_LANGINFO_ALTMON +HAVE_LANGINFO_T_FMT_AMPM +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_H +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H +NEXT_LANGINFO_H +REPLACE_NL_LANGINFO +HAVE_NL_LANGINFO +GL_GNULIB_TOWCTRANS +GL_GNULIB_WCTRANS +GL_GNULIB_ISWCTYPE +GL_GNULIB_WCTYPE +GL_GNULIB_ISWXDIGIT +GL_GNULIB_ISWDIGIT +GL_GNULIB_ISWBLANK +GL_COND_OBJ_ISWBLANK_FALSE +GL_COND_OBJ_ISWBLANK_TRUE +REPLACE_TOWLOWER +REPLACE_ISWCNTRL +HAVE_WCTYPE_H +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H +NEXT_WCTYPE_H +HAVE_CRTDEFS_H +HAVE_WINT_T +HAVE_ISWCNTRL +REPLACE_ISWXDIGIT +REPLACE_ISWDIGIT +REPLACE_ISWBLANK +HAVE_WCTRANS_T +HAVE_WCTYPE_T +HAVE_ISWBLANK +GL_COND_OBJ_ISBLANK_FALSE +GL_COND_OBJ_ISBLANK_TRUE +GL_GNULIB_STRTOUMAX +GL_GNULIB_STRTOIMAX +GL_GNULIB_IMAXDIV +GL_GNULIB_IMAXABS +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H +NEXT_INTTYPES_H +UINT64_MAX_EQ_ULONG_MAX +UINT32_MAX_LT_UINTMAX_MAX +PRIPTR_PREFIX +INT64_MAX_EQ_LONG_MAX +INT32_MAX_LT_INTMAX_MAX +REPLACE_STRTOUMAX +REPLACE_STRTOIMAX +HAVE_IMAXDIV_T +HAVE_DECL_STRTOUMAX +HAVE_DECL_STRTOIMAX +HAVE_DECL_IMAXDIV +HAVE_DECL_IMAXABS +HAVE_SYS_INTTYPES_H +HAVE_SYS_BITYPES_H +HAVE_C99_STDINT_H +WINT_T_SUFFIX +WCHAR_T_SUFFIX +SIG_ATOMIC_T_SUFFIX +SIZE_T_SUFFIX +PTRDIFF_T_SUFFIX +HAVE_SIGNED_WINT_T +HAVE_SIGNED_WCHAR_T +HAVE_SIGNED_SIG_ATOMIC_T +BITSIZEOF_WINT_T +BITSIZEOF_WCHAR_T +BITSIZEOF_SIG_ATOMIC_T +BITSIZEOF_SIZE_T +BITSIZEOF_PTRDIFF_T +APPLE_UNIVERSAL_BUILD +HAVE_STDINT_H +NEXT_AS_FIRST_DIRECTIVE_STDINT_H +NEXT_STDINT_H +HAVE_SYS_TYPES_H +HAVE_INTTYPES_H +HAVE_WCHAR_H +GNULIBHEADERS_OVERRIDE_WINT_T +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H +NEXT_LIMITS_H +LIB_HARD_LOCALE +HARD_LOCALE_LIB +LIB_SETLOCALE_NULL +SETLOCALE_NULL_LIB +LIB_SCHED_YIELD +SCHED_YIELD_LIB +LIBPMULTITHREAD +LIBPTHREAD +GL_COND_OBJ_GLOB_PATTERN_P_FALSE +GL_COND_OBJ_GLOB_PATTERN_P_TRUE +GL_COND_OBJ_GLOB_FALSE +GL_COND_OBJ_GLOB_TRUE +GL_GENERATE_GLOB_H_FALSE +GL_GENERATE_GLOB_H_TRUE +GLOB_H +GL_GNULIB_GLOB +HAVE_GLOB_H +NEXT_AS_FIRST_DIRECTIVE_GLOB_H +NEXT_GLOB_H +REPLACE_GLOB_PATTERN_P +REPLACE_GLOB +HAVE_GLOB_PATTERN_P +HAVE_GLOB +GL_GNULIB_GETTIMEOFDAY +GL_COND_OBJ_GETTIMEOFDAY_FALSE +GL_COND_OBJ_GETTIMEOFDAY_TRUE +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H +NEXT_SYS_TIME_H +REPLACE_STRUCT_TIMEVAL +REPLACE_GETTIMEOFDAY +HAVE_SYS_TIME_H +HAVE_STRUCT_TIMEVAL +HAVE_GETTIMEOFDAY +LTLIBINTL +LIBINTL +GL_GNULIB_GETRANDOM +GL_COND_OBJ_GETRANDOM_FALSE +GL_COND_OBJ_GETRANDOM_TRUE +LIB_GETRANDOM +GETRANDOM_LIB +REPLACE_GETRANDOM +HAVE_GETRANDOM +GL_COND_OBJ_GETOPT_FALSE +GL_COND_OBJ_GETOPT_TRUE +GL_GENERATE_GETOPT_CDEFS_H_FALSE +GL_GENERATE_GETOPT_CDEFS_H_TRUE +GETOPT_CDEFS_H +GL_GENERATE_GETOPT_H_FALSE +GL_GENERATE_GETOPT_H_TRUE +GETOPT_H +HAVE_SYS_CDEFS_H +HAVE_GETOPT_H +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H +NEXT_GETOPT_H +LIB_GETLOGIN +GETLOGIN_LIB +GL_COND_OBJ_GETLOGIN_R_FALSE +GL_COND_OBJ_GETLOGIN_R_TRUE +GL_COND_OBJ_GETLINE_FALSE +GL_COND_OBJ_GETLINE_TRUE +GL_COND_OBJ_GETDTABLESIZE_FALSE +GL_COND_OBJ_GETDTABLESIZE_TRUE +GL_GNULIB_MDA_TEMPNAM +GL_GNULIB_MDA_PUTW +GL_GNULIB_MDA_GETW +GL_GNULIB_MDA_FILENO +GL_GNULIB_MDA_FDOPEN +GL_GNULIB_MDA_FCLOSEALL +GL_GNULIB_VSPRINTF_POSIX +GL_GNULIB_VSNPRINTF +GL_GNULIB_VPRINTF_POSIX +GL_GNULIB_VPRINTF +GL_GNULIB_VFPRINTF_POSIX +GL_GNULIB_VFPRINTF +GL_GNULIB_VDPRINTF +GL_GNULIB_VSCANF +GL_GNULIB_VFSCANF +GL_GNULIB_VASPRINTF +GL_GNULIB_TMPFILE +GL_GNULIB_STDIO_H_SIGPIPE +GL_GNULIB_STDIO_H_NONBLOCKING +GL_GNULIB_SPRINTF_POSIX +GL_GNULIB_SNPRINTF +GL_GNULIB_SCANF +GL_GNULIB_RENAMEAT +GL_GNULIB_RENAME +GL_GNULIB_REMOVE +GL_GNULIB_PUTS +GL_GNULIB_PUTCHAR +GL_GNULIB_PUTC +GL_GNULIB_PRINTF_POSIX +GL_GNULIB_PRINTF +GL_GNULIB_POPEN +GL_GNULIB_PERROR +GL_GNULIB_PCLOSE +GL_GNULIB_OBSTACK_PRINTF_POSIX +GL_GNULIB_OBSTACK_PRINTF +GL_GNULIB_GETLINE +GL_GNULIB_GETDELIM +GL_GNULIB_GETCHAR +GL_GNULIB_GETC +GL_GNULIB_FWRITE +GL_GNULIB_FTELLO +GL_GNULIB_FTELL +GL_GNULIB_FSEEKO +GL_GNULIB_FSEEK +GL_GNULIB_FSCANF +GL_GNULIB_FREOPEN +GL_GNULIB_FREAD +GL_GNULIB_FPUTS +GL_GNULIB_FPUTC +GL_GNULIB_FPURGE +GL_GNULIB_FPRINTF_POSIX +GL_GNULIB_FPRINTF +GL_GNULIB_FOPEN_GNU +GL_GNULIB_FOPEN +GL_GNULIB_FGETS +GL_GNULIB_FGETC +GL_GNULIB_FFLUSH +GL_GNULIB_FDOPEN +GL_GNULIB_FCLOSE +GL_GNULIB_DPRINTF +GL_COND_OBJ_GETDELIM_FALSE +GL_COND_OBJ_GETDELIM_TRUE +REPLACE_VSPRINTF +REPLACE_VSNPRINTF +REPLACE_VPRINTF +REPLACE_VFPRINTF +REPLACE_VDPRINTF +REPLACE_VASPRINTF +REPLACE_TMPFILE +REPLACE_STDIO_WRITE_FUNCS +REPLACE_STDIO_READ_FUNCS +REPLACE_SPRINTF +REPLACE_SNPRINTF +REPLACE_RENAMEAT +REPLACE_RENAME +REPLACE_REMOVE +REPLACE_PRINTF +REPLACE_POPEN +REPLACE_PERROR +REPLACE_OBSTACK_PRINTF +REPLACE_GETLINE +REPLACE_GETDELIM +REPLACE_FTELLO +REPLACE_FTELL +REPLACE_FSEEKO +REPLACE_FSEEK +REPLACE_FREOPEN +REPLACE_FPURGE +REPLACE_FPRINTF +REPLACE_FOPEN_FOR_FOPEN_GNU +REPLACE_FOPEN +REPLACE_FFLUSH +REPLACE_FDOPEN +REPLACE_FCLOSE +REPLACE_DPRINTF +HAVE_VDPRINTF +HAVE_VASPRINTF +HAVE_RENAMEAT +HAVE_POPEN +HAVE_PCLOSE +HAVE_FTELLO +HAVE_FSEEKO +HAVE_DPRINTF +HAVE_DECL_VSNPRINTF +HAVE_DECL_SNPRINTF +HAVE_DECL_PUTW +HAVE_DECL_OBSTACK_PRINTF +HAVE_DECL_GETW +HAVE_DECL_GETLINE +HAVE_DECL_GETDELIM +HAVE_DECL_FTELLO +HAVE_DECL_FSEEKO +HAVE_DECL_FPURGE +HAVE_DECL_FCLOSEALL +GL_COND_OBJ_GETCWD_LGPL_FALSE +GL_COND_OBJ_GETCWD_LGPL_TRUE +GL_COND_OBJ_FUTIMENS_FALSE +GL_COND_OBJ_FUTIMENS_TRUE +GL_COND_OBJ_FSTATAT_FALSE +GL_COND_OBJ_FSTATAT_TRUE +GL_GNULIB_MDA_UMASK +GL_GNULIB_MDA_MKDIR +GL_GNULIB_MDA_CHMOD +GL_GNULIB_OVERRIDES_STRUCT_STAT +GL_GNULIB_UTIMENSAT +GL_GNULIB_STAT +GL_GNULIB_MKNODAT +GL_GNULIB_MKNOD +GL_GNULIB_MKFIFOAT +GL_GNULIB_MKFIFO +GL_GNULIB_MKDIRAT +GL_GNULIB_MKDIR +GL_GNULIB_LSTAT +GL_GNULIB_LCHMOD +GL_GNULIB_GETUMASK +GL_GNULIB_FUTIMENS +GL_GNULIB_FSTATAT +GL_GNULIB_FSTAT +GL_GNULIB_FCHMODAT +GL_GNULIB_CHMOD +WINDOWS_64_BIT_ST_SIZE +WINDOWS_STAT_TIMESPEC +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H +NEXT_SYS_STAT_H +GL_COND_OBJ_FSTAT_FALSE +GL_COND_OBJ_FSTAT_TRUE +REPLACE_UTIMENSAT +REPLACE_STAT +REPLACE_MKNODAT +REPLACE_MKNOD +REPLACE_MKFIFOAT +REPLACE_MKFIFO +REPLACE_MKDIR +REPLACE_LSTAT +REPLACE_FUTIMENS +REPLACE_FSTATAT +REPLACE_FSTAT +REPLACE_FCHMODAT +REPLACE_CHMOD +HAVE_UTIMENSAT +HAVE_MKNODAT +HAVE_MKNOD +HAVE_MKFIFOAT +HAVE_MKFIFO +HAVE_MKDIRAT +HAVE_LSTAT +HAVE_LCHMOD +HAVE_GETUMASK +HAVE_FUTIMENS +HAVE_FSTATAT +HAVE_FCHMODAT +HAVE_SAME_LONG_DOUBLE_AS_DOUBLE +GL_GNULIB_MDA_YN +GL_GNULIB_MDA_Y1 +GL_GNULIB_MDA_Y0 +GL_GNULIB_MDA_JN +GL_GNULIB_MDA_J1 +GL_GNULIB_MDA_J0 +GL_GNULIB_TRUNCL +GL_GNULIB_TRUNCF +GL_GNULIB_TRUNC +GL_GNULIB_TANHF +GL_GNULIB_TANL +GL_GNULIB_TANF +GL_GNULIB_SQRTL +GL_GNULIB_SQRTF +GL_GNULIB_SINHF +GL_GNULIB_SINL +GL_GNULIB_SINF +GL_GNULIB_SIGNBIT +GL_GNULIB_ROUNDL +GL_GNULIB_ROUNDF +GL_GNULIB_ROUND +GL_GNULIB_RINTL +GL_GNULIB_RINTF +GL_GNULIB_RINT +GL_GNULIB_REMAINDERL +GL_GNULIB_REMAINDERF +GL_GNULIB_REMAINDER +GL_GNULIB_POWF +GL_GNULIB_MODFL +GL_GNULIB_MODFF +GL_GNULIB_MODF +GL_GNULIB_LOGBL +GL_GNULIB_LOGBF +GL_GNULIB_LOGB +GL_GNULIB_LOG2L +GL_GNULIB_LOG2F +GL_GNULIB_LOG2 +GL_GNULIB_LOG1PL +GL_GNULIB_LOG1PF +GL_GNULIB_LOG1P +GL_GNULIB_LOG10L +GL_GNULIB_LOG10F +GL_GNULIB_LOG10 +GL_GNULIB_LOGL +GL_GNULIB_LOGF +GL_GNULIB_LOG +GL_GNULIB_LDEXPL +GL_GNULIB_LDEXPF +GL_GNULIB_ISNANL +GL_GNULIB_ISNAND +GL_GNULIB_ISNANF +GL_GNULIB_ISNAN +GL_GNULIB_ISINF +GL_GNULIB_ISFINITE +GL_GNULIB_ILOGBL +GL_GNULIB_ILOGBF +GL_GNULIB_ILOGB +GL_GNULIB_HYPOTL +GL_GNULIB_HYPOTF +GL_GNULIB_HYPOT +GL_GNULIB_FREXPL +GL_GNULIB_FREXP +GL_GNULIB_FREXPF +GL_GNULIB_FMODL +GL_GNULIB_FMODF +GL_GNULIB_FMOD +GL_GNULIB_FMAL +GL_GNULIB_FMAF +GL_GNULIB_FMA +GL_GNULIB_FLOORL +GL_GNULIB_FLOORF +GL_GNULIB_FLOOR +GL_GNULIB_FABSL +GL_GNULIB_FABSF +GL_GNULIB_EXPM1L +GL_GNULIB_EXPM1F +GL_GNULIB_EXPM1 +GL_GNULIB_EXP2L +GL_GNULIB_EXP2F +GL_GNULIB_EXP2 +GL_GNULIB_EXPL +GL_GNULIB_EXPF +GL_GNULIB_COSHF +GL_GNULIB_COSL +GL_GNULIB_COSF +GL_GNULIB_COPYSIGNL +GL_GNULIB_COPYSIGNF +GL_GNULIB_COPYSIGN +GL_GNULIB_CEILL +GL_GNULIB_CEILF +GL_GNULIB_CEIL +GL_GNULIB_CBRTL +GL_GNULIB_CBRTF +GL_GNULIB_CBRT +GL_GNULIB_ATAN2F +GL_GNULIB_ATANL +GL_GNULIB_ATANF +GL_GNULIB_ASINL +GL_GNULIB_ASINF +GL_GNULIB_ACOSL +GL_GNULIB_ACOSF +REPLACE_TRUNCL +REPLACE_TRUNCF +REPLACE_TRUNC +REPLACE_TANHF +REPLACE_TANF +REPLACE_SQRTL +REPLACE_SQRTF +REPLACE_SINHF +REPLACE_SINF +REPLACE_SIGNBIT_USING_BUILTINS +REPLACE_SIGNBIT +REPLACE_ROUNDL +REPLACE_ROUNDF +REPLACE_ROUND +REPLACE_RINTL +REPLACE_REMAINDERL +REPLACE_REMAINDERF +REPLACE_REMAINDER +REPLACE_NAN +REPLACE_MODFL +REPLACE_MODFF +REPLACE_MODF +REPLACE_LOGBL +REPLACE_LOGBF +REPLACE_LOGB +REPLACE_LOG2L +REPLACE_LOG2F +REPLACE_LOG2 +REPLACE_LOG1PL +REPLACE_LOG1PF +REPLACE_LOG1P +REPLACE_LOG10L +REPLACE_LOG10F +REPLACE_LOG10 +REPLACE_LOGL +REPLACE_LOGF +REPLACE_LOG +REPLACE_LDEXPL +REPLACE_ISNAN +REPLACE_ISINF +REPLACE_ISFINITE +REPLACE_ILOGBL +REPLACE_ILOGBF +REPLACE_ILOGB +REPLACE_HYPOTL +REPLACE_HYPOTF +REPLACE_HYPOT +REPLACE_HUGE_VAL +REPLACE_FREXPL +REPLACE_FREXP +REPLACE_FREXPF +REPLACE_FMODL +REPLACE_FMODF +REPLACE_FMOD +REPLACE_FMAL +REPLACE_FMAF +REPLACE_FMA +REPLACE_FLOORL +REPLACE_FLOORF +REPLACE_FLOOR +REPLACE_FABSL +REPLACE_EXP2L +REPLACE_EXP2 +REPLACE_EXPM1L +REPLACE_EXPM1F +REPLACE_EXPM1 +REPLACE_EXPL +REPLACE_EXPF +REPLACE_COSHF +REPLACE_COSF +REPLACE_CEILL +REPLACE_CEILF +REPLACE_CEIL +REPLACE_CBRTL +REPLACE_CBRTF +REPLACE_ATAN2F +REPLACE_ATANF +REPLACE_ASINF +REPLACE_ACOSF +HAVE_DECL_TRUNCL +HAVE_DECL_TRUNCF +HAVE_DECL_TRUNC +HAVE_DECL_TANL +HAVE_DECL_SQRTL +HAVE_DECL_SINL +HAVE_DECL_ROUNDL +HAVE_DECL_ROUNDF +HAVE_DECL_ROUND +HAVE_DECL_RINTF +HAVE_DECL_REMAINDERL +HAVE_DECL_REMAINDER +HAVE_DECL_LOGB +HAVE_DECL_LOG2L +HAVE_DECL_LOG2F +HAVE_DECL_LOG2 +HAVE_DECL_LOG10L +HAVE_DECL_LOGL +HAVE_DECL_LDEXPL +HAVE_DECL_FREXPL +HAVE_DECL_FLOORL +HAVE_DECL_FLOORF +HAVE_DECL_EXPM1L +HAVE_DECL_EXP2L +HAVE_DECL_EXP2F +HAVE_DECL_EXP2 +HAVE_DECL_EXPL +HAVE_DECL_COSL +HAVE_DECL_COPYSIGNF +HAVE_DECL_CEILL +HAVE_DECL_CEILF +HAVE_DECL_CBRTL +HAVE_DECL_CBRTF +HAVE_DECL_ATANL +HAVE_DECL_ASINL +HAVE_DECL_ACOSL +HAVE_TANHF +HAVE_TANL +HAVE_TANF +HAVE_SQRTL +HAVE_SQRTF +HAVE_SINHF +HAVE_SINL +HAVE_SINF +HAVE_RINTL +HAVE_RINT +HAVE_REMAINDERF +HAVE_REMAINDER +HAVE_POWF +HAVE_MODFL +HAVE_MODFF +HAVE_LOGBL +HAVE_LOGBF +HAVE_LOG1PL +HAVE_LOG1PF +HAVE_LOG1P +HAVE_LOG10L +HAVE_LOG10F +HAVE_LOGL +HAVE_LOGF +HAVE_LDEXPF +HAVE_ISNANL +HAVE_ISNAND +HAVE_ISNANF +HAVE_ILOGBL +HAVE_ILOGBF +HAVE_ILOGB +HAVE_HYPOTL +HAVE_HYPOTF +HAVE_FREXPF +HAVE_FMODL +HAVE_FMODF +HAVE_FMAL +HAVE_FMAF +HAVE_FMA +HAVE_FABSL +HAVE_FABSF +HAVE_EXPM1F +HAVE_EXPM1 +HAVE_EXPL +HAVE_EXPF +HAVE_COSHF +HAVE_COSL +HAVE_COSF +HAVE_COPYSIGNL +HAVE_COPYSIGN +HAVE_CBRTL +HAVE_CBRTF +HAVE_CBRT +HAVE_ATAN2F +HAVE_ATANL +HAVE_ATANF +HAVE_ASINL +HAVE_ASINF +HAVE_ACOSL +HAVE_ACOSF +GL_COND_OBJ_FREE_FALSE +GL_COND_OBJ_FREE_TRUE +GL_GENERATE_FNMATCH_H_FALSE +GL_GENERATE_FNMATCH_H_TRUE +FNMATCH_H +GL_GNULIB_FNMATCH +HAVE_FNMATCH_H +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H +NEXT_FNMATCH_H +REPLACE_FNMATCH +HAVE_FNMATCH +GL_COND_OBJ_ITOLD_FALSE +GL_COND_OBJ_ITOLD_TRUE +GL_COND_OBJ_FLOAT_FALSE +GL_COND_OBJ_FLOAT_TRUE +GL_GENERATE_FLOAT_H_FALSE +GL_GENERATE_FLOAT_H_TRUE +FLOAT_H +REPLACE_ITOLD +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H +NEXT_FLOAT_H +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H +NEXT_FCNTL_H +GL_GNULIB_MDA_OPEN +GL_GNULIB_MDA_CREAT +GL_GNULIB_OPENAT +GL_GNULIB_OPEN +GL_GNULIB_NONBLOCKING +GL_GNULIB_FCNTL +GL_GNULIB_CREAT +GL_COND_OBJ_FCNTL_FALSE +GL_COND_OBJ_FCNTL_TRUE +REPLACE_OPENAT +REPLACE_OPEN +REPLACE_FCNTL +REPLACE_CREAT +HAVE_OPENAT +HAVE_FCNTL +GL_COND_OBJ_FCHDIR_FALSE +GL_COND_OBJ_FCHDIR_TRUE +GL_GENERATE_ERROR_H_FALSE +GL_GENERATE_ERROR_H_TRUE +ERROR_H +GL_COND_OBJ_ERROR_FALSE +GL_COND_OBJ_ERROR_TRUE +REPLACE_ERROR_AT_LINE +REPLACE_ERROR +HAVE_ERROR_AT_LINE +HAVE_ERROR +GL_GENERATE_ERRNO_H_FALSE +GL_GENERATE_ERRNO_H_TRUE +ERRNO_H +EOVERFLOW_VALUE +EOVERFLOW_HIDDEN +ENOLINK_VALUE +ENOLINK_HIDDEN +EMULTIHOP_VALUE +EMULTIHOP_HIDDEN +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H +NEXT_ERRNO_H +GL_COND_OBJ_DUP2_FALSE +GL_COND_OBJ_DUP2_TRUE +GL_COND_OBJ_DIRFD_FALSE +GL_COND_OBJ_DIRFD_TRUE +HAVE_DIRENT_H +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H +NEXT_DIRENT_H +GL_GNULIB_ISBLANK +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H +NEXT_CTYPE_H +HAVE_ISBLANK +GL_GNULIB_ALPHASORT +GL_GNULIB_SCANDIR +GL_GNULIB_FDOPENDIR +GL_GNULIB_DIRFD +GL_GNULIB_CLOSEDIR +GL_GNULIB_REWINDDIR +GL_GNULIB_READDIR +GL_GNULIB_OPENDIR +GL_COND_OBJ_CLOSEDIR_FALSE +GL_COND_OBJ_CLOSEDIR_TRUE +REPLACE_FDOPENDIR +REPLACE_DIRFD +REPLACE_CLOSEDIR +REPLACE_OPENDIR +HAVE_ALPHASORT +HAVE_SCANDIR +HAVE_FDOPENDIR +HAVE_DECL_FDOPENDIR +HAVE_DECL_DIRFD +HAVE_CLOSEDIR +HAVE_REWINDDIR +HAVE_READDIR +HAVE_OPENDIR +GL_COND_OBJ_CLOSE_FALSE +GL_COND_OBJ_CLOSE_TRUE +HAVE_WINSOCK2_H +HAVE_MSVC_INVALID_PARAMETER_HANDLER +LIB_CLOCK_GETTIME +CLOCK_TIME_LIB +GL_COND_OBJ_CHDIR_LONG_FALSE +GL_COND_OBJ_CHDIR_LONG_TRUE +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS +UNISTD_H_HAVE_WINSOCK2_H +UNISTD_H_HAVE_SYS_RANDOM_H +REPLACE_WRITE +REPLACE_USLEEP +REPLACE_UNLINKAT +REPLACE_UNLINK +REPLACE_TTYNAME_R +REPLACE_TRUNCATE +REPLACE_SYMLINKAT +REPLACE_SYMLINK +REPLACE_SLEEP +REPLACE_RMDIR +REPLACE_READLINKAT +REPLACE_READLINK +REPLACE_READ +REPLACE_PWRITE +REPLACE_PREAD +REPLACE_LSEEK +REPLACE_LINKAT +REPLACE_LINK +REPLACE_LCHOWN +REPLACE_ISATTY +REPLACE_GETPASS_FOR_GETPASS_GNU +REPLACE_GETPASS +REPLACE_GETPAGESIZE +REPLACE_GETGROUPS +REPLACE_GETLOGIN_R +REPLACE_GETDTABLESIZE +REPLACE_GETDOMAINNAME +REPLACE_GETCWD +REPLACE_FTRUNCATE +REPLACE_FCHOWNAT +REPLACE_FACCESSAT +REPLACE_EXECVPE +REPLACE_EXECVP +REPLACE_EXECVE +REPLACE_EXECV +REPLACE_EXECLP +REPLACE_EXECLE +REPLACE_EXECL +REPLACE_DUP2 +REPLACE_DUP +REPLACE_COPY_FILE_RANGE +REPLACE_CLOSE +REPLACE_CHOWN +REPLACE_ACCESS +HAVE_SYS_PARAM_H +HAVE_OS_H +HAVE_DECL_TTYNAME_R +HAVE_DECL_TRUNCATE +HAVE_DECL_SETHOSTNAME +HAVE_DECL_GETUSERSHELL +HAVE_DECL_GETPAGESIZE +HAVE_DECL_GETLOGIN_R +HAVE_DECL_GETLOGIN +HAVE_DECL_GETDOMAINNAME +HAVE_DECL_FDATASYNC +HAVE_DECL_FCHDIR +HAVE_DECL_EXECVPE +HAVE_DECL_ENVIRON +HAVE_USLEEP +HAVE_UNLINKAT +HAVE_SYMLINKAT +HAVE_SYMLINK +HAVE_SLEEP +HAVE_SETHOSTNAME +HAVE_READLINKAT +HAVE_READLINK +HAVE_PWRITE +HAVE_PREAD +HAVE_PIPE2 +HAVE_PIPE +HAVE_LINKAT +HAVE_LINK +HAVE_LCHOWN +HAVE_GROUP_MEMBER +HAVE_GETPASS +HAVE_GETPAGESIZE +HAVE_GETLOGIN +HAVE_GETHOSTNAME +HAVE_GETGROUPS +HAVE_GETENTROPY +HAVE_GETDTABLESIZE +HAVE_FTRUNCATE +HAVE_FSYNC +HAVE_FDATASYNC +HAVE_FCHOWNAT +HAVE_FCHDIR +HAVE_FACCESSAT +HAVE_EXECVPE +HAVE_EUIDACCESS +HAVE_DUP3 +HAVE_COPY_FILE_RANGE +HAVE_CHOWN +GL_GNULIB_MDA_WRITE +GL_GNULIB_MDA_UNLINK +GL_GNULIB_MDA_SWAB +GL_GNULIB_MDA_RMDIR +GL_GNULIB_MDA_READ +GL_GNULIB_MDA_LSEEK +GL_GNULIB_MDA_ISATTY +GL_GNULIB_MDA_GETPID +GL_GNULIB_MDA_GETCWD +GL_GNULIB_MDA_EXECVPE +GL_GNULIB_MDA_EXECVP +GL_GNULIB_MDA_EXECVE +GL_GNULIB_MDA_EXECV +GL_GNULIB_MDA_EXECLP +GL_GNULIB_MDA_EXECLE +GL_GNULIB_MDA_EXECL +GL_GNULIB_MDA_DUP2 +GL_GNULIB_MDA_DUP +GL_GNULIB_MDA_CLOSE +GL_GNULIB_MDA_CHDIR +GL_GNULIB_MDA_ACCESS +GL_GNULIB_WRITE +GL_GNULIB_USLEEP +GL_GNULIB_UNLINKAT +GL_GNULIB_UNLINK +GL_GNULIB_UNISTD_H_SIGPIPE +GL_GNULIB_UNISTD_H_NONBLOCKING +GL_GNULIB_UNISTD_H_GETOPT +GL_GNULIB_TTYNAME_R +GL_GNULIB_TRUNCATE +GL_GNULIB_SYMLINKAT +GL_GNULIB_SYMLINK +GL_GNULIB_SLEEP +GL_GNULIB_SETHOSTNAME +GL_GNULIB_RMDIR +GL_GNULIB_READLINKAT +GL_GNULIB_READLINK +GL_GNULIB_READ +GL_GNULIB_PWRITE +GL_GNULIB_PREAD +GL_GNULIB_PIPE2 +GL_GNULIB_PIPE +GL_GNULIB_LSEEK +GL_GNULIB_LINKAT +GL_GNULIB_LINK +GL_GNULIB_LCHOWN +GL_GNULIB_ISATTY +GL_GNULIB_GROUP_MEMBER +GL_GNULIB_GETUSERSHELL +GL_GNULIB_GETPASS_GNU +GL_GNULIB_GETPASS +GL_GNULIB_GETPAGESIZE +GL_GNULIB_GETOPT_POSIX +GL_GNULIB_GETLOGIN_R +GL_GNULIB_GETLOGIN +GL_GNULIB_GETHOSTNAME +GL_GNULIB_GETGROUPS +GL_GNULIB_GETENTROPY +GL_GNULIB_GETDTABLESIZE +GL_GNULIB_GETDOMAINNAME +GL_GNULIB_GETCWD +GL_GNULIB_FTRUNCATE +GL_GNULIB_FSYNC +GL_GNULIB_FDATASYNC +GL_GNULIB_FCHOWNAT +GL_GNULIB_FCHDIR +GL_GNULIB_FACCESSAT +GL_GNULIB_EXECVPE +GL_GNULIB_EXECVP +GL_GNULIB_EXECVE +GL_GNULIB_EXECV +GL_GNULIB_EXECLP +GL_GNULIB_EXECLE +GL_GNULIB_EXECL +GL_GNULIB_EUIDACCESS +GL_GNULIB_ENVIRON +GL_GNULIB_DUP3 +GL_GNULIB_DUP2 +GL_GNULIB_DUP +GL_GNULIB_COPY_FILE_RANGE +GL_GNULIB_CLOSE +GL_GNULIB_CHOWN +GL_GNULIB_CHDIR +GL_GNULIB_ACCESS +REPLACE_WCTOMB +REPLACE_UNSETENV +REPLACE_STRTOULL +REPLACE_STRTOUL +REPLACE_STRTOLL +REPLACE_STRTOLD +REPLACE_STRTOL +REPLACE_STRTOD +REPLACE_SETSTATE +REPLACE_SETENV +REPLACE_REALPATH +REPLACE_REALLOCARRAY +REPLACE_REALLOC_FOR_REALLOC_POSIX +REPLACE_REALLOC_FOR_REALLOC_GNU +REPLACE_RANDOM_R +REPLACE_RANDOM +REPLACE_QSORT_R +REPLACE_PUTENV +REPLACE_PTSNAME_R +REPLACE_PTSNAME +REPLACE_POSIX_MEMALIGN +REPLACE_MKSTEMP +REPLACE_MBTOWC +REPLACE_MALLOC_FOR_MALLOC_POSIX +REPLACE_MALLOC_FOR_MALLOC_GNU +REPLACE_INITSTATE +REPLACE_FREE +REPLACE_CANONICALIZE_FILE_NAME +REPLACE_CALLOC_FOR_CALLOC_POSIX +REPLACE_CALLOC_FOR_CALLOC_GNU +REPLACE_ALIGNED_ALLOC +HAVE_DECL_UNSETENV +HAVE_UNLOCKPT +HAVE_SYS_LOADAVG_H +HAVE_STRUCT_RANDOM_DATA +HAVE_STRTOULL +HAVE_STRTOUL +HAVE_STRTOLL +HAVE_STRTOLD +HAVE_STRTOL +HAVE_STRTOD +HAVE_DECL_SETSTATE +HAVE_SETSTATE +HAVE_DECL_SETENV +HAVE_SETENV +HAVE_SECURE_GETENV +HAVE_RPMATCH +HAVE_REALPATH +HAVE_REALLOCARRAY +HAVE_RANDOM_R +HAVE_RANDOM_H +HAVE_RANDOM +HAVE_QSORT_R +HAVE_PTSNAME_R +HAVE_PTSNAME +HAVE_POSIX_OPENPT +HAVE_POSIX_MEMALIGN +HAVE_MKSTEMPS +HAVE_MKSTEMP +HAVE_MKOSTEMPS +HAVE_MKOSTEMP +HAVE_MKDTEMP +HAVE_MBTOWC +HAVE_DECL_INITSTATE +HAVE_INITSTATE +HAVE_GRANTPT +HAVE_GETSUBOPT +HAVE_DECL_GETLOADAVG +HAVE_DECL_GCVT +HAVE_DECL_FCVT +HAVE_DECL_ECVT +HAVE_CANONICALIZE_FILE_NAME +HAVE_ATOLL +HAVE_ALIGNED_ALLOC +HAVE__EXIT +GL_GNULIB_MDA_PUTENV +GL_GNULIB_MDA_MKTEMP +GL_GNULIB_MDA_GCVT +GL_GNULIB_MDA_FCVT +GL_GNULIB_MDA_ECVT +GL_GNULIB_WCTOMB +GL_GNULIB_UNSETENV +GL_GNULIB_UNLOCKPT +GL_GNULIB_SYSTEM_POSIX +GL_GNULIB_STRTOULL +GL_GNULIB_STRTOUL +GL_GNULIB_STRTOLL +GL_GNULIB_STRTOLD +GL_GNULIB_STRTOL +GL_GNULIB_STRTOD +GL_GNULIB_SETENV +GL_GNULIB_SECURE_GETENV +GL_GNULIB_RPMATCH +GL_GNULIB_REALPATH +GL_GNULIB_REALLOC_POSIX +GL_GNULIB_REALLOC_GNU +GL_GNULIB_REALLOCARRAY +GL_GNULIB_RANDOM_R +GL_GNULIB_RANDOM +GL_GNULIB_QSORT_R +GL_GNULIB_PUTENV +GL_GNULIB_PTSNAME_R +GL_GNULIB_PTSNAME +GL_GNULIB_POSIX_OPENPT +GL_GNULIB_POSIX_MEMALIGN +GL_GNULIB_MKSTEMPS +GL_GNULIB_MKSTEMP +GL_GNULIB_MKOSTEMPS +GL_GNULIB_MKOSTEMP +GL_GNULIB_MKDTEMP +GL_GNULIB_MBTOWC +GL_GNULIB_MALLOC_POSIX +GL_GNULIB_MALLOC_GNU +GL_GNULIB_GRANTPT +GL_GNULIB_GETSUBOPT +GL_GNULIB_GETLOADAVG +GL_GNULIB_FREE_POSIX +GL_GNULIB_CANONICALIZE_FILE_NAME +GL_GNULIB_CALLOC_POSIX +GL_GNULIB_CALLOC_GNU +GL_GNULIB_ATOLL +GL_GNULIB_ALIGNED_ALLOC +GL_GNULIB__EXIT +GL_GNULIB_MDA_WCSDUP +GL_GNULIB_WCSFTIME +GL_GNULIB_WCSWIDTH +GL_GNULIB_WCSTOK +GL_GNULIB_WCSSTR +GL_GNULIB_WCSPBRK +GL_GNULIB_WCSSPN +GL_GNULIB_WCSCSPN +GL_GNULIB_WCSRCHR +GL_GNULIB_WCSCHR +GL_GNULIB_WCSDUP +GL_GNULIB_WCSXFRM +GL_GNULIB_WCSCOLL +GL_GNULIB_WCSNCASECMP +GL_GNULIB_WCSCASECMP +GL_GNULIB_WCSNCMP +GL_GNULIB_WCSCMP +GL_GNULIB_WCSNCAT +GL_GNULIB_WCSCAT +GL_GNULIB_WCPNCPY +GL_GNULIB_WCSNCPY +GL_GNULIB_WCPCPY +GL_GNULIB_WCSCPY +GL_GNULIB_WCSNLEN +GL_GNULIB_WCSLEN +GL_GNULIB_WMEMSET +GL_GNULIB_WMEMPCPY +GL_GNULIB_WMEMMOVE +GL_GNULIB_WMEMCPY +GL_GNULIB_WMEMCMP +GL_GNULIB_WMEMCHR +GL_GNULIB_WCWIDTH +GL_GNULIB_WCSNRTOMBS +GL_GNULIB_WCSRTOMBS +GL_GNULIB_WCRTOMB +GL_GNULIB_MBSNRTOWCS +GL_GNULIB_MBSRTOWCS +GL_GNULIB_MBRLEN +GL_GNULIB_MBRTOWC +GL_GNULIB_MBSINIT +GL_GNULIB_WCTOB +GL_GNULIB_BTOWC +GL_COND_OBJ_BTOWC_FALSE +GL_COND_OBJ_BTOWC_TRUE +LOCALE_FR +REPLACE_WCSTOK +REPLACE_WCSFTIME +REPLACE_WCSWIDTH +REPLACE_WCWIDTH +REPLACE_WCSNRTOMBS +REPLACE_WCSRTOMBS +REPLACE_WCRTOMB +REPLACE_MBSNRTOWCS +REPLACE_MBSRTOWCS +REPLACE_MBRLEN +REPLACE_MBRTOWC +REPLACE_MBSINIT +REPLACE_WCTOB +REPLACE_BTOWC +REPLACE_MBSTATE_T +HAVE_DECL_WCWIDTH +HAVE_DECL_WCSDUP +HAVE_DECL_WCTOB +HAVE_WCSFTIME +HAVE_WCSWIDTH +HAVE_WCSTOK +HAVE_WCSSTR +HAVE_WCSPBRK +HAVE_WCSSPN +HAVE_WCSCSPN +HAVE_WCSRCHR +HAVE_WCSCHR +HAVE_WCSDUP +HAVE_WCSXFRM +HAVE_WCSCOLL +HAVE_WCSNCASECMP +HAVE_WCSCASECMP +HAVE_WCSNCMP +HAVE_WCSCMP +HAVE_WCSNCAT +HAVE_WCSCAT +HAVE_WCPNCPY +HAVE_WCSNCPY +HAVE_WCPCPY +HAVE_WCSCPY +HAVE_WCSNLEN +HAVE_WCSLEN +HAVE_WMEMSET +HAVE_WMEMPCPY +HAVE_WMEMMOVE +HAVE_WMEMCPY +HAVE_WMEMCMP +HAVE_WMEMCHR +HAVE_WCSNRTOMBS +HAVE_WCSRTOMBS +HAVE_WCRTOMB +HAVE_MBSNRTOWCS +HAVE_MBSRTOWCS +HAVE_MBRLEN +HAVE_MBRTOWC +HAVE_MBSINIT +HAVE_BTOWC +GL_GENERATE_ASSERT_H_FALSE +GL_GENERATE_ASSERT_H_TRUE +ASSERT_H +NEXT_AS_FIRST_DIRECTIVE_ASSERT_H +NEXT_ASSERT_H +PRAGMA_COLUMNS +PRAGMA_SYSTEM_HEADER +INCLUDE_NEXT_AS_FIRST_DIRECTIVE +INCLUDE_NEXT +GL_GENERATE_ALLOCA_H_FALSE +GL_GENERATE_ALLOCA_H_TRUE +ALLOCA_H +HAVE_ALLOCA_H +ALLOCA +GL_COND_LIBTOOL_FALSE +GL_COND_LIBTOOL_TRUE +RANLIB +ARFLAGS +AR +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_threads +enable_cross_guesses +with_included_regex +enable_nls +with_gnu_ld +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_browser +enable_color +enable_comment +enable_extra +enable_formatter +enable_help +enable_histories +enable_justify +enable_libmagic +enable_linter +enable_linenumbers +enable_mouse +enable_multibuffer +enable_nanorc +enable_operatingdir +enable_speller +enable_tabcomp +enable_wordcomp +enable_wrapping +enable_debug +enable_tiny +enable_utf8 +enable_altrcname +enable_year2038 +enable_largefile +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +NCURSESW_CFLAGS +NCURSESW_LIBS +NCURSES_CFLAGS +NCURSES_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures GNU nano 7.2 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/nano] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GNU nano 7.2:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-threads={isoc|posix|isoc+posix|windows} + specify multithreading API + --disable-threads build without multithread safety + --enable-cross-guesses={conservative|risky} + specify policy for cross-compilation guesses + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --disable-browser Disable the built-in file browser + --disable-color Disable color and syntax highlighting + --disable-comment Disable the comment/uncomment function + --disable-extra Disable the Easter egg + --disable-formatter Disable the formatting tool + --disable-help Disable the built-in help texts + --disable-histories Disable search and position histories + --disable-justify Disable the justify/unjustify functions + --disable-libmagic Disable detection of file types via libmagic + --disable-linter Disable the linting tool + --disable-linenumbers Disable line numbering + --disable-mouse Disable mouse support + --disable-multibuffer Disable multiple file buffers + --disable-nanorc Disable the use of .nanorc files + --disable-operatingdir Disable the setting of an operating directory + --disable-speller Disable the spell-checking tool + --disable-tabcomp Disable the tab-completion functions + --disable-wordcomp Disable the word-completion function + --disable-wrapping Disable all hard-wrapping of text + --enable-debug Enable debugging (disabled by default) + --enable-tiny Disable features for the sake of size + --enable-utf8 Enable UTF-8 support + --enable-altrcname Specify an alternate rcfile name (default: .nanorc) + --enable-year2038 support timestamps after 2038 + --disable-largefile omit support for large files + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --without-included-regex + don't compile regex; this is the default on systems + with recent-enough versions of the GNU C Library + (use with caution on other systems). + --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 + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + NCURSESW_CFLAGS + C compiler flags for NCURSESW, overriding pkg-config + NCURSESW_LIBS + linker flags for NCURSESW, overriding pkg-config + NCURSES_CFLAGS + C compiler flags for NCURSES, overriding pkg-config + NCURSES_LIBS + linker flags for NCURSES, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +GNU nano home page: . +General help using GNU software: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +GNU nano configure 7.2 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## --------------------------------- ## +## Report this to nano-devel@gnu.org ## +## --------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + ac_save_ac_compile="$ac_compile" + if test -n "$ac_compile_for_check_decl"; then + ac_compile="$ac_compile_for_check_decl" + fi + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + ac_compile="$ac_save_ac_compile" + +} # ac_fn_c_check_decl + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval \${$4+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by GNU nano $as_me 7.2, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +as_fn_append ac_header_list " wchar.h" +as_fn_append ac_header_list " minix/config.h" +as_fn_append ac_func_list " btowc" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_header_list " sys/param.h" +as_fn_append ac_func_list " _set_invalid_parameter_handler" +as_fn_append ac_header_list " sys/socket.h" +as_fn_append ac_func_list " fchdir" +as_fn_append ac_header_list " dirent.h" +as_fn_append ac_func_list " fcntl" +as_fn_append ac_func_list " symlink" +as_fn_append ac_func_list " mempcpy" +as_fn_append ac_header_list " fnmatch.h" +as_fn_append ac_func_list " fnmatch" +as_fn_append ac_func_list " mbsrtowcs" +as_fn_append ac_header_list " sys/stat.h" +as_fn_append ac_func_list " fstatat" +as_fn_append ac_func_list " futimens" +as_fn_append ac_func_list " getdelim" +as_fn_append ac_func_list " getdtablesize" +gl_getopt_required=GNU +as_fn_append ac_header_list " getopt.h" +as_fn_append ac_header_list " sys/cdefs.h" +as_fn_append ac_func_list " getprogname" +as_fn_append ac_func_list " getexecname" +as_fn_append ac_header_list " sys/time.h" +as_fn_append ac_func_list " gettimeofday" +as_fn_append ac_header_list " glob.h" +as_fn_append ac_func_list " glob" +as_fn_append ac_func_list " glob_pattern_p" +as_fn_append ac_func_list " getpwnam_r" +as_fn_append ac_header_list " threads.h" +as_fn_append ac_header_list " limits.h" +as_fn_append ac_header_list " inttypes.h" +as_fn_append ac_header_list " sys/types.h" +as_fn_append ac_header_list " stdint.h" +as_fn_append ac_func_list " isblank" +as_fn_append ac_func_list " iswcntrl" +as_fn_append ac_header_list " crtdefs.h" +as_fn_append ac_header_list " wctype.h" +as_fn_append ac_func_list " iswblank" +as_fn_append ac_header_list " langinfo.h" +as_fn_append ac_header_list " xlocale.h" +as_fn_append ac_func_list " lstat" +as_fn_append ac_header_list " math.h" +as_fn_append ac_func_list " mbsinit" +as_fn_append ac_func_list " mbrtowc" +as_fn_append ac_header_list " sys/mman.h" +as_fn_append ac_func_list " mprotect" +as_fn_append ac_func_list " mkstemps" +as_fn_append ac_func_list " nl_langinfo" +as_fn_append ac_func_list " openat" +as_fn_append ac_func_list " pipe" +gl_printf_safe=yes +as_fn_append ac_header_list " malloc.h" +as_fn_append ac_func_list " iswctype" +as_fn_append ac_func_list " sigaction" +as_fn_append ac_func_list " sigaltstack" +as_fn_append ac_func_list " siginterrupt" +as_fn_append ac_func_list " snprintf" +as_fn_append ac_func_list " vasnprintf" +as_fn_append ac_header_list " features.h" +as_fn_append ac_header_list " stdbool.h" +as_fn_append ac_header_list " stdckdint.h" +as_fn_append ac_header_list " strings.h" +as_fn_append ac_header_list " sys/random.h" +as_fn_append ac_header_list " sys/wait.h" +as_fn_append ac_header_list " utime.h" +as_fn_append ac_func_list " utimensat" +as_fn_append ac_func_list " lutimes" +as_fn_append ac_func_list " wcrtomb" +as_fn_append ac_func_list " wcwidth" +as_fn_append ac_func_list " wmempcpy" +gt_needs="$gt_needs need-ngettext" +as_fn_append ac_func_list " chmod" +as_fn_append ac_func_list " chown" +as_fn_append ac_func_list " fchmod" +as_fn_append ac_func_list " fchown" +as_fn_append ac_func_list " flockfile" +as_fn_append ac_func_list " funlockfile" +as_fn_append ac_func_list " fork" +as_fn_append ac_func_list " fsync" +as_fn_append ac_func_list " geteuid" +as_fn_append ac_func_list " wait" +as_fn_append ac_func_list " waitpid" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +am__api_version='1.16' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='nano' + VERSION='7.2' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +ac_config_headers="$ac_config_headers config.h" + + + + + + +gl_cv_func_printf_directive_n=yes +gl_cv_func_printf_infinite_long_double=yes +gl_cv_func_printf_long_double=yes +gl_cv_func_snprintf_directive_n=yes +gl_cv_glob_lists_symlinks=yes + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +$as_echo_n "checking for $CC option to enable C11 features... " >&6; } +if ${ac_cv_prog_cc_c11+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + v1.i = 2; + v1.w.k = 5; + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +ac_prog_cc_stdc_options= +case "x$ac_cv_prog_cc_c11" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11" + CC=$CC$ac_prog_cc_stdc_options + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +$as_echo "$ac_cv_prog_cc_c11" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c11" != xno; then : + ac_prog_cc_stdc=c11 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +$as_echo_n "checking for $CC option to enable C99 features... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +ac_prog_cc_stdc_options= +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99" + CC=$CC$ac_prog_cc_stdc_options + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + ac_prog_cc_stdc=c99 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +$as_echo_n "checking for $CC option to enable C89 features... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +ac_prog_cc_stdc_options= +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89" + CC=$CC$ac_prog_cc_stdc_options + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + ac_prog_cc_stdc=c89 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 +else + ac_prog_cc_stdc=no + ac_cv_prog_cc_stdc=no +fi + +fi + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 +$as_echo_n "checking whether the compiler is clang... " >&6; } +if ${gl_cv_compiler_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifdef __clang__ + barfbarf + #endif + +int +main () +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_compiler_clang=no +else + gl_cv_compiler_clang=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 +$as_echo "$gl_cv_compiler_clang" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 +$as_echo_n "checking for compiler option needed when checking for declarations... " >&6; } +if ${gl_cv_compiler_check_decl_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test $gl_cv_compiler_clang = yes; then + save_ac_compile="$ac_compile" + ac_compile="$ac_compile -Werror=implicit-function-declaration" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' +else + gl_cv_compiler_check_decl_option=none +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_compile="$save_ac_compile" + else + gl_cv_compiler_check_decl_option=none + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 +$as_echo "$gl_cv_compiler_check_decl_option" >&6; } + if test "x$gl_cv_compiler_check_decl_option" != xnone; then + ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" + else + ac_compile_for_check_decl="$ac_compile" + fi + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + for ac_header in $ac_header_list +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if ${ac_cv_should_define__xopen_source+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_should_define__xopen_source=no + if test $ac_cv_header_wchar_h = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +$as_echo "$ac_cv_should_define__xopen_source" >&6; } + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + + $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h + + $as_echo "#define _OPENBSD_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + + $as_echo "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + if test $ac_cv_header_minix_config_h = yes; then : + MINIX=yes + $as_echo "#define _MINIX 1" >>confdefs.h + + $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + +else + MINIX= +fi + if test $ac_cv_safe_to_define___extensions__ = yes; then : + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + +fi + if test $ac_cv_should_define__xopen_source = yes; then : + $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h + +fi + + + + + + + case "$host_os" in + openbsd*) + +$as_echo "#define _ISOC11_SOURCE 1" >>confdefs.h + + ;; + esac + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 +$as_echo_n "checking for Minix Amsterdam compiler... " >&6; } +if ${gl_cv_c_amsterdam_compiler+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __ACK__ +Amsterdam +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Amsterdam" >/dev/null 2>&1; then : + gl_cv_c_amsterdam_compiler=yes +else + gl_cv_c_amsterdam_compiler=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 +$as_echo "$gl_cv_c_amsterdam_compiler" >&6; } + + if test $gl_cv_c_amsterdam_compiler = yes; then + if test -z "$AR"; then + AR='cc -c.a' + fi + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + : + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="ar" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test -z "$ARFLAGS"; then + ARFLAGS='cr' + fi + + + + if test -z "$RANLIB"; then + if test $gl_cv_c_amsterdam_compiler = yes; then + RANLIB=':' + else + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + fi + fi + + + + + + # IEEE behaviour is the default on all CPUs except Alpha and SH + # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 + # and the GCC 4.1.2 manual). + case "$host_cpu" in + alpha*) + # On Alpha systems, a compiler option provides the behaviour. + # See the ieee(3) manual page, also available at + # + if test -n "$GCC"; then + # GCC has the option -mieee. + # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. + CPPFLAGS="$CPPFLAGS -mieee" + else + # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. + # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. + CPPFLAGS="$CPPFLAGS -ieee" + fi + ;; + sh*) + if test -n "$GCC"; then + # GCC has the option -mieee. + CPPFLAGS="$CPPFLAGS -mieee" + fi + ;; + esac + + if test "$enable_largefile" != no; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 +$as_echo_n "checking for $CC option to enable large file support... " >&6; } +if ${ac_cv_sys_largefile_opts+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CC="$CC" + ac_opt_found=no + for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do + if test x"$ac_opt" != x"none needed"; then : + CC="$ac_save_CC $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_opts="$ac_opt" + ac_opt_found=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test $ac_opt_found = no || break + done + CC="$ac_save_CC" + test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 +$as_echo "$ac_cv_sys_largefile_opts" >&6; } + +ac_have_largefile=yes +case $ac_cv_sys_largefile_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_largefile=no ;; #( + "-D_FILE_OFFSET_BITS=64") : + +$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ;; #( + "-D_LARGE_FILES=1") : + +$as_echo "#define _LARGE_FILES 1" >>confdefs.h + ;; #( + "-n32") : + CC="$CC -n32" ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; +esac + + if test "$enable_year2038" != no; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable timestamps after Jan 2038" >&5 +$as_echo_n "checking for $CC option to enable timestamps after Jan 2038... " >&6; } +if ${ac_cv_sys_year2038_opts+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CPPFLAGS="$CPPFLAGS" + ac_opt_found=no + for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do + if test x"$ac_opt" != x"none needed"; then : + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_year2038_opts="$ac_opt" + ac_opt_found=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test $ac_opt_found = no || break + done + CPPFLAGS="$ac_save_CPPFLAGS" + test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 +$as_echo "$ac_cv_sys_year2038_opts" >&6; } + +ac_have_year2038=yes +case $ac_cv_sys_year2038_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_year2038=no + case $enable_year2038 in #( + yes) : + # If we're not cross compiling and 'touch' works with a large + # timestamp, then we can presume the system supports wider time_t + # *somehow* and we just weren't able to detect it. One common + # case that we deliberately *don't* probe for is a system that + # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers + # wide time_t. (It would be inappropriate for us to override an + # intentional use of -m32.) Error out, demanding use of + # --disable-year2038 if this is intentional. + if test $cross_compiling = no; then : + if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null; then : + case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #( + *'Feb 7 2106'* | *'Feb 7 17:10'*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "this system appears to support timestamps after +January 2038, but no mechanism for enabling wide +'time_t' was detected. Did you mean to build a 64-bit +binary? (e.g. 'CC=\"${CC} -m64\"'.) To proceed with +32-bit time_t, configure with '--disable-year2038'. +See \`config.log' for more details" "$LINENO" 5; } ;; #( + *) : + ;; +esac +fi +fi ;; #( + *) : + ;; +esac ;; #( + "-D_TIME_BITS=64") : + +$as_echo "#define _TIME_BITS 64" >>confdefs.h + ;; #( + "-D__MINGW_USE_VC2005_COMPAT=1") : + +$as_echo "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + ;; #( + "-U_USE_32_BIT_TIME_T"*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It +will stop working after January 2038. Remove +_USE_32BIT_TIME_T from the compiler flags. +See \`config.log' for more details" "$LINENO" 5; } ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; +esac + +fi + + + +fi + + + + + + + + + + # Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then : + enableval=$enable_threads; gl_use_threads=$enableval +else + if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else + case "$host_os" in + osf*) gl_use_threads=no ;; + cygwin*) + case `uname -r` in + 1.[0-5].*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ;; + mingw*) + case "$gl_use_winpthreads_default" in + yes) gl_use_threads=posix ;; + no) gl_use_threads=windows ;; + *) gl_use_threads=yes ;; + esac + ;; + *) gl_use_threads=yes ;; + esac + fi + +fi + + if test "$gl_use_threads" = yes \ + || test "$gl_use_threads" = isoc \ + || test "$gl_use_threads" = posix \ + || test "$gl_use_threads" = isoc+posix; then + # For using or : + + + if test -z "$gl_anythreadlib_early_done"; then + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + gl_anythreadlib_early_done=done + fi + + fi + + + + # Pre-early section. + + + + # Code from module absolute-header: + # Code from module alloca: + # Code from module alloca-opt: + # Code from module assert-h: + # Code from module assure: + # Code from module at-internal: + # Code from module attribute: + # Code from module basename-lgpl: + # Code from module btowc: + # Code from module builtin-expect: + # Code from module c99: + # Code from module chdir: + # Code from module chdir-long: + # Code from module clock-time: + # Code from module cloexec: + # Code from module close: + # Code from module closedir: + # Code from module ctype: + # Code from module d-type: + # Code from module dirent: + # Code from module dirfd: + # Code from module dirname-lgpl: + # Code from module double-slash-root: + # Code from module dup2: + # Code from module errno: + # Code from module error: + # Code from module error-h: + # Code from module exitfail: + # Code from module extensions: + # Code from module extern-inline: + # Code from module fchdir: + # Code from module fcntl: + # Code from module fcntl-h: + # Code from module fd-hook: + # Code from module fd-safer-flag: + # Code from module filename: + # Code from module filenamecat-lgpl: + # Code from module flexmember: + # Code from module float: + # Code from module fnmatch: + # Code from module fnmatch-h: + # Code from module fpieee: + + # Code from module fpucw: + # Code from module free-posix: + # Code from module frexp-nolibm: + # Code from module frexpl-nolibm: + # Code from module fstat: + # Code from module fstatat: + # Code from module futimens: + # Code from module gen-header: + # Code from module getcwd-lgpl: + # Code from module getdelim: + # Code from module getdtablesize: + # Code from module getline: + # Code from module getlogin_r: + # Code from module getopt-gnu: + # Code from module getopt-posix: + # Code from module getprogname: + # Code from module getrandom: + # Code from module gettext-h: + # Code from module gettime: + # Code from module gettimeofday: + # Code from module glibc-internal/dynarray: + # Code from module glibc-internal/scratch_buffer: + # Code from module glob: + # Code from module glob-h: + # Code from module hard-locale: + # Code from module idx: + # Code from module include_next: + # Code from module intprops: + # Code from module inttypes-incomplete: + # Code from module isblank: + # Code from module isnand-nolibm: + # Code from module isnanf-nolibm: + # Code from module isnanl-nolibm: + # Code from module iswblank: + # Code from module langinfo: + # Code from module largefile: + + # Code from module libc-config: + # Code from module limits-h: + # Code from module localcharset: + # Code from module locale: + # Code from module localeconv: + # Code from module lock: + # Code from module lstat: + # Code from module malloc-posix: + # Code from module malloca: + # Code from module math: + # Code from module mbrtowc: + # Code from module mbsinit: + # Code from module mbsrtowcs: + # Code from module mbtowc: + # Code from module memchr: + # Code from module mempcpy: + # Code from module memrchr: + # Code from module minmax: + # Code from module mkdir: + # Code from module mkstemps: + # Code from module msvc-inval: + # Code from module msvc-nothrow: + # Code from module multiarch: + # Code from module nl_langinfo: + # Code from module nocrash: + # Code from module open: + # Code from module openat: + # Code from module openat-die: + # Code from module openat-h: + # Code from module opendir: + # Code from module pathmax: + # Code from module pipe-posix: + # Code from module printf-frexp: + # Code from module printf-frexpl: + # Code from module printf-safe: + # Code from module raise: + # Code from module readdir: + # Code from module realloc-posix: + # Code from module regex: + # Code from module save-cwd: + # Code from module setlocale-null: + # Code from module sigaction: + # Code from module signal-h: + # Code from module signbit: + # Code from module sigprocmask: + # Code from module size_max: + # Code from module snippet/_Noreturn: + # Code from module snippet/arg-nonnull: + # Code from module snippet/c++defs: + # Code from module snippet/warn-on-use: + # Code from module snprintf: + # Code from module snprintf-posix: + # Code from module ssize_t: + # Code from module stat: + # Code from module stat-time: + # Code from module std-gnu11: + # Code from module stdarg: + + + + # Code from module stdbool: + # Code from module stdckdint: + # Code from module stddef: + # Code from module stdint: + # Code from module stdio: + # Code from module stdlib: + # Code from module strcase: + # Code from module strcasestr-simple: + # Code from module strdup-posix: + # Code from module streq: + # Code from module strerror: + # Code from module strerror-override: + # Code from module string: + # Code from module strings: + # Code from module strnlen: + # Code from module strnlen1: + # Code from module sys_random: + # Code from module sys_stat: + # Code from module sys_time: + # Code from module sys_types: + # Code from module sys_wait: + # Code from module tempname: + # Code from module threadlib: + + + + # Code from module time: + # Code from module timespec: + # Code from module unistd: + # Code from module unistd-safer: + # Code from module unitypes: + # Code from module uniwidth/base: + # Code from module uniwidth/width: + # Code from module utime: + # Code from module utime-h: + # Code from module utimens: + # Code from module vararrays: + # Code from module vasnprintf: + # Code from module verify: + # Code from module vsnprintf: + # Code from module vsnprintf-posix: + # Code from module wchar: + # Code from module wcrtomb: + # Code from module wctype-h: + # Code from module wcwidth: + # Code from module windows-mutex: + # Code from module windows-once: + # Code from module windows-recmutex: + # Code from module windows-rwlock: + # Code from module wmemchr: + # Code from module wmempcpy: + # Code from module xalloc-oversized: + # Code from module xsize: + + + + + + + + + + + # Check whether --enable-cross-guesses was given. +if test "${enable_cross_guesses+set}" = set; then : + enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} + enableval=conservative + fi + gl_cross_guesses="$enableval" +else + gl_cross_guesses=conservative +fi + + if test $gl_cross_guesses = risky; then + gl_cross_guess_normal="guessing yes" + gl_cross_guess_inverted="guessing no" + else + gl_cross_guess_normal="guessing no" + gl_cross_guess_inverted="guessing yes" + fi + LIBC_FATAL_STDERR_=1 + export LIBC_FATAL_STDERR_ + + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } +if ${ac_cv_working_alloca_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_working_alloca_h=yes +else + ac_cv_working_alloca_h=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } +if test $ac_cv_working_alloca_h = yes; then + +$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } +if ${ac_cv_func_alloca_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# ifdef HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +void *alloca (size_t); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_alloca_works=yes +else + ac_cv_func_alloca_works=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } + +if test $ac_cv_func_alloca_works = yes; then + +$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + + + + + +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext + +$as_echo "#define C_ALLOCA 1" >>confdefs.h + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } +if ${ac_cv_c_stack_direction+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_c_stack_direction=0 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +find_stack_direction (int *addr, int depth) +{ + int dir, dummy = 0; + if (! addr) + addr = &dummy; + *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; + dir = depth ? find_stack_direction (addr, depth - 1) : 0; + return dir + dummy; +} + +int +main (int argc, char **argv) +{ + return find_stack_direction (0, argc + !argv + 20) < 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_stack_direction=1 +else + ac_cv_c_stack_direction=-1 +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 +$as_echo_n "checking whether the preprocessor supports include_next... " >&6; } +if ${gl_cv_have_include_next+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftestd1a conftestd1b conftestd2 + mkdir conftestd1a conftestd1b conftestd2 + cat < conftestd1a/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd1b/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd2/conftest.h +#ifndef DEFINED_IN_CONFTESTD1 +#error "include_next test doesn't work" +#endif +#define DEFINED_IN_CONFTESTD2 +EOF + gl_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_have_include_next=yes +else + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_have_include_next=buggy +else + gl_cv_have_include_next=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$gl_save_CPPFLAGS" + rm -rf conftestd1a conftestd1b conftestd2 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 +$as_echo "$gl_cv_have_include_next" >&6; } + PRAGMA_SYSTEM_HEADER= + if test $gl_cv_have_include_next = yes; then + INCLUDE_NEXT=include_next + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + if test -n "$GCC"; then + PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' + fi + else + if test $gl_cv_have_include_next = buggy; then + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + else + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include + fi + fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5 +$as_echo_n "checking whether source code line length is unlimited... " >&6; } +if ${gl_cv_source_line_length_unlimited+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __TANDEM +choke me +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "choke me" >/dev/null 2>&1; then : + gl_cv_source_line_length_unlimited=no +else + gl_cv_source_line_length_unlimited=yes +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5 +$as_echo "$gl_cv_source_line_length_unlimited" >&6; } + if test $gl_cv_source_line_length_unlimited = no; then + PRAGMA_COLUMNS="#pragma COLUMNS 10000" + else + PRAGMA_COLUMNS= + fi + + + + HAVE_BTOWC=1; + HAVE_MBSINIT=1; + HAVE_MBRTOWC=1; + HAVE_MBRLEN=1; + HAVE_MBSRTOWCS=1; + HAVE_MBSNRTOWCS=1; + HAVE_WCRTOMB=1; + HAVE_WCSRTOMBS=1; + HAVE_WCSNRTOMBS=1; + HAVE_WMEMCHR=1; + HAVE_WMEMCMP=1; + HAVE_WMEMCPY=1; + HAVE_WMEMMOVE=1; + HAVE_WMEMPCPY=1; + HAVE_WMEMSET=1; + HAVE_WCSLEN=1; + HAVE_WCSNLEN=1; + HAVE_WCSCPY=1; + HAVE_WCPCPY=1; + HAVE_WCSNCPY=1; + HAVE_WCPNCPY=1; + HAVE_WCSCAT=1; + HAVE_WCSNCAT=1; + HAVE_WCSCMP=1; + HAVE_WCSNCMP=1; + HAVE_WCSCASECMP=1; + HAVE_WCSNCASECMP=1; + HAVE_WCSCOLL=1; + HAVE_WCSXFRM=1; + HAVE_WCSDUP=1; + HAVE_WCSCHR=1; + HAVE_WCSRCHR=1; + HAVE_WCSCSPN=1; + HAVE_WCSSPN=1; + HAVE_WCSPBRK=1; + HAVE_WCSSTR=1; + HAVE_WCSTOK=1; + HAVE_WCSWIDTH=1; + HAVE_WCSFTIME=1; + HAVE_DECL_WCTOB=1; + HAVE_DECL_WCSDUP=1; + HAVE_DECL_WCWIDTH=1; + REPLACE_MBSTATE_T=0; + REPLACE_BTOWC=0; + REPLACE_WCTOB=0; + REPLACE_MBSINIT=0; + REPLACE_MBRTOWC=0; + REPLACE_MBRLEN=0; + REPLACE_MBSRTOWCS=0; + REPLACE_MBSNRTOWCS=0; + REPLACE_WCRTOMB=0; + REPLACE_WCSRTOMBS=0; + REPLACE_WCSNRTOMBS=0; + REPLACE_WCWIDTH=0; + REPLACE_WCSWIDTH=0; + REPLACE_WCSFTIME=0; + REPLACE_WCSTOK=0; + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 +$as_echo_n "checking whether uses 'inline' correctly... " >&6; } +if ${gl_cv_header_wchar_h_correct_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_header_wchar_h_correct_inline=yes + case "$host_os" in + *-gnu* | gnu*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + #define wcstod renamed_wcstod + #include + extern int zero (void); + int main () { return zero(); } + +_ACEOF + save_ac_compile="$ac_compile" + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` + if echo '#include "conftest.c"' >conftest1.c \ + && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + #define wcstod renamed_wcstod + #include + int zero (void) { return 0; } + +_ACEOF + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` + if echo '#include "conftest.c"' >conftest2.c \ + && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no + fi + fi + fi + ac_compile="$save_ac_compile" + rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 +$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } + if test $gl_cv_header_wchar_h_correct_inline = no; then + as_fn_error $? " cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + , or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted." "$LINENO" 5 + fi + + + + + for ac_func in $ac_func_list +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 +$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } +if ${am_cv_langinfo_codeset+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +char* cs = nl_langinfo(CODESET); return !cs; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_langinfo_codeset=yes +else + am_cv_langinfo_codeset=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 +$as_echo "$am_cv_langinfo_codeset" >&6; } + if test $am_cv_langinfo_codeset = yes; then + +$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h + + fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 +$as_echo_n "checking for a traditional french locale... " >&6; } +if ${gt_cv_locale_fr+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only + one byte long. This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; +# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +# endif + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the native Windows locale name. + if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=French_France.1252 + else + # None found. + gt_cv_locale_fr=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO-8859-1 + else + # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. + if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO8859-1 + else + # Test for the HP-UX locale name. + if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.iso88591 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr + else + # None found. + gt_cv_locale_fr=none + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 +$as_echo "$gt_cv_locale_fr" >&6; } + LOCALE_FR=$gt_cv_locale_fr + + + + + GL_GNULIB_BTOWC=0 + + + + GL_GNULIB_WCTOB=0 + + + + GL_GNULIB_MBSINIT=0 + + + + GL_GNULIB_MBRTOWC=0 + + + + GL_GNULIB_MBRLEN=0 + + + + GL_GNULIB_MBSRTOWCS=0 + + + + GL_GNULIB_MBSNRTOWCS=0 + + + + GL_GNULIB_WCRTOMB=0 + + + + GL_GNULIB_WCSRTOMBS=0 + + + + GL_GNULIB_WCSNRTOMBS=0 + + + + GL_GNULIB_WCWIDTH=0 + + + + GL_GNULIB_WMEMCHR=0 + + + + GL_GNULIB_WMEMCMP=0 + + + + GL_GNULIB_WMEMCPY=0 + + + + GL_GNULIB_WMEMMOVE=0 + + + + GL_GNULIB_WMEMPCPY=0 + + + + GL_GNULIB_WMEMSET=0 + + + + GL_GNULIB_WCSLEN=0 + + + + GL_GNULIB_WCSNLEN=0 + + + + GL_GNULIB_WCSCPY=0 + + + + GL_GNULIB_WCPCPY=0 + + + + GL_GNULIB_WCSNCPY=0 + + + + GL_GNULIB_WCPNCPY=0 + + + + GL_GNULIB_WCSCAT=0 + + + + GL_GNULIB_WCSNCAT=0 + + + + GL_GNULIB_WCSCMP=0 + + + + GL_GNULIB_WCSNCMP=0 + + + + GL_GNULIB_WCSCASECMP=0 + + + + GL_GNULIB_WCSNCASECMP=0 + + + + GL_GNULIB_WCSCOLL=0 + + + + GL_GNULIB_WCSXFRM=0 + + + + GL_GNULIB_WCSDUP=0 + + + + GL_GNULIB_WCSCHR=0 + + + + GL_GNULIB_WCSRCHR=0 + + + + GL_GNULIB_WCSCSPN=0 + + + + GL_GNULIB_WCSSPN=0 + + + + GL_GNULIB_WCSPBRK=0 + + + + GL_GNULIB_WCSSTR=0 + + + + GL_GNULIB_WCSTOK=0 + + + + GL_GNULIB_WCSWIDTH=0 + + + + GL_GNULIB_WCSFTIME=0 + + + + GL_GNULIB_MDA_WCSDUP=1 + + + + + + GL_GNULIB__EXIT=0 + + + + GL_GNULIB_ALIGNED_ALLOC=0 + + + + GL_GNULIB_ATOLL=0 + + + + GL_GNULIB_CALLOC_GNU=0 + + + + GL_GNULIB_CALLOC_POSIX=0 + + + + GL_GNULIB_CANONICALIZE_FILE_NAME=0 + + + + GL_GNULIB_FREE_POSIX=0 + + + + GL_GNULIB_GETLOADAVG=0 + + + + GL_GNULIB_GETSUBOPT=0 + + + + GL_GNULIB_GRANTPT=0 + + + + GL_GNULIB_MALLOC_GNU=0 + + + + GL_GNULIB_MALLOC_POSIX=0 + + + + GL_GNULIB_MBTOWC=0 + + + + GL_GNULIB_MKDTEMP=0 + + + + GL_GNULIB_MKOSTEMP=0 + + + + GL_GNULIB_MKOSTEMPS=0 + + + + GL_GNULIB_MKSTEMP=0 + + + + GL_GNULIB_MKSTEMPS=0 + + + + GL_GNULIB_POSIX_MEMALIGN=0 + + + + GL_GNULIB_POSIX_OPENPT=0 + + + + GL_GNULIB_PTSNAME=0 + + + + GL_GNULIB_PTSNAME_R=0 + + + + GL_GNULIB_PUTENV=0 + + + + GL_GNULIB_QSORT_R=0 + + + + GL_GNULIB_RANDOM=0 + + + + GL_GNULIB_RANDOM_R=0 + + + + GL_GNULIB_REALLOCARRAY=0 + + + + GL_GNULIB_REALLOC_GNU=0 + + + + GL_GNULIB_REALLOC_POSIX=0 + + + + GL_GNULIB_REALPATH=0 + + + + GL_GNULIB_RPMATCH=0 + + + + GL_GNULIB_SECURE_GETENV=0 + + + + GL_GNULIB_SETENV=0 + + + + GL_GNULIB_STRTOD=0 + + + + GL_GNULIB_STRTOL=0 + + + + GL_GNULIB_STRTOLD=0 + + + + GL_GNULIB_STRTOLL=0 + + + + GL_GNULIB_STRTOUL=0 + + + + GL_GNULIB_STRTOULL=0 + + + + GL_GNULIB_SYSTEM_POSIX=0 + + + + GL_GNULIB_UNLOCKPT=0 + + + + GL_GNULIB_UNSETENV=0 + + + + GL_GNULIB_WCTOMB=0 + + + + GL_GNULIB_MDA_ECVT=1 + + + + GL_GNULIB_MDA_FCVT=1 + + + + GL_GNULIB_MDA_GCVT=1 + + + + GL_GNULIB_MDA_MKTEMP=1 + + + + GL_GNULIB_MDA_PUTENV=1 + + + + + HAVE__EXIT=1; + HAVE_ALIGNED_ALLOC=1; + HAVE_ATOLL=1; + HAVE_CANONICALIZE_FILE_NAME=1; + HAVE_DECL_ECVT=1; + HAVE_DECL_FCVT=1; + HAVE_DECL_GCVT=1; + HAVE_DECL_GETLOADAVG=1; + HAVE_GETSUBOPT=1; + HAVE_GRANTPT=1; + HAVE_INITSTATE=1; + HAVE_DECL_INITSTATE=1; + HAVE_MBTOWC=1; + HAVE_MKDTEMP=1; + HAVE_MKOSTEMP=1; + HAVE_MKOSTEMPS=1; + HAVE_MKSTEMP=1; + HAVE_MKSTEMPS=1; + HAVE_POSIX_MEMALIGN=1; + HAVE_POSIX_OPENPT=1; + HAVE_PTSNAME=1; + HAVE_PTSNAME_R=1; + HAVE_QSORT_R=1; + HAVE_RANDOM=1; + HAVE_RANDOM_H=1; + HAVE_RANDOM_R=1; + HAVE_REALLOCARRAY=1; + HAVE_REALPATH=1; + HAVE_RPMATCH=1; + HAVE_SECURE_GETENV=1; + HAVE_SETENV=1; + HAVE_DECL_SETENV=1; + HAVE_SETSTATE=1; + HAVE_DECL_SETSTATE=1; + HAVE_STRTOD=1; + HAVE_STRTOL=1; + HAVE_STRTOLD=1; + HAVE_STRTOLL=1; + HAVE_STRTOUL=1; + HAVE_STRTOULL=1; + HAVE_STRUCT_RANDOM_DATA=1; + HAVE_SYS_LOADAVG_H=0; + HAVE_UNLOCKPT=1; + HAVE_DECL_UNSETENV=1; + REPLACE_ALIGNED_ALLOC=0; + REPLACE_CALLOC_FOR_CALLOC_GNU=0; + REPLACE_CALLOC_FOR_CALLOC_POSIX=0; + REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_FREE=0; + REPLACE_INITSTATE=0; + REPLACE_MALLOC_FOR_MALLOC_GNU=0; + REPLACE_MALLOC_FOR_MALLOC_POSIX=0; + REPLACE_MBTOWC=0; + REPLACE_MKSTEMP=0; + REPLACE_POSIX_MEMALIGN=0; + REPLACE_PTSNAME=0; + REPLACE_PTSNAME_R=0; + REPLACE_PUTENV=0; + REPLACE_QSORT_R=0; + REPLACE_RANDOM=0; + REPLACE_RANDOM_R=0; + REPLACE_REALLOC_FOR_REALLOC_GNU=0; + REPLACE_REALLOC_FOR_REALLOC_POSIX=0; + REPLACE_REALLOCARRAY=0; + REPLACE_REALPATH=0; + REPLACE_SETENV=0; + REPLACE_SETSTATE=0; + REPLACE_STRTOD=0; + REPLACE_STRTOL=0; + REPLACE_STRTOLD=0; + REPLACE_STRTOLL=0; + REPLACE_STRTOUL=0; + REPLACE_STRTOULL=0; + REPLACE_UNSETENV=0; + REPLACE_WCTOMB=0; + + + + GL_GNULIB_ACCESS=0 + + + + GL_GNULIB_CHDIR=0 + + + + GL_GNULIB_CHOWN=0 + + + + GL_GNULIB_CLOSE=0 + + + + GL_GNULIB_COPY_FILE_RANGE=0 + + + + GL_GNULIB_DUP=0 + + + + GL_GNULIB_DUP2=0 + + + + GL_GNULIB_DUP3=0 + + + + GL_GNULIB_ENVIRON=0 + + + + GL_GNULIB_EUIDACCESS=0 + + + + GL_GNULIB_EXECL=0 + + + + GL_GNULIB_EXECLE=0 + + + + GL_GNULIB_EXECLP=0 + + + + GL_GNULIB_EXECV=0 + + + + GL_GNULIB_EXECVE=0 + + + + GL_GNULIB_EXECVP=0 + + + + GL_GNULIB_EXECVPE=0 + + + + GL_GNULIB_FACCESSAT=0 + + + + GL_GNULIB_FCHDIR=0 + + + + GL_GNULIB_FCHOWNAT=0 + + + + GL_GNULIB_FDATASYNC=0 + + + + GL_GNULIB_FSYNC=0 + + + + GL_GNULIB_FTRUNCATE=0 + + + + GL_GNULIB_GETCWD=0 + + + + GL_GNULIB_GETDOMAINNAME=0 + + + + GL_GNULIB_GETDTABLESIZE=0 + + + + GL_GNULIB_GETENTROPY=0 + + + + GL_GNULIB_GETGROUPS=0 + + + + GL_GNULIB_GETHOSTNAME=0 + + + + GL_GNULIB_GETLOGIN=0 + + + + GL_GNULIB_GETLOGIN_R=0 + + + + GL_GNULIB_GETOPT_POSIX=0 + + + + GL_GNULIB_GETPAGESIZE=0 + + + + GL_GNULIB_GETPASS=0 + + + + GL_GNULIB_GETPASS_GNU=0 + + + + GL_GNULIB_GETUSERSHELL=0 + + + + GL_GNULIB_GROUP_MEMBER=0 + + + + GL_GNULIB_ISATTY=0 + + + + GL_GNULIB_LCHOWN=0 + + + + GL_GNULIB_LINK=0 + + + + GL_GNULIB_LINKAT=0 + + + + GL_GNULIB_LSEEK=0 + + + + GL_GNULIB_PIPE=0 + + + + GL_GNULIB_PIPE2=0 + + + + GL_GNULIB_PREAD=0 + + + + GL_GNULIB_PWRITE=0 + + + + GL_GNULIB_READ=0 + + + + GL_GNULIB_READLINK=0 + + + + GL_GNULIB_READLINKAT=0 + + + + GL_GNULIB_RMDIR=0 + + + + GL_GNULIB_SETHOSTNAME=0 + + + + GL_GNULIB_SLEEP=0 + + + + GL_GNULIB_SYMLINK=0 + + + + GL_GNULIB_SYMLINKAT=0 + + + + GL_GNULIB_TRUNCATE=0 + + + + GL_GNULIB_TTYNAME_R=0 + + + + GL_GNULIB_UNISTD_H_GETOPT=0 + + + + GL_GNULIB_UNISTD_H_NONBLOCKING=0 + + + + GL_GNULIB_UNISTD_H_SIGPIPE=0 + + + + GL_GNULIB_UNLINK=0 + + + + GL_GNULIB_UNLINKAT=0 + + + + GL_GNULIB_USLEEP=0 + + + + GL_GNULIB_WRITE=0 + + + + GL_GNULIB_MDA_ACCESS=1 + + + + GL_GNULIB_MDA_CHDIR=1 + + + + GL_GNULIB_MDA_CLOSE=1 + + + + GL_GNULIB_MDA_DUP=1 + + + + GL_GNULIB_MDA_DUP2=1 + + + + GL_GNULIB_MDA_EXECL=1 + + + + GL_GNULIB_MDA_EXECLE=1 + + + + GL_GNULIB_MDA_EXECLP=1 + + + + GL_GNULIB_MDA_EXECV=1 + + + + GL_GNULIB_MDA_EXECVE=1 + + + + GL_GNULIB_MDA_EXECVP=1 + + + + GL_GNULIB_MDA_EXECVPE=1 + + + + GL_GNULIB_MDA_GETCWD=1 + + + + GL_GNULIB_MDA_GETPID=1 + + + + GL_GNULIB_MDA_ISATTY=1 + + + + GL_GNULIB_MDA_LSEEK=1 + + + + GL_GNULIB_MDA_READ=1 + + + + GL_GNULIB_MDA_RMDIR=1 + + + + GL_GNULIB_MDA_SWAB=1 + + + + GL_GNULIB_MDA_UNLINK=1 + + + + GL_GNULIB_MDA_WRITE=1 + + + + + HAVE_CHOWN=1; + HAVE_COPY_FILE_RANGE=1; + HAVE_DUP3=1; + HAVE_EUIDACCESS=1; + HAVE_EXECVPE=1; + HAVE_FACCESSAT=1; + HAVE_FCHDIR=1; + HAVE_FCHOWNAT=1; + HAVE_FDATASYNC=1; + HAVE_FSYNC=1; + HAVE_FTRUNCATE=1; + HAVE_GETDTABLESIZE=1; + HAVE_GETENTROPY=1; + HAVE_GETGROUPS=1; + HAVE_GETHOSTNAME=1; + HAVE_GETLOGIN=1; + HAVE_GETPAGESIZE=1; + HAVE_GETPASS=1; + HAVE_GROUP_MEMBER=1; + HAVE_LCHOWN=1; + HAVE_LINK=1; + HAVE_LINKAT=1; + HAVE_PIPE=1; + HAVE_PIPE2=1; + HAVE_PREAD=1; + HAVE_PWRITE=1; + HAVE_READLINK=1; + HAVE_READLINKAT=1; + HAVE_SETHOSTNAME=1; + HAVE_SLEEP=1; + HAVE_SYMLINK=1; + HAVE_SYMLINKAT=1; + HAVE_UNLINKAT=1; + HAVE_USLEEP=1; + HAVE_DECL_ENVIRON=1; + HAVE_DECL_EXECVPE=1; + HAVE_DECL_FCHDIR=1; + HAVE_DECL_FDATASYNC=1; + HAVE_DECL_GETDOMAINNAME=1; + HAVE_DECL_GETLOGIN=1; + HAVE_DECL_GETLOGIN_R=1; + HAVE_DECL_GETPAGESIZE=1; + HAVE_DECL_GETUSERSHELL=1; + HAVE_DECL_SETHOSTNAME=1; + HAVE_DECL_TRUNCATE=1; + HAVE_DECL_TTYNAME_R=1; + HAVE_OS_H=0; + HAVE_SYS_PARAM_H=0; + REPLACE_ACCESS=0; + REPLACE_CHOWN=0; + REPLACE_CLOSE=0; + REPLACE_COPY_FILE_RANGE=0; + REPLACE_DUP=0; + REPLACE_DUP2=0; + REPLACE_EXECL=0; + REPLACE_EXECLE=0; + REPLACE_EXECLP=0; + REPLACE_EXECV=0; + REPLACE_EXECVE=0; + REPLACE_EXECVP=0; + REPLACE_EXECVPE=0; + REPLACE_FACCESSAT=0; + REPLACE_FCHOWNAT=0; + REPLACE_FTRUNCATE=0; + REPLACE_GETCWD=0; + REPLACE_GETDOMAINNAME=0; + REPLACE_GETDTABLESIZE=0; + REPLACE_GETLOGIN_R=0; + REPLACE_GETGROUPS=0; + REPLACE_GETPAGESIZE=0; + REPLACE_GETPASS=0; + REPLACE_GETPASS_FOR_GETPASS_GNU=0; + REPLACE_ISATTY=0; + REPLACE_LCHOWN=0; + REPLACE_LINK=0; + REPLACE_LINKAT=0; + REPLACE_LSEEK=0; + REPLACE_PREAD=0; + REPLACE_PWRITE=0; + REPLACE_READ=0; + REPLACE_READLINK=0; + REPLACE_READLINKAT=0; + REPLACE_RMDIR=0; + REPLACE_SLEEP=0; + REPLACE_SYMLINK=0; + REPLACE_SYMLINKAT=0; + REPLACE_TRUNCATE=0; + REPLACE_TTYNAME_R=0; + REPLACE_UNLINK=0; + REPLACE_UNLINKAT=0; + REPLACE_USLEEP=0; + REPLACE_WRITE=0; + UNISTD_H_HAVE_SYS_RANDOM_H=0; + UNISTD_H_HAVE_WINSOCK2_H=0; + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + + + + + + + + + + + + + if test $ac_cv_func__set_invalid_parameter_handler = yes; then + HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 + +$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h + + else + HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 + fi + + + + + + + + HAVE_OPENDIR=1; + HAVE_READDIR=1; + HAVE_REWINDDIR=1; + HAVE_CLOSEDIR=1; + HAVE_DECL_DIRFD=1; + HAVE_DECL_FDOPENDIR=1; + HAVE_FDOPENDIR=1; + HAVE_SCANDIR=1; + HAVE_ALPHASORT=1; + REPLACE_OPENDIR=0; + REPLACE_CLOSEDIR=0; + REPLACE_DIRFD=0; + REPLACE_FDOPENDIR=0; + + + + + + + + GL_GNULIB_OPENDIR=0 + + + + GL_GNULIB_READDIR=0 + + + + GL_GNULIB_REWINDDIR=0 + + + + GL_GNULIB_CLOSEDIR=0 + + + + GL_GNULIB_DIRFD=0 + + + + GL_GNULIB_FDOPENDIR=0 + + + + GL_GNULIB_SCANDIR=0 + + + + GL_GNULIB_ALPHASORT=0 + + + + + HAVE_ISBLANK=1; + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_ctype_h='<'ctype.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_ctype_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'ctype.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_ctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_ctype_h + gl_cv_next_ctype_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_ctype_h" >&5 +$as_echo "$gl_cv_next_ctype_h" >&6; } + fi + NEXT_CTYPE_H=$gl_cv_next_ctype_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'ctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_ctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_CTYPE_H=$gl_next_as_first_directive + + + + + + + + + + + + GL_GNULIB_ISBLANK=0 + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_dirent_h='<'dirent.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_dirent_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_dirent_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'dirent.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_dirent_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_dirent_h + gl_cv_next_dirent_h='"'$gl_header'"' + else + gl_cv_next_dirent_h='<'dirent.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5 +$as_echo "$gl_cv_next_dirent_h" >&6; } + fi + NEXT_DIRENT_H=$gl_cv_next_dirent_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'dirent.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_dirent_h + fi + NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_dirent_h = yes; then + HAVE_DIRENT_H=1 + else + HAVE_DIRENT_H=0 + fi + + + + + + +gl_mda_defines=' +#if defined _WIN32 && !defined __CYGWIN__ +#define access _access +#define chdir _chdir +#define chmod _chmod +#define close _close +#define creat _creat +#define dup _dup +#define dup2 _dup2 +#define ecvt _ecvt +#define execl _execl +#define execle _execle +#define execlp _execlp +#define execv _execv +#define execve _execve +#define execvp _execvp +#define execvpe _execvpe +#define fcloseall _fcloseall +#define fcvt _fcvt +#define fdopen _fdopen +#define fileno _fileno +#define gcvt _gcvt +#define getcwd _getcwd +#define getpid _getpid +#define getw _getw +#define isatty _isatty +#define j0 _j0 +#define j1 _j1 +#define jn _jn +#define lfind _lfind +#define lsearch _lsearch +#define lseek _lseek +#define memccpy _memccpy +#define mkdir _mkdir +#define mktemp _mktemp +#define open _open +#define putenv _putenv +#define putw _putw +#define read _read +#define rmdir _rmdir +#define strdup _strdup +#define swab _swab +#define tempnam _tempnam +#define tzset _tzset +#define umask _umask +#define unlink _unlink +#define utime _utime +#define wcsdup _wcsdup +#define write _write +#define y0 _y0 +#define y1 _y1 +#define yn _yn +#endif +' + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 +$as_echo_n "checking for complete errno.h... " >&6; } +if ${gl_cv_header_errno_h_complete+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if !defined ETXTBSY +booboo +#endif +#if !defined ENOMSG +booboo +#endif +#if !defined EIDRM +booboo +#endif +#if !defined ENOLINK +booboo +#endif +#if !defined EPROTO +booboo +#endif +#if !defined EMULTIHOP +booboo +#endif +#if !defined EBADMSG +booboo +#endif +#if !defined EOVERFLOW +booboo +#endif +#if !defined ENOTSUP +booboo +#endif +#if !defined ENETRESET +booboo +#endif +#if !defined ECONNABORTED +booboo +#endif +#if !defined ESTALE +booboo +#endif +#if !defined EDQUOT +booboo +#endif +#if !defined ECANCELED +booboo +#endif +#if !defined EOWNERDEAD +booboo +#endif +#if !defined ENOTRECOVERABLE +booboo +#endif +#if !defined EILSEQ +booboo +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "booboo" >/dev/null 2>&1; then : + gl_cv_header_errno_h_complete=no +else + gl_cv_header_errno_h_complete=yes +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 +$as_echo "$gl_cv_header_errno_h_complete" >&6; } + if test $gl_cv_header_errno_h_complete = yes; then + GL_GENERATE_ERRNO_H=false + else + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_errno_h='<'errno.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_errno_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'errno.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_errno_h + gl_cv_next_errno_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 +$as_echo "$gl_cv_next_errno_h" >&6; } + fi + NEXT_ERRNO_H=$gl_cv_next_errno_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'errno.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_errno_h + fi + NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive + + + + + GL_GENERATE_ERRNO_H=true + fi + + if $GL_GENERATE_ERRNO_H; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 +$as_echo_n "checking for EMULTIHOP value... " >&6; } +if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EMULTIHOP=yes +else + gl_cv_header_errno_h_EMULTIHOP=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EMULTIHOP +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EMULTIHOP=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then + if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 +$as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } + case $gl_cv_header_errno_h_EMULTIHOP in + yes | no) + EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= + ;; + *) + EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" + ;; + esac + + + fi + + + if $GL_GENERATE_ERRNO_H; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 +$as_echo_n "checking for ENOLINK value... " >&6; } +if ${gl_cv_header_errno_h_ENOLINK+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_ENOLINK=yes +else + gl_cv_header_errno_h_ENOLINK=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_ENOLINK = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef ENOLINK +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_ENOLINK=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_ENOLINK = hidden; then + if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 +$as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } + case $gl_cv_header_errno_h_ENOLINK in + yes | no) + ENOLINK_HIDDEN=0; ENOLINK_VALUE= + ;; + *) + ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" + ;; + esac + + + fi + + + if $GL_GENERATE_ERRNO_H; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 +$as_echo_n "checking for EOVERFLOW value... " >&6; } +if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EOVERFLOW=yes +else + gl_cv_header_errno_h_EOVERFLOW=no +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef EOVERFLOW +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + gl_cv_header_errno_h_EOVERFLOW=hidden +fi +rm -f conftest* + + if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then + if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +"; then : + +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 +$as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } + case $gl_cv_header_errno_h_EOVERFLOW in + yes | no) + EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= + ;; + *) + EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" + ;; + esac + + + fi + + + + + + ac_fn_c_check_decl "$LINENO" "error" "ac_cv_have_decl_error" "#include +" +if test "x$ac_cv_have_decl_error" = xyes; then : + +fi + + if test $ac_cv_have_decl_error = yes; then + for ac_func in error +do : + ac_fn_c_check_func "$LINENO" "error" "ac_cv_func_error" +if test "x$ac_cv_func_error" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ERROR 1 +_ACEOF + +fi +done + + else + ac_cv_func_error=no + fi + + if test $ac_cv_func_error = yes; then + HAVE_ERROR=1 + else + HAVE_ERROR=0 + fi + REPLACE_ERROR=0 + + ac_fn_c_check_decl "$LINENO" "error_at_line" "ac_cv_have_decl_error_at_line" "#include +" +if test "x$ac_cv_have_decl_error_at_line" = xyes; then : + +fi + + if test $ac_cv_have_decl_error_at_line = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 +$as_echo_n "checking for error_at_line... " >&6; } +if ${ac_cv_lib_error_at_line+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +error_at_line (0, 0, "", 0, "an error occurred"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_error_at_line=yes +else + ac_cv_lib_error_at_line=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 +$as_echo "$ac_cv_lib_error_at_line" >&6; } + else + ac_cv_lib_error_at_line=no + fi + if test $ac_cv_lib_error_at_line = yes; then + HAVE_ERROR_AT_LINE=1 + else + HAVE_ERROR_AT_LINE=0 + fi + REPLACE_ERROR_AT_LINE=0 + + if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working error function" >&5 +$as_echo_n "checking for working error function... " >&6; } +if ${gl_cv_func_working_error+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test $cross_compiling != yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + static void print_no_progname (void) {} + +int +main () +{ + + error_print_progname = print_no_progname; + error (0, 0, "foo"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + rm -f conftest.out + if test -s conftest$ac_exeext \ + && ./conftest$ac_exeext 2> conftest.out; then + if grep ' ' conftest.out >/dev/null; then + gl_cv_func_working_error=no + else + gl_cv_func_working_error=yes + fi + else + gl_cv_func_working_error=no + fi + rm -f conftest.out + +else + gl_cv_func_working_error=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + error (0, 0, "foo"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_error="guessing yes" ;; + # Guess no on Android. + linux*-android*) gl_cv_func_working_error="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_error="$gl_cross_guess_normal" ;; + esac + +else + gl_cv_func_working_error=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_error" >&5 +$as_echo "$gl_cv_func_working_error" >&6; } + case "$gl_cv_func_working_error" in + *no) + REPLACE_ERROR=1 + REPLACE_ERROR_AT_LINE=1 + ;; + esac + fi + + if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \ + || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then + GL_GENERATE_ERROR_H=true + else + GL_GENERATE_ERROR_H=false + fi + + + + + + +ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" +if test "x$ac_cv_have_decl_strerror_r" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRERROR_R $ac_have_decl +_ACEOF + +for ac_func in strerror_r +do : + ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" +if test "x$ac_cv_func_strerror_r" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRERROR_R 1 +_ACEOF + +fi +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 +$as_echo_n "checking whether strerror_r returns char *... " >&6; } +if ${ac_cv_func_strerror_r_char_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_func_strerror_r_char_p=no + if test $ac_cv_have_decl_strerror_r = yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + char *p = strerror_r (0, buf, sizeof buf); + return !p || x; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_strerror_r_char_p=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + # strerror_r is not declared. Choose between + # systems that have relatively inaccessible declarations for the + # function. BeOS and DEC UNIX 4.0 fall in this category, but the + # former has a strerror_r that returns char*, while the latter + # has a strerror_r that returns `int'. + # This test should segfault on the DEC system. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + extern char *strerror_r (); +int +main () +{ +char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + return ! isalpha (x); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_strerror_r_char_p=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 +$as_echo "$ac_cv_func_strerror_r_char_p" >&6; } +if test $ac_cv_func_strerror_r_char_p = yes; then + +$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h + +fi + + + XGETTEXT_EXTRA_OPTIONS= + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ctype.h defines __header_inline" >&5 +$as_echo_n "checking whether ctype.h defines __header_inline... " >&6; } +if ${gl_cv_have___header_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef __header_inline + #error " does not define __header_inline" + #endif + +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + gl_cv_have___header_inline=yes +else + gl_cv_have___header_inline=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___header_inline" >&5 +$as_echo "$gl_cv_have___header_inline" >&6; } + if test "$gl_cv_have___header_inline" = yes; then + +$as_echo "#define HAVE___HEADER_INLINE 1" >>confdefs.h + + fi + + + +ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default" +if test "x$ac_cv_have_decl_fchdir" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FCHDIR $ac_have_decl +_ACEOF + + + HAVE_FCNTL=1; + HAVE_OPENAT=1; + REPLACE_CREAT=0; + REPLACE_FCNTL=0; + REPLACE_OPEN=0; + REPLACE_OPENAT=0; + + + + + + GL_GNULIB_CREAT=0 + + + + GL_GNULIB_FCNTL=0 + + + + GL_GNULIB_NONBLOCKING=0 + + + + GL_GNULIB_OPEN=0 + + + + GL_GNULIB_OPENAT=0 + + + + GL_GNULIB_MDA_CREAT=1 + + + + GL_GNULIB_MDA_OPEN=1 + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 +$as_echo_n "checking for working fcntl.h... " >&6; } +if ${gl_cv_header_working_fcntl_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess 'no' on native Windows. + mingw*) gl_cv_header_working_fcntl_h='no' ;; + *) gl_cv_header_working_fcntl_h=cross-compiling ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + # include + # defined sleep(n) _sleep ((n) * 1000) + #endif + #include + + +$gl_mda_defines + + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; + +int +main () +{ + + int result = !constants; + #if HAVE_SYMLINK + { + static char const sym[] = "conftest.sym"; + if (symlink ("/dev/null", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + if (unlink (sym) != 0 || symlink (".", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_RDONLY | O_NOFOLLOW); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + unlink (sym); + } + #endif + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + if (fd < 0) + result |= 8; + else + { + struct stat st0; + if (fstat (fd, &st0) != 0) + result |= 16; + else + { + char c; + sleep (1); + if (read (fd, &c, 1) != 1) + result |= 24; + else + { + if (close (fd) != 0) + result |= 32; + else + { + struct stat st1; + if (stat (file, &st1) != 0) + result |= 40; + else + if (st0.st_atime != st1.st_atime) + result |= 64; + } + } + } + } + } + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_header_working_fcntl_h=yes +else + case $? in #( + 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 +$as_echo "$gl_cv_header_working_fcntl_h" >&6; } + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +cat >>confdefs.h <<_ACEOF +#define HAVE_WORKING_O_NOATIME $ac_val +_ACEOF + + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +cat >>confdefs.h <<_ACEOF +#define HAVE_WORKING_O_NOFOLLOW $ac_val +_ACEOF + + + + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default +" +if test "x$ac_cv_type_pid_t" = xyes; then : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + +int +main () +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_pid_type='int' +else + gl_pid_type='__int64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define pid_t $gl_pid_type +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF + +fi + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fcntl_h='<'fcntl.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_fcntl_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'fcntl.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_fcntl_h + gl_cv_next_fcntl_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 +$as_echo "$gl_cv_next_fcntl_h" >&6; } + fi + NEXT_FCNTL_H=$gl_cv_next_fcntl_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'fcntl.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fcntl_h + fi + NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + + HAVE_FNMATCH=1; + REPLACE_FNMATCH=0; + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_fnmatch_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_fnmatch_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'fnmatch.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_fnmatch_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_fnmatch_h + gl_cv_next_fnmatch_h='"'$gl_header'"' + else + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fnmatch_h" >&5 +$as_echo "$gl_cv_next_fnmatch_h" >&6; } + fi + NEXT_FNMATCH_H=$gl_cv_next_fnmatch_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'fnmatch.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fnmatch_h + fi + NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H=$gl_next_as_first_directive + + + + + + + + if test $ac_cv_header_fnmatch_h = yes; then + HAVE_FNMATCH_H=1 + else + HAVE_FNMATCH_H=0 + fi + + + GL_GENERATE_FNMATCH_H=false + if false; then + GL_GENERATE_FNMATCH_H=true + else + if test $ac_cv_header_fnmatch_h != yes; then + GL_GENERATE_FNMATCH_H=true + fi + fi + + + + + + + + + + + GL_GNULIB_FNMATCH=0 + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 +$as_echo_n "checking for mbstate_t... " >&6; } +if ${ac_cv_type_mbstate_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + #include +int +main () +{ +mbstate_t x; return sizeof x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_mbstate_t=yes +else + ac_cv_type_mbstate_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 +$as_echo "$ac_cv_type_mbstate_t" >&6; } + if test $ac_cv_type_mbstate_t = yes; then + +$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h + + else + +$as_echo "#define mbstate_t int" >>confdefs.h + + fi + + + + + HAVE_ACOSF=1; + HAVE_ACOSL=1; + HAVE_ASINF=1; + HAVE_ASINL=1; + HAVE_ATANF=1; + HAVE_ATANL=1; + HAVE_ATAN2F=1; + HAVE_CBRT=1; + HAVE_CBRTF=1; + HAVE_CBRTL=1; + HAVE_COPYSIGN=1; + HAVE_COPYSIGNL=1; + HAVE_COSF=1; + HAVE_COSL=1; + HAVE_COSHF=1; + HAVE_EXPF=1; + HAVE_EXPL=1; + HAVE_EXPM1=1; + HAVE_EXPM1F=1; + HAVE_FABSF=1; + HAVE_FABSL=1; + HAVE_FMA=1; + HAVE_FMAF=1; + HAVE_FMAL=1; + HAVE_FMODF=1; + HAVE_FMODL=1; + HAVE_FREXPF=1; + HAVE_HYPOTF=1; + HAVE_HYPOTL=1; + HAVE_ILOGB=1; + HAVE_ILOGBF=1; + HAVE_ILOGBL=1; + HAVE_ISNANF=1; + HAVE_ISNAND=1; + HAVE_ISNANL=1; + HAVE_LDEXPF=1; + HAVE_LOGF=1; + HAVE_LOGL=1; + HAVE_LOG10F=1; + HAVE_LOG10L=1; + HAVE_LOG1P=1; + HAVE_LOG1PF=1; + HAVE_LOG1PL=1; + HAVE_LOGBF=1; + HAVE_LOGBL=1; + HAVE_MODFF=1; + HAVE_MODFL=1; + HAVE_POWF=1; + HAVE_REMAINDER=1; + HAVE_REMAINDERF=1; + HAVE_RINT=1; + HAVE_RINTL=1; + HAVE_SINF=1; + HAVE_SINL=1; + HAVE_SINHF=1; + HAVE_SQRTF=1; + HAVE_SQRTL=1; + HAVE_TANF=1; + HAVE_TANL=1; + HAVE_TANHF=1; + HAVE_DECL_ACOSL=1; + HAVE_DECL_ASINL=1; + HAVE_DECL_ATANL=1; + HAVE_DECL_CBRTF=1; + HAVE_DECL_CBRTL=1; + HAVE_DECL_CEILF=1; + HAVE_DECL_CEILL=1; + HAVE_DECL_COPYSIGNF=1; + HAVE_DECL_COSL=1; + HAVE_DECL_EXPL=1; + HAVE_DECL_EXP2=1; + HAVE_DECL_EXP2F=1; + HAVE_DECL_EXP2L=1; + HAVE_DECL_EXPM1L=1; + HAVE_DECL_FLOORF=1; + HAVE_DECL_FLOORL=1; + HAVE_DECL_FREXPL=1; + HAVE_DECL_LDEXPL=1; + HAVE_DECL_LOGL=1; + HAVE_DECL_LOG10L=1; + HAVE_DECL_LOG2=1; + HAVE_DECL_LOG2F=1; + HAVE_DECL_LOG2L=1; + HAVE_DECL_LOGB=1; + HAVE_DECL_REMAINDER=1; + HAVE_DECL_REMAINDERL=1; + HAVE_DECL_RINTF=1; + HAVE_DECL_ROUND=1; + HAVE_DECL_ROUNDF=1; + HAVE_DECL_ROUNDL=1; + HAVE_DECL_SINL=1; + HAVE_DECL_SQRTL=1; + HAVE_DECL_TANL=1; + HAVE_DECL_TRUNC=1; + HAVE_DECL_TRUNCF=1; + HAVE_DECL_TRUNCL=1; + REPLACE_ACOSF=0; + REPLACE_ASINF=0; + REPLACE_ATANF=0; + REPLACE_ATAN2F=0; + REPLACE_CBRTF=0; + REPLACE_CBRTL=0; + REPLACE_CEIL=0; + REPLACE_CEILF=0; + REPLACE_CEILL=0; + REPLACE_COSF=0; + REPLACE_COSHF=0; + REPLACE_EXPF=0; + REPLACE_EXPL=0; + REPLACE_EXPM1=0; + REPLACE_EXPM1F=0; + REPLACE_EXPM1L=0; + REPLACE_EXP2=0; + REPLACE_EXP2L=0; + REPLACE_FABSL=0; + REPLACE_FLOOR=0; + REPLACE_FLOORF=0; + REPLACE_FLOORL=0; + REPLACE_FMA=0; + REPLACE_FMAF=0; + REPLACE_FMAL=0; + REPLACE_FMOD=0; + REPLACE_FMODF=0; + REPLACE_FMODL=0; + REPLACE_FREXPF=0; + REPLACE_FREXP=0; + REPLACE_FREXPL=0; + REPLACE_HUGE_VAL=0; + REPLACE_HYPOT=0; + REPLACE_HYPOTF=0; + REPLACE_HYPOTL=0; + REPLACE_ILOGB=0; + REPLACE_ILOGBF=0; + REPLACE_ILOGBL=0; + REPLACE_ISFINITE=0; + REPLACE_ISINF=0; + REPLACE_ISNAN=0; + REPLACE_LDEXPL=0; + REPLACE_LOG=0; + REPLACE_LOGF=0; + REPLACE_LOGL=0; + REPLACE_LOG10=0; + REPLACE_LOG10F=0; + REPLACE_LOG10L=0; + REPLACE_LOG1P=0; + REPLACE_LOG1PF=0; + REPLACE_LOG1PL=0; + REPLACE_LOG2=0; + REPLACE_LOG2F=0; + REPLACE_LOG2L=0; + REPLACE_LOGB=0; + REPLACE_LOGBF=0; + REPLACE_LOGBL=0; + REPLACE_MODF=0; + REPLACE_MODFF=0; + REPLACE_MODFL=0; + REPLACE_NAN=0; + REPLACE_REMAINDER=0; + REPLACE_REMAINDERF=0; + REPLACE_REMAINDERL=0; + REPLACE_RINTL=0; + REPLACE_ROUND=0; + REPLACE_ROUNDF=0; + REPLACE_ROUNDL=0; + REPLACE_SIGNBIT=0; + REPLACE_SIGNBIT_USING_BUILTINS=0; + REPLACE_SINF=0; + REPLACE_SINHF=0; + REPLACE_SQRTF=0; + REPLACE_SQRTL=0; + REPLACE_TANF=0; + REPLACE_TANHF=0; + REPLACE_TRUNC=0; + REPLACE_TRUNCF=0; + REPLACE_TRUNCL=0; + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp() can be used without linking with libm" >&5 +$as_echo_n "checking whether frexp() can be used without linking with libm... " >&6; } +if ${gl_cv_func_frexp_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + double x; +int +main () +{ +int e; return frexp (x, &e) > 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_frexp_no_libm=yes +else + gl_cv_func_frexp_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_no_libm" >&5 +$as_echo "$gl_cv_func_frexp_no_libm" >&6; } + +ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" +if test "x$ac_cv_have_decl_alarm" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ALARM $ac_have_decl +_ACEOF + + + + GL_GNULIB_ACOSF=0 + + + + GL_GNULIB_ACOSL=0 + + + + GL_GNULIB_ASINF=0 + + + + GL_GNULIB_ASINL=0 + + + + GL_GNULIB_ATANF=0 + + + + GL_GNULIB_ATANL=0 + + + + GL_GNULIB_ATAN2F=0 + + + + GL_GNULIB_CBRT=0 + + + + GL_GNULIB_CBRTF=0 + + + + GL_GNULIB_CBRTL=0 + + + + GL_GNULIB_CEIL=0 + + + + GL_GNULIB_CEILF=0 + + + + GL_GNULIB_CEILL=0 + + + + GL_GNULIB_COPYSIGN=0 + + + + GL_GNULIB_COPYSIGNF=0 + + + + GL_GNULIB_COPYSIGNL=0 + + + + GL_GNULIB_COSF=0 + + + + GL_GNULIB_COSL=0 + + + + GL_GNULIB_COSHF=0 + + + + GL_GNULIB_EXPF=0 + + + + GL_GNULIB_EXPL=0 + + + + GL_GNULIB_EXP2=0 + + + + GL_GNULIB_EXP2F=0 + + + + GL_GNULIB_EXP2L=0 + + + + GL_GNULIB_EXPM1=0 + + + + GL_GNULIB_EXPM1F=0 + + + + GL_GNULIB_EXPM1L=0 + + + + GL_GNULIB_FABSF=0 + + + + GL_GNULIB_FABSL=0 + + + + GL_GNULIB_FLOOR=0 + + + + GL_GNULIB_FLOORF=0 + + + + GL_GNULIB_FLOORL=0 + + + + GL_GNULIB_FMA=0 + + + + GL_GNULIB_FMAF=0 + + + + GL_GNULIB_FMAL=0 + + + + GL_GNULIB_FMOD=0 + + + + GL_GNULIB_FMODF=0 + + + + GL_GNULIB_FMODL=0 + + + + GL_GNULIB_FREXPF=0 + + + + GL_GNULIB_FREXP=0 + + + + GL_GNULIB_FREXPL=0 + + + + GL_GNULIB_HYPOT=0 + + + + GL_GNULIB_HYPOTF=0 + + + + GL_GNULIB_HYPOTL=0 + + + + GL_GNULIB_ILOGB=0 + + + + GL_GNULIB_ILOGBF=0 + + + + GL_GNULIB_ILOGBL=0 + + + + GL_GNULIB_ISFINITE=0 + + + + GL_GNULIB_ISINF=0 + + + + GL_GNULIB_ISNAN=0 + + + + GL_GNULIB_ISNANF=0 + + + + GL_GNULIB_ISNAND=0 + + + + GL_GNULIB_ISNANL=0 + + + + GL_GNULIB_LDEXPF=0 + + + + GL_GNULIB_LDEXPL=0 + + + + GL_GNULIB_LOG=0 + + + + GL_GNULIB_LOGF=0 + + + + GL_GNULIB_LOGL=0 + + + + GL_GNULIB_LOG10=0 + + + + GL_GNULIB_LOG10F=0 + + + + GL_GNULIB_LOG10L=0 + + + + GL_GNULIB_LOG1P=0 + + + + GL_GNULIB_LOG1PF=0 + + + + GL_GNULIB_LOG1PL=0 + + + + GL_GNULIB_LOG2=0 + + + + GL_GNULIB_LOG2F=0 + + + + GL_GNULIB_LOG2L=0 + + + + GL_GNULIB_LOGB=0 + + + + GL_GNULIB_LOGBF=0 + + + + GL_GNULIB_LOGBL=0 + + + + GL_GNULIB_MODF=0 + + + + GL_GNULIB_MODFF=0 + + + + GL_GNULIB_MODFL=0 + + + + GL_GNULIB_POWF=0 + + + + GL_GNULIB_REMAINDER=0 + + + + GL_GNULIB_REMAINDERF=0 + + + + GL_GNULIB_REMAINDERL=0 + + + + GL_GNULIB_RINT=0 + + + + GL_GNULIB_RINTF=0 + + + + GL_GNULIB_RINTL=0 + + + + GL_GNULIB_ROUND=0 + + + + GL_GNULIB_ROUNDF=0 + + + + GL_GNULIB_ROUNDL=0 + + + + GL_GNULIB_SIGNBIT=0 + + + + GL_GNULIB_SINF=0 + + + + GL_GNULIB_SINL=0 + + + + GL_GNULIB_SINHF=0 + + + + GL_GNULIB_SQRTF=0 + + + + GL_GNULIB_SQRTL=0 + + + + GL_GNULIB_TANF=0 + + + + GL_GNULIB_TANL=0 + + + + GL_GNULIB_TANHF=0 + + + + GL_GNULIB_TRUNC=0 + + + + GL_GNULIB_TRUNCF=0 + + + + GL_GNULIB_TRUNCL=0 + + + + GL_GNULIB_MDA_J0=1 + + + + GL_GNULIB_MDA_J1=1 + + + + GL_GNULIB_MDA_JN=1 + + + + GL_GNULIB_MDA_Y0=1 + + + + GL_GNULIB_MDA_Y1=1 + + + + GL_GNULIB_MDA_YN=1 + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether long double and double are the same" >&5 +$as_echo_n "checking whether long double and double are the same... " >&6; } +if ${gl_cv_long_double_equals_double+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +typedef int check[sizeof (long double) == sizeof (double) + && LDBL_MANT_DIG == DBL_MANT_DIG + && LDBL_MAX_EXP == DBL_MAX_EXP + && LDBL_MIN_EXP == DBL_MIN_EXP + ? 1 : -1]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_long_double_equals_double=yes +else + gl_cv_long_double_equals_double=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_long_double_equals_double" >&5 +$as_echo "$gl_cv_long_double_equals_double" >&6; } + if test $gl_cv_long_double_equals_double = yes; then + +$as_echo "#define HAVE_SAME_LONG_DOUBLE_AS_DOUBLE 1" >>confdefs.h + + HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1 + else + HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0 + fi + + + + HAVE_FCHMODAT=1; + HAVE_FSTATAT=1; + HAVE_FUTIMENS=1; + HAVE_GETUMASK=1; + HAVE_LCHMOD=1; + HAVE_LSTAT=1; + HAVE_MKDIRAT=1; + HAVE_MKFIFO=1; + HAVE_MKFIFOAT=1; + HAVE_MKNOD=1; + HAVE_MKNODAT=1; + HAVE_UTIMENSAT=1; + REPLACE_CHMOD=0; + REPLACE_FCHMODAT=0; + REPLACE_FSTAT=0; + REPLACE_FSTATAT=0; + REPLACE_FUTIMENS=0; + REPLACE_LSTAT=0; + REPLACE_MKDIR=0; + REPLACE_MKFIFO=0; + REPLACE_MKFIFOAT=0; + REPLACE_MKNOD=0; + REPLACE_MKNODAT=0; + REPLACE_STAT=0; + REPLACE_UTIMENSAT=0; + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 +$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } +if ${ac_cv_header_stat_broken+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +#if defined S_ISBLK && defined S_IFDIR +extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; +#endif + +#if defined S_ISBLK && defined S_IFCHR +extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; +#endif + +#if defined S_ISLNK && defined S_IFREG +extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; +#endif + +#if defined S_ISSOCK && defined S_IFREG +extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stat_broken=no +else + ac_cv_header_stat_broken=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 +$as_echo "$ac_cv_header_stat_broken" >&6; } +if test $ac_cv_header_stat_broken = yes; then + +$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h + +fi + + + + + + case "$host_os" in + mingw*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 +$as_echo_n "checking for 64-bit off_t... " >&6; } +if ${gl_cv_type_off_t_64+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_off_t_64=yes +else + gl_cv_type_off_t_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 +$as_echo "$gl_cv_type_off_t_64" >&6; } + if test $gl_cv_type_off_t_64 = no; then + WINDOWS_64_BIT_OFF_T=1 + else + WINDOWS_64_BIT_OFF_T=0 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 +$as_echo_n "checking for 64-bit st_size... " >&6; } +if ${gl_cv_member_st_size_64+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct stat buf; + int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_member_st_size_64=yes +else + gl_cv_member_st_size_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 +$as_echo "$gl_cv_member_st_size_64" >&6; } + if test $gl_cv_member_st_size_64 = no; then + WINDOWS_64_BIT_ST_SIZE=1 + else + WINDOWS_64_BIT_ST_SIZE=0 + fi + ;; + *) + WINDOWS_64_BIT_OFF_T=0 + WINDOWS_64_BIT_ST_SIZE=0 + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 +$as_echo_n "checking for C/C++ restrict keyword... " >&6; } +if ${ac_cv_c_restrict+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_restrict=no + # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: + # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html + # Put 'restrict' last, because C++ lacks it. + for ac_kw in __restrict__ __restrict _Restrict restrict; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + +int +main () +{ +int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_restrict=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 +$as_echo "$ac_cv_c_restrict" >&6; } + + case $ac_cv_c_restrict in + restrict) ;; + no) $as_echo "#define restrict /**/" >>confdefs.h + ;; + *) cat >>confdefs.h <<_ACEOF +#define restrict $ac_cv_c_restrict +_ACEOF + ;; + esac + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_stat_h='<'sys/stat.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_sys_stat_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_sys_stat_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/stat.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_stat_h + gl_cv_next_sys_stat_h='"'$gl_header'"' + else + gl_cv_next_sys_stat_h='<'sys/stat.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 +$as_echo "$gl_cv_next_sys_stat_h" >&6; } + fi + NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/stat.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_stat_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive + + + + + + + + + WINDOWS_STAT_TIMESPEC=0 + + + + + + + + + ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include + #include +" +if test "x$ac_cv_type_nlink_t" = xyes; then : + +else + +$as_echo "#define nlink_t int" >>confdefs.h + +fi + + + + + + + + + + + case "$host_os" in + mingw*) + for ac_header in sdkddkver.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sdkddkver.h" "ac_cv_header_sdkddkver_h" "$ac_includes_default" +if test "x$ac_cv_header_sdkddkver_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SDKDDKVER_H 1 +_ACEOF + +fi + +done + + ;; + esac + + + + + + + + GL_GNULIB_CHMOD=0 + + + + GL_GNULIB_FCHMODAT=0 + + + + GL_GNULIB_FSTAT=0 + + + + GL_GNULIB_FSTATAT=0 + + + + GL_GNULIB_FUTIMENS=0 + + + + GL_GNULIB_GETUMASK=0 + + + + GL_GNULIB_LCHMOD=0 + + + + GL_GNULIB_LSTAT=0 + + + + GL_GNULIB_MKDIR=0 + + + + GL_GNULIB_MKDIRAT=0 + + + + GL_GNULIB_MKFIFO=0 + + + + GL_GNULIB_MKFIFOAT=0 + + + + GL_GNULIB_MKNOD=0 + + + + GL_GNULIB_MKNODAT=0 + + + + GL_GNULIB_STAT=0 + + + + GL_GNULIB_UTIMENSAT=0 + + + + GL_GNULIB_OVERRIDES_STRUCT_STAT=0 + + + + GL_GNULIB_MDA_CHMOD=1 + + + + GL_GNULIB_MDA_MKDIR=1 + + + + GL_GNULIB_MDA_UMASK=1 + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } +if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftest.sym conftest.file + echo >conftest.file + if test "$cross_compiling" = yes; then : + case "$host_os" in + linux-* | linux) + # Guess yes on Linux systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + *-gnu* | gnu*) + # Guess yes on glibc systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + mingw*) + # Guess no on native Windows. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; + *) + # If we don't know, obey --enable-cross-guesses. + gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + if (symlink ("conftest.file", "conftest.sym") != 0) + return 1; + /* Linux will dereference the symlink and fail, as required by + POSIX. That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_lstat_dereferences_slashed_symlink=yes +else + gl_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.sym conftest.file + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *yes) + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + ;; + esac + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 +$as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } +if ${gl_cv_func_getcwd_null+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_getcwd_null="guessing yes";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_getcwd_null="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# if HAVE_UNISTD_H +# include +# else /* on Windows with MSVC */ +# include +# endif + + +$gl_mda_defines + +# ifndef getcwd + char *getcwd (); +# endif + +int +main () +{ + +#if defined _WIN32 && ! defined __CYGWIN__ +/* mingw cwd does not start with '/', but _getcwd does allocate. + However, mingw fails to honor non-zero size. */ +#else + if (chdir ("/") != 0) + return 1; + else + { + char *f = getcwd (NULL, 0); + if (! f) + return 2; + if (f[0] != '/') + { free (f); return 3; } + if (f[1] != '\0') + { free (f); return 4; } + free (f); + return 0; + } +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getcwd_null=yes +else + gl_cv_func_getcwd_null=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 +$as_echo "$gl_cv_func_getcwd_null" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5 +$as_echo_n "checking for getcwd with POSIX signature... " >&6; } +if ${gl_cv_func_getcwd_posix_signature+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + +$gl_mda_defines + +int +main () +{ +extern + #ifdef __cplusplus + "C" + #endif + char *getcwd (char *, size_t); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_getcwd_posix_signature=yes +else + gl_cv_func_getcwd_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5 +$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; } + + + HAVE_DECL_FCLOSEALL=1; + HAVE_DECL_FPURGE=1; + HAVE_DECL_FSEEKO=1; + HAVE_DECL_FTELLO=1; + HAVE_DECL_GETDELIM=1; + HAVE_DECL_GETLINE=1; + HAVE_DECL_GETW=1; + HAVE_DECL_OBSTACK_PRINTF=1; + HAVE_DECL_PUTW=1; + HAVE_DECL_SNPRINTF=1; + HAVE_DECL_VSNPRINTF=1; + HAVE_DPRINTF=1; + HAVE_FSEEKO=1; + HAVE_FTELLO=1; + HAVE_PCLOSE=1; + HAVE_POPEN=1; + HAVE_RENAMEAT=1; + HAVE_VASPRINTF=1; + HAVE_VDPRINTF=1; + REPLACE_DPRINTF=0; + REPLACE_FCLOSE=0; + REPLACE_FDOPEN=0; + REPLACE_FFLUSH=0; + REPLACE_FOPEN=0; + REPLACE_FOPEN_FOR_FOPEN_GNU=0; + REPLACE_FPRINTF=0; + REPLACE_FPURGE=0; + REPLACE_FREOPEN=0; + REPLACE_FSEEK=0; + REPLACE_FSEEKO=0; + REPLACE_FTELL=0; + REPLACE_FTELLO=0; + REPLACE_GETDELIM=0; + REPLACE_GETLINE=0; + REPLACE_OBSTACK_PRINTF=0; + REPLACE_PERROR=0; + REPLACE_POPEN=0; + REPLACE_PRINTF=0; + REPLACE_REMOVE=0; + REPLACE_RENAME=0; + REPLACE_RENAMEAT=0; + REPLACE_SNPRINTF=0; + REPLACE_SPRINTF=0; + REPLACE_STDIO_READ_FUNCS=0; + REPLACE_STDIO_WRITE_FUNCS=0; + REPLACE_TMPFILE=0; + REPLACE_VASPRINTF=0; + REPLACE_VDPRINTF=0; + REPLACE_VFPRINTF=0; + REPLACE_VPRINTF=0; + REPLACE_VSNPRINTF=0; + REPLACE_VSPRINTF=0; + +ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" +if test "x$ac_cv_have_decl_getdelim" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETDELIM $ac_have_decl +_ACEOF + + + + + + GL_GNULIB_DPRINTF=0 + + + + GL_GNULIB_FCLOSE=0 + + + + GL_GNULIB_FDOPEN=0 + + + + GL_GNULIB_FFLUSH=0 + + + + GL_GNULIB_FGETC=0 + + + + GL_GNULIB_FGETS=0 + + + + GL_GNULIB_FOPEN=0 + + + + GL_GNULIB_FOPEN_GNU=0 + + + + GL_GNULIB_FPRINTF=0 + + + + GL_GNULIB_FPRINTF_POSIX=0 + + + + GL_GNULIB_FPURGE=0 + + + + GL_GNULIB_FPUTC=0 + + + + GL_GNULIB_FPUTS=0 + + + + GL_GNULIB_FREAD=0 + + + + GL_GNULIB_FREOPEN=0 + + + + GL_GNULIB_FSCANF=0 + + + + GL_GNULIB_FSEEK=0 + + + + GL_GNULIB_FSEEKO=0 + + + + GL_GNULIB_FTELL=0 + + + + GL_GNULIB_FTELLO=0 + + + + GL_GNULIB_FWRITE=0 + + + + GL_GNULIB_GETC=0 + + + + GL_GNULIB_GETCHAR=0 + + + + GL_GNULIB_GETDELIM=0 + + + + GL_GNULIB_GETLINE=0 + + + + GL_GNULIB_OBSTACK_PRINTF=0 + + + + GL_GNULIB_OBSTACK_PRINTF_POSIX=0 + + + + GL_GNULIB_PCLOSE=0 + + + + GL_GNULIB_PERROR=0 + + + + GL_GNULIB_POPEN=0 + + + + GL_GNULIB_PRINTF=0 + + + + GL_GNULIB_PRINTF_POSIX=0 + + + + GL_GNULIB_PUTC=0 + + + + GL_GNULIB_PUTCHAR=0 + + + + GL_GNULIB_PUTS=0 + + + + GL_GNULIB_REMOVE=0 + + + + GL_GNULIB_RENAME=0 + + + + GL_GNULIB_RENAMEAT=0 + + + + GL_GNULIB_SCANF=0 + + + + GL_GNULIB_SNPRINTF=0 + + + + GL_GNULIB_SPRINTF_POSIX=0 + + + + GL_GNULIB_STDIO_H_NONBLOCKING=0 + + + + GL_GNULIB_STDIO_H_SIGPIPE=0 + + + + GL_GNULIB_TMPFILE=0 + + + + GL_GNULIB_VASPRINTF=0 + + + + GL_GNULIB_VFSCANF=0 + + + + GL_GNULIB_VSCANF=0 + + + + GL_GNULIB_VDPRINTF=0 + + + + GL_GNULIB_VFPRINTF=0 + + + + GL_GNULIB_VFPRINTF_POSIX=0 + + + + GL_GNULIB_VPRINTF=0 + + + + GL_GNULIB_VPRINTF_POSIX=0 + + + + GL_GNULIB_VSNPRINTF=0 + + + + GL_GNULIB_VSPRINTF_POSIX=0 + + + + GL_GNULIB_MDA_FCLOSEALL=1 + + + + GL_GNULIB_MDA_FDOPEN=1 + + + + GL_GNULIB_MDA_FILENO=1 + + + + GL_GNULIB_MDA_GETW=1 + + + + GL_GNULIB_MDA_PUTW=1 + + + + GL_GNULIB_MDA_TEMPNAM=1 + + + + + +ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" +if test "x$ac_cv_have_decl_getdtablesize" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETDTABLESIZE $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" +if test "x$ac_cv_have_decl_getline" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETLINE $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default" +if test "x$ac_cv_have_decl_getlogin_r" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETLOGIN_R $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "getlogin" "ac_cv_have_decl_getlogin" "$ac_includes_default" +if test "x$ac_cv_have_decl_getlogin" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETLOGIN $ac_have_decl +_ACEOF + + + + case $host_os in + mingw*) + GETLOGIN_LIB='-ladvapi32' ;; + *) + GETLOGIN_LIB= ;; + esac + + LIB_GETLOGIN="$GETLOGIN_LIB" + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_getopt_h='<'getopt.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_getopt_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_getopt_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'getopt.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_getopt_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_getopt_h + gl_cv_next_getopt_h='"'$gl_header'"' + else + gl_cv_next_getopt_h='<'getopt.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5 +$as_echo "$gl_cv_next_getopt_h" >&6; } + fi + NEXT_GETOPT_H=$gl_cv_next_getopt_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'getopt.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_getopt_h + fi + NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_getopt_h = yes; then + HAVE_GETOPT_H=1 + else + HAVE_GETOPT_H=0 + fi + + + gl_replace_getopt= + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + for ac_header in getopt.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" +if test "x$ac_cv_header_getopt_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETOPT_H 1 +_ACEOF + +else + gl_replace_getopt=yes +fi + +done + + fi + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + for ac_func in getopt_long_only +do : + ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" +if test "x$ac_cv_func_getopt_long_only" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETOPT_LONG_ONLY 1 +_ACEOF + +else + gl_replace_getopt=yes +fi +done + + fi + + if test -z "$gl_replace_getopt"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 +$as_echo_n "checking whether getopt is POSIX compatible... " >&6; } +if ${gl_cv_func_getopt_posix+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $cross_compiling = no; then + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char a[] = "-a"; + static char foo[] = "foo"; + static char bar[] = "bar"; + char *argv[] = { program, a, foo, bar, NULL }; + int c; + + c = getopt (4, argv, "ab"); + if (!(c == 'a')) + return 1; + c = getopt (4, argv, "ab"); + if (!(c == -1)) + return 2; + if (!(optind == 2)) + return 3; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getopt_posix=maybe +else + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + if test $gl_cv_func_getopt_posix = maybe; then + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char donald[] = "donald"; + static char p[] = "-p"; + static char billy[] = "billy"; + static char duck[] = "duck"; + static char a[] = "-a"; + static char bar[] = "bar"; + char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; + int c; + + c = getopt (7, argv, "+abp:q:"); + if (!(c == -1)) + return 4; + if (!(strcmp (argv[0], "program") == 0)) + return 5; + if (!(strcmp (argv[1], "donald") == 0)) + return 6; + if (!(strcmp (argv[2], "-p") == 0)) + return 7; + if (!(strcmp (argv[3], "billy") == 0)) + return 8; + if (!(strcmp (argv[4], "duck") == 0)) + return 9; + if (!(strcmp (argv[5], "-a") == 0)) + return 10; + if (!(strcmp (argv[6], "bar") == 0)) + return 11; + if (!(optind == 1)) + return 12; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getopt_posix=maybe +else + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test $gl_cv_func_getopt_posix = maybe; then + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + static char program[] = "program"; + static char ab[] = "-ab"; + char *argv[3] = { program, ab, NULL }; + if (getopt (2, argv, "ab:") != 'a') + return 13; + if (getopt (2, argv, "ab:") != '?') + return 14; + if (optopt != 'b') + return 15; + if (optind != 2) + return 16; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getopt_posix=yes +else + gl_cv_func_getopt_posix=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + else + case "$host_os" in + darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; + *) gl_cv_func_getopt_posix="guessing yes";; + esac + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5 +$as_echo "$gl_cv_func_getopt_posix" >&6; } + case "$gl_cv_func_getopt_posix" in + *no) gl_replace_getopt=yes ;; + esac + fi + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 +$as_echo_n "checking for working GNU getopt function... " >&6; } +if ${gl_cv_func_getopt_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the + # optstring is necessary for programs like m4 that have POSIX-mandated + # semantics for supporting options interspersed with files. + # Also, since getopt_long is a GNU extension, we require optind=0. + # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; + # so take care to revert to the correct (non-)export state. + gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' + case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif + + +int +main () +{ + + int result = 0; + + nocrash_init(); + + /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, + and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, + OSF/1 5.1, Solaris 10. */ + { + static char conftest[] = "conftest"; + static char plus[] = "-+"; + char *argv[3] = { conftest, plus, NULL }; + opterr = 0; + if (getopt (2, argv, "+a") != '?') + result |= 1; + } + /* This code succeeds on glibc 2.8, mingw, + and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, + IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ + { + static char program[] = "program"; + static char p[] = "-p"; + static char foo[] = "foo"; + static char bar[] = "bar"; + char *argv[] = { program, p, foo, bar, NULL }; + + optind = 1; + if (getopt (4, argv, "p::") != 'p') + result |= 2; + else if (optarg != NULL) + result |= 4; + else if (getopt (4, argv, "p::") != -1) + result |= 6; + else if (optind != 2) + result |= 8; + } + /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ + { + static char program[] = "program"; + static char foo[] = "foo"; + static char p[] = "-p"; + char *argv[] = { program, foo, p, NULL }; + optind = 0; + if (getopt (3, argv, "-p") != 1) + result |= 16; + else if (getopt (3, argv, "-p") != 'p') + result |= 16; + } + /* This code fails on glibc 2.11. */ + { + static char program[] = "program"; + static char b[] = "-b"; + static char a[] = "-a"; + char *argv[] = { program, b, a, NULL }; + optind = opterr = 0; + if (getopt (3, argv, "+:a:b") != 'b') + result |= 32; + else if (getopt (3, argv, "+:a:b") != ':') + result |= 32; + } + /* This code dumps core on glibc 2.14. */ + { + static char program[] = "program"; + static char w[] = "-W"; + static char dummy[] = "dummy"; + char *argv[] = { program, w, dummy, NULL }; + optind = opterr = 1; + if (getopt (3, argv, "W;") != 'W') + result |= 64; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getopt_gnu=yes +else + gl_cv_func_getopt_gnu=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + case $gl_had_POSIXLY_CORRECT in + exported) ;; + yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;; + *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5 +$as_echo "$gl_cv_func_getopt_gnu" >&6; } + if test "$gl_cv_func_getopt_gnu" != yes; then + gl_replace_getopt=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5 +$as_echo_n "checking for working GNU getopt_long function... " >&6; } +if ${gl_cv_func_getopt_long_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; + *) gl_cv_func_getopt_long_gnu="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main () +{ +static const struct option long_options[] = + { + { "xtremely-",no_argument, NULL, 1003 }, + { "xtra", no_argument, NULL, 1001 }, + { "xtreme", no_argument, NULL, 1002 }, + { "xtremely", no_argument, NULL, 1003 }, + { NULL, 0, NULL, 0 } + }; + /* This code fails on OpenBSD 5.0. */ + { + static char program[] = "program"; + static char xtremel[] = "--xtremel"; + char *argv[] = { program, xtremel, NULL }; + int option_index; + optind = 1; opterr = 0; + if (getopt_long (2, argv, "", long_options, &option_index) != 1003) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getopt_long_gnu=yes +else + gl_cv_func_getopt_long_gnu=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5 +$as_echo "$gl_cv_func_getopt_long_gnu" >&6; } + case "$gl_cv_func_getopt_long_gnu" in + *yes) ;; + *) gl_replace_getopt=yes ;; + esac + fi + fi + + + + + + + + + HAVE_GETRANDOM=1; + REPLACE_GETRANDOM=0; + + + + GL_GNULIB_GETRANDOM=0 + + + +: + + + + ac_fn_c_check_decl "$LINENO" "timespec_get" "ac_cv_have_decl_timespec_get" "#include +" +if test "x$ac_cv_have_decl_timespec_get" = xyes; then : + +fi + + if test $ac_cv_have_decl_timespec_get = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for timespec_get" >&5 +$as_echo_n "checking for timespec_get... " >&6; } +if ${gl_cv_func_timespec_get+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct timespec ts; + +int +main () +{ +return timespec_get (&ts, 0); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_timespec_get=yes +else + gl_cv_func_timespec_get=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_timespec_get" >&5 +$as_echo "$gl_cv_func_timespec_get" >&6; } + else + gl_cv_func_timespec_get=no + fi + + + HAVE_GETTIMEOFDAY=1; + HAVE_STRUCT_TIMEVAL=1; + HAVE_SYS_TIME_H=1; + REPLACE_GETTIMEOFDAY=0; + REPLACE_STRUCT_TIMEVAL=0; + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_time_h='<'sys/time.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_sys_time_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_sys_time_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/time.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_time_h + gl_cv_next_sys_time_h='"'$gl_header'"' + else + gl_cv_next_sys_time_h='<'sys/time.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5 +$as_echo "$gl_cv_next_sys_time_h" >&6; } + fi + NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_sys_time_h != yes; then + HAVE_SYS_TIME_H=0 + fi + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + for ac_header in winsock2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINSOCK2_H 1 +_ACEOF + +fi + +done + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 +$as_echo_n "checking for struct timeval... " >&6; } +if ${gl_cv_sys_struct_timeval+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_SYS_TIME_H + #include + #endif + #include + #if HAVE_WINSOCK2_H + # include + #endif + +int +main () +{ +static struct timeval x; x.tv_sec = x.tv_usec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timeval=yes +else + gl_cv_sys_struct_timeval=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5 +$as_echo "$gl_cv_sys_struct_timeval" >&6; } + if test $gl_cv_sys_struct_timeval != yes; then + HAVE_STRUCT_TIMEVAL=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5 +$as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; } +if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_SYS_TIME_H + #include + #endif + #include + #if HAVE_WINSOCK2_H + # include + #endif + +int +main () +{ +static struct timeval x; + typedef int verify_tv_sec_type[ + sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 + ]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timeval_tv_sec=yes +else + gl_cv_sys_struct_timeval_tv_sec=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5 +$as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; } + if test $gl_cv_sys_struct_timeval_tv_sec != yes; then + REPLACE_STRUCT_TIMEVAL=1 + fi + fi + + + + + + + + + + GL_GNULIB_GETTIMEOFDAY=0 + + + + + HAVE_GLOB=1; + HAVE_GLOB_PATTERN_P=1; + REPLACE_GLOB=0; + REPLACE_GLOB_PATTERN_P=0; + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_glob_h='<'glob.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_glob_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_glob_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'glob.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_glob_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_glob_h + gl_cv_next_glob_h='"'$gl_header'"' + else + gl_cv_next_glob_h='<'glob.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_glob_h" >&5 +$as_echo "$gl_cv_next_glob_h" >&6; } + fi + NEXT_GLOB_H=$gl_cv_next_glob_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'glob.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_glob_h + fi + NEXT_AS_FIRST_DIRECTIVE_GLOB_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_glob_h = yes; then + HAVE_GLOB_H=1 + else + HAVE_GLOB_H=0 + fi + + + GL_GENERATE_GLOB_H=false + if false; then + GL_GENERATE_GLOB_H=true + else + if test $ac_cv_header_glob_h != yes; then + GL_GENERATE_GLOB_H=true + fi + fi + + + + + + + + + + + + + GL_GNULIB_GLOB=0 + + + + + + + + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + gl_have_pthread_h=yes +else + gl_have_pthread_h=no +fi + + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main () +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:13444: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:13445: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_pthread_in_glibc=yes +fi +rm -f conftest* + + ;; + esac + echo "$as_me:13470: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +$as_echo_n "checking for pthread_kill in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_kill=yes +else + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:13624: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +$as_echo_n "checking whether POSIX threads API is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +$as_echo "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +$as_echo "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + SCHED_YIELD_LIB= + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +$as_echo_n "checking for sched_yield in -lrt... " >&6; } +if ${ac_cv_lib_rt_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_sched_yield=yes +else + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +$as_echo "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lrt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +$as_echo_n "checking for sched_yield in -lposix4... " >&6; } +if ${ac_cv_lib_posix4_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix4_sched_yield=yes +else + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +$as_echo "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIB_SCHED_YIELD="$SCHED_YIELD_LIB" + + + gl_pthreadlib_body_done=done + fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 +$as_echo_n "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } +if ${gl_cv_func_setlocale_null_all_mtsafe+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. + *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) + gl_cv_func_setlocale_null_all_mtsafe=no ;; + # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. + *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) + gl_cv_func_setlocale_null_all_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 +$as_echo "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_all_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_all_mtsafe" in + *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; + *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 +$as_echo_n "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } +if ${gl_cv_func_setlocale_null_one_mtsafe+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + # Guess no on OpenBSD, AIX. + openbsd* | aix*) + gl_cv_func_setlocale_null_one_mtsafe=no ;; + # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. + *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) + gl_cv_func_setlocale_null_one_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 +$as_echo "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_one_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_one_mtsafe" in + *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; + *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE +_ACEOF + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + case "$host_os" in + mingw*) SETLOCALE_NULL_LIB= ;; + *) + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } +if ${gl_cv_have_weak+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main () +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : + gl_cv_have_weak="guessing yes" +else + gl_cv_have_weak="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_have_weak=yes +else + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +$as_echo "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +$as_echo "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) SETLOCALE_NULL_LIB= ;; + *) SETLOCALE_NULL_LIB="$LIBPTHREAD" ;; + esac + ;; + esac + else + SETLOCALE_NULL_LIB= + fi + + LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB" + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_limits_h='<'limits.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_limits_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_limits_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'limits.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_limits_h + gl_cv_next_limits_h='"'$gl_header'"' + else + gl_cv_next_limits_h='<'limits.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 +$as_echo "$gl_cv_next_limits_h" >&6; } + fi + NEXT_LIMITS_H=$gl_cv_next_limits_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'limits.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_limits_h + fi + NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has WORD_BIT, BOOL_WIDTH etc." >&5 +$as_echo_n "checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... " >&6; } +if ${gl_cv_header_limits_width+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + int bw = BOOL_WIDTH; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_limits_width=yes +else + gl_cv_header_limits_width=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 +$as_echo "$gl_cv_header_limits_width" >&6; } + if test "$gl_cv_header_limits_width" = yes; then + GL_GENERATE_LIMITS_H=false + else + GL_GENERATE_LIMITS_H=true + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 +$as_echo_n "checking for wint_t... " >&6; } +if ${gt_cv_c_wint_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + wint_t foo = (wchar_t)'\0'; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_c_wint_t=yes +else + gt_cv_c_wint_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 +$as_echo "$gt_cv_c_wint_t" >&6; } + if test $gt_cv_c_wint_t = yes; then + +$as_echo "#define HAVE_WINT_T 1" >>confdefs.h + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wint_t is large enough" >&5 +$as_echo_n "checking whether wint_t is large enough... " >&6; } +if ${gl_cv_type_wint_t_large_enough+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_wint_t_large_enough=yes +else + gl_cv_type_wint_t_large_enough=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_large_enough" >&5 +$as_echo "$gl_cv_type_wint_t_large_enough" >&6; } + if test $gl_cv_type_wint_t_large_enough = no; then + GNULIBHEADERS_OVERRIDE_WINT_T=1 + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler produces multi-arch binaries" >&5 +$as_echo_n "checking whether the compiler produces multi-arch binaries... " >&6; } +if ${gl_cv_c_multiarch+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_c_multiarch=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + arch= + prev= + for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do + if test -n "$prev"; then + case $word in + i?86 | x86_64 | ppc | ppc64 | arm | arm64) + if test -z "$arch" || test "$arch" = "$word"; then + arch="$word" + else + gl_cv_c_multiarch=yes + fi + ;; + esac + prev= + else + if test "x$word" = "x-arch"; then + prev=arch + fi + fi + done + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_multiarch" >&5 +$as_echo "$gl_cv_c_multiarch" >&6; } + if test $gl_cv_c_multiarch = yes; then + APPLE_UNIVERSAL_BUILD=1 + else + APPLE_UNIVERSAL_BUILD=0 + fi + + + + + + + + +$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h + + +$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + if test $ac_cv_header_inttypes_h = yes; then + HAVE_INTTYPES_H=1 + else + HAVE_INTTYPES_H=0 + fi + + + + if test $ac_cv_header_sys_types_h = yes; then + HAVE_SYS_TYPES_H=1 + else + HAVE_SYS_TYPES_H=0 + fi + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdint_h='<'stdint.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_stdint_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_stdint_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdint.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdint_h + gl_cv_next_stdint_h='"'$gl_header'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 +$as_echo "$gl_cv_next_stdint_h" >&6; } + fi + NEXT_STDINT_H=$gl_cv_next_stdint_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdint.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdint_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_stdint_h = yes; then + HAVE_STDINT_H=1 + else + HAVE_STDINT_H=0 + fi + + + if test $ac_cv_header_stdint_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 +$as_echo_n "checking whether stdint.h conforms to C99... " >&6; } +if ${gl_cv_header_working_stdint_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_header_working_stdint_h=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +#ifdef INT8_MAX +int8_t a1 = INT8_MAX; +int8_t a1min = INT8_MIN; +#endif +#ifdef INT16_MAX +int16_t a2 = INT16_MAX; +int16_t a2min = INT16_MIN; +#endif +#ifdef INT32_MAX +int32_t a3 = INT32_MAX; +int32_t a3min = INT32_MIN; +#endif +#ifdef INT64_MAX +int64_t a4 = INT64_MAX; +int64_t a4min = INT64_MIN; +#endif +#ifdef UINT8_MAX +uint8_t b1 = UINT8_MAX; +#else +typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; +#endif +#ifdef UINT16_MAX +uint16_t b2 = UINT16_MAX; +#endif +#ifdef UINT32_MAX +uint32_t b3 = UINT32_MAX; +#endif +#ifdef UINT64_MAX +uint64_t b4 = UINT64_MAX; +#endif +int_least8_t c1 = INT8_C (0x7f); +int_least8_t c1max = INT_LEAST8_MAX; +int_least8_t c1min = INT_LEAST8_MIN; +int_least16_t c2 = INT16_C (0x7fff); +int_least16_t c2max = INT_LEAST16_MAX; +int_least16_t c2min = INT_LEAST16_MIN; +int_least32_t c3 = INT32_C (0x7fffffff); +int_least32_t c3max = INT_LEAST32_MAX; +int_least32_t c3min = INT_LEAST32_MIN; +int_least64_t c4 = INT64_C (0x7fffffffffffffff); +int_least64_t c4max = INT_LEAST64_MAX; +int_least64_t c4min = INT_LEAST64_MIN; +uint_least8_t d1 = UINT8_C (0xff); +uint_least8_t d1max = UINT_LEAST8_MAX; +uint_least16_t d2 = UINT16_C (0xffff); +uint_least16_t d2max = UINT_LEAST16_MAX; +uint_least32_t d3 = UINT32_C (0xffffffff); +uint_least32_t d3max = UINT_LEAST32_MAX; +uint_least64_t d4 = UINT64_C (0xffffffffffffffff); +uint_least64_t d4max = UINT_LEAST64_MAX; +int_fast8_t e1 = INT_FAST8_MAX; +int_fast8_t e1min = INT_FAST8_MIN; +int_fast16_t e2 = INT_FAST16_MAX; +int_fast16_t e2min = INT_FAST16_MIN; +int_fast32_t e3 = INT_FAST32_MAX; +int_fast32_t e3min = INT_FAST32_MIN; +int_fast64_t e4 = INT_FAST64_MAX; +int_fast64_t e4min = INT_FAST64_MIN; +uint_fast8_t f1 = UINT_FAST8_MAX; +uint_fast16_t f2 = UINT_FAST16_MAX; +uint_fast32_t f3 = UINT_FAST32_MAX; +uint_fast64_t f4 = UINT_FAST64_MAX; +#ifdef INTPTR_MAX +intptr_t g = INTPTR_MAX; +intptr_t gmin = INTPTR_MIN; +#endif +#ifdef UINTPTR_MAX +uintptr_t h = UINTPTR_MAX; +#endif +intmax_t i = INTMAX_MAX; +uintmax_t j = UINTMAX_MAX; + +/* Check that SIZE_MAX has the correct type, if possible. */ +#if 201112 <= __STDC_VERSION__ +int k = _Generic (SIZE_MAX, size_t: 0); +#elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ + || (0x5110 <= __SUNPRO_C && !__STDC__)) +extern size_t k; +extern __typeof__ (SIZE_MAX) k; +#endif + +#include /* for CHAR_BIT */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 \ + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) +struct s { + int check_PTRDIFF: + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; + /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) + ? 1 : -1; + int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; + int check_WCHAR: + WCHAR_MIN == TYPE_MINIMUM (wchar_t) + && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) + ? 1 : -1; + /* Detect bug in mingw. */ + int check_WINT: + WINT_MIN == TYPE_MINIMUM (wint_t) + && WINT_MAX == TYPE_MAXIMUM (wint_t) + ? 1 : -1; + + /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ + int check_UINT8_C: + (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; + int check_UINT16_C: + (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; + + /* Detect bugs in OpenBSD 3.9 stdint.h. */ +#ifdef UINT8_MAX + int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; +#endif +#ifdef UINT16_MAX + int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; +#endif +#ifdef UINT32_MAX + int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; +#endif +#ifdef UINT64_MAX + int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; +#endif + int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; + int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; + int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; + int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; + int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; + int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; + int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; + int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; + int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; + int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; + int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; +}; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; + # In general, assume it works. + *) gl_cv_header_working_stdint_h="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +#include +#include +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; + +int +main () +{ + + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return mv - macro_values + 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_header_working_stdint_h=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 +$as_echo "$gl_cv_header_working_stdint_h" >&6; } + fi + + HAVE_C99_STDINT_H=0 + HAVE_SYS_BITYPES_H=0 + HAVE_SYS_INTTYPES_H=0 + GL_GENERATE_STDINT_H=true + case "$gl_cv_header_working_stdint_h" in + *yes) + HAVE_C99_STDINT_H=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h works without ISO C predefines" >&5 +$as_echo_n "checking whether stdint.h works without ISO C predefines... " >&6; } +if ${gl_cv_header_stdint_without_STDC_macros+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_header_stdint_without_STDC_macros=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include + + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + +intmax_t im = INTMAX_MAX; +int32_t i32 = INT32_C (0x7fffffff); + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_stdint_without_STDC_macros=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_without_STDC_macros" >&5 +$as_echo "$gl_cv_header_stdint_without_STDC_macros" >&6; } + + if test $gl_cv_header_stdint_without_STDC_macros = no; then + +$as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h + + +$as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 +$as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } +if ${gl_cv_header_stdint_width+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_header_stdint_width=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 + #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + int iw = UINTMAX_WIDTH; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_stdint_width=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 +$as_echo "$gl_cv_header_stdint_width" >&6; } + if test "$gl_cv_header_stdint_width" = yes; then + GL_GENERATE_STDINT_H=false + fi + ;; + *) + for ac_header in sys/inttypes.h sys/bitypes.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_sys_inttypes_h = yes; then + HAVE_SYS_INTTYPES_H=1 + fi + if test $ac_cv_header_sys_bitypes_h = yes; then + HAVE_SYS_BITYPES_H=1 + fi + + + if test $APPLE_UNIVERSAL_BUILD = 0; then + + + for gltype in ptrdiff_t size_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } +if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + #include + #include + #if HAVE_WCHAR_H + # include + #endif + +#include "; then : + +else + result=unknown +fi + + eval gl_cv_bitsizeof_${gltype}=\$result + +fi +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + cat >>confdefs.h <<_ACEOF +#define BITSIZEOF_${GLTYPE} $result +_ACEOF + + eval BITSIZEOF_${GLTYPE}=\$result + done + + + fi + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } +if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + #include + #include + #if HAVE_WCHAR_H + # include + #endif + +#include "; then : + +else + result=unknown +fi + + eval gl_cv_bitsizeof_${gltype}=\$result + +fi +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + cat >>confdefs.h <<_ACEOF +#define BITSIZEOF_${GLTYPE} $result +_ACEOF + + eval BITSIZEOF_${GLTYPE}=\$result + done + + + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 +$as_echo_n "checking whether $gltype is signed... " >&6; } +if eval \${gl_cv_type_${gltype}_signed+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + result=yes +else + result=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval gl_cv_type_${gltype}_signed=\$result + +fi +eval ac_res=\$gl_cv_type_${gltype}_signed + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval result=\$gl_cv_type_${gltype}_signed + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + if test "$result" = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_SIGNED_${GLTYPE} 1 +_ACEOF + + eval HAVE_SIGNED_${GLTYPE}=1 + else + eval HAVE_SIGNED_${GLTYPE}=0 + fi + done + + + gl_cv_type_ptrdiff_t_signed=yes + gl_cv_type_size_t_signed=no + if test $APPLE_UNIVERSAL_BUILD = 0; then + + + for gltype in ptrdiff_t size_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } +if eval \${gl_cv_type_${gltype}_suffix+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + cat >>confdefs.h <<_ACEOF +#define ${GLTYPE}_SUFFIX $result +_ACEOF + + done + + + fi + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } +if eval \${gl_cv_type_${gltype}_suffix+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_WCHAR_H + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + cat >>confdefs.h <<_ACEOF +#define ${GLTYPE}_SUFFIX $result +_ACEOF + + done + + + + if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + BITSIZEOF_WINT_T=32 + fi + + ;; + esac + + + + GL_GENERATE_LIMITS_H=true + + + + + + + + HAVE_DECL_IMAXABS=1; + HAVE_DECL_IMAXDIV=1; + HAVE_DECL_STRTOIMAX=1; + HAVE_DECL_STRTOUMAX=1; + HAVE_IMAXDIV_T=1; + REPLACE_STRTOIMAX=0; + REPLACE_STRTOUMAX=0; + INT32_MAX_LT_INTMAX_MAX=1; + INT64_MAX_EQ_LONG_MAX='defined _LP64'; + PRIPTR_PREFIX=__PRIPTR_PREFIX; + UINT32_MAX_LT_UINTMAX_MAX=1; + UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_inttypes_h='<'inttypes.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_inttypes_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_inttypes_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'inttypes.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_inttypes_h + gl_cv_next_inttypes_h='"'$gl_header'"' + else + gl_cv_next_inttypes_h='<'inttypes.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 +$as_echo "$gl_cv_next_inttypes_h" >&6; } + fi + NEXT_INTTYPES_H=$gl_cv_next_inttypes_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'inttypes.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_inttypes_h + fi + NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + GL_GNULIB_IMAXABS=0 + + + + GL_GNULIB_IMAXDIV=0 + + + + GL_GNULIB_STRTOIMAX=0 + + + + GL_GNULIB_STRTOUMAX=0 + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 +$as_echo_n "checking where to find the exponent in a 'double'... " >&6; } +if ${gl_cv_cc_double_expbit0+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined arm || defined __arm || defined __arm__ + mixed_endianness +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "mixed_endianness" >/dev/null 2>&1; then : + gl_cv_cc_double_expbit0="unknown" +else + + : +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +: + case $ac_cv_c_bigendian in #( + yes) + gl_cv_cc_double_expbit0="word 0 bit 20";; #( + no) + gl_cv_cc_double_expbit0="word 1 bit 20" ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + gl_cv_cc_double_expbit0="unknown" ;; + esac + + +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#define NWORDS \ + ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { double value; unsigned int word[NWORDS]; } memory_double; +static unsigned int ored_words[NWORDS]; +static unsigned int anded_words[NWORDS]; +static void add_to_ored_words (double x) +{ + memory_double m; + size_t i; + /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ + memset (&m, 0, sizeof (memory_double)); + m.value = x; + for (i = 0; i < NWORDS; i++) + { + ored_words[i] |= m.word[i]; + anded_words[i] &= m.word[i]; + } +} +int main () +{ + size_t j; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + for (j = 0; j < NWORDS; j++) + anded_words[j] = ~ (unsigned int) 0; + add_to_ored_words (0.25); + add_to_ored_words (0.5); + add_to_ored_words (1.0); + add_to_ored_words (2.0); + add_to_ored_words (4.0); + /* Remove bits that are common (e.g. if representation of the first mantissa + bit is explicit). */ + for (j = 0; j < NWORDS; j++) + ored_words[j] &= ~anded_words[j]; + /* Now find the nonzero word. */ + for (j = 0; j < NWORDS; j++) + if (ored_words[j] != 0) + break; + if (j < NWORDS) + { + size_t i; + for (i = j + 1; i < NWORDS; i++) + if (ored_words[i] != 0) + { + fprintf (fp, "unknown"); + return (fclose (fp) != 0); + } + for (i = 0; ; i++) + if ((ored_words[j] >> i) & 1) + { + fprintf (fp, "word %d bit %d", (int) j, (int) i); + return (fclose (fp) != 0); + } + } + fprintf (fp, "unknown"); + return (fclose (fp) != 0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_double_expbit0=`cat conftest.out` +else + gl_cv_cc_double_expbit0="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5 +$as_echo "$gl_cv_cc_double_expbit0" >&6; } + case "$gl_cv_cc_double_expbit0" in + word*bit*) + word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define DBL_EXPBIT0_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define DBL_EXPBIT0_BIT $bit +_ACEOF + + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5 +$as_echo_n "checking where to find the exponent in a 'float'... " >&6; } +if ${gl_cv_cc_float_expbit0+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + gl_cv_cc_float_expbit0="word 0 bit 23" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#define NWORDS \ + ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { float value; unsigned int word[NWORDS]; } memory_float; +static unsigned int ored_words[NWORDS]; +static unsigned int anded_words[NWORDS]; +static void add_to_ored_words (float x) +{ + memory_float m; + size_t i; + /* Clear it first, in case + sizeof (float) < sizeof (memory_float). */ + memset (&m, 0, sizeof (memory_float)); + m.value = x; + for (i = 0; i < NWORDS; i++) + { + ored_words[i] |= m.word[i]; + anded_words[i] &= m.word[i]; + } +} +int main () +{ + size_t j; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + for (j = 0; j < NWORDS; j++) + anded_words[j] = ~ (unsigned int) 0; + add_to_ored_words (0.25f); + add_to_ored_words (0.5f); + add_to_ored_words (1.0f); + add_to_ored_words (2.0f); + add_to_ored_words (4.0f); + /* Remove bits that are common (e.g. if representation of the first mantissa + bit is explicit). */ + for (j = 0; j < NWORDS; j++) + ored_words[j] &= ~anded_words[j]; + /* Now find the nonzero word. */ + for (j = 0; j < NWORDS; j++) + if (ored_words[j] != 0) + break; + if (j < NWORDS) + { + size_t i; + for (i = j + 1; i < NWORDS; i++) + if (ored_words[i] != 0) + { + fprintf (fp, "unknown"); + return (fclose (fp) != 0); + } + for (i = 0; ; i++) + if ((ored_words[j] >> i) & 1) + { + fprintf (fp, "word %d bit %d", (int) j, (int) i); + return (fclose (fp) != 0); + } + } + fprintf (fp, "unknown"); + return (fclose (fp) != 0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_float_expbit0=`cat conftest.out` +else + gl_cv_cc_float_expbit0="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5 +$as_echo "$gl_cv_cc_float_expbit0" >&6; } + case "$gl_cv_cc_float_expbit0" in + word*bit*) + word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define FLT_EXPBIT0_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define FLT_EXPBIT0_BIT $bit +_ACEOF + + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + + + HAVE_ISWBLANK=1; + HAVE_WCTYPE_T=1; + HAVE_WCTRANS_T=1; + REPLACE_ISWBLANK=0; + REPLACE_ISWDIGIT=0; + REPLACE_ISWXDIGIT=0; + + + + + + + + if test $ac_cv_header_crtdefs_h = yes; then + HAVE_CRTDEFS_H=1 + else + HAVE_CRTDEFS_H=0 + fi + + + + + + + + + + if test $ac_cv_func_iswcntrl = yes; then + HAVE_ISWCNTRL=1 + else + HAVE_ISWCNTRL=0 + fi + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wctype_h='<'wctype.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_wctype_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_wctype_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'wctype.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_wctype_h + gl_cv_next_wctype_h='"'$gl_header'"' + else + gl_cv_next_wctype_h='<'wctype.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 +$as_echo "$gl_cv_next_wctype_h" >&6; } + fi + NEXT_WCTYPE_H=$gl_cv_next_wctype_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wctype_h = yes; then + if test $ac_cv_func_iswcntrl = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 +$as_echo_n "checking whether iswcntrl works... " >&6; } +if ${gl_cv_func_iswcntrl_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if __GNU_LIBRARY__ == 1 + Linux libc5 i18n is broken. + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_iswcntrl_works="guessing yes" +else + gl_cv_func_iswcntrl_works="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int main () { return iswprint ('x') == 0; } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_iswcntrl_works=yes +else + gl_cv_func_iswcntrl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 +$as_echo "$gl_cv_func_iswcntrl_works" >&6; } + fi + HAVE_WCTYPE_H=1 + else + HAVE_WCTYPE_H=0 + fi + + + if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + REPLACE_ISWCNTRL=1 + else + case "$gl_cv_func_iswcntrl_works" in + *yes) REPLACE_ISWCNTRL=0 ;; + *) REPLACE_ISWCNTRL=1 ;; + esac + fi + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + : + fi + + if test $REPLACE_ISWCNTRL = 1; then + REPLACE_TOWLOWER=1 + else + for ac_func in towlower +do : + ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" +if test "x$ac_cv_func_towlower" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TOWLOWER 1 +_ACEOF + +fi +done + + if test $ac_cv_func_towlower = yes; then + REPLACE_TOWLOWER=0 + else + ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "#include + #if HAVE_WCTYPE_H + # include + #endif + +" +if test "x$ac_cv_have_decl_towlower" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TOWLOWER $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_towlower = yes; then + REPLACE_TOWLOWER=1 + else + REPLACE_TOWLOWER=0 + fi + fi + fi + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then + : + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 +$as_echo_n "checking for wctype_t... " >&6; } +if ${gl_cv_type_wctype_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if HAVE_WCTYPE_H + # include + #endif + wctype_t a; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_wctype_t=yes +else + gl_cv_type_wctype_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 +$as_echo "$gl_cv_type_wctype_t" >&6; } + if test $gl_cv_type_wctype_t = no; then + HAVE_WCTYPE_T=0 + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 +$as_echo_n "checking for wctrans_t... " >&6; } +if ${gl_cv_type_wctrans_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + wctrans_t a; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_wctrans_t=yes +else + gl_cv_type_wctrans_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 +$as_echo "$gl_cv_type_wctrans_t" >&6; } + if test $gl_cv_type_wctrans_t = no; then + HAVE_WCTRANS_T=0 + fi + + + + + + + + + + GL_GNULIB_ISWBLANK=0 + + + + GL_GNULIB_ISWDIGIT=0 + + + + GL_GNULIB_ISWXDIGIT=0 + + + + GL_GNULIB_WCTYPE=0 + + + + GL_GNULIB_ISWCTYPE=0 + + + + GL_GNULIB_WCTRANS=0 + + + + GL_GNULIB_TOWCTRANS=0 + + + + + HAVE_NL_LANGINFO=1; + REPLACE_NL_LANGINFO=0; + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_langinfo_h='<'langinfo.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_langinfo_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_langinfo_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'langinfo.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_langinfo_h + gl_cv_next_langinfo_h='"'$gl_header'"' + else + gl_cv_next_langinfo_h='<'langinfo.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 +$as_echo "$gl_cv_next_langinfo_h" >&6; } + fi + NEXT_LANGINFO_H=$gl_cv_next_langinfo_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'langinfo.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_langinfo_h + fi + NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive + + + + + + HAVE_LANGINFO_CODESET=0 + HAVE_LANGINFO_T_FMT_AMPM=0 + HAVE_LANGINFO_ALTMON=0 + HAVE_LANGINFO_ERA=0 + HAVE_LANGINFO_YESEXPR=0 + + if test $ac_cv_header_langinfo_h = yes; then + HAVE_LANGINFO_H=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 +$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } +if ${gl_cv_header_langinfo_codeset+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = CODESET; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_codeset=yes +else + gl_cv_header_langinfo_codeset=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 +$as_echo "$gl_cv_header_langinfo_codeset" >&6; } + if test $gl_cv_header_langinfo_codeset = yes; then + HAVE_LANGINFO_CODESET=1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 +$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } +if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = T_FMT_AMPM; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_t_fmt_ampm=yes +else + gl_cv_header_langinfo_t_fmt_ampm=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 +$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } + if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then + HAVE_LANGINFO_T_FMT_AMPM=1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5 +$as_echo_n "checking whether langinfo.h defines ALTMON_1... " >&6; } +if ${gl_cv_header_langinfo_altmon+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = ALTMON_1; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_altmon=yes +else + gl_cv_header_langinfo_altmon=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5 +$as_echo "$gl_cv_header_langinfo_altmon" >&6; } + if test $gl_cv_header_langinfo_altmon = yes; then + HAVE_LANGINFO_ALTMON=1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 +$as_echo_n "checking whether langinfo.h defines ERA... " >&6; } +if ${gl_cv_header_langinfo_era+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = ERA; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_era=yes +else + gl_cv_header_langinfo_era=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 +$as_echo "$gl_cv_header_langinfo_era" >&6; } + if test $gl_cv_header_langinfo_era = yes; then + HAVE_LANGINFO_ERA=1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 +$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; } +if ${gl_cv_header_langinfo_yesexpr+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = YESEXPR; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_yesexpr=yes +else + gl_cv_header_langinfo_yesexpr=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 +$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } + if test $gl_cv_header_langinfo_yesexpr = yes; then + HAVE_LANGINFO_YESEXPR=1 + fi + else + HAVE_LANGINFO_H=0 + fi + + + + + + + + + + + + + + GL_GNULIB_NL_LANGINFO=0 + + + + + HAVE_NEWLOCALE=1; + HAVE_DUPLOCALE=1; + HAVE_FREELOCALE=1; + REPLACE_LOCALECONV=0; + REPLACE_SETLOCALE=0; + REPLACE_NEWLOCALE=0; + REPLACE_DUPLOCALE=0; + REPLACE_FREELOCALE=0; + REPLACE_STRUCT_LCONV=0; + LOCALENAME_ENHANCE_LOCALE_FUNCS=0; + + + REPLACE_NULL=0; + HAVE_MAX_ALIGN_T=1; + HAVE_WCHAR_T=1; + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 +$as_echo_n "checking for wchar_t... " >&6; } +if ${gt_cv_c_wchar_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + wchar_t foo = (wchar_t)'\0'; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_c_wchar_t=yes +else + gt_cv_c_wchar_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 +$as_echo "$gt_cv_c_wchar_t" >&6; } + if test $gt_cv_c_wchar_t = yes; then + +$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h + + fi + + + + + + + + GL_GENERATE_STDDEF_H=false + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +$as_echo_n "checking for good max_align_t... " >&6; } +if ${gl_cv_type_max_align_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + typedef struct { char a; max_align_t b; } max_helper; + typedef struct { char a; long b; } long_helper; + typedef struct { char a; double b; } double_helper; + typedef struct { char a; long double b; } long_double_helper; + int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; + int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; + int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_max_align_t=yes +else + gl_cv_type_max_align_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 +$as_echo "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + GL_GENERATE_STDDEF_H=true + fi + + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + GL_GENERATE_STDDEF_H=true + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 +$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } +if ${gl_cv_decl_null_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int test[2 * (sizeof NULL == sizeof (void *)) -1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_decl_null_works=yes +else + gl_cv_decl_null_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 +$as_echo "$gl_cv_decl_null_works" >&6; } + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + GL_GENERATE_STDDEF_H=true + fi + + if $GL_GENERATE_STDDEF_H; then + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stddef_h='<'stddef.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_stddef_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stddef.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stddef_h + gl_cv_next_stddef_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 +$as_echo "$gl_cv_next_stddef_h" >&6; } + fi + NEXT_STDDEF_H=$gl_cv_next_stddef_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stddef.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stddef_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive + + + + + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 +$as_echo_n "checking whether locale.h defines locale_t... " >&6; } +if ${gl_cv_header_locale_has_locale_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + locale_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_locale_has_locale_t=yes +else + gl_cv_header_locale_has_locale_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 +$as_echo "$gl_cv_header_locale_has_locale_t" >&6; } + + + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + if test $gl_cv_header_locale_has_locale_t = yes; then + gl_cv_header_locale_h_needs_xlocale_h=no + else + gl_cv_header_locale_h_needs_xlocale_h=yes + fi + HAVE_LOCALE_T=1 + else + HAVE_XLOCALE_H=0 + gl_cv_header_locale_h_needs_xlocale_h=no + if test $gl_cv_header_locale_has_locale_t = yes; then + HAVE_LOCALE_T=1 + else + HAVE_LOCALE_T=0 + fi + fi + + + + + + + + + + + + + case "$host_os" in + solaris*) + +$as_echo "#define _LCONV_C99 1" >>confdefs.h + + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 +$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; } +if ${gl_cv_header_locale_h_posix2001+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = LC_MESSAGES; + int y = sizeof (((struct lconv *) 0)->decimal_point); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_locale_h_posix2001=yes +else + gl_cv_header_locale_h_posix2001=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 +$as_echo "$gl_cv_header_locale_h_posix2001" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 +$as_echo_n "checking whether struct lconv is properly defined... " >&6; } +if ${gl_cv_sys_struct_lconv_ok+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct lconv l; + int x = sizeof (l.decimal_point); + int y = sizeof (l.int_p_cs_precedes); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_lconv_ok=yes +else + gl_cv_sys_struct_lconv_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 +$as_echo "$gl_cv_sys_struct_lconv_ok" >&6; } + if test $gl_cv_sys_struct_lconv_ok = no; then + case "$host_os" in + mingw*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Special +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Special" >/dev/null 2>&1; then : + +else + REPLACE_STRUCT_LCONV=1 +fi +rm -f conftest* + + ;; + *) REPLACE_STRUCT_LCONV=1 ;; + esac + fi + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_locale_h='<'locale.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_locale_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'locale.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_locale_h + gl_cv_next_locale_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 +$as_echo "$gl_cv_next_locale_h" >&6; } + fi + NEXT_LOCALE_H=$gl_cv_next_locale_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'locale.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_locale_h + fi + NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive + + + + + + + + + + + + GL_GNULIB_LOCALECONV=0 + + + + GL_GNULIB_SETLOCALE=0 + + + + GL_GNULIB_SETLOCALE_NULL=0 + + + + GL_GNULIB_DUPLOCALE=0 + + + + GL_GNULIB_LOCALENAME=0 + + + + + + gl_threads_api=none + LIBTHREAD= + LTLIBTHREAD= + LIBMULTITHREAD= + LTLIBMULTITHREAD= + if test "$gl_use_threads" != no; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } +if ${gl_cv_have_weak+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main () +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : + gl_cv_have_weak="guessing yes" +else + gl_cv_have_weak="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_have_weak=yes +else + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +$as_echo "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +$as_echo "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + + : + fi + if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; then + + gl_have_isoc_threads="$ac_cv_header_threads_h" + fi + if test "$gl_use_threads" = yes \ + || test "$gl_use_threads" = posix \ + || test "$gl_use_threads" = isoc+posix; then + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + gl_have_pthread_h=yes +else + gl_have_pthread_h=no +fi + + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main () +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:17077: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:17078: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_pthread_in_glibc=yes +fi +rm -f conftest* + + ;; + esac + echo "$as_me:17103: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +$as_echo_n "checking for pthread_kill in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_kill=yes +else + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:17257: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +$as_echo_n "checking whether POSIX threads API is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +$as_echo "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +$as_echo "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + SCHED_YIELD_LIB= + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +$as_echo_n "checking for sched_yield in -lrt... " >&6; } +if ${ac_cv_lib_rt_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_sched_yield=yes +else + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +$as_echo "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lrt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +$as_echo_n "checking for sched_yield in -lposix4... " >&6; } +if ${ac_cv_lib_posix4_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix4_sched_yield=yes +else + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +$as_echo "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIB_SCHED_YIELD="$SCHED_YIELD_LIB" + + + gl_pthreadlib_body_done=done + fi + + LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD + LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD + if test $gl_pthread_api = yes; then + if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" = yes; then + gl_threads_api='isoc+posix' + +$as_echo "#define USE_ISOC_AND_POSIX_THREADS 1" >>confdefs.h + + LIBTHREAD= LTLIBTHREAD= + else + gl_threads_api=posix + +$as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h + + if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then + +$as_echo "#define USE_POSIX_THREADS_FROM_LIBC 1" >>confdefs.h + + else + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + +$as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h + + LIBTHREAD= LTLIBTHREAD= + else + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then + +$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + fi + ;; + esac + fi + fi + fi + fi + fi + if test $gl_threads_api = none; then + if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; then + + + + if test -z "$gl_stdthreadlib_body_done"; then + + + case "$host_os" in + mingw*) + LIBSTDTHREAD= + ;; + *) + + + if test -z "$gl_pthreadlib_body_done"; then + gl_pthread_api=no + LIBPTHREAD= + LIBPMULTITHREAD= + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + gl_have_pthread_h=yes +else + gl_have_pthread_h=no +fi + + + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + # + # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 + # needs -pthread for some reason. See: + # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html + save_LIBS=$LIBS + for gl_pthread in '' '-pthread'; do + LIBS="$LIBS $gl_pthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + pthread_mutex_t m; + pthread_mutexattr_t ma; + +int +main () +{ +pthread_mutex_lock (&m); + pthread_mutexattr_init (&ma); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_pthread_api=yes + LIBPTHREAD=$gl_pthread + LIBPMULTITHREAD=$gl_pthread +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + test $gl_pthread_api = yes && break + done + echo "$as_me:17485: gl_pthread_api=$gl_pthread_api" >&5 + echo "$as_me:17486: LIBPTHREAD=$LIBPTHREAD" >&5 + + gl_pthread_in_glibc=no + # On Linux with glibc >= 2.34, libc contains the fully functional + # pthread functions. + case "$host_os" in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) + Lucky user + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_pthread_in_glibc=yes +fi +rm -f conftest* + + ;; + esac + echo "$as_me:17511: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 + + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + if test $gl_pthread_in_glibc = yes; then + LIBPMULTITHREAD= + else + LIBPMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + # On Solaris 10 or newer, this test is no longer needed, because + # libc contains the fully functional pthread functions. + case "$host_os" in + solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) + +$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h + + esac + fi + +fi + + elif test $gl_pthread_api != yes; then + # Some library is needed. Try libpthread and libc_r. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 +$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_kill=yes +else + ac_cv_lib_pthread_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } +if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lpthread + LIBPMULTITHREAD=-lpthread +fi + + if test $gl_pthread_api != yes; then + # For FreeBSD 4. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 +$as_echo_n "checking for pthread_kill in -lc_r... " >&6; } +if ${ac_cv_lib_c_r_pthread_kill+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_kill (); +int +main () +{ +return pthread_kill (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_kill=yes +else + ac_cv_lib_c_r_pthread_kill=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 +$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } +if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : + gl_pthread_api=yes + LIBPTHREAD=-lc_r + LIBPMULTITHREAD=-lc_r +fi + + fi + fi + echo "$as_me:17665: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 +$as_echo_n "checking whether POSIX threads API is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 +$as_echo "$gl_pthread_api" >&6; } + + + if test $gl_pthread_api = yes; then + +$as_echo "#define HAVE_PTHREAD_API 1" >>confdefs.h + + fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + SCHED_YIELD_LIB= + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +$as_echo_n "checking for sched_yield in -lrt... " >&6; } +if ${ac_cv_lib_rt_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_sched_yield=yes +else + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +$as_echo "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lrt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 +$as_echo_n "checking for sched_yield in -lposix4... " >&6; } +if ${ac_cv_lib_posix4_sched_yield+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix4 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix4_sched_yield=yes +else + ac_cv_lib_posix4_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 +$as_echo "$ac_cv_lib_posix4_sched_yield" >&6; } +if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then : + SCHED_YIELD_LIB=-lposix4 +fi + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIB_SCHED_YIELD="$SCHED_YIELD_LIB" + + + gl_pthreadlib_body_done=done + fi + + if test $ac_cv_header_threads_h = yes; then + for ac_func in thrd_create +do : + ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create" +if test "x$ac_cv_func_thrd_create" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_THRD_CREATE 1 +_ACEOF + +fi +done + + if test $ac_cv_func_thrd_create = yes; then + LIBSTDTHREAD= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thrd_create in -lstdthreads" >&5 +$as_echo_n "checking for thrd_create in -lstdthreads... " >&6; } +if ${ac_cv_lib_stdthreads_thrd_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lstdthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char thrd_create (); +int +main () +{ +return thrd_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_stdthreads_thrd_create=yes +else + ac_cv_lib_stdthreads_thrd_create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_stdthreads_thrd_create" >&5 +$as_echo "$ac_cv_lib_stdthreads_thrd_create" >&6; } +if test "x$ac_cv_lib_stdthreads_thrd_create" = xyes; then : + + LIBSTDTHREAD='-lstdthreads -lpthread' + +else + + LIBSTDTHREAD="$LIBPMULTITHREAD" + +fi + + fi + else + LIBSTDTHREAD="$LIBPMULTITHREAD $SCHED_YIELD_LIB" + fi + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ISO C threads API is available" >&5 +$as_echo_n "checking whether ISO C threads API is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_threads_h" >&5 +$as_echo "$ac_cv_header_threads_h" >&6; } + gl_stdthreadlib_body_done=done + fi + + LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD + LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD + gl_threads_api=isoc + +$as_echo "#define USE_ISOC_THREADS 1" >>confdefs.h + + fi + fi + if test $gl_threads_api = none; then + case "$gl_use_threads" in + yes | windows | win32) # The 'win32' is for backward compatibility. + if { case "$host_os" in + mingw*) true;; + *) false;; + esac + }; then + gl_threads_api=windows + +$as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h + + fi + ;; + esac + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 +$as_echo_n "checking for multithread API to use... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 +$as_echo "$gl_threads_api" >&6; } + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5 +$as_echo_n "checking whether malloc is ptrdiff_t safe... " >&6; } +if ${gl_cv_malloc_ptrdiff+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +/* 64-bit ptrdiff_t is so wide that no practical platform + can exceed it. */ + #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) + + /* On rare machines where size_t fits in ptrdiff_t there + is no problem. */ + #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) + + /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t + bounds even on 32-bit platforms. We don't know which + non-glibc systems are safe. */ + #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) + + #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE + return 0; + #else + #error "malloc might not be ptrdiff_t safe" + syntax error + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_malloc_ptrdiff=yes +else + gl_cv_malloc_ptrdiff=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_malloc_ptrdiff" >&5 +$as_echo "$gl_cv_malloc_ptrdiff" >&6; } + + + + + test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc set errno on failure" >&5 +$as_echo_n "checking whether malloc, realloc, calloc set errno on failure... " >&6; } +if ${gl_cv_func_malloc_posix+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + mingw*) + gl_cv_func_malloc_posix=no ;; + irix* | solaris*) + + gl_cv_func_malloc_posix=no ;; + *) + gl_cv_func_malloc_posix=yes ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 +$as_echo "$gl_cv_func_malloc_posix" >&6; } + + + + + + if test "$gl_cv_func_malloc_posix" = yes; then + +$as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h + + else + REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 +$as_echo_n "checking whether malloc (0) returns nonnull... " >&6; } +if ${ac_cv_func_malloc_0_nonnull+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +void *p = malloc (0); + int result = !p; + free (p); + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_malloc_0_nonnull=yes +else + ac_cv_func_malloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } + case $ac_cv_func_malloc_0_nonnull in #( + *yes) : + gl_cv_func_malloc_0_nonnull=1 ;; #( + *) : + gl_cv_func_malloc_0_nonnull=0 ;; +esac + + +cat >>confdefs.h <<_ACEOF +#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull +_ACEOF + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_math_h='<'math.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_math_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_math_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'math.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_math_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_math_h + gl_cv_next_math_h='"'$gl_header'"' + else + gl_cv_next_math_h='<'math.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5 +$as_echo "$gl_cv_next_math_h" >&6; } + fi + NEXT_MATH_H=$gl_cv_next_math_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'math.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_math_h + fi + NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 +$as_echo_n "checking whether NAN macro works... " >&6; } +if ${gl_cv_header_math_nan_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +/* Solaris 10 has a broken definition of NAN. Other platforms + fail to provide NAN, or provide it only in C99 mode; this + test only needs to fail when NAN is provided but wrong. */ + float f = 1.0f; +#ifdef NAN + f = NAN; +#endif + return f == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_math_nan_works=yes +else + gl_cv_header_math_nan_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5 +$as_echo "$gl_cv_header_math_nan_works" >&6; } + if test $gl_cv_header_math_nan_works = no; then + REPLACE_NAN=1 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 +$as_echo_n "checking whether HUGE_VAL works... " >&6; } +if ${gl_cv_header_math_huge_val_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +/* Solaris 10 has a broken definition of HUGE_VAL. */ + double d = HUGE_VAL; + return d == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_math_huge_val_works=yes +else + gl_cv_header_math_huge_val_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5 +$as_echo "$gl_cv_header_math_huge_val_works" >&6; } + if test $gl_cv_header_math_huge_val_works = no; then + REPLACE_HUGE_VAL=1 + fi + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 +$as_echo_n "checking for a traditional japanese locale... " >&6; } +if ${gt_cv_locale_ja+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales + on Cygwin 1.5.x. */ + if (MB_CUR_MAX == 1) + return 1; + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Note that on native Windows, the Japanese locale is + # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we + # cannot use it here. + gt_cv_locale_ja=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the AIX locale name. + if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC-JP + else + # Test for the HP-UX, OSF/1, NetBSD locale name. + if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.eucJP + else + # Test for the IRIX, FreeBSD locale name. + if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC + else + # Test for the Solaris 7 locale name. + if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja + else + # Special test for NetBSD 1.6. + if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then + gt_cv_locale_ja=ja_JP.eucJP + else + # None found. + gt_cv_locale_ja=none + fi + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 +$as_echo "$gt_cv_locale_ja" >&6; } + LOCALE_JA=$gt_cv_locale_ja + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 +$as_echo_n "checking for a french Unicode locale... " >&6; } +if ${gt_cv_locale_fr_utf8+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if !(defined __BEOS__ || defined __HAIKU__) + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is + two bytes long, with UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 4 + || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') + return 1; +#endif +#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +#endif + return 0; +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=French_France.65001 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR.UTF-8 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr.UTF-8 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 +$as_echo "$gt_cv_locale_fr_utf8" >&6; } + LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 +$as_echo_n "checking for a transitional chinese locale... " >&6; } +if ${gt_cv_locale_zh_CN+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + /* Check whether a typical GB18030 multibyte sequence is recognized as a + single wide character. This excludes the GB2312 and GBK encodings. */ + if (mblen ("\203\062\332\066", 5) != 4) + return 1; + return 0; +#endif +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=Chinese_China.54936 + else + # None found. + gt_cv_locale_zh_CN=none + fi + ;; + solaris2.8) + # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are + # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. + # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. + gt_cv_locale_zh_CN=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the locale name without encoding suffix. + if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN.GB18030 + else + # None found. + gt_cv_locale_zh_CN=none + fi + fi + ;; + esac + else + # If there was a link error, due to mblen(), the system is so old that + # it certainly doesn't have a chinese locale. + gt_cv_locale_zh_CN=none + fi + rm -fr conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 +$as_echo "$gt_cv_locale_zh_CN" >&6; } + LOCALE_ZH_CN=$gt_cv_locale_zh_CN + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + + + + # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it + # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is + # irrelevant for anonymous mappings. + ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = xyes; then : + gl_have_mmap=yes +else + gl_have_mmap=no +fi + + + # Try to allow MAP_ANONYMOUS. + gl_have_mmap_anonymous=no + if test $gl_have_mmap = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 +$as_echo_n "checking for MAP_ANONYMOUS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANONYMOUS + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1; then : + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + if test $gl_have_mmap_anonymous != yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef MAP_ANON + I cannot identify this map +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cannot identify this map" >/dev/null 2>&1; then : + +$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h + + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 +$as_echo "$gl_have_mmap_anonymous" >&6; } + if test $gl_have_mmap_anonymous = yes; then + +$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h + + fi + fi + + + + + + + HAVE_MBSLEN=0; + HAVE_EXPLICIT_BZERO=1; + HAVE_FFSL=1; + HAVE_FFSLL=1; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_MEMSET_EXPLICIT=1; + HAVE_DECL_MEMRCHR=1; + HAVE_RAWMEMCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR_R=1; + HAVE_STRERRORNAME_NP=1; + HAVE_SIGABBREV_NP=1; + HAVE_SIGDESCR_NP=1; + HAVE_DECL_STRSIGNAL=1; + HAVE_STRVERSCMP=1; + REPLACE_FFSLL=0; + REPLACE_MEMCHR=0; + REPLACE_MEMMEM=0; + REPLACE_STPNCPY=0; + REPLACE_STRCHRNUL=0; + REPLACE_STRDUP=0; + REPLACE_STRNCAT=0; + REPLACE_STRNDUP=0; + REPLACE_STRNLEN=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; + REPLACE_STRTOK_R=0; + REPLACE_STRERROR=0; + REPLACE_STRERROR_R=0; + REPLACE_STRERRORNAME_NP=0; + REPLACE_STRSIGNAL=0; + UNDEFINE_STRTOK_R=0; + + + + + + + + + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # https://bugzilla.redhat.com/show_bug.cgi?id=499689 + # memchr should not dereference overestimated length after a match + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # memchr should cast the second argument to 'unsigned char'. + # This bug exists in Android 4.3. + # Assume that memchr works on platforms that lack mprotect. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 +$as_echo_n "checking whether memchr works... " >&6; } +if ${gl_cv_func_memchr_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_memchr_works="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_memchr_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SYS_MMAN_H +# include +# include +# include +# include +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +#endif + +int +main () +{ + + int result = 0; + char *fence = NULL; +#if HAVE_SYS_MMAN_H && HAVE_MPROTECT +# if HAVE_MAP_ANONYMOUS + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + const int fd = -1; +# else /* !HAVE_MAP_ANONYMOUS */ + const int flags = MAP_FILE | MAP_PRIVATE; + int fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd >= 0) +# endif + { + int pagesize = getpagesize (); + char *two_pages = + (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, + flags, fd, 0); + if (two_pages != (char *)(-1) + && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) + fence = two_pages + pagesize; + } +#endif + if (fence) + { + /* Test against bugs on glibc systems. */ + if (memchr (fence, 0, 0)) + result |= 1; + strcpy (fence - 9, "12345678"); + if (memchr (fence - 9, 0, 79) != fence - 1) + result |= 2; + if (memchr (fence - 1, 0, 3) != fence - 1) + result |= 4; + /* Test against bug on AIX 7.2. */ + if (memchr (fence - 4, '6', 16) != fence - 4) + result |= 8; + } + /* Test against bug on Android 4.3. */ + { + char input[3]; + input[0] = 'a'; + input[1] = 'b'; + input[2] = 'c'; + if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) + result |= 16; + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_memchr_works=yes +else + gl_cv_func_memchr_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 +$as_echo "$gl_cv_func_memchr_works" >&6; } + case "$gl_cv_func_memchr_works" in + *yes) ;; + *) REPLACE_MEMCHR=1 ;; + esac + + + + GL_GNULIB_EXPLICIT_BZERO=0 + + + + GL_GNULIB_FFSL=0 + + + + GL_GNULIB_FFSLL=0 + + + + GL_GNULIB_MEMCHR=0 + + + + GL_GNULIB_MEMMEM=0 + + + + GL_GNULIB_MEMPCPY=0 + + + + GL_GNULIB_MEMRCHR=0 + + + + GL_GNULIB_MEMSET_EXPLICIT=0 + + + + GL_GNULIB_RAWMEMCHR=0 + + + + GL_GNULIB_STPCPY=0 + + + + GL_GNULIB_STPNCPY=0 + + + + GL_GNULIB_STRCHRNUL=0 + + + + GL_GNULIB_STRDUP=0 + + + + GL_GNULIB_STRNCAT=0 + + + + GL_GNULIB_STRNDUP=0 + + + + GL_GNULIB_STRNLEN=0 + + + + GL_GNULIB_STRPBRK=0 + + + + GL_GNULIB_STRSEP=0 + + + + GL_GNULIB_STRSTR=0 + + + + GL_GNULIB_STRCASESTR=0 + + + + GL_GNULIB_STRTOK_R=0 + + + + GL_GNULIB_MBSLEN=0 + + + + GL_GNULIB_MBSNLEN=0 + + + + GL_GNULIB_MBSCHR=0 + + + + GL_GNULIB_MBSRCHR=0 + + + + GL_GNULIB_MBSSTR=0 + + + + GL_GNULIB_MBSCASECMP=0 + + + + GL_GNULIB_MBSNCASECMP=0 + + + + GL_GNULIB_MBSPCASECMP=0 + + + + GL_GNULIB_MBSCASESTR=0 + + + + GL_GNULIB_MBSCSPN=0 + + + + GL_GNULIB_MBSPBRK=0 + + + + GL_GNULIB_MBSSPN=0 + + + + GL_GNULIB_MBSSEP=0 + + + + GL_GNULIB_MBSTOK_R=0 + + + + GL_GNULIB_STRERROR=0 + + + + GL_GNULIB_STRERROR_R=0 + + + + GL_GNULIB_STRERRORNAME_NP=0 + + + + GL_GNULIB_SIGABBREV_NP=0 + + + + GL_GNULIB_SIGDESCR_NP=0 + + + + GL_GNULIB_STRSIGNAL=0 + + + + GL_GNULIB_STRVERSCMP=0 + + + + GL_GNULIB_MDA_MEMCCPY=1 + + + + GL_GNULIB_MDA_STRDUP=1 + + + +ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" +if test "x$ac_cv_have_decl_memrchr" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MEMRCHR $ac_have_decl +_ACEOF + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 +$as_echo_n "checking whether defines MIN and MAX... " >&6; } +if ${gl_cv_minmax_in_limits_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = MIN (42, 17); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_minmax_in_limits_h=yes +else + gl_cv_minmax_in_limits_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_limits_h" >&5 +$as_echo "$gl_cv_minmax_in_limits_h" >&6; } + if test $gl_cv_minmax_in_limits_h = yes; then + +$as_echo "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h + + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 +$as_echo_n "checking whether defines MIN and MAX... " >&6; } +if ${gl_cv_minmax_in_sys_param_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = MIN (42, 17); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_minmax_in_sys_param_h=yes +else + gl_cv_minmax_in_sys_param_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_sys_param_h" >&5 +$as_echo "$gl_cv_minmax_in_sys_param_h" >&6; } + if test $gl_cv_minmax_in_sys_param_h = yes; then + +$as_echo "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h + + fi + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 +$as_echo_n "checking for O_CLOEXEC... " >&6; } +if ${gl_cv_macro_O_CLOEXEC+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef O_CLOEXEC + choke me; + #endif + +int +main () +{ +return O_CLOEXEC; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_macro_O_CLOEXEC=yes +else + gl_cv_macro_O_CLOEXEC=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 +$as_echo "$gl_cv_macro_O_CLOEXEC" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 +$as_echo_n "checking for promoted mode_t type... " >&6; } +if ${gl_cv_promoted_mode_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_promoted_mode_t='int' +else + gl_cv_promoted_mode_t='mode_t' +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 +$as_echo "$gl_cv_promoted_mode_t" >&6; } + +cat >>confdefs.h <<_ACEOF +#define PROMOTED_MODE_T $gl_cv_promoted_mode_t +_ACEOF + + + + + + + + HAVE_POSIX_SIGNALBLOCKING=1; + HAVE_PTHREAD_SIGMASK=1; + HAVE_RAISE=1; + HAVE_SIGSET_T=1; + HAVE_SIGINFO_T=1; + HAVE_SIGACTION=1; + HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; + + HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; + + HAVE_SIGHANDLER_T=1; + REPLACE_PTHREAD_SIGMASK=0; + REPLACE_RAISE=0; + + + ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" " + #include + /* Mingw defines sigset_t not in , but in . */ + #include + +" +if test "x$ac_cv_type_sigset_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGSET_T 1 +_ACEOF + +gl_cv_type_sigset_t=yes +else + gl_cv_type_sigset_t=no +fi + + if test $gl_cv_type_sigset_t != yes; then + HAVE_SIGSET_T=0 + fi + + + + GL_GNULIB_PTHREAD_SIGMASK=0 + + + + GL_GNULIB_RAISE=0 + + + + GL_GNULIB_SIGNAL_H_SIGPIPE=0 + + + + GL_GNULIB_SIGPROCMASK=0 + + + + GL_GNULIB_SIGACTION=0 + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } +if ${ac_cv_type_uid_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then : + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +$as_echo "#define uid_t int" >>confdefs.h + + +$as_echo "#define gid_t int" >>confdefs.h + +fi + +: + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_signal_h='<'signal.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_signal_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'signal.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_signal_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_signal_h + gl_cv_next_signal_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5 +$as_echo "$gl_cv_next_signal_h" >&6; } + fi + NEXT_SIGNAL_H=$gl_cv_next_signal_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'signal.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_signal_h + fi + NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive + + + + + +# AIX declares sig_atomic_t to already include volatile, and C89 compilers +# then choke on 'volatile sig_atomic_t'. C99 requires that it compile. + ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " +#include + +" +if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then : + +else + HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 +fi + + + + + + + + ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" " +#include + +" +if test "x$ac_cv_type_sighandler_t" = xyes; then : + +else + HAVE_SIGHANDLER_T=0 +fi + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 +$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } +if ${gl_cv_func_snprintf_retval_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; + darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on OpenBSD >= 3.9. + openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) + gl_cv_func_snprintf_retval_c99="guessing no";; + openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Solaris >= 2.10. + solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; + solaris*) gl_cv_func_printf_sizes_c99="guessing no";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; + aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_retval_c99="guessing no";; + netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_snprintf_retval_c99="guessing yes" +else + gl_cv_func_snprintf_retval_c99="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char buf[100]; +int main () +{ + strcpy (buf, "ABCDEF"); + if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) + return 1; + if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) + return 2; + if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) + return 3; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_retval_c99=yes +else + gl_cv_func_snprintf_retval_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5 +$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; } + +ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" +if test "x$ac_cv_have_decl_snprintf" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SNPRINTF $ac_have_decl +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 +$as_echo_n "checking for stdint.h... " >&6; } +if ${gl_cv_header_stdint_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_stdint_h=yes +else + gl_cv_header_stdint_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 +$as_echo "$gl_cv_header_stdint_h" >&6; } + if test $gl_cv_header_stdint_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 +$as_echo_n "checking for inttypes.h... " >&6; } +if ${gl_cv_header_inttypes_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_inttypes_h=yes +else + gl_cv_header_inttypes_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 +$as_echo "$gl_cv_header_inttypes_h" >&6; } + if test $gl_cv_header_inttypes_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports size specifiers as in C99" >&5 +$as_echo_n "checking whether printf supports size specifiers as in C99... " >&6; } +if ${gl_cv_func_printf_sizes_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; + midnightbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; + darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on OpenBSD >= 3.9. + openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) + gl_cv_func_printf_sizes_c99="guessing no";; + openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on Solaris >= 2.10. + solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; + solaris*) gl_cv_func_printf_sizes_c99="guessing no";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_printf_sizes_c99="guessing no";; + netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_printf_sizes_c99="guessing yes" +else + gl_cv_func_printf_sizes_c99="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_sizes_c99="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +# include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +# include +#endif +static char buf[100]; +int main () +{ + int result = 0; +#if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX + buf[0] = '\0'; + if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0 + || strcmp (buf, "12345671 33") != 0) + result |= 1; +#else + result |= 1; +#endif + buf[0] = '\0'; + if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0 + || strcmp (buf, "12345672 33") != 0) + result |= 2; + buf[0] = '\0'; + if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0 + || strcmp (buf, "12345673 33") != 0) + result |= 4; + buf[0] = '\0'; + if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0 + || strcmp (buf, "1.5 33") != 0) + result |= 8; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_sizes_c99=yes +else + gl_cv_func_printf_sizes_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_sizes_c99" >&5 +$as_echo "$gl_cv_func_printf_sizes_c99" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports 'long double' arguments" >&5 +$as_echo_n "checking whether printf supports 'long double' arguments... " >&6; } +if ${gl_cv_func_printf_long_double+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on BeOS. + beos*) gl_cv_func_printf_long_double="guessing no";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_long_double="guessing yes";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_printf_long_double="guessing yes" +else + gl_cv_func_printf_long_double="guessing no" +fi +rm -f conftest* + + ;; + *) gl_cv_func_printf_long_double="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[10000]; +int main () +{ + int result = 0; + buf[0] = '\0'; + if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.750000 33") != 0) + result |= 1; + buf[0] = '\0'; + if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.750000e+00 33") != 0) + result |= 2; + buf[0] = '\0'; + if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 + || strcmp (buf, "1.75 33") != 0) + result |= 4; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_long_double=yes +else + gl_cv_func_printf_long_double=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_long_double" >&5 +$as_echo "$gl_cv_func_printf_long_double" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'double' arguments" >&5 +$as_echo_n "checking whether printf supports infinite 'double' arguments... " >&6; } +if ${gl_cv_func_printf_infinite+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on FreeBSD >= 6. + freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; + midnightbsd*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; + darwin*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on HP-UX >= 11. + hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";; + hpux*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_printf_infinite="guessing no";; + netbsd*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on OpenBSD >= 6.0. + openbsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; + openbsd*) gl_cv_func_printf_infinite="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_infinite="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_infinite="guessing no";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_printf_infinite="guessing yes" +else + gl_cv_func_printf_infinite="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_infinite="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static int +strisnan (const char *string, size_t start_index, size_t end_index) +{ + if (start_index < end_index) + { + if (string[start_index] == '-') + start_index++; + if (start_index + 3 <= end_index + && memcmp (string + start_index, "nan", 3) == 0) + { + start_index += 3; + if (start_index == end_index + || (string[start_index] == '(' && string[end_index - 1] == ')')) + return 1; + } + } + return 0; +} +static int +have_minus_zero () +{ + static double plus_zero = 0.0; + double minus_zero = - plus_zero; + return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; +} +static char buf[10000]; +static double zero = 0.0; +int main () +{ + int result = 0; + if (sprintf (buf, "%f", 1.0 / zero) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 1; + if (sprintf (buf, "%f", -1.0 / zero) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 1; + if (sprintf (buf, "%f", zero / zero) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + if (sprintf (buf, "%e", 1.0 / zero) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 4; + if (sprintf (buf, "%e", -1.0 / zero) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 4; + if (sprintf (buf, "%e", zero / zero) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 8; + if (sprintf (buf, "%g", 1.0 / zero) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 16; + if (sprintf (buf, "%g", -1.0 / zero) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 16; + if (sprintf (buf, "%g", zero / zero) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 32; + /* This test fails on HP-UX 10.20. */ + if (have_minus_zero ()) + if (sprintf (buf, "%g", - zero) < 0 + || strcmp (buf, "-0") != 0) + result |= 64; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_infinite=yes +else + gl_cv_func_printf_infinite=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite" >&5 +$as_echo "$gl_cv_func_printf_infinite" >&6; } + + + + + + + if test -n "$gl_printf_safe"; then + +$as_echo "#define CHECK_PRINTF_SAFE 1" >>confdefs.h + + fi + case "$gl_cv_func_printf_long_double" in + *yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'long double' arguments" >&5 +$as_echo_n "checking whether printf supports infinite 'long double' arguments... " >&6; } +if ${gl_cv_func_printf_infinite_long_double+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_cpu" in + # Guess no on ia64, x86_64, i386. + ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; + *) + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";; + # Guess yes on FreeBSD >= 6. + freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; + midnightbsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; + # Guess yes on HP-UX >= 11. + hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; + hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; + # Guess yes on OpenBSD >= 6.0. + openbsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; + openbsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_printf_infinite_long_double="guessing yes" +else + gl_cv_func_printf_infinite_long_double="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_infinite_long_double="$gl_cross_guess_normal";; + esac + ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif + +#include +#include +#include +static int +strisnan (const char *string, size_t start_index, size_t end_index) +{ + if (start_index < end_index) + { + if (string[start_index] == '-') + start_index++; + if (start_index + 3 <= end_index + && memcmp (string + start_index, "nan", 3) == 0) + { + start_index += 3; + if (start_index == end_index + || (string[start_index] == '(' && string[end_index - 1] == ')')) + return 1; + } + } + return 0; +} +static char buf[10000]; +static long double zeroL = 0.0L; +int main () +{ + int result = 0; + nocrash_init(); + if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Lf", zeroL / zeroL) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 1; + if (sprintf (buf, "%Le", 1.0L / zeroL) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Le", -1.0L / zeroL) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Le", zeroL / zeroL) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 1; + if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0 + || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0 + || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) + result |= 1; + if (sprintf (buf, "%Lg", zeroL / zeroL) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 1; +#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE +/* Representation of an 80-bit 'long double' as an initializer for a sequence + of 'unsigned int' words. */ +# ifdef WORDS_BIGENDIAN +# define LDBL80_WORDS(exponent,manthi,mantlo) \ + { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ + ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16), \ + (unsigned int) (mantlo) << 16 \ + } +# else +# define LDBL80_WORDS(exponent,manthi,mantlo) \ + { mantlo, manthi, exponent } +# endif + { /* Quiet NaN. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + } + { + /* Signalling NaN. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) + result |= 2; + } + { /* Pseudo-NaN. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) <= 0) + result |= 4; + if (sprintf (buf, "%Le", x.value) <= 0) + result |= 4; + if (sprintf (buf, "%Lg", x.value) <= 0) + result |= 4; + } + { /* Pseudo-Infinity. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) <= 0) + result |= 8; + if (sprintf (buf, "%Le", x.value) <= 0) + result |= 8; + if (sprintf (buf, "%Lg", x.value) <= 0) + result |= 8; + } + { /* Pseudo-Zero. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) <= 0) + result |= 16; + if (sprintf (buf, "%Le", x.value) <= 0) + result |= 16; + if (sprintf (buf, "%Lg", x.value) <= 0) + result |= 16; + } + { /* Unnormalized number. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) <= 0) + result |= 32; + if (sprintf (buf, "%Le", x.value) <= 0) + result |= 32; + if (sprintf (buf, "%Lg", x.value) <= 0) + result |= 32; + } + { /* Pseudo-Denormal. */ + static union { unsigned int word[4]; long double value; } x = + { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; + if (sprintf (buf, "%Lf", x.value) <= 0) + result |= 64; + if (sprintf (buf, "%Le", x.value) <= 0) + result |= 64; + if (sprintf (buf, "%Lg", x.value) <= 0) + result |= 64; + } +#endif + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_infinite_long_double=yes +else + gl_cv_func_printf_infinite_long_double=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite_long_double" >&5 +$as_echo "$gl_cv_func_printf_infinite_long_double" >&6; } + ;; + *) + gl_cv_func_printf_infinite_long_double="irrelevant" + ;; + esac + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'a' and 'A' directives" >&5 +$as_echo_n "checking whether printf supports the 'a' and 'A' directives... " >&6; } +if ${gl_cv_func_printf_directive_a+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc >= 2.5 systems. + *-gnu* | gnu*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__ + BZ2908 + #endif + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "BZ2908" >/dev/null 2>&1; then : + gl_cv_func_printf_directive_a="guessing yes" +else + gl_cv_func_printf_directive_a="guessing no" +fi +rm -f conftest* + + ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_directive_a="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_directive_a="guessing no";; + # Guess no on native Windows. + mingw*) gl_cv_func_printf_directive_a="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_directive_a="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[100]; +static double zero = 0.0; +int main () +{ + int result = 0; + if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0 + || (strcmp (buf, "0x1.922p+1 33") != 0 + && strcmp (buf, "0x3.244p+0 33") != 0 + && strcmp (buf, "0x6.488p-1 33") != 0 + && strcmp (buf, "0xc.91p-2 33") != 0)) + result |= 1; + if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0 + || (strcmp (buf, "-0X1.922P+1 33") != 0 + && strcmp (buf, "-0X3.244P+0 33") != 0 + && strcmp (buf, "-0X6.488P-1 33") != 0 + && strcmp (buf, "-0XC.91P-2 33") != 0)) + result |= 2; + /* This catches a FreeBSD 13.0 bug: it doesn't round. */ + if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 + || (strcmp (buf, "0x1.83p+0 33") != 0 + && strcmp (buf, "0x3.05p-1 33") != 0 + && strcmp (buf, "0x6.0ap-2 33") != 0 + && strcmp (buf, "0xc.14p-3 33") != 0)) + result |= 4; + /* This catches a Mac OS X 10.12.4 (Darwin 16.5) bug: it doesn't round. */ + if (sprintf (buf, "%.0a %d", 1.51, 33, 44, 55) < 0 + || (strcmp (buf, "0x2p+0 33") != 0 + && strcmp (buf, "0x3p-1 33") != 0 + && strcmp (buf, "0x6p-2 33") != 0 + && strcmp (buf, "0xcp-3 33") != 0)) + result |= 4; + /* This catches a FreeBSD 6.1 bug. See + */ + if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 + || buf[0] == '0') + result |= 8; + /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */ + if (sprintf (buf, "%.1a", 1.999) < 0 + || (strcmp (buf, "0x1.0p+1") != 0 + && strcmp (buf, "0x2.0p+0") != 0 + && strcmp (buf, "0x4.0p-1") != 0 + && strcmp (buf, "0x8.0p-2") != 0)) + result |= 16; + /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a + glibc 2.4 bug . */ + if (sprintf (buf, "%.1La", 1.999L) < 0 + || (strcmp (buf, "0x1.0p+1") != 0 + && strcmp (buf, "0x2.0p+0") != 0 + && strcmp (buf, "0x4.0p-1") != 0 + && strcmp (buf, "0x8.0p-2") != 0)) + result |= 32; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_directive_a=yes +else + gl_cv_func_printf_directive_a=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_a" >&5 +$as_echo "$gl_cv_func_printf_directive_a" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'F' directive" >&5 +$as_echo_n "checking whether printf supports the 'F' directive... " >&6; } +if ${gl_cv_func_printf_directive_f+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_directive_f="guessing yes";; + # Guess yes on FreeBSD >= 6. + freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; + midnightbsd*) gl_cv_func_printf_directive_f="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; + darwin*) gl_cv_func_printf_directive_f="guessing yes";; + # Guess yes on OpenBSD >= 6.0. + openbsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; + openbsd*) gl_cv_func_printf_directive_f="guessing yes";; + # Guess yes on Solaris >= 2.10. + solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";; + solaris*) gl_cv_func_printf_directive_f="guessing no";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_directive_f="guessing no";; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_printf_directive_f="guessing yes" +else + gl_cv_func_printf_directive_f="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_directive_f="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[100]; +static double zero = 0.0; +int main () +{ + int result = 0; + if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0 + || strcmp (buf, "1234567.000000 33") != 0) + result |= 1; + if (sprintf (buf, "%F", 1.0 / zero) < 0 + || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) + result |= 2; + /* This catches a Cygwin 1.5.x bug. */ + if (sprintf (buf, "%.F", 1234.0) < 0 + || strcmp (buf, "1234") != 0) + result |= 4; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_directive_f=yes +else + gl_cv_func_printf_directive_f=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_f" >&5 +$as_echo "$gl_cv_func_printf_directive_f" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'n' directive" >&5 +$as_echo_n "checking whether printf supports the 'n' directive... " >&6; } +if ${gl_cv_func_printf_directive_n+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on glibc when _FORTIFY_SOURCE >= 2. + *-gnu* | gnu*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if _FORTIFY_SOURCE >= 2 + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_printf_directive_n="guessing yes" +else + gl_cv_func_printf_directive_n="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_directive_n="guessing no";; + # Guess no on native Windows. + mingw*) gl_cv_func_printf_directive_n="guessing no";; + *) gl_cv_func_printf_directive_n="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#ifdef _MSC_VER +#include +/* See page about "Parameter Validation" on msdn.microsoft.com. + + */ +static void cdecl +invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, unsigned int line, + uintptr_t dummy) +{ + exit (1); +} +#endif +static char fmtstring[10]; +static char buf[100]; +int main () +{ + int count = -1; +#ifdef _MSC_VER + _set_invalid_parameter_handler (invalid_parameter_handler); +#endif + /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) + support %n in format strings in read-only memory but not in writable + memory. */ + strcpy (fmtstring, "%d %n"); + if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0 + || strcmp (buf, "123 ") != 0 + || count != 4) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_directive_n=yes +else + gl_cv_func_printf_directive_n=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_n" >&5 +$as_echo "$gl_cv_func_printf_directive_n" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'ls' directive" >&5 +$as_echo_n "checking whether printf supports the 'ls' directive... " >&6; } +if ${gl_cv_func_printf_directive_ls+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on OpenBSD >= 6.0. + openbsd[1-5].*) gl_cv_func_printf_directive_ls="guessing no";; + openbsd*) gl_cv_func_printf_directive_ls="guessing yes";; + irix*) gl_cv_func_printf_directive_ls="guessing no";; + solaris*) gl_cv_func_printf_directive_ls="guessing no";; + cygwin*) gl_cv_func_printf_directive_ls="guessing no";; + beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_directive_ls="guessing no";; + # Guess yes on native Windows. + mingw*) gl_cv_func_printf_directive_ls="guessing yes";; + *) gl_cv_func_printf_directive_ls="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + char buf[100]; + /* Test whether %ls works at all. + This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on + Cygwin 1.5. */ + { + static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%ls", wstring) < 0 + || strcmp (buf, "abc") != 0) + result |= 1; + } + /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an + assertion failure inside libc), but not on OpenBSD 4.0. */ + { + static const wchar_t wstring[] = { 'a', 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%ls", wstring) < 0 + || strcmp (buf, "a") != 0) + result |= 2; + } + /* Test whether precisions in %ls are supported as specified in ISO C 99 + section 7.19.6.1: + "If a precision is specified, no more than that many bytes are written + (including shift sequences, if any), and the array shall contain a + null wide character if, to equal the multibyte character sequence + length given by the precision, the function would need to access a + wide character one past the end of the array." + This test fails on Solaris 10. */ + { + static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%.2ls", wstring) < 0 + || strcmp (buf, "ab") != 0) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_directive_ls=yes +else + gl_cv_func_printf_directive_ls=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_ls" >&5 +$as_echo "$gl_cv_func_printf_directive_ls" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the grouping flag" >&5 +$as_echo_n "checking whether printf supports the grouping flag... " >&6; } +if ${gl_cv_func_printf_flag_grouping+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; + netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";; + # Guess no on native Windows. + mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; + *) gl_cv_func_printf_flag_grouping="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[100]; +int main () +{ + if (sprintf (buf, "%'d %d", 1234567, 99) < 0 + || buf[strlen (buf) - 1] != '9') + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_flag_grouping=yes +else + gl_cv_func_printf_flag_grouping=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_grouping" >&5 +$as_echo "$gl_cv_func_printf_flag_grouping" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the left-adjust flag correctly" >&5 +$as_echo_n "checking whether printf supports the left-adjust flag correctly... " >&6; } +if ${gl_cv_func_printf_flag_leftadjust+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on HP-UX 11. + hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; + # Guess no on HP-UX 10 and older. + hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";; + # Guess yes on native Windows. + mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";; + # Guess yes otherwise. + *) gl_cv_func_printf_flag_leftadjust="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[100]; +int main () +{ + /* Check that a '-' flag is not annihilated by a negative width. */ + if (sprintf (buf, "a%-*sc", -3, "b") < 0 + || strcmp (buf, "ab c") != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_flag_leftadjust=yes +else + gl_cv_func_printf_flag_leftadjust=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_leftadjust" >&5 +$as_echo "$gl_cv_func_printf_flag_leftadjust" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the zero flag correctly" >&5 +$as_echo_n "checking whether printf supports the zero flag correctly... " >&6; } +if ${gl_cv_func_printf_flag_zero+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_flag_zero="guessing no";; + # Guess no on native Windows. + mingw*) gl_cv_func_printf_flag_zero="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_flag_zero="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[100]; +static double zero = 0.0; +int main () +{ + if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 + || (strcmp (buf, " inf") != 0 + && strcmp (buf, " infinity") != 0)) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_flag_zero=yes +else + gl_cv_func_printf_flag_zero=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_zero" >&5 +$as_echo "$gl_cv_func_printf_flag_zero" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports large precisions" >&5 +$as_echo_n "checking whether printf supports large precisions... " >&6; } +if ${gl_cv_func_printf_precision+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess no only on Solaris, native Windows, and BeOS systems. + solaris*) gl_cv_func_printf_precision="guessing no" ;; + mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; + beos*) gl_cv_func_printf_precision="guessing no" ;; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_precision="guessing yes" ;; + *) gl_cv_func_printf_precision="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static char buf[5000]; +int main () +{ + int result = 0; +#ifdef __BEOS__ + /* On BeOS, this would crash and show a dialog box. Avoid the crash. */ + return 1; +#endif + if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3) + result |= 1; + if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5) + result |= 2; + if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5 + || buf[0] != '1') + result |= 4; + if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5 + || buf[0] != '1') + result |= 4; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_precision=yes +else + gl_cv_func_printf_precision=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_precision" >&5 +$as_echo "$gl_cv_func_printf_precision" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf survives out-of-memory conditions" >&5 +$as_echo_n "checking whether printf survives out-of-memory conditions... " >&6; } +if ${gl_cv_func_printf_enomem+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_cv_func_printf_enomem="guessing no" + if test "$cross_compiling" = no; then + if test $APPLE_UNIVERSAL_BUILD = 0; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif + +#include +#include +#include +#include +#include +int main() +{ + struct rlimit limit; + int ret; + nocrash_init (); + /* Some printf implementations allocate temporary space with malloc. */ + /* On BSD systems, malloc() is limited by RLIMIT_DATA. */ +#ifdef RLIMIT_DATA + if (getrlimit (RLIMIT_DATA, &limit) < 0) + return 77; + if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) + limit.rlim_max = 5000000; + limit.rlim_cur = limit.rlim_max; + if (setrlimit (RLIMIT_DATA, &limit) < 0) + return 77; +#endif + /* On Linux systems, malloc() is limited by RLIMIT_AS. */ +#ifdef RLIMIT_AS + if (getrlimit (RLIMIT_AS, &limit) < 0) + return 77; + if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) + limit.rlim_max = 5000000; + limit.rlim_cur = limit.rlim_max; + if (setrlimit (RLIMIT_AS, &limit) < 0) + return 77; +#endif + /* Some printf implementations allocate temporary space on the stack. */ +#ifdef RLIMIT_STACK + if (getrlimit (RLIMIT_STACK, &limit) < 0) + return 77; + if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) + limit.rlim_max = 5000000; + limit.rlim_cur = limit.rlim_max; + if (setrlimit (RLIMIT_STACK, &limit) < 0) + return 77; +#endif + ret = printf ("%.5000000f", 1.0); + return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + (./conftest 2>&5 + result=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $result" >&5 + if test $result != 0 && test $result != 77; then result=1; fi + exit $result + ) >/dev/null 2>/dev/null + case $? in + 0) gl_cv_func_printf_enomem="yes" ;; + 77) gl_cv_func_printf_enomem="guessing no" ;; + *) gl_cv_func_printf_enomem="no" ;; + esac + else + gl_cv_func_printf_enomem="guessing no" + fi + rm -fr conftest* + else + gl_cv_func_printf_enomem="guessing no" + fi + fi + if test "$gl_cv_func_printf_enomem" = "guessing no"; then + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Solaris. + solaris*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on AIX. + aix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on HP-UX/hppa. + hpux*) case "$host_cpu" in + hppa*) gl_cv_func_printf_enomem="guessing yes";; + *) gl_cv_func_printf_enomem="guessing no";; + esac + ;; + # Guess yes on IRIX. + irix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on OSF/1. + osf*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Haiku. + haiku*) gl_cv_func_printf_enomem="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_printf_enomem="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_printf_enomem="$gl_cross_guess_normal";; + esac + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_enomem" >&5 +$as_echo "$gl_cv_func_printf_enomem" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf truncates the result as in C99" >&5 +$as_echo_n "checking whether snprintf truncates the result as in C99... " >&6; } +if ${gl_cv_func_snprintf_truncation_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; + darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on OpenBSD >= 3.9. + openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; + aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on HP-UX >= 11. + hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; + hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on OSF/1 >= 5. + osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; + osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_truncation_c99="guessing no";; + netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + # Guess no on native Windows. + mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char buf[100]; +int main () +{ + strcpy (buf, "ABCDEF"); + my_snprintf (buf, 3, "%d %d", 4567, 89); + if (memcmp (buf, "45\0DEF", 6) != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_truncation_c99=yes +else + gl_cv_func_snprintf_truncation_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_truncation_c99" >&5 +$as_echo "$gl_cv_func_snprintf_truncation_c99" >&6; } + + + + case "$gl_cv_func_printf_long_double" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + + + + + if test $ac_cv_header_features_h = yes; then + HAVE_FEATURES_H=1 + else + HAVE_FEATURES_H=0 + fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 +$as_echo_n "checking for intmax_t... " >&6; } +if ${gt_cv_c_intmax_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +#include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +#include +#endif + +int +main () +{ +intmax_t x = -1; return !x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_c_intmax_t=yes +else + gt_cv_c_intmax_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 +$as_echo "$gt_cv_c_intmax_t" >&6; } + if test $gt_cv_c_intmax_t = yes; then + +$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h + + else + +cat >>confdefs.h <<_ACEOF +#define intmax_t long long +_ACEOF + + fi + + + + + + for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include +" +if test "x$ac_cv_have_decl__snprintf" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF $ac_have_decl +_ACEOF + + + + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + +$as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_func_snprintf_truncation_c99" in + *yes) + +$as_echo "#define HAVE_SNPRINTF_TRUNCATION_C99 1" >>confdefs.h + + ;; + esac + + + + + + + +ac_fn_c_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes_default" +if test "x$ac_cv_have_decl_fcloseall" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FCLOSEALL $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "getw" "ac_cv_have_decl_getw" "$ac_includes_default" +if test "x$ac_cv_have_decl_getw" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETW $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "putw" "ac_cv_have_decl_putw" "$ac_includes_default" +if test "x$ac_cv_have_decl_putw" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PUTW $ac_have_decl +_ACEOF + + + + + $as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdio_h='<'stdio.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_stdio_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdio.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdio_h + gl_cv_next_stdio_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 +$as_echo "$gl_cv_next_stdio_h" >&6; } + fi + NEXT_STDIO_H=$gl_cv_next_stdio_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdio_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 +$as_echo_n "checking which flavor of printf attribute matches inttypes macros... " >&6; } +if ${gl_cv_func_printf_attribute_flavor+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define __STDC_FORMAT_MACROS 1 + #include + #include + /* For non-mingw systems, compilation will trivially succeed. + For mingw, compilation will succeed for older mingw (system + printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) + extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; + #endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_printf_attribute_flavor=system +else + gl_cv_func_printf_attribute_flavor=gnu +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 +$as_echo "$gl_cv_func_printf_attribute_flavor" >&6; } + if test "$gl_cv_func_printf_attribute_flavor" = gnu; then + +$as_echo "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h + + fi + + + + + + + + + + + + + + if test $ac_cv_have_decl_fcloseall = no; then + HAVE_DECL_FCLOSEALL=0 + fi + + + if test $ac_cv_have_decl_getw = no; then + HAVE_DECL_GETW=0 + fi + + + if test $ac_cv_have_decl_putw = no; then + HAVE_DECL_PUTW=0 + fi + +ac_fn_c_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" +if test "x$ac_cv_have_decl_ecvt" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ECVT $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default" +if test "x$ac_cv_have_decl_fcvt" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FCVT $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default" +if test "x$ac_cv_have_decl_gcvt" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GCVT $ac_have_decl +_ACEOF + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdlib_h='<'stdlib.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_stdlib_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdlib.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdlib_h + gl_cv_next_stdlib_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 +$as_echo "$gl_cv_next_stdlib_h" >&6; } + fi + NEXT_STDLIB_H=$gl_cv_next_stdlib_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdlib.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdlib_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive + + + + + + + + + + + + + if test $ac_cv_have_decl_ecvt = no; then + HAVE_DECL_ECVT=0 + fi + + if test $ac_cv_have_decl_fcvt = no; then + HAVE_DECL_FCVT=0 + fi + + if test $ac_cv_have_decl_gcvt = no; then + HAVE_DECL_GCVT=0 + fi + + + HAVE_FFS=1; + HAVE_STRCASECMP=1; + HAVE_DECL_STRNCASECMP=1; + +ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" +if test "x$ac_cv_have_decl_strdup" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRDUP $ac_have_decl +_ACEOF + + + REPLACE_STRERROR_0=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 +$as_echo_n "checking whether strerror(0) succeeds... " >&6; } +if ${gl_cv_func_strerror_0_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +int result = 0; + char *str; + errno = 0; + str = strerror (0); + if (!*str) result |= 1; + if (errno) result |= 2; + if (strstr (str, "nknown") || strstr (str, "ndefined")) + result |= 4; + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_strerror_0_works=yes +else + gl_cv_func_strerror_0_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 +$as_echo "$gl_cv_func_strerror_0_works" >&6; } + case "$gl_cv_func_strerror_0_works" in + *yes) ;; + *) + REPLACE_STRERROR_0=1 + +$as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h + + ;; + esac + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_string_h='<'string.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_string_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'string.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_string_h + gl_cv_next_string_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 +$as_echo "$gl_cv_next_string_h" >&6; } + fi + NEXT_STRING_H=$gl_cv_next_string_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'string.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_string_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive + + + + + + + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_strings_h='<'strings.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_strings_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_strings_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'strings.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_strings_h + gl_cv_next_strings_h='"'$gl_header'"' + else + gl_cv_next_strings_h='<'strings.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5 +$as_echo "$gl_cv_next_strings_h" >&6; } + fi + NEXT_STRINGS_H=$gl_cv_next_strings_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'strings.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_strings_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_strings_h = yes; then + HAVE_STRINGS_H=1 + else + HAVE_STRINGS_H=0 + fi + + + + + + + + + GL_GNULIB_FFS=0 + + + +ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" +if test "x$ac_cv_have_decl_strnlen" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRNLEN $ac_have_decl +_ACEOF + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_random_h='<'sys/random.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_sys_random_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_sys_random_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/random.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_random_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_random_h + gl_cv_next_sys_random_h='"'$gl_header'"' + else + gl_cv_next_sys_random_h='<'sys/random.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_random_h" >&5 +$as_echo "$gl_cv_next_sys_random_h" >&6; } + fi + NEXT_SYS_RANDOM_H=$gl_cv_next_sys_random_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/random.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_random_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_random_h = yes; then + HAVE_SYS_RANDOM_H=1 + else + HAVE_SYS_RANDOM_H=0 + fi + + + + if test $ac_cv_header_sys_random_h = yes; then + UNISTD_H_HAVE_SYS_RANDOM_H=1 + fi + + + + + + + + + + + + + + + + + +$as_echo "#define _USE_STD_STAT 1" >>confdefs.h + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_types_h='<'sys/types.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_sys_types_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/types.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_types_h + gl_cv_next_sys_types_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 +$as_echo "$gl_cv_next_sys_types_h" >&6; } + fi + NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/types.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_types_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive + + + + + + + + + + + + + WINDOWS_STAT_INODES=0 + + + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_wait_h='<'sys/wait.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_sys_wait_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_sys_wait_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'sys/wait.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_sys_wait_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_sys_wait_h + gl_cv_next_sys_wait_h='"'$gl_header'"' + else + gl_cv_next_sys_wait_h='<'sys/wait.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_wait_h" >&5 +$as_echo "$gl_cv_next_sys_wait_h" >&6; } + fi + NEXT_SYS_WAIT_H=$gl_cv_next_sys_wait_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/wait.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_wait_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H=$gl_next_as_first_directive + + + + + + + + + + + + + + GL_GNULIB_WAITPID=0 + + + + + HAVE_DECL_LOCALTIME_R=1; + HAVE_NANOSLEEP=1; + HAVE_STRPTIME=1; + HAVE_TIMEGM=1; + HAVE_TIMESPEC_GET=1; + HAVE_TIMESPEC_GETRES=1; + HAVE_TIMEZONE_T=0; + REPLACE_CTIME=GNULIB_PORTCHECK; + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; + REPLACE_MKTIME=GNULIB_PORTCHECK; + REPLACE_NANOSLEEP=GNULIB_PORTCHECK; + REPLACE_STRFTIME=GNULIB_PORTCHECK; + REPLACE_TIMEGM=GNULIB_PORTCHECK; + REPLACE_TZSET=GNULIB_PORTCHECK; + + : ${GNULIB_GETTIMEOFDAY=0}; + REPLACE_GMTIME=0; + REPLACE_LOCALTIME=0; + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +$as_echo_n "checking for struct timespec in ... " >&6; } +if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timespec_in_time_h=yes +else + gl_cv_sys_struct_timespec_in_time_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } + + TIME_H_DEFINES_STRUCT_TIMESPEC=0 + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 + UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 + if test $gl_cv_sys_struct_timespec_in_time_h = yes; then + TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +$as_echo_n "checking for struct timespec in ... " >&6; } +if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timespec_in_sys_time_h=yes +else + gl_cv_sys_struct_timespec_in_sys_time_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +$as_echo_n "checking for struct timespec in ... " >&6; } +if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timespec_in_pthread_h=yes +else + gl_cv_sys_struct_timespec_in_pthread_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 +$as_echo_n "checking for struct timespec in ... " >&6; } +if ${gl_cv_sys_struct_timespec_in_unistd_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +static struct timespec x; x.tv_sec = x.tv_nsec; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_sys_struct_timespec_in_unistd_h=yes +else + gl_cv_sys_struct_timespec_in_unistd_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } + if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then + UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 + fi + fi + fi + fi + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_time_h='<'time.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_time_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'time.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_time_h + gl_cv_next_time_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 +$as_echo "$gl_cv_next_time_h" >&6; } + fi + NEXT_TIME_H=$gl_cv_next_time_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in " >&5 +$as_echo_n "checking for TIME_UTC in ... " >&6; } +if ${gl_cv_time_h_has_TIME_UTC+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +static int x = TIME_UTC; x++; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_time_h_has_TIME_UTC=yes +else + gl_cv_time_h_has_TIME_UTC=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_h_has_TIME_UTC" >&5 +$as_echo "$gl_cv_time_h_has_TIME_UTC" >&6; } + if test $gl_cv_time_h_has_TIME_UTC = yes; then + TIME_H_DEFINES_TIME_UTC=1 + else + TIME_H_DEFINES_TIME_UTC=0 + fi + + + + + GL_GNULIB_CTIME=0 + + + + GL_GNULIB_MKTIME=0 + + + + GL_GNULIB_LOCALTIME=0 + + + + GL_GNULIB_NANOSLEEP=0 + + + + GL_GNULIB_STRFTIME=0 + + + + GL_GNULIB_STRPTIME=0 + + + + GL_GNULIB_TIMEGM=0 + + + + GL_GNULIB_TIMESPEC_GET=0 + + + + GL_GNULIB_TIMESPEC_GETRES=0 + + + + GL_GNULIB_TIME_R=0 + + + + GL_GNULIB_TIME_RZ=0 + + + + GL_GNULIB_TZSET=0 + + + + GL_GNULIB_MDA_TZSET=1 + + + +ac_fn_c_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" +if test "x$ac_cv_have_decl_execvpe" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_EXECVPE $ac_have_decl +_ACEOF + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_unistd_h='<'unistd.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_unistd_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_unistd_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'unistd.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_unistd_h + gl_cv_next_unistd_h='"'$gl_header'"' + else + gl_cv_next_unistd_h='<'unistd.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 +$as_echo "$gl_cv_next_unistd_h" >&6; } + fi + NEXT_UNISTD_H=$gl_cv_next_unistd_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'unistd.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_unistd_h + fi + NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_unistd_h = yes; then + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 + fi + + + + + + + + + + + + + + if test $ac_cv_have_decl_execvpe = no; then + HAVE_DECL_EXECVPE=0 + fi + + + + + + + +gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' + + + if test "$HAVE_LIBUNISTRING" = yes; then + LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` + LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` + LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` + fi + + + HAVE_UTIME=1; + REPLACE_UTIME=0; + + + + GL_GNULIB_UTIME=0 + + + + GL_GNULIB_MDA_UTIME=1 + + + + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_utime_h='<'utime.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_utime_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_utime_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'utime.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_utime_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_utime_h + gl_cv_next_utime_h='"'$gl_header'"' + else + gl_cv_next_utime_h='<'utime.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_utime_h" >&5 +$as_echo "$gl_cv_next_utime_h" >&6; } + fi + NEXT_UTIME_H=$gl_cv_next_utime_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'utime.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_utime_h + fi + NEXT_AS_FIRST_DIRECTIVE_UTIME_H=$gl_next_as_first_directive + + + + + + if test $ac_cv_header_utime_h = yes; then + HAVE_UTIME_H=1 + else + HAVE_UTIME_H=0 + fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5 +$as_echo_n "checking whether the utimes function works... " >&6; } +if ${gl_cv_func_working_utimes+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_utimes="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_working_utimes="guessing no" ;; + *) gl_cv_func_working_utimes="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +$gl_mda_defines + + +static int +inorder (time_t a, time_t b, time_t c) +{ + return a <= b && b <= c; +} + +int +main () +{ + int result = 0; + char const *file = "conftest.utimes"; + /* On OS/2, file timestamps must be on or after 1980 in local time, + with an even number of seconds. */ + static struct timeval timeval[2] = {{315620000 + 10, 10}, + {315620000 + 1000000, 999998}}; + + /* Test whether utimes() essentially works. */ + { + struct stat sbuf; + FILE *f = fopen (file, "w"); + if (f == NULL) + result |= 1; + else if (fclose (f) != 0) + result |= 1; + else if (utimes (file, timeval) != 0) + result |= 2; + else if (lstat (file, &sbuf) != 0) + result |= 1; + else if (!(sbuf.st_atime == timeval[0].tv_sec + && sbuf.st_mtime == timeval[1].tv_sec)) + result |= 4; + if (unlink (file) != 0) + result |= 1; + } + + /* Test whether utimes() with a NULL argument sets the file's timestamp + to the current time. Use 'fstat' as well as 'time' to + determine the "current" time, to accommodate NFS file systems + if there is a time skew between the host and the NFS server. */ + { + int fd = open (file, O_WRONLY|O_CREAT, 0644); + if (fd < 0) + result |= 1; + else + { + time_t t0, t2; + struct stat st0, st1, st2; + if (time (&t0) == (time_t) -1) + result |= 1; + else if (fstat (fd, &st0) != 0) + result |= 1; + else if (utimes (file, timeval) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, timeval) != 0 + || (fd = open (file, O_WRONLY)) < 0)) + result |= 2; + else if (utimes (file, NULL) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, NULL) != 0 + || (fd = open (file, O_WRONLY)) < 0)) + result |= 8; + else if (fstat (fd, &st1) != 0) + result |= 1; + else if (write (fd, "\n", 1) != 1) + result |= 1; + else if (fstat (fd, &st2) != 0) + result |= 1; + else if (time (&t2) == (time_t) -1) + result |= 1; + else + { + int m_ok_POSIX = inorder (t0, st1.st_mtime, t2); + int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime); + if (! (st1.st_atime == st1.st_mtime)) + result |= 16; + if (! (m_ok_POSIX || m_ok_NFS)) + result |= 32; + } + if (close (fd) != 0) + result |= 1; + } + if (unlink (file) != 0) + result |= 1; + } + + /* Test whether utimes() with a NULL argument works on read-only files. */ + { + int fd = open (file, O_WRONLY|O_CREAT, 0444); + if (fd < 0) + result |= 1; + else if (close (fd) != 0) + result |= 1; + else if (utimes (file, NULL) != 0) + result |= 64; + if (unlink (file) != 0) + result |= 1; + } + + return result; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_working_utimes=yes +else + gl_cv_func_working_utimes=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5 +$as_echo "$gl_cv_func_working_utimes" >&6; } + + case "$gl_cv_func_working_utimes" in + *yes) + +$as_echo "#define HAVE_WORKING_UTIMES 1" >>confdefs.h + + ;; + esac + + + + + +ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" +if test "x$ac_cv_have_decl_vsnprintf" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_VSNPRINTF $ac_have_decl +_ACEOF + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wchar_h='<'wchar.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_wchar_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_wchar_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'wchar.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_wchar_h + gl_cv_next_wchar_h='"'$gl_header'"' + else + gl_cv_next_wchar_h='<'wchar.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 +$as_echo "$gl_cv_next_wchar_h" >&6; } + fi + NEXT_WCHAR_H=$gl_cv_next_wchar_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wchar.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wchar_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + + + + + + + + ac_fn_c_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" " + #include + +" +if test "x$ac_cv_have_decl_wcsdup" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_WCSDUP $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_wcsdup = no; then + HAVE_DECL_WCSDUP=0 + fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5 +$as_echo_n "checking for C compiler option to allow warnings... " >&6; } +if ${gl_cv_cc_wallow+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftest* + echo 'int dummy;' > conftest.c + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null + { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null + if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then + gl_cv_cc_wallow='-Wno-error' + else + gl_cv_cc_wallow=none + fi + rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5 +$as_echo "$gl_cv_cc_wallow" >&6; } + case "$gl_cv_cc_wallow" in + none) GL_CFLAG_ALLOW_WARNINGS='' ;; + *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; + esac + + + + + GL_CFLAG_GNULIB_WARNINGS='' + if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then + cat > conftest.c <<\EOF + #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-cast-qual + -Wno-conversion + -Wno-float-equal + -Wno-sign-compare + -Wno-undef + -Wno-unused-function + -Wno-unused-parameter + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-float-conversion + #endif + #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wimplicit-fallthrough + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-pedantic + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-sign-conversion + -Wno-type-limits + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 + -Wno-unsuffixed-float-constants + #endif +EOF + gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gl_command\""; } >&5 + (eval $gl_command) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + gl_options=`grep -v '#' conftest.out` + for word in $gl_options; do + GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" + done + fi + rm -f conftest.c conftest.out + fi + + + + + if false; then + GL_COND_LIBTOOL_TRUE= + GL_COND_LIBTOOL_FALSE='#' +else + GL_COND_LIBTOOL_TRUE='#' + GL_COND_LIBTOOL_FALSE= +fi + + gl_cond_libtool=false + gl_libdeps= + gl_ltlibdeps= + gl_m4_base='m4' + + + + + + + + + + + + + gl_source_base='lib' + gl_source_base_prefix= + + + if test $ac_cv_func_alloca_works = no; then + : + fi + + # Define an additional variable used in the Makefile substitution. + if test $ac_cv_working_alloca_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 +$as_echo_n "checking for alloca as a compiler built-in... " >&6; } +if ${gl_cv_rpl_alloca+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined __GNUC__ || defined _AIX || defined _MSC_VER + Need own alloca +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Need own alloca" >/dev/null 2>&1; then : + gl_cv_rpl_alloca=yes +else + gl_cv_rpl_alloca=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 +$as_echo "$gl_cv_rpl_alloca" >&6; } + if test $gl_cv_rpl_alloca = yes; then + +$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h + + GL_GENERATE_ALLOCA_H=true + else + GL_GENERATE_ALLOCA_H=false + fi + else + GL_GENERATE_ALLOCA_H=true + fi + + if test $ac_cv_working_alloca_h = yes; then + HAVE_ALLOCA_H=1 + else + HAVE_ALLOCA_H=0 + fi + + + + + + + case "$GL_GENERATE_ALLOCA_H" in + false) ALLOCA_H='' ;; + true) + if test -z "$ALLOCA_H"; then + ALLOCA_H="${gl_source_base_prefix}alloca.h" + fi + ;; + *) echo "*** GL_GENERATE_ALLOCA_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ALLOCA_H; then + GL_GENERATE_ALLOCA_H_TRUE= + GL_GENERATE_ALLOCA_H_FALSE='#' +else + GL_GENERATE_ALLOCA_H_TRUE='#' + GL_GENERATE_ALLOCA_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then + GL_GENERATE_ALLOCA_H_TRUE='#' + GL_GENERATE_ALLOCA_H_FALSE='#' + fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for static_assert" >&5 +$as_echo_n "checking for static_assert... " >&6; } +if ${gl_cv_static_assert+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS=$CFLAGS + for gl_working in "yes, a keyword" "yes, an macro"; do + case $gl_working in #( + *assert.h*) : + CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H" ;; #( + *) : + ;; +esac + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __clang__ && __STDC_VERSION__ < 202311 + #pragma clang diagnostic error "-Wc2x-extensions" + #pragma clang diagnostic error "-Wc++1z-extensions" + #endif + #ifdef INCLUDE_ASSERT_H + #include + #endif + static_assert (2 + 2 == 4, "arithmetic does not work"); + static_assert (2 + 2 == 4); + +int +main () +{ + + static_assert (sizeof (char) == 1, "sizeof does not work"); + static_assert (sizeof (char) == 1); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_static_assert=$gl_working +else + gl_cv_static_assert=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$gl_save_CFLAGS + test "$gl_cv_static_assert" != no && break + done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_static_assert" >&5 +$as_echo "$gl_cv_static_assert" >&6; } + + GL_GENERATE_ASSERT_H=false + case $gl_cv_static_assert in #( + yes*keyword*) : + +$as_echo "#define HAVE_C_STATIC_ASSERT 1" >>confdefs.h + ;; #( + no) : + GL_GENERATE_ASSERT_H=true + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_assert_h='<'assert.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_assert_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'assert.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_assert_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_assert_h + gl_cv_next_assert_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_assert_h" >&5 +$as_echo "$gl_cv_next_assert_h" >&6; } + fi + NEXT_ASSERT_H=$gl_cv_next_assert_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'assert.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_assert_h + fi + NEXT_AS_FIRST_DIRECTIVE_ASSERT_H=$gl_next_as_first_directive + + + + ;; #( + *) : + ;; +esac + + + + + + + + case "$GL_GENERATE_ASSERT_H" in + false) ASSERT_H='' ;; + true) + if test -z "$ASSERT_H"; then + ASSERT_H="${gl_source_base_prefix}assert.h" + fi + ;; + *) echo "*** GL_GENERATE_ASSERT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ASSERT_H; then + GL_GENERATE_ASSERT_H_TRUE= + GL_GENERATE_ASSERT_H_FALSE='#' +else + GL_GENERATE_ASSERT_H_TRUE='#' + GL_GENERATE_ASSERT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ASSERT_H_TRUE}" && test -z "${GL_GENERATE_ASSERT_H_FALSE}"; then + GL_GENERATE_ASSERT_H_TRUE='#' + GL_GENERATE_ASSERT_H_FALSE='#' + fi + + + + + + + + + + + + + + if test $ac_cv_func_btowc = no; then + HAVE_BTOWC=0 + else + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5 +$as_echo_n "checking whether btowc(0) is correct... " >&6; } +if ${gl_cv_func_btowc_nul+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess no on Cygwin. + cygwin*) gl_cv_func_btowc_nul="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_btowc_nul="guessing yes" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_nul="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int main () +{ + if (btowc ('\0') != 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_btowc_nul=yes +else + gl_cv_func_btowc_nul=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5 +$as_echo "$gl_cv_func_btowc_nul" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5 +$as_echo_n "checking whether btowc(EOF) is correct... " >&6; } +if ${gl_cv_func_btowc_eof+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on IRIX. + irix*) gl_cv_func_btowc_eof="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_btowc_eof="guessing yes" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_eof="guessing yes" ;; + esac + if test $LOCALE_FR != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + if (btowc (EOF) != WEOF) + return 1; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_btowc_eof=yes +else + gl_cv_func_btowc_eof=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5 +$as_echo "$gl_cv_func_btowc_eof" >&6; } + + case "$gl_cv_func_btowc_nul" in + *yes) ;; + *) REPLACE_BTOWC=1 ;; + esac + case "$gl_cv_func_btowc_eof" in + *yes) ;; + *) REPLACE_BTOWC=1 ;; + esac + fi + + + if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then + GL_COND_OBJ_BTOWC_TRUE= + GL_COND_OBJ_BTOWC_FALSE='#' +else + GL_COND_OBJ_BTOWC_TRUE='#' + GL_COND_OBJ_BTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_BTOWC_TRUE}" && test -z "${GL_COND_OBJ_BTOWC_FALSE}"; then + GL_COND_OBJ_BTOWC_TRUE='#' + GL_COND_OBJ_BTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_BTOWC_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_BTOWC=1 + + + + + +$as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 +$as_echo_n "checking for __builtin_expect... " >&6; } +if ${gl_cv___builtin_expect+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv___builtin_expect=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv___builtin_expect="in " +else + gl_cv___builtin_expect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 +$as_echo "$gl_cv___builtin_expect" >&6; } + if test "$gl_cv___builtin_expect" = yes; then + $as_echo "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h + + elif test "$gl_cv___builtin_expect" = "in "; then + $as_echo "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h + + fi + + + + + + + + + + + + GL_GNULIB_CHDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_CHDIR 1" >>confdefs.h + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this system supports file names of any length" >&5 +$as_echo_n "checking whether this system supports file names of any length... " >&6; } +if ${gl_cv_have_unlimited_file_name_length+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if defined _WIN32 && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif + +#ifdef PATH_MAX +have_arbitrary_file_name_length_limit +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then : + gl_cv_have_unlimited_file_name_length=no +else + gl_cv_have_unlimited_file_name_length=yes +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_unlimited_file_name_length" >&5 +$as_echo "$gl_cv_have_unlimited_file_name_length" >&6; } + + + if test $gl_cv_have_unlimited_file_name_length = no; then + GL_COND_OBJ_CHDIR_LONG_TRUE= + GL_COND_OBJ_CHDIR_LONG_FALSE='#' +else + GL_COND_OBJ_CHDIR_LONG_TRUE='#' + GL_COND_OBJ_CHDIR_LONG_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CHDIR_LONG_TRUE}" && test -z "${GL_COND_OBJ_CHDIR_LONG_FALSE}"; then + GL_COND_OBJ_CHDIR_LONG_TRUE='#' + GL_COND_OBJ_CHDIR_LONG_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_CHDIR_LONG_TRUE"; then : + + : + +fi + + + + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + + # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all* + # programs in the package would end up linked with that potentially-shared + # library, inducing unnecessary run-time overhead. + CLOCK_TIME_LIB= + + gl_saved_libs=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if ${ac_cv_search_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_clock_gettime+:} false; then : + break +fi +done +if ${ac_cv_search_clock_gettime+:} false; then : + +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_clock_gettime" = "none required" || + CLOCK_TIME_LIB=$ac_cv_search_clock_gettime +fi + + for ac_func in clock_getres clock_gettime clock_settime +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + LIBS=$gl_saved_libs + # For backward compatibility. + LIB_CLOCK_GETTIME="$CLOCK_TIME_LIB" + + + + +$as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h + + + + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_CLOSE=1 + fi + + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + for ac_header in winsock2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINSOCK2_H 1 +_ACEOF + +fi + +done + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then + REPLACE_CLOSE=1 + fi + + + if test $REPLACE_CLOSE = 0; then + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_CLOSE=1 + fi + fi + + + + if test $REPLACE_CLOSE = 1; then + GL_COND_OBJ_CLOSE_TRUE= + GL_COND_OBJ_CLOSE_FALSE='#' +else + GL_COND_OBJ_CLOSE_TRUE='#' + GL_COND_OBJ_CLOSE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CLOSE_TRUE}" && test -z "${GL_COND_OBJ_CLOSE_FALSE}"; then + GL_COND_OBJ_CLOSE_TRUE='#' + GL_COND_OBJ_CLOSE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_CLOSE=1 + + + + + +$as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h + + + + + + + for ac_func in closedir +do : + ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir" +if test "x$ac_cv_func_closedir" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOSEDIR 1 +_ACEOF + +fi +done + + if test $ac_cv_func_closedir = no; then + HAVE_CLOSEDIR=0 + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + if test $HAVE_CLOSEDIR = 1; then + REPLACE_CLOSEDIR=1 + fi + fi + + case $host_os,$HAVE_CLOSEDIR in + os2*,1) + REPLACE_CLOSEDIR=1;; + esac + + + if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then + GL_COND_OBJ_CLOSEDIR_TRUE= + GL_COND_OBJ_CLOSEDIR_FALSE='#' +else + GL_COND_OBJ_CLOSEDIR_TRUE='#' + GL_COND_OBJ_CLOSEDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_CLOSEDIR_TRUE}" && test -z "${GL_COND_OBJ_CLOSEDIR_FALSE}"; then + GL_COND_OBJ_CLOSEDIR_TRUE='#' + GL_COND_OBJ_CLOSEDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_CLOSEDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_type member in directory struct" >&5 +$as_echo_n "checking for d_type member in directory struct... " >&6; } +if ${gl_cv_struct_dirent_d_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +struct dirent dp; dp.d_type = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_struct_dirent_d_type=yes +else + gl_cv_struct_dirent_d_type=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_type" >&5 +$as_echo "$gl_cv_struct_dirent_d_type" >&6; } + if test $gl_cv_struct_dirent_d_type = yes; then + +$as_echo "#define HAVE_STRUCT_DIRENT_D_TYPE 1" >>confdefs.h + + fi + + + + + + + + + + + + + + + for ac_func in dirfd +do : + ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" +if test "x$ac_cv_func_dirfd" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DIRFD 1 +_ACEOF + +fi +done + + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include +" +if test "x$ac_cv_have_decl_dirfd" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_DIRFD $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_dirfd = no; then + HAVE_DECL_DIRFD=0 + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5 +$as_echo_n "checking whether dirfd is a macro... " >&6; } +if ${gl_cv_func_dirfd_macro+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#ifdef dirfd + dirent_header_defines_dirfd +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then : + gl_cv_func_dirfd_macro=yes +else + gl_cv_func_dirfd_macro=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5 +$as_echo "$gl_cv_func_dirfd_macro" >&6; } + + # Use the replacement if we have no function or macro with that name, + # or if OS/2 kLIBC whose dirfd() does not work. + # Replace only if the system declares dirfd already. + case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in + no,no,*,yes | *,*,os2*,yes) + REPLACE_DIRFD=1 + +$as_echo "#define REPLACE_DIRFD 1" >>confdefs.h +;; + esac + + + if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no || test $REPLACE_DIRFD = 1; then + GL_COND_OBJ_DIRFD_TRUE= + GL_COND_OBJ_DIRFD_FALSE='#' +else + GL_COND_OBJ_DIRFD_TRUE='#' + GL_COND_OBJ_DIRFD_FALSE= +fi +: + if test -z "${GL_COND_OBJ_DIRFD_TRUE}" && test -z "${GL_COND_OBJ_DIRFD_FALSE}"; then + GL_COND_OBJ_DIRFD_TRUE='#' + GL_COND_OBJ_DIRFD_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_DIRFD_TRUE"; then : + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5 +$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; } +if ${gl_cv_sys_dir_fd_member_name+:} false; then : + $as_echo_n "(cached) " >&6 +else + + dirfd_save_CFLAGS=$CFLAGS + for ac_expr in d_fd dd_fd; do + + CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include +int +main () +{ +DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + dir_fd_found=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$dirfd_save_CFLAGS + test "$dir_fd_found" = yes && break + done + test "$dir_fd_found" = yes || ac_expr=no_such_member + + gl_cv_sys_dir_fd_member_name=$ac_expr + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5 +$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; } + if test $gl_cv_sys_dir_fd_member_name != no_such_member; then + +cat >>confdefs.h <<_ACEOF +#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name +_ACEOF + + fi + + + +fi + + + + + + + + + + GL_GNULIB_DIRFD=1 + + + + + +$as_echo "#define GNULIB_TEST_DIRFD 1" >>confdefs.h + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 +$as_echo_n "checking whether // is distinct from /... " >&6; } +if ${gl_cv_double_slash_root+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # . + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 +$as_echo "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h + + fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 +$as_echo_n "checking whether dup2 works... " >&6; } +if ${gl_cv_func_dup2_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + mingw*) # on this platform, dup2 always returns 0 for success + gl_cv_func_dup2_works="guessing no" ;; + cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 + gl_cv_func_dup2_works="guessing no" ;; + aix* | freebsd*) + # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, + # not EBADF. + gl_cv_func_dup2_works="guessing no" ;; + haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. + gl_cv_func_dup2_works="guessing no" ;; + *-android*) # implemented using dup3(), which fails if oldfd == newfd + gl_cv_func_dup2_works="guessing no" ;; + os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. + gl_cv_func_dup2_works="guessing no" ;; + *) gl_cv_func_dup2_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + #include + #include + + +$gl_mda_defines + + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + +int +main () +{ +int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + #ifdef FD_CLOEXEC + if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) + result |= 1; + #endif + if (dup2 (1, 1) != 1) + result |= 2; + #ifdef FD_CLOEXEC + if (fcntl (1, F_GETFD) != FD_CLOEXEC) + result |= 4; + #endif + close (0); + if (dup2 (0, 0) != -1) + result |= 8; + /* Many gnulib modules require POSIX conformance of EBADF. */ + if (dup2 (2, bad_fd) == -1 && errno != EBADF) + result |= 16; + /* Flush out some cygwin core dumps. */ + if (dup2 (2, -1) != -1 || errno != EBADF) + result |= 32; + dup2 (2, 255); + dup2 (2, 256); + /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ + { + int fd = open (".", O_RDONLY); + if (fd == -1) + result |= 64; + else if (dup2 (fd, fd + 1) == -1) + result |= 128; + close (fd); + } + return result; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_dup2_works=yes +else + gl_cv_func_dup2_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 +$as_echo "$gl_cv_func_dup2_works" >&6; } + case "$gl_cv_func_dup2_works" in + *yes) ;; + *) + REPLACE_DUP2=1 + for ac_func in setdtablesize +do : + ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" +if test "x$ac_cv_func_setdtablesize" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETDTABLESIZE 1 +_ACEOF + +fi +done + + ;; + esac + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_DUP2=1 + fi + + + + if test $REPLACE_DUP2 = 1; then + GL_COND_OBJ_DUP2_TRUE= + GL_COND_OBJ_DUP2_FALSE='#' +else + GL_COND_OBJ_DUP2_TRUE='#' + GL_COND_OBJ_DUP2_FALSE= +fi +: + if test -z "${GL_COND_OBJ_DUP2_TRUE}" && test -z "${GL_COND_OBJ_DUP2_FALSE}"; then + GL_COND_OBJ_DUP2_TRUE='#' + GL_COND_OBJ_DUP2_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_DUP2_TRUE"; then : + + + +fi + + + + + + + + + + GL_GNULIB_DUP2=1 + + + + + +$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h + + + + + + + + + case "$GL_GENERATE_ERRNO_H" in + false) ERRNO_H='' ;; + true) + if test -z "$ERRNO_H"; then + ERRNO_H="${gl_source_base_prefix}errno.h" + fi + ;; + *) echo "*** GL_GENERATE_ERRNO_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ERRNO_H; then + GL_GENERATE_ERRNO_H_TRUE= + GL_GENERATE_ERRNO_H_FALSE='#' +else + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE='#' + fi + + + + + + + + + + + if test $GL_GENERATE_ERROR_H = true; then + GL_COND_OBJ_ERROR_TRUE= + GL_COND_OBJ_ERROR_FALSE='#' +else + GL_COND_OBJ_ERROR_TRUE='#' + GL_COND_OBJ_ERROR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ERROR_TRUE}" && test -z "${GL_COND_OBJ_ERROR_FALSE}"; then + GL_COND_OBJ_ERROR_TRUE='#' + GL_COND_OBJ_ERROR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_ERROR_TRUE"; then : + + + + + + : + + +fi + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" + + + + + + + case "$GL_GENERATE_ERROR_H" in + false) ERROR_H='' ;; + true) + if test -z "$ERROR_H"; then + ERROR_H="${gl_source_base_prefix}error.h" + fi + ;; + *) echo "*** GL_GENERATE_ERROR_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_ERROR_H; then + GL_GENERATE_ERROR_H_TRUE= + GL_GENERATE_ERROR_H_FALSE='#' +else + GL_GENERATE_ERROR_H_TRUE='#' + GL_GENERATE_ERROR_H_FALSE= +fi +: + if test -z "${GL_GENERATE_ERROR_H_TRUE}" && test -z "${GL_GENERATE_ERROR_H_FALSE}"; then + GL_GENERATE_ERROR_H_TRUE='#' + GL_GENERATE_ERROR_H_FALSE='#' + fi + + + + + + + + + + + + + if test $ac_cv_have_decl_fchdir = no; then + HAVE_DECL_FCHDIR=0 + fi + + + if test $HAVE_FCHDIR = 0; then + +$as_echo "#define REPLACE_FCHDIR 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5 +$as_echo_n "checking whether open can visit directories... " >&6; } +if ${gl_cv_func_open_directory_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_open_directory_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_open_directory_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + +$gl_mda_defines + +int +main () +{ +return open(".", O_RDONLY) < 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_open_directory_works=yes +else + gl_cv_func_open_directory_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_directory_works" >&5 +$as_echo "$gl_cv_func_open_directory_works" >&6; } + case "$gl_cv_func_open_directory_works" in + *yes) ;; + *) + +$as_echo "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h + + ;; + esac + fi + + + if test $HAVE_FCHDIR = 0; then + GL_COND_OBJ_FCHDIR_TRUE= + GL_COND_OBJ_FCHDIR_FALSE='#' +else + GL_COND_OBJ_FCHDIR_TRUE='#' + GL_COND_OBJ_FCHDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FCHDIR_TRUE}" && test -z "${GL_COND_OBJ_FCHDIR_FALSE}"; then + GL_COND_OBJ_FCHDIR_TRUE='#' + GL_COND_OBJ_FCHDIR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FCHDIR_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_FCHDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_fcntl = no; then + + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 +$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } +if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case $host_os in + aix* | cygwin* | haiku*) + gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + #include + #include + + +$gl_mda_defines + + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + +int +main () +{ +int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; + if (errno != EINVAL) result |= 2; + if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; + if (errno != EINVAL) result |= 8; + /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ + { + int fd; + fd = open (".", O_RDONLY); + if (fd == -1) + result |= 16; + else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) + result |= 32; + + close (fd); + } + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fcntl_f_dupfd_works=yes +else + gl_cv_func_fcntl_f_dupfd_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 +$as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; } + case $gl_cv_func_fcntl_f_dupfd_works in + *yes) ;; + *) + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + +$as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 +$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } +if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on NetBSD. + netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + int main (int argc, char *argv[]) + { + if (argc == 1) + /* parent process */ + { + if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) + return 1; + return execl ("./conftest", "./conftest", "child", NULL); + } + else + /* child process */ + return (fcntl (10, F_GETFL) < 0 ? 0 : 42); + } + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __linux__ +/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace + it to support the semantics on older kernels that failed with EINVAL. */ +choke me +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_fcntl_f_dupfd_cloexec=yes +else + gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +else + gl_cv_func_fcntl_f_dupfd_cloexec=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 +$as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } + case "$gl_cv_func_fcntl_f_dupfd_cloexec" in + *yes) ;; + *) + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + ;; + esac + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + fi + + + + if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then + GL_COND_OBJ_FCNTL_TRUE= + GL_COND_OBJ_FCNTL_FALSE='#' +else + GL_COND_OBJ_FCNTL_TRUE='#' + GL_COND_OBJ_FCNTL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FCNTL_TRUE}" && test -z "${GL_COND_OBJ_FCNTL_FALSE}"; then + GL_COND_OBJ_FCNTL_TRUE='#' + GL_COND_OBJ_FCNTL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FCNTL=1 + + + + + +$as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h + + + + + + + + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_FD_SAFER_FLAG 1 +_ACEOF + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5 +$as_echo_n "checking for flexible array member... " >&6; } +if ${ac_cv_c_flexmember+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + struct m { struct m *next, **list; char name[]; }; + struct s { struct s *p; struct m *m; int n; double d[]; }; +int +main () +{ +int m = getchar (); + size_t nbytes = offsetof (struct s, d) + m * sizeof (double); + nbytes += sizeof (struct s) - 1; + nbytes -= nbytes % sizeof (struct s); + struct s *p = malloc (nbytes); + p->p = p; + p->m = NULL; + p->d[0] = 0.0; + return p->d != (double *) NULL; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_flexmember=yes +else + ac_cv_c_flexmember=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5 +$as_echo "$ac_cv_c_flexmember" >&6; } + if test $ac_cv_c_flexmember = yes; then + +$as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h + + else + $as_echo "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h + + fi + + + + + GL_GENERATE_FLOAT_H=false + REPLACE_FLOAT_LDBL=0 + case "$host_os" in + aix* | beos* | openbsd* | mirbsd* | irix*) + GL_GENERATE_FLOAT_H=true + ;; + freebsd* | dragonfly*) + case "$host_cpu" in + i[34567]86 ) + GL_GENERATE_FLOAT_H=true + ;; + x86_64 ) + # On x86_64 systems, the C compiler may still be generating + # 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __x86_64__ || defined __amd64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + GL_GENERATE_FLOAT_H=true +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + esac + ;; + linux*) + case "$host_cpu" in + powerpc*) + GL_GENERATE_FLOAT_H=true + ;; + esac + ;; + esac + case "$host_os" in + aix* | freebsd* | dragonfly* | linux*) + if $GL_GENERATE_FLOAT_H; then + REPLACE_FLOAT_LDBL=1 + fi + ;; + esac + + REPLACE_ITOLD=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5 +$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; } +if ${gl_cv_func_itold_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host" in + sparc*-*-linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_itold_works="guessing no" +else + gl_cv_func_itold_works="guessing yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_itold_works="guessing yes" ;; + *) gl_cv_func_itold_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int i = -1; +volatile long double ld; +int main () +{ + ld += i * 1.0L; + if (ld > 0) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_itold_works=yes +else + gl_cv_func_itold_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5 +$as_echo "$gl_cv_func_itold_works" >&6; } + case "$gl_cv_func_itold_works" in + *no) + REPLACE_ITOLD=1 + GL_GENERATE_FLOAT_H=true + ;; + esac + + if $GL_GENERATE_FLOAT_H; then + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_float_h='<'float.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_float_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'float.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_float_h + gl_cv_next_float_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5 +$as_echo "$gl_cv_next_float_h" >&6; } + fi + NEXT_FLOAT_H=$gl_cv_next_float_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'float.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_float_h + fi + NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive + + + + + fi + + + + + + + case "$GL_GENERATE_FLOAT_H" in + false) FLOAT_H='' ;; + true) + if test -z "$FLOAT_H"; then + FLOAT_H="${gl_source_base_prefix}float.h" + fi + ;; + *) echo "*** GL_GENERATE_FLOAT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FLOAT_H; then + GL_GENERATE_FLOAT_H_TRUE= + GL_GENERATE_FLOAT_H_FALSE='#' +else + GL_GENERATE_FLOAT_H_TRUE='#' + GL_GENERATE_FLOAT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then + GL_GENERATE_FLOAT_H_TRUE='#' + GL_GENERATE_FLOAT_H_FALSE='#' + fi + + + + + + + + if test $REPLACE_FLOAT_LDBL = 1; then + GL_COND_OBJ_FLOAT_TRUE= + GL_COND_OBJ_FLOAT_FALSE='#' +else + GL_COND_OBJ_FLOAT_TRUE='#' + GL_COND_OBJ_FLOAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FLOAT_TRUE}" && test -z "${GL_COND_OBJ_FLOAT_FALSE}"; then + GL_COND_OBJ_FLOAT_TRUE='#' + GL_COND_OBJ_FLOAT_FALSE='#' + fi + + + if test $REPLACE_ITOLD = 1; then + GL_COND_OBJ_ITOLD_TRUE= + GL_COND_OBJ_ITOLD_FALSE='#' +else + GL_COND_OBJ_ITOLD_TRUE='#' + GL_COND_OBJ_ITOLD_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ITOLD_TRUE}" && test -z "${GL_COND_OBJ_ITOLD_FALSE}"; then + GL_COND_OBJ_ITOLD_TRUE='#' + GL_COND_OBJ_ITOLD_FALSE='#' + fi + + + + + + gl_fnmatch_required_lowercase=` + echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]' + ` + + if test $ac_cv_func_fnmatch = no; then + HAVE_FNMATCH=0 + else + gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5 +$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; } +if eval \${$gl_fnmatch_cache_var+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test $gl_fnmatch_required = GNU; then + gl_fnmatch_gnu_start= + gl_fnmatch_gnu_end= + else + gl_fnmatch_gnu_start='#if 0' + gl_fnmatch_gnu_end='#endif' + fi + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on musl systems. + *-musl*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;; + # Guess no otherwise, even on glibc systems. + *) eval "$gl_fnmatch_cache_var=\"guessing no\"" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static int + y (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == 0; + } + static int + n (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == FNM_NOMATCH; + } + +int +main () +{ +char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]"; + char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; + static char const A_1[] = { 'A' - 1, 0 }; + static char const A01[] = { 'A' + 1, 0 }; + static char const a_1[] = { 'a' - 1, 0 }; + static char const a01[] = { 'a' + 1, 0 }; + static char const bs_1[] = { '\\\\' - 1, 0 }; + static char const bs01[] = { '\\\\' + 1, 0 }; + int result = 0; + if (!n ("a*", "", 0)) + return 1; + if (!y ("a*", "abc", 0)) + return 1; + if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */ + return 1; + if (!n ("d*/*1", "d/s/1", FNM_PATHNAME)) + return 2; + if (!y ("a\\\\bc", "abc", 0)) + return 3; + if (!n ("a\\\\bc", "abc", FNM_NOESCAPE)) + return 3; + if (!y ("*x", ".x", 0)) + return 4; + if (!n ("*x", ".x", FNM_PERIOD)) + return 4; + if (!y (Apat, "\\\\", 0)) + return 5; + if (!y (Apat, "A", 0)) + return 5; + if (!y (apat, "\\\\", 0)) + return 5; + if (!y (apat, "a", 0)) + return 5; + if (!(n (Apat, A_1, 0) == ('A' < '\\\\'))) + return 5; + if (!(n (apat, a_1, 0) == ('a' < '\\\\'))) + return 5; + if (!(y (Apat, A01, 0) == ('A' < '\\\\'))) + return 5; + if (!(y (apat, a01, 0) == ('a' < '\\\\'))) + return 5; + if (!(y (Apat, bs_1, 0) == ('A' < '\\\\'))) + return 5; + if (!(y (apat, bs_1, 0) == ('a' < '\\\\'))) + return 5; + if (!(n (Apat, bs01, 0) == ('A' < '\\\\'))) + return 5; + if (!(n (apat, bs01, 0) == ('a' < '\\\\'))) + return 5; + $gl_fnmatch_gnu_start + if (!y ("xxXX", "xXxX", FNM_CASEFOLD)) + result |= 8; + if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH)) + result |= 16; + if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME)) + result |= 32; + if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR)) + result |= 64; + $gl_fnmatch_gnu_end + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + eval "$gl_fnmatch_cache_var=yes" +else + eval "$gl_fnmatch_cache_var=no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +eval ac_res=\$$gl_fnmatch_cache_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + case "$gl_fnmatch_result" in + *yes) ;; + *) REPLACE_FNMATCH=1 ;; + esac + fi + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + GL_GENERATE_FNMATCH_H=true + + fi + + + + + + case "$GL_GENERATE_FNMATCH_H" in + false) FNMATCH_H='' ;; + true) + if test -z "$FNMATCH_H"; then + FNMATCH_H="${gl_source_base_prefix}fnmatch.h" + fi + ;; + *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FNMATCH_H; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' +else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE='#' + fi + + + + + + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + + + + + + fi + + + + + + + + + + GL_GNULIB_FNMATCH=1 + + + + + +$as_echo "#define GNULIB_TEST_FNMATCH 1" >>confdefs.h + + + + + + + + + + + + + + case "$GL_GENERATE_FNMATCH_H" in + false) FNMATCH_H='' ;; + true) + if test -z "$FNMATCH_H"; then + FNMATCH_H="${gl_source_base_prefix}fnmatch.h" + fi + ;; + *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_FNMATCH_H; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' +else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= +fi +: + if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE='#' + fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5 +$as_echo_n "checking whether free is known to preserve errno... " >&6; } +if ${gl_cv_func_free_preserves_errno+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) + #elif defined __OpenBSD__ + #elif defined __sun + #else + #error "'free' is not known to preserve errno" + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_free_preserves_errno=yes +else + gl_cv_func_free_preserves_errno=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free_preserves_errno" >&5 +$as_echo "$gl_cv_func_free_preserves_errno" >&6; } + + case $gl_cv_func_free_preserves_errno in + *yes) + +$as_echo "#define HAVE_FREE_POSIX 1" >>confdefs.h + + ;; + *) REPLACE_FREE=1 ;; + esac + + + if test $REPLACE_FREE = 1; then + GL_COND_OBJ_FREE_TRUE= + GL_COND_OBJ_FREE_FALSE='#' +else + GL_COND_OBJ_FREE_TRUE='#' + GL_COND_OBJ_FREE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FREE_TRUE}" && test -z "${GL_COND_OBJ_FREE_FALSE}"; then + GL_COND_OBJ_FREE_TRUE='#' + GL_COND_OBJ_FREE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FREE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_FREE_POSIX=1 + + + + + +$as_echo "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h + + + + + + + if test $gl_cv_func_frexp_no_libm = yes; then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5 +$as_echo_n "checking whether frexp works... " >&6; } +if ${gl_cv_func_frexp_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + netbsd* | irix*) gl_cv_func_frexp_works="guessing no" ;; + mingw*) # Guess yes with MSVC, no with mingw. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Good +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Good" >/dev/null 2>&1; then : + gl_cv_func_frexp_works="guessing yes" +else + gl_cv_func_frexp_works="guessing no" +fi +rm -f conftest* + + ;; + *) gl_cv_func_frexp_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if HAVE_DECL_ALARM +# include +# include +#endif +/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. + ICC 10.0 has a bug when optimizing the expression -zero. + The expression -DBL_MIN * DBL_MIN does not work when cross-compiling + to PowerPC on Mac OS X 10.5. */ +#if defined __hpux || defined __sgi || defined __ICC +static double +compute_minus_zero (void) +{ + return -DBL_MIN * DBL_MIN; +} +# define minus_zero compute_minus_zero () +#else +double minus_zero = -0.0; +#endif +int main() +{ + int result = 0; + int i; + volatile double x; + double zero = 0.0; +#if HAVE_DECL_ALARM + /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite + number. Let the test fail in this case. */ + signal (SIGALRM, SIG_DFL); + alarm (5); +#endif + /* Test on denormalized numbers. */ + for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) + ; + if (x > 0.0) + { + int exp; + double y = frexp (x, &exp); + /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. + On NetBSD: y = 0.75. Correct: y = 0.5. */ + if (y != 0.5) + result |= 1; + } + /* Test on infinite numbers. */ + x = 1.0 / zero; + { + int exp; + double y = frexp (x, &exp); + if (y != x) + result |= 2; + } + /* Test on negative zero. */ + x = minus_zero; + { + int exp; + double y = frexp (x, &exp); + if (memcmp (&y, &x, sizeof x)) + result |= 4; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_frexp_works=yes +else + gl_cv_func_frexp_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5 +$as_echo "$gl_cv_func_frexp_works" >&6; } + + case "$gl_cv_func_frexp_works" in + *yes) gl_func_frexp_no_libm=yes ;; + *) gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;; + esac + else + gl_func_frexp_no_libm=no + REPLACE_FREXP=1 + fi + if test $gl_func_frexp_no_libm = yes; then + +$as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h + + fi + + if test $gl_func_frexp_no_libm != yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_FREXP=1 + + + + + +$as_echo "#define GNULIB_TEST_FREXP 1" >>confdefs.h + + + + + + + ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include +" +if test "x$ac_cv_have_decl_frexpl" = xyes; then : + +else + HAVE_DECL_FREXPL=0 +fi + + if test $HAVE_DECL_FREXPL = 1; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5 +$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; } +if ${gl_cv_func_frexpl_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + long double x; +int +main () +{ +int e; return frexpl (x, &e) > 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_frexpl_no_libm=yes +else + gl_cv_func_frexpl_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5 +$as_echo "$gl_cv_func_frexpl_no_libm" >&6; } + + if test $gl_cv_func_frexpl_no_libm = yes; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5 +$as_echo_n "checking whether frexpl works... " >&6; } +if ${gl_cv_func_frexpl_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*) + gl_cv_func_frexpl_works="guessing no";; + *) gl_cv_func_frexpl_works="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* Override the values of , like done in float.in.h. */ +#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +#endif +#if defined __i386__ && (defined __FreeBSD__ || defined __DragonFly__) +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +#endif +#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP DBL_MIN_EXP +#endif +#if defined __sgi && (LDBL_MANT_DIG >= 106) +# if defined __GNUC__ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP DBL_MIN_EXP +# endif +#endif +extern +#ifdef __cplusplus +"C" +#endif +long double frexpl (long double, int *); +long double zero = 0.0L; +int main() +{ + int result = 0; + volatile long double x; + /* Test on finite numbers that fails on AIX 5.1. */ + x = 16.0L; + { + int exp = -9999; + frexpl (x, &exp); + if (exp != 5) + result |= 1; + } + /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl + function returns an invalid (incorrectly normalized) value: it returns + y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 } + but the correct result is + 0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 } */ + x = 1.01L; + { + int exp = -9999; + long double y = frexpl (x, &exp); + if (!(exp == 1 && y == 0.505L)) + result |= 2; + } + /* Test on large finite numbers. This fails on BeOS at i = 16322, while + LDBL_MAX_EXP = 16384. + In the loop end test, we test x against Infinity, rather than comparing + i with LDBL_MAX_EXP, because BeOS has a wrong LDBL_MAX_EXP. */ + { + int i; + for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L) + { + int exp = -9999; + frexpl (x, &exp); + if (exp != i) + { + result |= 4; + break; + } + } + } + /* Test on denormalized numbers. */ + { + int i; + for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L) + ; + if (x > 0.0L) + { + int exp; + long double y = frexpl (x, &exp); + /* On machines with IEEE854 arithmetic: x = 1.68105e-4932, + exp = -16382, y = 0.5. On Mac OS X 10.5: exp = -16384, y = 0.5. */ + if (exp != LDBL_MIN_EXP - 1) + result |= 8; + } + } + /* Test on infinite numbers. */ + /* The Microsoft MSVC 14 compiler chokes on the expression 1.0 / 0.0. */ + x = 1.0L / zero; + { + int exp; + long double y = frexpl (x, &exp); + if (y != x) + result |= 16; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_frexpl_works=yes +else + gl_cv_func_frexpl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5 +$as_echo "$gl_cv_func_frexpl_works" >&6; } + + case "$gl_cv_func_frexpl_works" in + *yes) gl_func_frexpl_no_libm=yes ;; + *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; + esac + else + gl_func_frexpl_no_libm=no + REPLACE_FREXPL=1 + fi + if test $gl_func_frexpl_no_libm = yes; then + +$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h + + fi + fi + + if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_FREXPL=1 + + + + + +$as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h + + + + + + + + case "$host_os" in + mingw* | solaris*) + REPLACE_FSTAT=1 + ;; + esac + + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + case "$gl_cv_func_open_directory_works" in + *yes) ;; + *) + REPLACE_FSTAT=1 + ;; + esac + fi + + + + if test $REPLACE_FSTAT = 1; then + GL_COND_OBJ_FSTAT_TRUE= + GL_COND_OBJ_FSTAT_FALSE='#' +else + GL_COND_OBJ_FSTAT_TRUE='#' + GL_COND_OBJ_FSTAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FSTAT_TRUE}" && test -z "${GL_COND_OBJ_FSTAT_FALSE}"; then + GL_COND_OBJ_FSTAT_TRUE='#' + GL_COND_OBJ_FSTAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_FSTAT_TRUE"; then : + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" + + ;; + esac + + + + : + + +fi + + + + + + + + + + GL_GNULIB_FSTAT=1 + + + + + +$as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h + + + + + + + + + + + if test $ac_cv_func_fstatat = no; then + HAVE_FSTATAT=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5 +$as_echo_n "checking whether fstatat (..., 0) works... " >&6; } +if ${gl_cv_func_fstatat_zero_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix*) gl_cv_func_fstatat_zero_flag="guessing no";; + *) gl_cv_func_fstatat_zero_flag="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int + main (void) + { + struct stat a; + return fstatat (AT_FDCWD, ".", &a, 0) != 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fstatat_zero_flag=yes +else + gl_cv_func_fstatat_zero_flag=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5 +$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; } + + case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in + *yes+*yes) ;; + *) REPLACE_FSTATAT=1 ;; + esac + + case $host_os in + solaris*) + REPLACE_FSTATAT=1 ;; + esac + + case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in + 1,*yes) + +$as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h + + ;; + esac + fi + + + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + GL_COND_OBJ_FSTATAT_TRUE= + GL_COND_OBJ_FSTATAT_FALSE='#' +else + GL_COND_OBJ_FSTATAT_TRUE='#' + GL_COND_OBJ_FSTATAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FSTATAT_TRUE}" && test -z "${GL_COND_OBJ_FSTATAT_FALSE}"; then + GL_COND_OBJ_FSTATAT_TRUE='#' + GL_COND_OBJ_FSTATAT_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FSTATAT=1 + + + + + +$as_echo "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h + + + + + + + + if test $ac_cv_func_futimens = no; then + HAVE_FUTIMENS=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimens works" >&5 +$as_echo_n "checking whether futimens works... " >&6; } +if ${gl_cv_func_futimens_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) gl_cv_func_futimens_works="guessing no" ;; + # Guess no on musl systems. + *-musl*) gl_cv_func_futimens_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_futimens_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include + + +$gl_mda_defines + +int +main () +{ +struct timespec ts[2]; + int fd = creat ("conftest.file", 0600); + struct stat st; + if (fd < 0) return 1; + ts[0].tv_sec = 1; + ts[0].tv_nsec = UTIME_OMIT; + ts[1].tv_sec = 1; + ts[1].tv_nsec = UTIME_NOW; + errno = 0; + if (futimens (AT_FDCWD, NULL) == 0) return 2; + if (errno != EBADF) return 3; + if (futimens (fd, ts)) return 4; + sleep (1); + ts[0].tv_nsec = UTIME_NOW; + ts[1].tv_nsec = UTIME_OMIT; + if (futimens (fd, ts)) return 5; + if (fstat (fd, &st)) return 6; + if (st.st_ctime < st.st_atime) return 7; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_futimens_works=yes +else + gl_cv_func_futimens_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.file +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimens_works" >&5 +$as_echo "$gl_cv_func_futimens_works" >&6; } + case "$gl_cv_func_futimens_works" in + *yes) ;; + *) + REPLACE_FUTIMENS=1 + ;; + esac + fi + + + if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then + GL_COND_OBJ_FUTIMENS_TRUE= + GL_COND_OBJ_FUTIMENS_FALSE='#' +else + GL_COND_OBJ_FUTIMENS_TRUE='#' + GL_COND_OBJ_FUTIMENS_FALSE= +fi +: + if test -z "${GL_COND_OBJ_FUTIMENS_TRUE}" && test -z "${GL_COND_OBJ_FUTIMENS_FALSE}"; then + GL_COND_OBJ_FUTIMENS_TRUE='#' + GL_COND_OBJ_FUTIMENS_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FUTIMENS=1 + + + + + +$as_echo "#define GNULIB_TEST_FUTIMENS 1" >>confdefs.h + + + + + + + + + case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in + *yes,yes) ;; + *) + REPLACE_GETCWD=1 + ;; + esac + + + if test $REPLACE_GETCWD = 1; then + GL_COND_OBJ_GETCWD_LGPL_TRUE= + GL_COND_OBJ_GETCWD_LGPL_FALSE='#' +else + GL_COND_OBJ_GETCWD_LGPL_TRUE='#' + GL_COND_OBJ_GETCWD_LGPL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETCWD_LGPL_TRUE}" && test -z "${GL_COND_OBJ_GETCWD_LGPL_FALSE}"; then + GL_COND_OBJ_GETCWD_LGPL_TRUE='#' + GL_COND_OBJ_GETCWD_LGPL_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GETCWD=1 + + + + + +$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h + + + + + + + + + + + + + if test $ac_cv_func_getdelim = yes; then + HAVE_GETDELIM=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 +$as_echo_n "checking for working getdelim function... " >&6; } +if ${gl_cv_func_working_getdelim+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + darwin*) + gl_cv_func_working_getdelim=no ;; + *) + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) && !defined __UCLIBC__ + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then : + gl_cv_func_working_getdelim="guessing yes" +else + case "$host_os" in + *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; + *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; + esac + +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getdelim (&line, &siz, '\n', in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + { free (line); fclose (in); return 2; } + free (line); + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getdelim (&line, &siz, '\n', in) == -1) + { fclose (in); return 3; } + free (line); + } + fclose (in); + return 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_working_getdelim=yes +else + gl_cv_func_working_getdelim=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 +$as_echo "$gl_cv_func_working_getdelim" >&6; } + case "$gl_cv_func_working_getdelim" in + *yes) ;; + *) REPLACE_GETDELIM=1 ;; + esac + else + HAVE_GETDELIM=0 + fi + + if test $ac_cv_have_decl_getdelim = no; then + HAVE_DECL_GETDELIM=0 + fi + + + if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then + GL_COND_OBJ_GETDELIM_TRUE= + GL_COND_OBJ_GETDELIM_FALSE='#' +else + GL_COND_OBJ_GETDELIM_TRUE='#' + GL_COND_OBJ_GETDELIM_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETDELIM_TRUE}" && test -z "${GL_COND_OBJ_GETDELIM_FALSE}"; then + GL_COND_OBJ_GETDELIM_TRUE='#' + GL_COND_OBJ_GETDELIM_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETDELIM_TRUE"; then : + + + for ac_func in flockfile funlockfile +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" +if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl +_ACEOF + + + +fi + + + + + + + + + + GL_GNULIB_GETDELIM=1 + + + + + +$as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h + + + + + + + + + if test $ac_cv_func_getdtablesize = yes && + test $ac_cv_have_decl_getdtablesize = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 +$as_echo_n "checking whether getdtablesize works... " >&6; } +if ${gl_cv_func_getdtablesize_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; + *) + if test "$cross_compiling" = yes; then : + case "$host_os" in + cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows + gl_cv_func_getdtablesize_works="guessing no" ;; + *) gl_cv_func_getdtablesize_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + + +$gl_mda_defines + + +int +main () +{ +int size = getdtablesize(); + if (dup2 (0, getdtablesize()) != -1) + return 1; + if (size != getdtablesize()) + return 2; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getdtablesize_works=yes +else + gl_cv_func_getdtablesize_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 +$as_echo "$gl_cv_func_getdtablesize_works" >&6; } + case "$gl_cv_func_getdtablesize_works" in + *yes | "no (limitation)") ;; + *) REPLACE_GETDTABLESIZE=1 ;; + esac + else + HAVE_GETDTABLESIZE=0 + fi + + + if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then + GL_COND_OBJ_GETDTABLESIZE_TRUE= + GL_COND_OBJ_GETDTABLESIZE_FALSE='#' +else + GL_COND_OBJ_GETDTABLESIZE_TRUE='#' + GL_COND_OBJ_GETDTABLESIZE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETDTABLESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETDTABLESIZE_FALSE}"; then + GL_COND_OBJ_GETDTABLESIZE_TRUE='#' + GL_COND_OBJ_GETDTABLESIZE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETDTABLESIZE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_GETDTABLESIZE=1 + + + + + +$as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h + + + + + + + + + + + gl_getline_needs_run_time_check=no + ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" +if test "x$ac_cv_func_getline" = xyes; then : + gl_getline_needs_run_time_check=yes +else + am_cv_func_working_getline=no +fi + + if test $gl_getline_needs_run_time_check = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 +$as_echo_n "checking for working getline function... " >&6; } +if ${am_cv_func_working_getline+:} false; then : + $as_echo_n "(cached) " >&6 +else + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) && !defined __UCLIBC__ + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then : + am_cv_func_working_getline="guessing yes" +else + case "$host_os" in + *-musl*) am_cv_func_working_getline="guessing yes" ;; + *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; + esac + +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getline (&line, &siz, in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + { free (line); fclose (in); return 2; } + free (line); + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getline (&line, &siz, in) == -1) + { fclose (in); return 3; } + free (line); + } + fclose (in); + return 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_working_getline=yes +else + am_cv_func_working_getline=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 +$as_echo "$am_cv_func_working_getline" >&6; } + fi + + if test $ac_cv_have_decl_getline = no; then + HAVE_DECL_GETLINE=0 + fi + + case "$am_cv_func_working_getline" in + *yes) ;; + *) + REPLACE_GETLINE=1 + ;; + esac + + + if test $REPLACE_GETLINE = 1; then + GL_COND_OBJ_GETLINE_TRUE= + GL_COND_OBJ_GETLINE_FALSE='#' +else + GL_COND_OBJ_GETLINE_TRUE='#' + GL_COND_OBJ_GETLINE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETLINE_TRUE}" && test -z "${GL_COND_OBJ_GETLINE_FALSE}"; then + GL_COND_OBJ_GETLINE_TRUE='#' + GL_COND_OBJ_GETLINE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETLINE_TRUE"; then : + + + : + + +fi + + + + + + + + + + GL_GNULIB_GETLINE=1 + + + + + +$as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_have_decl_getlogin_r = no; then + HAVE_DECL_GETLOGIN_R=0 + fi + + + ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "#include +" +if test "x$ac_cv_have_decl_getlogin_r" = xyes; then : + +fi + + if test $ac_cv_have_decl_getlogin_r = yes; then + for ac_func in getlogin_r +do : + ac_fn_c_check_func "$LINENO" "getlogin_r" "ac_cv_func_getlogin_r" +if test "x$ac_cv_func_getlogin_r" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETLOGIN_R 1 +_ACEOF + +fi +done + + else + ac_cv_func_getlogin_r=no + fi + + if test $ac_cv_func_getlogin_r = no; then + HAVE_GETLOGIN_R=0 + else + HAVE_GETLOGIN_R=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getlogin_r works with small buffers" >&5 +$as_echo_n "checking whether getlogin_r works with small buffers... " >&6; } +if ${gl_cv_func_getlogin_r_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Mac OS X, OSF/1. + darwin* | osf*) gl_cv_func_getlogin_r_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_getlogin_r_works="guessing yes" ;; + esac + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if !HAVE_DECL_GETLOGIN_R +extern +# ifdef __cplusplus +"C" +# endif +int getlogin_r (char *, size_t); +#endif +int +main (void) +{ + int result = 0; + char buf[100]; + + if (getlogin_r (buf, 0) == 0) + result |= 1; + if (getlogin_r (buf, 1) == 0) + result |= 2; + if (getlogin_r (buf, 100) == 0) + { + size_t n = strlen (buf); + if (getlogin_r (buf, n) == 0) + result |= 4; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_getlogin_r_works=yes +else + gl_cv_func_getlogin_r_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getlogin_r_works" >&5 +$as_echo "$gl_cv_func_getlogin_r_works" >&6; } + case "$gl_cv_func_getlogin_r_works" in + *yes) ;; + *) REPLACE_GETLOGIN_R=1 ;; + esac + fi + + + if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then + GL_COND_OBJ_GETLOGIN_R_TRUE= + GL_COND_OBJ_GETLOGIN_R_FALSE='#' +else + GL_COND_OBJ_GETLOGIN_R_TRUE='#' + GL_COND_OBJ_GETLOGIN_R_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETLOGIN_R_TRUE}" && test -z "${GL_COND_OBJ_GETLOGIN_R_FALSE}"; then + GL_COND_OBJ_GETLOGIN_R_TRUE='#' + GL_COND_OBJ_GETLOGIN_R_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETLOGIN_R_TRUE"; then : + + + + + +fi + + + + + + + + + + GL_GNULIB_GETLOGIN_R=1 + + + + + +$as_echo "#define GNULIB_TEST_GETLOGIN_R 1" >>confdefs.h + + + + + + + + + + + + + + REPLACE_GETOPT=0 + if test -n "$gl_replace_getopt"; then + REPLACE_GETOPT=1 + fi + + GL_GENERATE_GETOPT_H=false + GL_GENERATE_GETOPT_CDEFS_H=false + if test $REPLACE_GETOPT = 1; then + + + if test $ac_cv_header_sys_cdefs_h = yes; then + HAVE_SYS_CDEFS_H=1 + else + HAVE_SYS_CDEFS_H=0 + fi + + + +$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h + + GL_GENERATE_GETOPT_H=true + GL_GENERATE_GETOPT_CDEFS_H=true + + fi + + + + + + case "$GL_GENERATE_GETOPT_H" in + false) GETOPT_H='' ;; + true) + if test -z "$GETOPT_H"; then + GETOPT_H="${gl_source_base_prefix}getopt.h" + fi + ;; + *) echo "*** GL_GENERATE_GETOPT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GETOPT_H; then + GL_GENERATE_GETOPT_H_TRUE= + GL_GENERATE_GETOPT_H_FALSE='#' +else + GL_GENERATE_GETOPT_H_TRUE='#' + GL_GENERATE_GETOPT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GETOPT_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_H_FALSE}"; then + GL_GENERATE_GETOPT_H_TRUE='#' + GL_GENERATE_GETOPT_H_FALSE='#' + fi + + + + + + + + + + case "$GL_GENERATE_GETOPT_CDEFS_H" in + false) GETOPT_CDEFS_H='' ;; + true) + if test -z "$GETOPT_CDEFS_H"; then + GETOPT_CDEFS_H="${gl_source_base_prefix}getopt-cdefs.h" + fi + ;; + *) echo "*** GL_GENERATE_GETOPT_CDEFS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GETOPT_CDEFS_H; then + GL_GENERATE_GETOPT_CDEFS_H_TRUE= + GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' +else + GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' + GL_GENERATE_GETOPT_CDEFS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GETOPT_CDEFS_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_CDEFS_H_FALSE}"; then + GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' + GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' + fi + + + + + + + + if test $REPLACE_GETOPT = 1; then + GL_COND_OBJ_GETOPT_TRUE= + GL_COND_OBJ_GETOPT_FALSE='#' +else + GL_COND_OBJ_GETOPT_TRUE='#' + GL_COND_OBJ_GETOPT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETOPT_TRUE}" && test -z "${GL_COND_OBJ_GETOPT_FALSE}"; then + GL_COND_OBJ_GETOPT_TRUE='#' + GL_COND_OBJ_GETOPT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETOPT_TRUE"; then : + + + + + + + + GL_GNULIB_UNISTD_H_GETOPT=1 + + + +fi + + + + + + + + + + GL_GNULIB_GETOPT_POSIX=1 + + + + + +$as_echo "#define GNULIB_TEST_GETOPT_POSIX 1" >>confdefs.h + + + + + + + ac_found=0 + ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + ac_found=1 +fi + + ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include +" +if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + ac_found=1 +fi + + ac_fn_c_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include +" +if test "x$ac_cv_have_decl___argv" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___ARGV $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + ac_found=1 +fi + + + # Incur the cost of this test only if none of the above worked. + if test $ac_found = 0; then + # On OpenBSD 5.1, using the global __progname variable appears to be + # the only way to implement getprogname. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 +$as_echo_n "checking whether __progname is defined in default libraries... " >&6; } +if ${gl_cv_var___progname+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_cv_var___progname= + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern char *__progname; +int +main () +{ +return *__progname; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_var___progname=yes + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 +$as_echo "$gl_cv_var___progname" >&6; } + if test "$gl_cv_var___progname" = yes; then + +$as_echo "#define HAVE_VAR___PROGNAME 1" >>confdefs.h + + fi + fi + + + + + + ac_fn_c_check_decl "$LINENO" "getrandom" "ac_cv_have_decl_getrandom" "/* Additional includes are needed before on uClibc + and Mac OS X. */ + #include + #include + #include + +" +if test "x$ac_cv_have_decl_getrandom" = xyes; then : + +fi + + if test $ac_cv_have_decl_getrandom = yes; then + for ac_func in getrandom +do : + ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom" +if test "x$ac_cv_func_getrandom" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETRANDOM 1 +_ACEOF + +fi +done + + else + ac_cv_func_getrandom=no + fi + + if test "$ac_cv_func_getrandom" != yes; then + HAVE_GETRANDOM=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getrandom is compatible with its GNU+BSD signature" >&5 +$as_echo_n "checking whether getrandom is compatible with its GNU+BSD signature... " >&6; } +if ${gl_cv_func_getrandom_ok+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Additional includes are needed before on uClibc + and Mac OS X. */ + #include + #include + #include + ssize_t getrandom (void *, size_t, unsigned int); + +int +main () +{ + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_getrandom_ok=yes +else + gl_cv_func_getrandom_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getrandom_ok" >&5 +$as_echo "$gl_cv_func_getrandom_ok" >&6; } + if test $gl_cv_func_getrandom_ok = no; then + REPLACE_GETRANDOM=1 + fi + fi + + case "$host_os" in + mingw*) + for ac_header in bcrypt.h +do : + ac_fn_c_check_header_compile "$LINENO" "bcrypt.h" "ac_cv_header_bcrypt_h" "#include + +" +if test "x$ac_cv_header_bcrypt_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BCRYPT_H 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the bcrypt library is guaranteed to be present" >&5 +$as_echo_n "checking whether the bcrypt library is guaranteed to be present... " >&6; } +if ${gl_cv_lib_assume_bcrypt+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +#if !(_WIN32_WINNT >= _WIN32_WINNT_WIN7) + cannot assume it + #endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_lib_assume_bcrypt=yes +else + gl_cv_lib_assume_bcrypt=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_assume_bcrypt" >&5 +$as_echo "$gl_cv_lib_assume_bcrypt" >&6; } + if test $gl_cv_lib_assume_bcrypt = yes; then + +$as_echo "#define HAVE_LIB_BCRYPT 1" >>confdefs.h + + GETRANDOM_LIB='-lbcrypt' + else + GETRANDOM_LIB='-ladvapi32' + fi + ;; + *) + GETRANDOM_LIB= ;; + esac + + LIB_GETRANDOM="$GETRANDOM_LIB" + + + + if test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1; then + GL_COND_OBJ_GETRANDOM_TRUE= + GL_COND_OBJ_GETRANDOM_FALSE='#' +else + GL_COND_OBJ_GETRANDOM_TRUE='#' + GL_COND_OBJ_GETRANDOM_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETRANDOM_TRUE}" && test -z "${GL_COND_OBJ_GETRANDOM_FALSE}"; then + GL_COND_OBJ_GETRANDOM_TRUE='#' + GL_COND_OBJ_GETRANDOM_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GETRANDOM=1 + + + + + +$as_echo "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h + + + + + + + + + + + if test $gl_cv_func_timespec_get = yes; then + +$as_echo "#define HAVE_TIMESPEC_GET 1" >>confdefs.h + + fi + + + + + + + + + gl_gettimeofday_timezone=void + if test $ac_cv_func_gettimeofday != yes; then + HAVE_GETTIMEOFDAY=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 +$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } +if ${gl_cv_func_gettimeofday_posix_signature+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct timeval c; + int gettimeofday (struct timeval *restrict, void *restrict); + +int +main () +{ +/* glibc uses struct timezone * rather than the POSIX void * + if _GNU_SOURCE is defined. However, since the only portable + use of gettimeofday uses NULL as the second parameter, and + since the glibc definition is actually more typesafe, it is + not worth wrapping this to get a compliant signature. */ + int (*f) (struct timeval *restrict, void *restrict) + = gettimeofday; + int x = f (&c, 0); + return !(x | c.tv_sec | c.tv_usec); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_gettimeofday_posix_signature=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int gettimeofday (struct timeval *restrict, struct timezone *restrict); + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_gettimeofday_posix_signature=almost +else + gl_cv_func_gettimeofday_posix_signature=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_posix_signature" >&5 +$as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; } + if test $gl_cv_func_gettimeofday_posix_signature = almost; then + gl_gettimeofday_timezone='struct timezone' + elif test $gl_cv_func_gettimeofday_posix_signature != yes; then + REPLACE_GETTIMEOFDAY=1 + fi + if test $REPLACE_STRUCT_TIMEVAL = 1; then + REPLACE_GETTIMEOFDAY=1 + fi + case "$host_os" in + mingw*) REPLACE_GETTIMEOFDAY=1 ;; + esac + fi + +cat >>confdefs.h <<_ACEOF +#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone +_ACEOF + + + + if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then + GL_COND_OBJ_GETTIMEOFDAY_TRUE= + GL_COND_OBJ_GETTIMEOFDAY_FALSE='#' +else + GL_COND_OBJ_GETTIMEOFDAY_TRUE='#' + GL_COND_OBJ_GETTIMEOFDAY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GETTIMEOFDAY_TRUE}" && test -z "${GL_COND_OBJ_GETTIMEOFDAY_FALSE}"; then + GL_COND_OBJ_GETTIMEOFDAY_TRUE='#' + GL_COND_OBJ_GETTIMEOFDAY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GETTIMEOFDAY_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_GETTIMEOFDAY=1 + + + + + +$as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_func_glob = no; then + HAVE_GLOB=0 + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU glob interface version 1 or 2" >&5 +$as_echo_n "checking for GNU glob interface version 1 or 2... " >&6; } +if ${gl_cv_gnu_glob_interface_version_1_2+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +char a[_GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 ? 1 : -1]; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_gnu_glob_interface_version_1_2=yes +else + gl_cv_gnu_glob_interface_version_1_2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_gnu_glob_interface_version_1_2" >&5 +$as_echo "$gl_cv_gnu_glob_interface_version_1_2" >&6; } + if test "$gl_cv_gnu_glob_interface_version_1_2" = "no"; then + REPLACE_GLOB=1 + fi + + if test $REPLACE_GLOB = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glob lists broken symlinks" >&5 +$as_echo_n "checking whether glob lists broken symlinks... " >&6; } +if ${gl_cv_glob_lists_symlinks+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test $cross_compiling != yes; then + if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then + gl_cv_glob_lists_symlinks=maybe + else + # If we can't make a symlink, then we cannot test this issue. Be + # pessimistic about this. + gl_cv_glob_lists_symlinks=no + fi + if test $gl_cv_glob_lists_symlinks = maybe; then + if test "$cross_compiling" = yes; then : + : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +glob_t found; + if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) + return 1; + globfree (&found); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_glob_lists_symlinks=yes +else + gl_cv_glob_lists_symlinks=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + rm -f conf$$-globtest + else + gl_cv_glob_lists_symlinks="$gl_cross_guess_normal" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_glob_lists_symlinks" >&5 +$as_echo "$gl_cv_glob_lists_symlinks" >&6; } + case "$gl_cv_glob_lists_symlinks" in + *yes) ;; + *) REPLACE_GLOB=1 ;; + esac + fi + + if test $REPLACE_GLOB = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glob NOTDIR*/ omits symlink to nondir" >&5 +$as_echo_n "checking whether glob NOTDIR*/ omits symlink to nondir... " >&6; } +if ${gl_cv_glob_omit_nondir_symlinks+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test $cross_compiling != yes; then + if ln -s conf$$-file conf$$-globtest 2>/dev/null && touch conf$$-file + then + gl_cv_glob_omit_nondir_symlinks=maybe + else + # If we can't make a symlink, then we cannot test this issue. Be + # pessimistic about this. + gl_cv_glob_omit_nondir_symlinks=no + fi + if test $gl_cv_glob_omit_nondir_symlinks = maybe; then + if test "$cross_compiling" = yes; then : + : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +glob_t found; + if (glob ("conf*-globtest/", 0, NULL, &found) != GLOB_NOMATCH) + return 1; + globfree (&found); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_glob_omit_nondir_symlinks=yes +else + gl_cv_glob_omit_nondir_symlinks=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + rm -f conf$$-file conf$$-globtest + else + gl_cv_glob_omit_nondir_symlinks="$gl_cross_guess_normal" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_glob_omit_nondir_symlinks" >&5 +$as_echo "$gl_cv_glob_omit_nondir_symlinks" >&6; } + case "$gl_cv_glob_omit_nondir_symlinks" in + *yes) ;; + *) REPLACE_GLOB=1 ;; + esac + fi + + fi + + if test $ac_cv_func_glob_pattern_p = no; then + HAVE_GLOB_PATTERN_P=0 + else + if test $REPLACE_GLOB = 1; then + REPLACE_GLOB_PATTERN_P=1 + fi + fi + + if test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1; then + + + + + + + GL_GENERATE_GLOB_H=true + + fi + + + + + + case "$GL_GENERATE_GLOB_H" in + false) GLOB_H='' ;; + true) + if test -z "$GLOB_H"; then + GLOB_H="${gl_source_base_prefix}glob.h" + fi + ;; + *) echo "*** GL_GENERATE_GLOB_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GLOB_H; then + GL_GENERATE_GLOB_H_TRUE= + GL_GENERATE_GLOB_H_FALSE='#' +else + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE='#' + fi + + + + + + + if test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1; then + GL_COND_OBJ_GLOB_TRUE= + GL_COND_OBJ_GLOB_FALSE='#' +else + GL_COND_OBJ_GLOB_TRUE='#' + GL_COND_OBJ_GLOB_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GLOB_TRUE}" && test -z "${GL_COND_OBJ_GLOB_FALSE}"; then + GL_COND_OBJ_GLOB_TRUE='#' + GL_COND_OBJ_GLOB_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_GLOB_TRUE"; then : + + + + + + ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "#include +" +if test "x$ac_cv_have_decl_getlogin_r" = xyes; then : + +fi + + if test $ac_cv_have_decl_getlogin_r = yes; then + for ac_func in getlogin_r +do : + ac_fn_c_check_func "$LINENO" "getlogin_r" "ac_cv_func_getlogin_r" +if test "x$ac_cv_func_getlogin_r" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETLOGIN_R 1 +_ACEOF + +fi +done + + else + ac_cv_func_getlogin_r=no + fi + + + + +fi + + if test $HAVE_GLOB_PATTERN_P = 0 || test $REPLACE_GLOB_PATTERN_P = 1; then + GL_COND_OBJ_GLOB_PATTERN_P_TRUE= + GL_COND_OBJ_GLOB_PATTERN_P_FALSE='#' +else + GL_COND_OBJ_GLOB_PATTERN_P_TRUE='#' + GL_COND_OBJ_GLOB_PATTERN_P_FALSE= +fi +: + if test -z "${GL_COND_OBJ_GLOB_PATTERN_P_TRUE}" && test -z "${GL_COND_OBJ_GLOB_PATTERN_P_FALSE}"; then + GL_COND_OBJ_GLOB_PATTERN_P_TRUE='#' + GL_COND_OBJ_GLOB_PATTERN_P_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_GLOB=1 + + + + + +$as_echo "#define GNULIB_TEST_GLOB 1" >>confdefs.h + + + + + + + + + + + + + + case "$GL_GENERATE_GLOB_H" in + false) GLOB_H='' ;; + true) + if test -z "$GLOB_H"; then + GLOB_H="${gl_source_base_prefix}glob.h" + fi + ;; + *) echo "*** GL_GENERATE_GLOB_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_GLOB_H; then + GL_GENERATE_GLOB_H_TRUE= + GL_GENERATE_GLOB_H_FALSE='#' +else + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE= +fi +: + if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE='#' + fi + + + + + + + + HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB" + + LIB_HARD_LOCALE="$HARD_LOCALE_LIB" + + + + + + + + + + + + + + if test $ac_cv_func_isblank = no; then + HAVE_ISBLANK=0 + fi + + + if test $HAVE_ISBLANK = 0; then + GL_COND_OBJ_ISBLANK_TRUE= + GL_COND_OBJ_ISBLANK_FALSE='#' +else + GL_COND_OBJ_ISBLANK_TRUE='#' + GL_COND_OBJ_ISBLANK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ISBLANK_TRUE}" && test -z "${GL_COND_OBJ_ISBLANK_FALSE}"; then + GL_COND_OBJ_ISBLANK_TRUE='#' + GL_COND_OBJ_ISBLANK_FALSE='#' + fi + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_ISBLANK 1 +_ACEOF + + + + + + + + + + + + GL_GNULIB_ISBLANK=1 + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(double) can be used without linking with libm" >&5 +$as_echo_n "checking whether isnan(double) can be used without linking with libm... " >&6; } +if ${gl_cv_func_isnand_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (__GNUC__ >= 4) || (__clang_major__ >= 4) + # undef isnand + # define isnand(x) __builtin_isnan ((double)(x)) + #else + # undef isnand + # define isnand(x) isnan ((double)(x)) + #endif + double x; +int +main () +{ +return isnand (x); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_isnand_no_libm=yes +else + gl_cv_func_isnand_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnand_no_libm" >&5 +$as_echo "$gl_cv_func_isnand_no_libm" >&6; } + + gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm + if test $gl_cv_func_isnand_no_libm = yes; then + +$as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h + + fi + + if test $gl_func_isnand_no_libm != yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS isnand.$ac_objext" + + + + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) can be used without linking with libm" >&5 +$as_echo_n "checking whether isnan(float) can be used without linking with libm... " >&6; } +if ${gl_cv_func_isnanf_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (__GNUC__ >= 4) || (__clang_major__ >= 4) + # undef isnanf + # define isnanf(x) __builtin_isnan ((float)(x)) + #elif defined isnan + # undef isnanf + # define isnanf(x) isnan ((float)(x)) + #endif + float x; +int +main () +{ +return isnanf (x); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_isnanf_no_libm=yes +else + gl_cv_func_isnanf_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_no_libm" >&5 +$as_echo "$gl_cv_func_isnanf_no_libm" >&6; } + + if test $gl_cv_func_isnanf_no_libm = yes; then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) works" >&5 +$as_echo_n "checking whether isnan(float) works... " >&6; } +if ${gl_cv_func_isnanf_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + irix* | solaris*) gl_cv_func_isnanf_works="guessing no" ;; + mingw*) # Guess yes on mingw, no on MSVC. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __MINGW32__ + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_isnanf_works="guessing yes" +else + gl_cv_func_isnanf_works="guessing no" +fi +rm -f conftest* + + ;; + *) gl_cv_func_isnanf_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if (__GNUC__ >= 4) || (__clang_major__ >= 4) +# undef isnanf +# define isnanf(x) __builtin_isnan ((float)(x)) +#elif defined isnan +# undef isnanf +# define isnanf(x) isnan ((float)(x)) +#endif +/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */ +#ifdef __DECC +static float +NaN () +{ + static float zero = 0.0f; + return zero / zero; +} +#else +# define NaN() (0.0f / 0.0f) +#endif +#define NWORDS \ + ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { unsigned int word[NWORDS]; float value; } memory_float; +int main() +{ + int result = 0; + + if (isnanf (1.0f / 0.0f)) + result |= 1; + + if (!isnanf (NaN ())) + result |= 2; + +#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT + /* The isnanf function should be immune against changes in the sign bit and + in the mantissa bits. The xor operation twiddles a bit that can only be + a sign bit or a mantissa bit. */ + if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0) + { + memory_float m; + + m.value = NaN (); + /* Set the bits below the exponent to 01111...111. */ + m.word[0] &= -1U << FLT_EXPBIT0_BIT; + m.word[0] |= (1U << (FLT_EXPBIT0_BIT - 1)) - 1; + if (!isnanf (m.value)) + result |= 4; + } +#endif + + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_isnanf_works=yes +else + gl_cv_func_isnanf_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_works" >&5 +$as_echo "$gl_cv_func_isnanf_works" >&6; } + + fi + if test $gl_cv_func_isnanf_no_libm = yes \ + && { case "$gl_cv_func_isnanf_works" in + *yes) true;; + *) false;; + esac + }; then + gl_func_isnanf_no_libm=yes + +$as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h + + else + gl_func_isnanf_no_libm=no + fi + + if test $gl_func_isnanf_no_libm != yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS isnanf.$ac_objext" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5 +$as_echo_n "checking where to find the exponent in a 'float'... " >&6; } +if ${gl_cv_cc_float_expbit0+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + gl_cv_cc_float_expbit0="word 0 bit 23" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#define NWORDS \ + ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { float value; unsigned int word[NWORDS]; } memory_float; +static unsigned int ored_words[NWORDS]; +static unsigned int anded_words[NWORDS]; +static void add_to_ored_words (float x) +{ + memory_float m; + size_t i; + /* Clear it first, in case + sizeof (float) < sizeof (memory_float). */ + memset (&m, 0, sizeof (memory_float)); + m.value = x; + for (i = 0; i < NWORDS; i++) + { + ored_words[i] |= m.word[i]; + anded_words[i] &= m.word[i]; + } +} +int main () +{ + size_t j; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + for (j = 0; j < NWORDS; j++) + anded_words[j] = ~ (unsigned int) 0; + add_to_ored_words (0.25f); + add_to_ored_words (0.5f); + add_to_ored_words (1.0f); + add_to_ored_words (2.0f); + add_to_ored_words (4.0f); + /* Remove bits that are common (e.g. if representation of the first mantissa + bit is explicit). */ + for (j = 0; j < NWORDS; j++) + ored_words[j] &= ~anded_words[j]; + /* Now find the nonzero word. */ + for (j = 0; j < NWORDS; j++) + if (ored_words[j] != 0) + break; + if (j < NWORDS) + { + size_t i; + for (i = j + 1; i < NWORDS; i++) + if (ored_words[i] != 0) + { + fprintf (fp, "unknown"); + return (fclose (fp) != 0); + } + for (i = 0; ; i++) + if ((ored_words[j] >> i) & 1) + { + fprintf (fp, "word %d bit %d", (int) j, (int) i); + return (fclose (fp) != 0); + } + } + fprintf (fp, "unknown"); + return (fclose (fp) != 0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_float_expbit0=`cat conftest.out` +else + gl_cv_cc_float_expbit0="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5 +$as_echo "$gl_cv_cc_float_expbit0" >&6; } + case "$gl_cv_cc_float_expbit0" in + word*bit*) + word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define FLT_EXPBIT0_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define FLT_EXPBIT0_BIT $bit +_ACEOF + + ;; + esac + + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(long double) can be used without linking with libm" >&5 +$as_echo_n "checking whether isnan(long double) can be used without linking with libm... " >&6; } +if ${gl_cv_func_isnanl_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (__GNUC__ >= 4) || (__clang_major__ >= 4) + # undef isnanl + # define isnanl(x) __builtin_isnan ((long double)(x)) + #elif defined isnan + # undef isnanl + # define isnanl(x) isnan ((long double)(x)) + #endif + long double x; +int +main () +{ +return isnanl (x); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_isnanl_no_libm=yes +else + gl_cv_func_isnanl_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_no_libm" >&5 +$as_echo "$gl_cv_func_isnanl_no_libm" >&6; } + + gl_func_isnanl_no_libm=$gl_cv_func_isnanl_no_libm + if test $gl_func_isnanl_no_libm = yes; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnanl works" >&5 +$as_echo_n "checking whether isnanl works... " >&6; } +if ${gl_cv_func_isnanl_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + mingw*) # Guess yes on mingw, no on MSVC. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __MINGW32__ + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_isnanl_works="guessing yes" +else + gl_cv_func_isnanl_works="guessing no" +fi +rm -f conftest* + + ;; + *) gl_cv_func_isnanl_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if (__GNUC__ >= 4) || (__clang_major__ >= 4) +# undef isnanl +# define isnanl(x) __builtin_isnan ((long double)(x)) +#elif defined isnan +# undef isnanl +# define isnanl(x) isnan ((long double)(x)) +#endif +#define NWORDS \ + ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { unsigned int word[NWORDS]; long double value; } + memory_long_double; +/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the + runtime type conversion. */ +#ifdef __sgi +static long double NaNl () +{ + double zero = 0.0; + return zero / zero; +} +#else +# define NaNl() (0.0L / 0.0L) +#endif +int main () +{ + int result = 0; + + if (!isnanl (NaNl ())) + result |= 1; + + { + memory_long_double m; + unsigned int i; + + /* The isnanl function should be immune against changes in the sign bit and + in the mantissa bits. The xor operation twiddles a bit that can only be + a sign bit or a mantissa bit (since the exponent never extends to + bit 31). */ + m.value = NaNl (); + m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); + for (i = 0; i < NWORDS; i++) + m.word[i] |= 1; + if (!isnanl (m.value)) + result |= 1; + } + +#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE +/* Representation of an 80-bit 'long double' as an initializer for a sequence + of 'unsigned int' words. */ +# ifdef WORDS_BIGENDIAN +# define LDBL80_WORDS(exponent,manthi,mantlo) \ + { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ + ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16), \ + (unsigned int) (mantlo) << 16 \ + } +# else +# define LDBL80_WORDS(exponent,manthi,mantlo) \ + { mantlo, manthi, exponent } +# endif + { /* Quiet NaN. */ + static memory_long_double x = + { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; + if (!isnanl (x.value)) + result |= 2; + } + { + /* Signalling NaN. */ + static memory_long_double x = + { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; + if (!isnanl (x.value)) + result |= 2; + } + /* isnanl should return something even for noncanonical values. */ + { /* Pseudo-NaN. */ + static memory_long_double x = + { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; + if (isnanl (x.value) && !isnanl (x.value)) + result |= 4; + } + { /* Pseudo-Infinity. */ + static memory_long_double x = + { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; + if (isnanl (x.value) && !isnanl (x.value)) + result |= 8; + } + { /* Pseudo-Zero. */ + static memory_long_double x = + { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; + if (isnanl (x.value) && !isnanl (x.value)) + result |= 16; + } + { /* Unnormalized number. */ + static memory_long_double x = + { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; + if (isnanl (x.value) && !isnanl (x.value)) + result |= 32; + } + { /* Pseudo-Denormal. */ + static memory_long_double x = + { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; + if (isnanl (x.value) && !isnanl (x.value)) + result |= 64; + } +#endif + + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_isnanl_works=yes +else + gl_cv_func_isnanl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_works" >&5 +$as_echo "$gl_cv_func_isnanl_works" >&6; } + + case "$gl_cv_func_isnanl_works" in + *yes) ;; + *) gl_func_isnanl_no_libm=no ;; + esac + fi + if test $gl_func_isnanl_no_libm = yes; then + +$as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h + + fi + + if test $gl_func_isnanl_no_libm != yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS isnanl.$ac_objext" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5 +$as_echo_n "checking where to find the exponent in a 'long double'... " >&6; } +if ${gl_cv_cc_long_double_expbit0+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + gl_cv_cc_long_double_expbit0="unknown" + case "$host_os" in + mingw*) # On native Windows (little-endian), we know the result + # in two cases: mingw, MSVC. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __MINGW32__ + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_cc_long_double_expbit0="word 2 bit 0" +fi +rm -f conftest* + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_cc_long_double_expbit0="word 1 bit 20" +fi +rm -f conftest* + + ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#define NWORDS \ + ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { long double value; unsigned int word[NWORDS]; } + memory_long_double; +static unsigned int ored_words[NWORDS]; +static unsigned int anded_words[NWORDS]; +static void add_to_ored_words (long double *x) +{ + memory_long_double m; + size_t i; + /* Clear it first, in case + sizeof (long double) < sizeof (memory_long_double). */ + memset (&m, 0, sizeof (memory_long_double)); + m.value = *x; + for (i = 0; i < NWORDS; i++) + { + ored_words[i] |= m.word[i]; + anded_words[i] &= m.word[i]; + } +} +int main () +{ + static long double samples[5] = { 0.25L, 0.5L, 1.0L, 2.0L, 4.0L }; + size_t j; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + for (j = 0; j < NWORDS; j++) + anded_words[j] = ~ (unsigned int) 0; + for (j = 0; j < 5; j++) + add_to_ored_words (&samples[j]); + /* Remove bits that are common (e.g. if representation of the first mantissa + bit is explicit). */ + for (j = 0; j < NWORDS; j++) + ored_words[j] &= ~anded_words[j]; + /* Now find the nonzero word. */ + for (j = 0; j < NWORDS; j++) + if (ored_words[j] != 0) + break; + if (j < NWORDS) + { + size_t i; + for (i = j + 1; i < NWORDS; i++) + if (ored_words[i] != 0) + { + fprintf (fp, "unknown"); + return (fclose (fp) != 0); + } + for (i = 0; ; i++) + if ((ored_words[j] >> i) & 1) + { + fprintf (fp, "word %d bit %d", (int) j, (int) i); + return (fclose (fp) != 0); + } + } + fprintf (fp, "unknown"); + return (fclose (fp) != 0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_long_double_expbit0=`cat conftest.out` +else + gl_cv_cc_long_double_expbit0="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5 +$as_echo "$gl_cv_cc_long_double_expbit0" >&6; } + case "$gl_cv_cc_long_double_expbit0" in + word*bit*) + word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define LDBL_EXPBIT0_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define LDBL_EXPBIT0_BIT $bit +_ACEOF + + ;; + esac + + + + fi + + + + + + ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" " + #include + #include + +" +if test "x$ac_cv_have_decl_iswblank" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ISWBLANK $ac_have_decl +_ACEOF + + if test $ac_cv_func_iswblank = no; then + HAVE_ISWBLANK=0 + if test $ac_cv_have_decl_iswblank = yes; then + REPLACE_ISWBLANK=1 + fi + fi + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + : + else + if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then + : + fi + fi + + + + if ! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && { test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; }; then + GL_COND_OBJ_ISWBLANK_TRUE= + GL_COND_OBJ_ISWBLANK_FALSE='#' +else + GL_COND_OBJ_ISWBLANK_TRUE='#' + GL_COND_OBJ_ISWBLANK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_ISWBLANK_TRUE}" && test -z "${GL_COND_OBJ_ISWBLANK_FALSE}"; then + GL_COND_OBJ_ISWBLANK_TRUE='#' + GL_COND_OBJ_ISWBLANK_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_ISWBLANK=1 + + + + + +$as_echo "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 +$as_echo_n "checking whether the compiler supports the __inline keyword... " >&6; } +if ${gl_cv_c___inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int foo_t; + static __inline foo_t foo (void) { return 0; } +int +main () +{ +return foo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_c___inline=yes +else + gl_cv_c___inline=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 +$as_echo "$gl_cv_c___inline" >&6; } + if test $gl_cv_c___inline = yes; then + +$as_echo "#define HAVE___INLINE 1" >>confdefs.h + + fi + + + + + + + case "$GL_GENERATE_LIMITS_H" in + false) LIMITS_H='' ;; + true) + if test -z "$LIMITS_H"; then + LIMITS_H="${gl_source_base_prefix}limits.h" + fi + ;; + *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_LIMITS_H; then + GL_GENERATE_LIMITS_H_TRUE= + GL_GENERATE_LIMITS_H_FALSE='#' +else + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE='#' + fi + + + + + + + + + + LOCALCHARSET_TESTS_ENVIRONMENT= + + + + + + + + + + + + + if test $REPLACE_STRUCT_LCONV = 1; then + REPLACE_LOCALECONV=1 + fi + + + if test $REPLACE_LOCALECONV = 1; then + GL_COND_OBJ_LOCALECONV_TRUE= + GL_COND_OBJ_LOCALECONV_FALSE='#' +else + GL_COND_OBJ_LOCALECONV_TRUE='#' + GL_COND_OBJ_LOCALECONV_FALSE= +fi +: + if test -z "${GL_COND_OBJ_LOCALECONV_TRUE}" && test -z "${GL_COND_OBJ_LOCALECONV_FALSE}"; then + GL_COND_OBJ_LOCALECONV_TRUE='#' + GL_COND_OBJ_LOCALECONV_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_LOCALECONV_TRUE"; then : + + + ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include +" +if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1 +_ACEOF + + +fi + + + +fi + + + + + + + + + + GL_GNULIB_LOCALECONV=1 + + + + + +$as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h + + + + + + if test "$gl_threads_api" = posix; then + # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the + # pthread_rwlock_* functions. + has_rwlock=false + ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include +" +if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : + has_rwlock=true + +$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h + +fi + + if $has_rwlock; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 +$as_echo_n "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } +if ${gl_cv_pthread_rwlock_rdlock_prefer_writer+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on glibc systems. + *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on musl systems. + *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess no on bionic systems. + *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; + # Guess yes on native Windows with the mingw-w64 winpthreads library. + # Guess no on native Windows with the gnulib windows-rwlock module. + mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" + else + gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" + fi + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include + +#define SUCCEED() exit (0) +#define FAILURE() exit (1) +#define UNEXPECTED(n) (exit (10 + (n))) + +/* The main thread creates the waiting writer and the requesting reader threads + in the default way; this guarantees that they have the same priority. + We can reuse the main thread as first reader thread. */ + +static pthread_rwlock_t lock; +static pthread_t reader1; +static pthread_t writer; +static pthread_t reader2; +static pthread_t timer; +/* Used to pass control from writer to reader2 and from reader2 to timer, + as in a relay race. + Passing control from one running thread to another running thread + is most likely faster than to create the second thread. */ +static pthread_mutex_t baton; + +static void * +timer_func (void *ignored) +{ + /* Step 13 (can be before or after step 12): + The timer thread takes the baton, then waits a moment to make sure + it can tell whether the second reader thread is blocked at step 12. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (13); + usleep (100000); + /* By the time we get here, it's clear that the second reader thread is + blocked at step 12. This is the desired behaviour. */ + SUCCEED (); +} + +static void * +reader2_func (void *ignored) +{ + int err; + + /* Step 8 (can be before or after step 7): + The second reader thread takes the baton, then waits a moment to make sure + the writer thread has reached step 7. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (8); + usleep (100000); + /* Step 9: The second reader thread requests the lock. */ + err = pthread_rwlock_tryrdlock (&lock); + if (err == 0) + FAILURE (); + else if (err != EBUSY) + UNEXPECTED (9); + /* Step 10: Launch a timer, to test whether the next call blocks. */ + if (pthread_create (&timer, NULL, timer_func, NULL)) + UNEXPECTED (10); + /* Step 11: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (11); + /* Step 12: The second reader thread requests the lock. */ + err = pthread_rwlock_rdlock (&lock); + if (err == 0) + FAILURE (); + else + UNEXPECTED (12); +} + +static void * +writer_func (void *ignored) +{ + /* Step 4: Take the baton, so that the second reader thread does not go ahead + too early. */ + if (pthread_mutex_lock (&baton)) + UNEXPECTED (4); + /* Step 5: Create the second reader thread. */ + if (pthread_create (&reader2, NULL, reader2_func, NULL)) + UNEXPECTED (5); + /* Step 6: Release the baton. */ + if (pthread_mutex_unlock (&baton)) + UNEXPECTED (6); + /* Step 7: The writer thread requests the lock. */ + if (pthread_rwlock_wrlock (&lock)) + UNEXPECTED (7); + return NULL; +} + +int +main () +{ + reader1 = pthread_self (); + + /* Step 1: The main thread initializes the lock and the baton. */ + if (pthread_rwlock_init (&lock, NULL)) + UNEXPECTED (1); + if (pthread_mutex_init (&baton, NULL)) + UNEXPECTED (1); + /* Step 2: The main thread acquires the lock as a reader. */ + if (pthread_rwlock_rdlock (&lock)) + UNEXPECTED (2); + /* Step 3: Create the writer thread. */ + if (pthread_create (&writer, NULL, writer_func, NULL)) + UNEXPECTED (3); + /* Job done. Go to sleep. */ + for (;;) + { + sleep (1); + } +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_pthread_rwlock_rdlock_prefer_writer=yes +else + gl_cv_pthread_rwlock_rdlock_prefer_writer=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 +$as_echo "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } + case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in + *yes) + +$as_echo "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h + + ;; + esac + + fi + # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include +int +main () +{ + +#if __FreeBSD__ == 4 +error "No, in FreeBSD 4.0 recursive mutexes actually don't work." +#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ + && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) +error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." +#else +int x = (int)PTHREAD_MUTEX_RECURSIVE; +return !x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + : + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_LOCK 1 +_ACEOF + + + + + + + if test $ac_cv_func_lstat = yes; then + + case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in + solaris* | *no) + REPLACE_LSTAT=1 + ;; + esac + else + HAVE_LSTAT=0 + fi + + + if test $REPLACE_LSTAT = 1; then + GL_COND_OBJ_LSTAT_TRUE= + GL_COND_OBJ_LSTAT_FALSE='#' +else + GL_COND_OBJ_LSTAT_TRUE='#' + GL_COND_OBJ_LSTAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_LSTAT_TRUE}" && test -z "${GL_COND_OBJ_LSTAT_FALSE}"; then + GL_COND_OBJ_LSTAT_TRUE='#' + GL_COND_OBJ_LSTAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_LSTAT_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_LSTAT=1 + + + + + +$as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_MALLOC_POSIX=1 + + + + + +$as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_sanitycheck=yes +else + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbrtowc = no; then + HAVE_MBRTOWC=0 + ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " + #include + +" +if test "x$ac_cv_have_decl_mbrtowc" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MBRTOWC $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_mbrtowc = yes; then + REPLACE_MBRTOWC=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBRTOWC=1 + else + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 +$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } +if ${gl_cv_func_mbrtowc_null_arg1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris. + solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + int result = 0; + + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "\303\237er"; + mbstate_t state; + wchar_t wc; + size_t ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + ret = mbrtowc (&wc, input, 5, &state); + if (ret != 2) + result |= 1; + if (!mbsinit (&state)) + result |= 2; + + memset (&state, '\0', sizeof (mbstate_t)); + ret = mbrtowc (NULL, input, 5, &state); + if (ret != 2) /* Solaris 7 fails here: ret is -1. */ + result |= 4; + if (!mbsinit (&state)) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_null_arg1=yes +else + gl_cv_func_mbrtowc_null_arg1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 +$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 +$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } +if ${gl_cv_func_mbrtowc_null_arg2+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on OSF/1. + osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + mbstate_t state; + wchar_t wc; + int ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + mbrtowc (&wc, NULL, 5, &state); + /* Check that wc was not modified. */ + if (wc != (wchar_t) 0xBADFACE) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_null_arg2=yes +else + gl_cv_func_mbrtowc_null_arg2=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 +$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 +$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } +if ${gl_cv_func_mbrtowc_retval+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on HP-UX, Solaris, native Windows. + hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_retval="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ + || { case "$host_os" in mingw*) true;; *) false;; esac; }; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + int found_some_locale = 0; + /* This fails on Solaris. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 1) + result |= 1; + } + found_some_locale = 1; + } + /* This fails on HP-UX 11.11. */ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 2) + result |= 2; + } + found_some_locale = 1; + } + /* This fails on native Windows. */ + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 4; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 8; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 16; + } + found_some_locale = 1; + } + return (found_some_locale ? result : 77); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_retval=yes +else + if test $? != 77; then + gl_cv_func_mbrtowc_retval=no + fi + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 +$as_echo "$gl_cv_func_mbrtowc_retval" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 +$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } +if ${gl_cv_func_mbrtowc_nul_retval+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8 and 9. + solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + /* This fails on Solaris 8 and 9. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "", 1, &state) != 0) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_nul_retval=yes +else + gl_cv_func_mbrtowc_nul_retval=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 +$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc stores incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc stores incomplete characters... " >&6; } +if ${gl_cv_func_mbrtowc_stores_incomplete+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; + *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; + esac + case "$host_os" in + mingw*) + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "French_France.65001") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 1; + } + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 2; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 4; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_stores_incomplete=no +else + gl_cv_func_mbrtowc_stores_incomplete=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ;; + *) + + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + return 1; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_stores_incomplete=no +else + gl_cv_func_mbrtowc_stores_incomplete=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_stores_incomplete" >&5 +$as_echo "$gl_cv_func_mbrtowc_stores_incomplete" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 +$as_echo_n "checking whether mbrtowc works on empty input... " >&6; } +if ${gl_cv_func_mbrtowc_empty_input+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + esac + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + static wchar_t wc; + static mbstate_t mbs; + int + main (void) + { + return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_empty_input=yes +else + gl_cv_func_mbrtowc_empty_input=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 +$as_echo "$gl_cv_func_mbrtowc_empty_input" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 +$as_echo_n "checking whether the C locale is free of encoding errors... " >&6; } +if ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include + +int +main () +{ + + int i; + char *locale = setlocale (LC_ALL, "C"); + if (! locale) + return 2; + for (i = CHAR_MIN; i <= CHAR_MAX; i++) + { + char c = i; + wchar_t wc; + mbstate_t mbs = { 0, }; + size_t ss = mbrtowc (&wc, &c, 1, &mbs); + if (1 < ss) + return 3; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes +else + gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5 +$as_echo "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; } + + case "$gl_cv_func_mbrtowc_null_arg1" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_null_arg2" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_retval" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_nul_retval" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_stores_incomplete" in + *no) ;; + *) +$as_echo "#define MBRTOWC_STORES_INCOMPLETE_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_empty_input" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in + *yes) ;; + *) +$as_echo "#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h + + REPLACE_MBRTOWC=1 + ;; + esac + fi + fi + if test $REPLACE_MBSTATE_T = 1; then + case "$host_os" in + mingw*) MBRTOWC_LIB= ;; + *) + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } +if ${gl_cv_have_weak+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main () +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : + gl_cv_have_weak="guessing yes" +else + gl_cv_have_weak="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_have_weak=yes +else + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +$as_echo "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +$as_echo "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) MBRTOWC_LIB= ;; + *) MBRTOWC_LIB="$LIBPTHREAD" ;; + esac + ;; + esac + else + MBRTOWC_LIB= + fi + + LIB_MBRTOWC="$MBRTOWC_LIB" + + + + if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then + GL_COND_OBJ_MBRTOWC_TRUE= + GL_COND_OBJ_MBRTOWC_FALSE='#' +else + GL_COND_OBJ_MBRTOWC_TRUE='#' + GL_COND_OBJ_MBRTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBRTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBRTOWC_FALSE}"; then + GL_COND_OBJ_MBRTOWC_TRUE='#' + GL_COND_OBJ_MBRTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBRTOWC_TRUE"; then : + + if test $REPLACE_MBSTATE_T = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS lc-charset-dispatch.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbtowc-lock.$ac_objext" + + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +$as_echo_n "checking whether the -Werror option is usable... " >&6; } +if ${gl_cv_cc_vis_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_vis_werror=yes +else + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +$as_echo "$gl_cv_cc_vis_werror" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +$as_echo_n "checking for simple visibility declarations... " >&6; } +if ${gl_cv_cc_visibility+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_visibility=yes +else + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +$as_echo "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +cat >>confdefs.h <<_ACEOF +#define HAVE_VISIBILITY $HAVE_VISIBILITY +_ACEOF + + + + fi + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBRTOWC=1 + + + + + +$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_sanitycheck=yes +else + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbsinit = no; then + HAVE_MBSINIT=0 + ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " + #include + +" +if test "x$ac_cv_have_decl_mbsinit" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MBSINIT $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_mbsinit = yes; then + REPLACE_MBSINIT=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSINIT=1 + else + case "$host_os" in + mingw*) REPLACE_MBSINIT=1 ;; + esac + fi + fi + + + if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then + GL_COND_OBJ_MBSINIT_TRUE= + GL_COND_OBJ_MBSINIT_FALSE='#' +else + GL_COND_OBJ_MBSINIT_TRUE='#' + GL_COND_OBJ_MBSINIT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBSINIT_TRUE}" && test -z "${GL_COND_OBJ_MBSINIT_FALSE}"; then + GL_COND_OBJ_MBSINIT_TRUE='#' + GL_COND_OBJ_MBSINIT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBSINIT_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBSINIT=1 + + + + + +$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_sanitycheck=yes +else + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_mbsrtowcs = no; then + HAVE_MBSRTOWCS=0 + ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" " + #include + +" +if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MBSRTOWCS $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_mbsrtowcs = yes; then + REPLACE_MBSRTOWCS=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSRTOWCS=1 + else + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5 +$as_echo_n "checking whether mbsrtowcs works... " >&6; } +if ${gl_cv_func_mbsrtowcs_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on HP-UX, Solaris, mingw. + hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; + esac + if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + int result = 0; + /* Test whether the function supports a NULL destination argument. + This fails on native Windows. */ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + const char input[] = "\337er"; + const char *src = input; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbsrtowcs (NULL, &src, 1, &state) != 3 + || src != input) + result |= 1; + } + /* Test whether the function works when started with a conversion state + in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + result |= 2; + } + } + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "<\306\374\313\334\270\354>"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 4; + if (mbsrtowcs (NULL, &src, 10, &state) != 3) + result |= 4; + } + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + const char input[] = "B\250\271\201\060\211\070er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + result |= 8; + } + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbsrtowcs_works=yes +else + gl_cv_func_mbsrtowcs_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5 +$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; } + + case "$gl_cv_func_mbsrtowcs_works" in + *yes) ;; + *) REPLACE_MBSRTOWCS=1 ;; + esac + fi + fi + + + if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then + GL_COND_OBJ_MBSRTOWCS_TRUE= + GL_COND_OBJ_MBSRTOWCS_FALSE='#' +else + GL_COND_OBJ_MBSRTOWCS_TRUE='#' + GL_COND_OBJ_MBSRTOWCS_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBSRTOWCS_TRUE}" && test -z "${GL_COND_OBJ_MBSRTOWCS_FALSE}"; then + GL_COND_OBJ_MBSRTOWCS_TRUE='#' + GL_COND_OBJ_MBSRTOWCS_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBSRTOWCS_TRUE"; then : + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext" + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MBSRTOWCS=1 + + + + + +$as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h + + + + + + + for ac_func in mbtowc +do : + ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc" +if test "x$ac_cv_func_mbtowc" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MBTOWC 1 +_ACEOF + +fi +done + + if test $ac_cv_func_mbtowc = no; then + HAVE_MBTOWC=0 + else + if false; then + REPLACE_MBTOWC=1 + fi + fi + + + if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then + GL_COND_OBJ_MBTOWC_TRUE= + GL_COND_OBJ_MBTOWC_FALSE='#' +else + GL_COND_OBJ_MBTOWC_TRUE='#' + GL_COND_OBJ_MBTOWC_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MBTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBTOWC_FALSE}"; then + GL_COND_OBJ_MBTOWC_TRUE='#' + GL_COND_OBJ_MBTOWC_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MBTOWC_TRUE"; then : + + + : + + +fi + + + + + + + + + + GL_GNULIB_MBTOWC=1 + + + + + +$as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h + + + + + + if test $REPLACE_MEMCHR = 1; then + GL_COND_OBJ_MEMCHR_TRUE= + GL_COND_OBJ_MEMCHR_FALSE='#' +else + GL_COND_OBJ_MEMCHR_TRUE='#' + GL_COND_OBJ_MEMCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMCHR_FALSE}"; then + GL_COND_OBJ_MEMCHR_TRUE='#' + GL_COND_OBJ_MEMCHR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMCHR_TRUE"; then : + + + for ac_header in bp-sym.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" +if test "x$ac_cv_header_bp_sym_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BP_SYM_H 1 +_ACEOF + +fi + +done + + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMCHR=1 + + + + + +$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h + + + + + + + + + + for ac_func in mempcpy +do : + ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" +if test "x$ac_cv_func_mempcpy" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMPCPY 1 +_ACEOF + +fi +done + + if test $ac_cv_func_mempcpy = no; then + HAVE_MEMPCPY=0 + fi + + + if test $HAVE_MEMPCPY = 0; then + GL_COND_OBJ_MEMPCPY_TRUE= + GL_COND_OBJ_MEMPCPY_FALSE='#' +else + GL_COND_OBJ_MEMPCPY_TRUE='#' + GL_COND_OBJ_MEMPCPY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_MEMPCPY_FALSE}"; then + GL_COND_OBJ_MEMPCPY_TRUE='#' + GL_COND_OBJ_MEMPCPY_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMPCPY_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMPCPY=1 + + + + + +$as_echo "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h + + + + + + + + + if test $ac_cv_have_decl_memrchr = no; then + HAVE_DECL_MEMRCHR=0 + fi + + for ac_func in memrchr +do : + ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" +if test "x$ac_cv_func_memrchr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMRCHR 1 +_ACEOF + +fi +done + + + + if test $ac_cv_func_memrchr = no; then + GL_COND_OBJ_MEMRCHR_TRUE= + GL_COND_OBJ_MEMRCHR_FALSE='#' +else + GL_COND_OBJ_MEMRCHR_TRUE='#' + GL_COND_OBJ_MEMRCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MEMRCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMRCHR_FALSE}"; then + GL_COND_OBJ_MEMRCHR_TRUE='#' + GL_COND_OBJ_MEMRCHR_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_MEMRCHR_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_MEMRCHR=1 + + + + + +$as_echo "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5 +$as_echo_n "checking whether mkdir handles trailing slash... " >&6; } +if ${gl_cv_func_mkdir_trailing_slash_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.dir + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Known +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Known" >/dev/null 2>&1; then : + gl_cv_func_mkdir_trailing_slash_works="guessing yes" +else + gl_cv_func_mkdir_trailing_slash_works="guessing no" +fi +rm -f conftest* + + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_mkdir_trailing_slash_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + + +$gl_mda_defines + +int +main () +{ +return mkdir ("conftest.dir/", 0700); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mkdir_trailing_slash_works=yes +else + gl_cv_func_mkdir_trailing_slash_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.dir + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_slash_works" >&5 +$as_echo "$gl_cv_func_mkdir_trailing_slash_works" >&6; } + case "$gl_cv_func_mkdir_trailing_slash_works" in + *yes) ;; + *) + REPLACE_MKDIR=1 + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5 +$as_echo_n "checking whether mkdir handles trailing dot... " >&6; } +if ${gl_cv_func_mkdir_trailing_dot_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.dir + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_mkdir_trailing_dot_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + + +$gl_mda_defines + +int +main () +{ +return !mkdir ("conftest.dir/./", 0700); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mkdir_trailing_dot_works=yes +else + gl_cv_func_mkdir_trailing_dot_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -rf conftest.dir + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_dot_works" >&5 +$as_echo "$gl_cv_func_mkdir_trailing_dot_works" >&6; } + case "$gl_cv_func_mkdir_trailing_dot_works" in + *yes) ;; + *) + REPLACE_MKDIR=1 + +$as_echo "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h + + ;; + esac + + + if test $REPLACE_MKDIR = 1; then + GL_COND_OBJ_MKDIR_TRUE= + GL_COND_OBJ_MKDIR_FALSE='#' +else + GL_COND_OBJ_MKDIR_TRUE='#' + GL_COND_OBJ_MKDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MKDIR_TRUE}" && test -z "${GL_COND_OBJ_MKDIR_FALSE}"; then + GL_COND_OBJ_MKDIR_TRUE='#' + GL_COND_OBJ_MKDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_MKDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_MKDIR 1" >>confdefs.h + + + + + + + + + + if test $ac_cv_func_mkstemps != yes; then + HAVE_MKSTEMPS=0 + fi + + + if test $HAVE_MKSTEMPS = 0; then + GL_COND_OBJ_MKSTEMPS_TRUE= + GL_COND_OBJ_MKSTEMPS_FALSE='#' +else + GL_COND_OBJ_MKSTEMPS_TRUE='#' + GL_COND_OBJ_MKSTEMPS_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MKSTEMPS_TRUE}" && test -z "${GL_COND_OBJ_MKSTEMPS_FALSE}"; then + GL_COND_OBJ_MKSTEMPS_TRUE='#' + GL_COND_OBJ_MKSTEMPS_FALSE='#' + fi + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_MKSTEMPS 1 +_ACEOF + + + + + + + + + + + + GL_GNULIB_MKSTEMPS=1 + + + + + +$as_echo "#define GNULIB_TEST_MKSTEMPS 1" >>confdefs.h + + + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + GL_COND_OBJ_MSVC_INVAL_TRUE= + GL_COND_OBJ_MSVC_INVAL_FALSE='#' +else + GL_COND_OBJ_MSVC_INVAL_TRUE='#' + GL_COND_OBJ_MSVC_INVAL_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MSVC_INVAL_TRUE}" && test -z "${GL_COND_OBJ_MSVC_INVAL_FALSE}"; then + GL_COND_OBJ_MSVC_INVAL_TRUE='#' + GL_COND_OBJ_MSVC_INVAL_FALSE='#' + fi + + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + GL_COND_OBJ_MSVC_NOTHROW_TRUE= + GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' +else + GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' + GL_COND_OBJ_MSVC_NOTHROW_FALSE= +fi +: + if test -z "${GL_COND_OBJ_MSVC_NOTHROW_TRUE}" && test -z "${GL_COND_OBJ_MSVC_NOTHROW_FALSE}"; then + GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' + GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' + fi + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_MSVC_NOTHROW 1 +_ACEOF + + + + + + + + + + + + if test $ac_cv_func_nl_langinfo = yes; then + # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 +$as_echo_n "checking whether YESEXPR works... " >&6; } +if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess no on irix systems. + irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; + # Guess yes elsewhere. + *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +return !*nl_langinfo(YESEXPR); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_nl_langinfo_yesexpr_works=yes +else + gl_cv_func_nl_langinfo_yesexpr_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5 +$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } + case $gl_cv_func_nl_langinfo_yesexpr_works in + *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; + *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS +_ACEOF + + # On Solaris 10 and Solaris 11.3, nl_langinfo is not multithread-safe. + case "$host_os" in + solaris*) NL_LANGINFO_MTSAFE=0 ;; + *) NL_LANGINFO_MTSAFE=1 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define NL_LANGINFO_MTSAFE $NL_LANGINFO_MTSAFE +_ACEOF + + if test $HAVE_LANGINFO_CODESET = 1 \ + && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ + && test $HAVE_LANGINFO_ALTMON = 1 \ + && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1 \ + && test $NL_LANGINFO_MTSAFE = 1; then + : + else + REPLACE_NL_LANGINFO=1 + +$as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h + + fi + else + HAVE_NL_LANGINFO=0 + fi + if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then + LIB_NL_LANGINFO="$SETLOCALE_NULL_LIB" + else + LIB_NL_LANGINFO= + fi + + + + if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then + GL_COND_OBJ_NL_LANGINFO_TRUE= + GL_COND_OBJ_NL_LANGINFO_FALSE='#' +else + GL_COND_OBJ_NL_LANGINFO_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_FALSE= +fi +: + if test -z "${GL_COND_OBJ_NL_LANGINFO_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_FALSE}"; then + GL_COND_OBJ_NL_LANGINFO_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_FALSE='#' + fi + + + if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE= + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' +else + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE}"; then + GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' + GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' + fi + + if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +$as_echo_n "checking whether the -Werror option is usable... " >&6; } +if ${gl_cv_cc_vis_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_vis_werror=yes +else + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +$as_echo "$gl_cv_cc_vis_werror" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +$as_echo_n "checking for simple visibility declarations... " >&6; } +if ${gl_cv_cc_visibility+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_visibility=yes +else + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +$as_echo "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +cat >>confdefs.h <<_ACEOF +#define HAVE_VISIBILITY $HAVE_VISIBILITY +_ACEOF + + + + fi + + + + + + + + + + GL_GNULIB_NL_LANGINFO=1 + + + + + +$as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h + + + + + + + case "$host_os" in + mingw* | pw*) + REPLACE_OPEN=1 + ;; + *) + + if test "$gl_cv_macro_O_CLOEXEC" != yes; then + REPLACE_OPEN=1 + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 +$as_echo_n "checking whether open recognizes a trailing slash... " >&6; } +if ${gl_cv_func_open_slash+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + touch conftest.tmp + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes; then : + + case "$host_os" in + freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) + gl_cv_func_open_slash="guessing no" ;; + *) + gl_cv_func_open_slash="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_UNISTD_H +# include +#endif + + +$gl_mda_defines + +int main () +{ + int result = 0; +#if HAVE_LSTAT + if (open ("conftest.lnk/", O_RDONLY) != -1) + result |= 1; +#endif + if (open ("conftest.sl/", O_CREAT, 0600) >= 0) + result |= 2; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_open_slash=yes +else + gl_cv_func_open_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.sl conftest.tmp conftest.lnk + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 +$as_echo "$gl_cv_func_open_slash" >&6; } + case "$gl_cv_func_open_slash" in + *no) + +$as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_func_open_slash" in + *no) + REPLACE_OPEN=1 + ;; + esac + ;; + esac + + if test $REPLACE_OPEN = 0; then + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + REPLACE_OPEN=1 + fi + fi + + + + + if test $REPLACE_OPEN = 1; then + GL_COND_OBJ_OPEN_TRUE= + GL_COND_OBJ_OPEN_FALSE='#' +else + GL_COND_OBJ_OPEN_TRUE='#' + GL_COND_OBJ_OPEN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPEN_TRUE}" && test -z "${GL_COND_OBJ_OPEN_FALSE}"; then + GL_COND_OBJ_OPEN_TRUE='#' + GL_COND_OBJ_OPEN_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_OPEN_TRUE"; then : + + + + : + + +fi + + + + + + + + + + GL_GNULIB_OPEN=1 + + + + + +$as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h + + + + + + + + + + case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in + yes+*yes+yes) + ;; + yes+*) + # Solaris 10 lacks O_CLOEXEC. + # Solaris 9 has *at functions, but uniformly mishandles trailing + # slash in all of them. + REPLACE_OPENAT=1 + ;; + *) + HAVE_OPENAT=0 + ;; + esac + + + if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then + GL_COND_OBJ_OPENAT_TRUE= + GL_COND_OBJ_OPENAT_FALSE='#' +else + GL_COND_OBJ_OPENAT_TRUE='#' + GL_COND_OBJ_OPENAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPENAT_TRUE}" && test -z "${GL_COND_OBJ_OPENAT_FALSE}"; then + GL_COND_OBJ_OPENAT_TRUE='#' + GL_COND_OBJ_OPENAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_OPENAT_TRUE"; then : + + + + : + + +fi + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_OPENAT 1 +_ACEOF + + + + + + + + + + + GL_GNULIB_OPENAT=1 + + + + + +$as_echo "#define GNULIB_TEST_OPENAT 1" >>confdefs.h + + + + + + + for ac_func in opendir +do : + ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir" +if test "x$ac_cv_func_opendir" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_OPENDIR 1 +_ACEOF + +fi +done + + if test $ac_cv_func_opendir = no; then + HAVE_OPENDIR=0 + fi + + + + + if test $ac_cv_func_fchdir = no; then + HAVE_FCHDIR=0 + fi + + if test $HAVE_FCHDIR = 0; then + if test $HAVE_OPENDIR = 1; then + REPLACE_OPENDIR=1 + fi + fi + + case $host_os,$HAVE_OPENDIR in + os2*,1) + REPLACE_OPENDIR=1;; + esac + + + if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then + GL_COND_OBJ_OPENDIR_TRUE= + GL_COND_OBJ_OPENDIR_FALSE='#' +else + GL_COND_OBJ_OPENDIR_TRUE='#' + GL_COND_OBJ_OPENDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_OPENDIR_TRUE}" && test -z "${GL_COND_OBJ_OPENDIR_FALSE}"; then + GL_COND_OBJ_OPENDIR_TRUE='#' + GL_COND_OBJ_OPENDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_OPENDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h + + + + + + + + + + + if test $ac_cv_func_pipe != yes; then + HAVE_PIPE=0 + fi + + + if test $HAVE_PIPE = 0; then + GL_COND_OBJ_PIPE_TRUE= + GL_COND_OBJ_PIPE_FALSE='#' +else + GL_COND_OBJ_PIPE_TRUE='#' + GL_COND_OBJ_PIPE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_PIPE_TRUE}" && test -z "${GL_COND_OBJ_PIPE_FALSE}"; then + GL_COND_OBJ_PIPE_TRUE='#' + GL_COND_OBJ_PIPE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_PIPE=1 + + + + + +$as_echo "#define GNULIB_TEST_PIPE 1" >>confdefs.h + + + + + + if test $gl_cv_func_frexp_no_libm = yes; then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5 +$as_echo_n "checking whether frexp works... " >&6; } +if ${gl_cv_func_frexp_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + netbsd* | irix*) gl_cv_func_frexp_works="guessing no" ;; + mingw*) # Guess yes with MSVC, no with mingw. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _MSC_VER + Good +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Good" >/dev/null 2>&1; then : + gl_cv_func_frexp_works="guessing yes" +else + gl_cv_func_frexp_works="guessing no" +fi +rm -f conftest* + + ;; + *) gl_cv_func_frexp_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if HAVE_DECL_ALARM +# include +# include +#endif +/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. + ICC 10.0 has a bug when optimizing the expression -zero. + The expression -DBL_MIN * DBL_MIN does not work when cross-compiling + to PowerPC on Mac OS X 10.5. */ +#if defined __hpux || defined __sgi || defined __ICC +static double +compute_minus_zero (void) +{ + return -DBL_MIN * DBL_MIN; +} +# define minus_zero compute_minus_zero () +#else +double minus_zero = -0.0; +#endif +int main() +{ + int result = 0; + int i; + volatile double x; + double zero = 0.0; +#if HAVE_DECL_ALARM + /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite + number. Let the test fail in this case. */ + signal (SIGALRM, SIG_DFL); + alarm (5); +#endif + /* Test on denormalized numbers. */ + for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) + ; + if (x > 0.0) + { + int exp; + double y = frexp (x, &exp); + /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. + On NetBSD: y = 0.75. Correct: y = 0.5. */ + if (y != 0.5) + result |= 1; + } + /* Test on infinite numbers. */ + x = 1.0 / zero; + { + int exp; + double y = frexp (x, &exp); + if (y != x) + result |= 2; + } + /* Test on negative zero. */ + x = minus_zero; + { + int exp; + double y = frexp (x, &exp); + if (memcmp (&y, &x, sizeof x)) + result |= 4; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_frexp_works=yes +else + gl_cv_func_frexp_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5 +$as_echo "$gl_cv_func_frexp_works" >&6; } + + case "$gl_cv_func_frexp_works" in + *yes) + +$as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h + + ;; + esac + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexp can be used without linking with libm" >&5 +$as_echo_n "checking whether ldexp can be used without linking with libm... " >&6; } +if ${gl_cv_func_ldexp_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + double x; + int y; +int +main () +{ +return ldexp (x, y) < 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_ldexp_no_libm=yes +else + gl_cv_func_ldexp_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexp_no_libm" >&5 +$as_echo "$gl_cv_func_ldexp_no_libm" >&6; } + if test $gl_cv_func_ldexp_no_libm = yes; then + +$as_echo "#define HAVE_LDEXP_IN_LIBC 1" >>confdefs.h + + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5 +$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; } +if ${gl_cv_func_frexpl_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + long double x; +int +main () +{ +int e; return frexpl (x, &e) > 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_frexpl_no_libm=yes +else + gl_cv_func_frexpl_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5 +$as_echo "$gl_cv_func_frexpl_no_libm" >&6; } + + if test $gl_cv_func_frexpl_no_libm = yes; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5 +$as_echo_n "checking whether frexpl works... " >&6; } +if ${gl_cv_func_frexpl_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*) + gl_cv_func_frexpl_works="guessing no";; + *) gl_cv_func_frexpl_works="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* Override the values of , like done in float.in.h. */ +#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +#endif +#if defined __i386__ && (defined __FreeBSD__ || defined __DragonFly__) +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +#endif +#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP DBL_MIN_EXP +#endif +#if defined __sgi && (LDBL_MANT_DIG >= 106) +# if defined __GNUC__ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP DBL_MIN_EXP +# endif +#endif +extern +#ifdef __cplusplus +"C" +#endif +long double frexpl (long double, int *); +long double zero = 0.0L; +int main() +{ + int result = 0; + volatile long double x; + /* Test on finite numbers that fails on AIX 5.1. */ + x = 16.0L; + { + int exp = -9999; + frexpl (x, &exp); + if (exp != 5) + result |= 1; + } + /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl + function returns an invalid (incorrectly normalized) value: it returns + y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 } + but the correct result is + 0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 } */ + x = 1.01L; + { + int exp = -9999; + long double y = frexpl (x, &exp); + if (!(exp == 1 && y == 0.505L)) + result |= 2; + } + /* Test on large finite numbers. This fails on BeOS at i = 16322, while + LDBL_MAX_EXP = 16384. + In the loop end test, we test x against Infinity, rather than comparing + i with LDBL_MAX_EXP, because BeOS has a wrong LDBL_MAX_EXP. */ + { + int i; + for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L) + { + int exp = -9999; + frexpl (x, &exp); + if (exp != i) + { + result |= 4; + break; + } + } + } + /* Test on denormalized numbers. */ + { + int i; + for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L) + ; + if (x > 0.0L) + { + int exp; + long double y = frexpl (x, &exp); + /* On machines with IEEE854 arithmetic: x = 1.68105e-4932, + exp = -16382, y = 0.5. On Mac OS X 10.5: exp = -16384, y = 0.5. */ + if (exp != LDBL_MIN_EXP - 1) + result |= 8; + } + } + /* Test on infinite numbers. */ + /* The Microsoft MSVC 14 compiler chokes on the expression 1.0 / 0.0. */ + x = 1.0L / zero; + { + int exp; + long double y = frexpl (x, &exp); + if (y != x) + result |= 16; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_frexpl_works=yes +else + gl_cv_func_frexpl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5 +$as_echo "$gl_cv_func_frexpl_works" >&6; } + + case "$gl_cv_func_frexpl_works" in + *yes) gl_func_frexpl_no_libm=yes ;; + *) gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;; + esac + else + gl_func_frexpl_no_libm=no + REPLACE_FREXPL=1 + fi + if test $gl_func_frexpl_no_libm = yes; then + +$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h + + ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include +" +if test "x$ac_cv_have_decl_frexpl" = xyes; then : + +else + HAVE_DECL_FREXPL=0 +fi + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl() can be used without linking with libm" >&5 +$as_echo_n "checking whether ldexpl() can be used without linking with libm... " >&6; } +if ${gl_cv_func_ldexpl_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + long double x; +int +main () +{ +return ldexpl (x, -1) > 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_ldexpl_no_libm=yes +else + gl_cv_func_ldexpl_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_no_libm" >&5 +$as_echo "$gl_cv_func_ldexpl_no_libm" >&6; } + + if test $gl_cv_func_ldexpl_no_libm = yes; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl works" >&5 +$as_echo_n "checking whether ldexpl works... " >&6; } +if ${gl_cv_func_ldexpl_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_ldexpl_works="guessing yes" ;; + *) gl_cv_func_ldexpl_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +extern +#ifdef __cplusplus +"C" +#endif +long double ldexpl (long double, int); +int main() +{ + int result = 0; + { + volatile long double x = 1.0; + volatile long double y = ldexpl (x, -1); + if (y != 0.5L) + result |= 1; + } + { + volatile long double x = 1.73205L; + volatile long double y = ldexpl (x, 0); + if (y != x) + result |= 2; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_ldexpl_works=yes +else + gl_cv_func_ldexpl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_works" >&5 +$as_echo "$gl_cv_func_ldexpl_works" >&6; } + + case "$gl_cv_func_ldexpl_works" in + *yes) + +$as_echo "#define HAVE_LDEXPL_IN_LIBC 1" >>confdefs.h + + ac_fn_c_check_decl "$LINENO" "ldexpl" "ac_cv_have_decl_ldexpl" "#include +" +if test "x$ac_cv_have_decl_ldexpl" = xyes; then : + +else + HAVE_DECL_LDEXPL=0 +fi + + ;; + esac + fi + + + + + + for ac_func in raise +do : + ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise" +if test "x$ac_cv_func_raise" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RAISE 1 +_ACEOF + +fi +done + + if test $ac_cv_func_raise = no; then + HAVE_RAISE=0 + else + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_RAISE=1 + fi + + + + + + HAVE_POSIX_SIGNALBLOCKING=0 + if test "$gl_cv_type_sigset_t" = yes; then + ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" +if test "x$ac_cv_func_sigprocmask" = xyes; then : + HAVE_POSIX_SIGNALBLOCKING=1 +fi + + fi + + if test $HAVE_POSIX_SIGNALBLOCKING = 0; then + : + fi + + fi + + + if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then + GL_COND_OBJ_RAISE_TRUE= + GL_COND_OBJ_RAISE_FALSE='#' +else + GL_COND_OBJ_RAISE_TRUE='#' + GL_COND_OBJ_RAISE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_RAISE_TRUE}" && test -z "${GL_COND_OBJ_RAISE_FALSE}"; then + GL_COND_OBJ_RAISE_TRUE='#' + GL_COND_OBJ_RAISE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_RAISE_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_RAISE=1 + + + + + +$as_echo "#define GNULIB_TEST_RAISE 1" >>confdefs.h + + + + + + + for ac_func in readdir +do : + ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir" +if test "x$ac_cv_func_readdir" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_READDIR 1 +_ACEOF + +fi +done + + if test $ac_cv_func_readdir = no; then + HAVE_READDIR=0 + fi + + + if test $HAVE_READDIR = 0; then + GL_COND_OBJ_READDIR_TRUE= + GL_COND_OBJ_READDIR_FALSE='#' +else + GL_COND_OBJ_READDIR_TRUE='#' + GL_COND_OBJ_READDIR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_READDIR_TRUE}" && test -z "${GL_COND_OBJ_READDIR_FALSE}"; then + GL_COND_OBJ_READDIR_TRUE='#' + GL_COND_OBJ_READDIR_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_READDIR=1 + + + + + +$as_echo "#define GNULIB_TEST_READDIR 1" >>confdefs.h + + + + + + + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_REALLOC_FOR_REALLOC_POSIX=1 + fi + + if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" + + fi + + + + + + + + + + GL_GNULIB_REALLOC_POSIX=1 + + + + + +$as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h + + + + + +# Check whether --with-included-regex was given. +if test "${with_included_regex+set}" = set; then : + withval=$with_included_regex; +fi + + + case $with_included_regex in #( + yes|no) ac_use_included_regex=$with_included_regex + ;; + '') + # If the system regex support is good enough that it passes the + # following run test, then default to *not* using the included regex.c. + # If cross compiling, assume the test would fail and use the included + # regex.c. + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 +$as_echo_n "checking for working re_compile_pattern... " >&6; } +if ${gl_cv_func_re_compile_pattern_working+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on native Windows. + mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; + # Otherwise obey --enable-cross-guesses. + *) gl_cv_func_re_compile_pattern_working="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + #include + #include + #include + + #if defined M_CHECK_ACTION || HAVE_DECL_ALARM + # include + # include + #endif + + #if HAVE_MALLOC_H + # include + #endif + + #ifdef M_CHECK_ACTION + /* Exit with distinguishable exit code. */ + static void sigabrt_no_core (int sig) { raise (SIGTERM); } + #endif + +int +main () +{ +int result = 0; + static struct re_pattern_buffer regex; + unsigned char folded_chars[UCHAR_MAX + 1]; + int i; + const char *s; + struct re_registers regs; + + /* Some builds of glibc go into an infinite loop on this + test. Use alarm to force death, and mallopt to avoid + malloc recursion in diagnosing the corrupted heap. */ +#if HAVE_DECL_ALARM + signal (SIGALRM, SIG_DFL); + alarm (2); +#endif +#ifdef M_CHECK_ACTION + signal (SIGABRT, sigabrt_no_core); + mallopt (M_CHECK_ACTION, 2); +#endif + + if (setlocale (LC_ALL, "en_US.UTF-8")) + { + { + /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + This test needs valgrind to catch the bug on Debian + GNU/Linux 3.1 x86, but it might catch the bug better + on other platforms and it shouldn't hurt to try the + test here. */ + static char const pat[] = "insert into"; + static char const data[] = + "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; + re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE + | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + result |= 1; + else + { + if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + result |= 1; + regfree (®ex); + } + } + + { + /* This test is from glibc bug 15078. + The test case is from Andreas Schwab in + . + */ + static char const pat[] = "[^x]x"; + static char const data[] = + /* */ + "\xe1\x80\x80" + "\xe1\x80\xbb" + "\xe1\x80\xbd" + "\xe1\x80\x94" + "\xe1\x80\xba" + "\xe1\x80\xaf" + "\xe1\x80\x95" + "\xe1\x80\xba" + "x"; + re_set_syntax (0); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + result |= 1; + else + { + i = re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, 0); + if (i != 0 && i != 21) + result |= 1; + regfree (®ex); + } + } + + if (! setlocale (LC_ALL, "C")) + return 1; + } + + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + result |= 2; + else + { + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + result |= 2; + regfree (®ex); + } + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + for (i = 0; i <= UCHAR_MAX; i++) + folded_chars[i] = i; + regex.translate = folded_chars; + s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); + /* This should fail with _Invalid character class name_ error. */ + if (!s) + { + result |= 4; + regfree (®ex); + } + + /* Ensure that [b-a] is diagnosed as invalid, when + using RE_NO_EMPTY_RANGES. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[b-a]", 6, ®ex); + if (s == 0) + { + result |= 8; + regfree (®ex); + } + + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("{1", 2, ®ex); + if (s) + result |= 8; + else + regfree (®ex); + + /* The following example is derived from a problem report + against gawk from Jorge Stolfi . */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[an\371]*n", 7, ®ex); + if (s) + result |= 8; + else + { + /* This should match, but does not for glibc-2.2.1. */ + if (re_match (®ex, "an", 2, 0, ®s) != 2) + result |= 8; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + result |= 8; + else + { + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + result |= 8; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + /* The version of regex.c in older versions of gnulib + ignored RE_ICASE. Detect that problem too. */ + re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + result |= 16; + else + { + if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + result |= 16; + else + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + + /* Catch a bug reported by Vin Shelton in + https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+\$", 16, ®ex); + if (s) + result |= 32; + else + regfree (®ex); + + /* REG_STARTEND was added to glibc on 2004-01-15. + Reject older versions. */ + if (! REG_STARTEND) + result |= 64; + + /* Matching with the compiled form of this regexp would provoke + an assertion failure prior to glibc-2.28: + regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed + With glibc-2.28, compilation fails and reports the invalid + back reference. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("0|()0|\\\\1|0", 10, ®ex); + if (!s) + { + memset (®s, 0, sizeof regs); + i = re_search (®ex, "x", 1, 0, 1, ®s); + if (i != -1) + result |= 64; + if (0 <= i) + { + free (regs.start); + free (regs.end); + } + regfree (®ex); + } + else + { + if (strcmp (s, "Invalid back reference")) + result |= 64; + } + + /* glibc bug 11053. */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC); + memset (®ex, 0, sizeof regex); + static char const pat_sub2[] = "\\\\(a*\\\\)*a*\\\\1"; + s = re_compile_pattern (pat_sub2, sizeof pat_sub2 - 1, ®ex); + if (s) + result |= 64; + else + { + memset (®s, 0, sizeof regs); + static char const data[] = "a"; + int datalen = sizeof data - 1; + i = re_search (®ex, data, datalen, 0, datalen, ®s); + if (i != 0) + result |= 64; + else if (regs.num_regs < 2) + result |= 64; + else if (! (regs.start[0] == 0 && regs.end[0] == 1)) + result |= 64; + else if (! (regs.start[1] == 0 && regs.end[1] == 0)) + result |= 64; + regfree (®ex); + free (regs.start); + free (regs.end); + } + +#if 0 + /* It would be nice to reject hosts whose regoff_t values are too + narrow (including glibc on hosts with 64-bit ptrdiff_t and + 32-bit int), but we should wait until glibc implements this + feature. Otherwise, support for equivalence classes and + multibyte collation symbols would always be broken except + when compiling --without-included-regex. */ + if (sizeof (regoff_t) < sizeof (ptrdiff_t) + || sizeof (regoff_t) < sizeof (ssize_t)) + result |= 64; +#endif + + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_re_compile_pattern_working=yes +else + gl_cv_func_re_compile_pattern_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 +$as_echo "$gl_cv_func_re_compile_pattern_working" >&6; } + case "$gl_cv_func_re_compile_pattern_working" in #( + *yes) ac_use_included_regex=no;; #( + *no) ac_use_included_regex=yes;; + esac + ;; + *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 + ;; + esac + + if test $ac_use_included_regex = yes; then + +$as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h + + +$as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h + + +$as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h + + +$as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h + + +$as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h + + +$as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h + + +$as_echo "#define re_search rpl_re_search" >>confdefs.h + + +$as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h + + +$as_echo "#define re_match rpl_re_match" >>confdefs.h + + +$as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h + + +$as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h + + +$as_echo "#define re_comp rpl_re_comp" >>confdefs.h + + +$as_echo "#define re_exec rpl_re_exec" >>confdefs.h + + +$as_echo "#define regcomp rpl_regcomp" >>confdefs.h + + +$as_echo "#define regexec rpl_regexec" >>confdefs.h + + +$as_echo "#define regerror rpl_regerror" >>confdefs.h + + +$as_echo "#define regfree rpl_regfree" >>confdefs.h + + fi + + + if test $ac_use_included_regex = yes; then + GL_COND_OBJ_REGEX_TRUE= + GL_COND_OBJ_REGEX_FALSE='#' +else + GL_COND_OBJ_REGEX_TRUE='#' + GL_COND_OBJ_REGEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_REGEX_TRUE}" && test -z "${GL_COND_OBJ_REGEX_FALSE}"; then + GL_COND_OBJ_REGEX_TRUE='#' + GL_COND_OBJ_REGEX_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_REGEX_TRUE"; then : + + + + + + + + for ac_header in libintl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBINTL_H 1 +_ACEOF + +fi + +done + + + ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include +" +if test "x$ac_cv_have_decl_isblank" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ISBLANK $ac_have_decl +_ACEOF + + + +fi + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 +$as_echo_n "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } +if ${gl_cv_func_setlocale_null_all_mtsafe+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. + *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) + gl_cv_func_setlocale_null_all_mtsafe=no ;; + # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. + *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) + gl_cv_func_setlocale_null_all_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 +$as_echo "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_all_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_all_mtsafe" in + *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; + *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 +$as_echo_n "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } +if ${gl_cv_func_setlocale_null_one_mtsafe+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + # Guess no on OpenBSD, AIX. + openbsd* | aix*) + gl_cv_func_setlocale_null_one_mtsafe=no ;; + # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. + *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) + gl_cv_func_setlocale_null_one_mtsafe=yes ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 +$as_echo "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } + case "$host_os" in + mingw*) ;; + *) + if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then + gl_cv_func_setlocale_null_one_mtsafe="trivially yes" + fi + ;; + esac + case "$gl_cv_func_setlocale_null_one_mtsafe" in + *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; + *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; + esac + +cat >>confdefs.h <<_ACEOF +#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE +_ACEOF + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + case "$host_os" in + mingw*) SETLOCALE_NULL_LIB= ;; + *) + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 +$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } +if ${gl_cv_have_weak+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + cygwin*) + gl_cv_have_weak="guessing no" + ;; + *) + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern void xyzzy (); +#pragma weak xyzzy +int +main () +{ +xyzzy(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_have_weak=maybe +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ELF__ + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : + gl_cv_have_weak="guessing yes" +else + gl_cv_have_weak="guessing no" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_have_weak=yes +else + gl_cv_have_weak=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + ;; + esac + case " $LDFLAGS " in + *" -static "*) gl_cv_have_weak=no ;; + esac + case "$gl_cv_have_weak" in + *yes) + case "$host_os" in + freebsd* | dragonfly* | midnightbsd*) + : > conftest1.c + $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 + cat < conftest2.c +#include +#pragma weak pthread_mutexattr_gettype +int main () +{ + return (pthread_mutexattr_gettype != NULL); +} +EOF + $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ + || gl_cv_have_weak=no + rm -f conftest1.c libempty.so conftest2.c conftest + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 +$as_echo "$gl_cv_have_weak" >&6; } + case "$gl_cv_have_weak" in + *yes) + +$as_echo "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h + + ;; + esac + + case "$gl_cv_have_weak" in + *yes) SETLOCALE_NULL_LIB= ;; + *) SETLOCALE_NULL_LIB="$LIBPTHREAD" ;; + esac + ;; + esac + else + SETLOCALE_NULL_LIB= + fi + + LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB" + + + + if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then + GL_COND_OBJ_SETLOCALE_LOCK_TRUE= + GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' +else + GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' + GL_COND_OBJ_SETLOCALE_LOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SETLOCALE_LOCK_TRUE}" && test -z "${GL_COND_OBJ_SETLOCALE_LOCK_FALSE}"; then + GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' + GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SETLOCALE_LOCK_TRUE"; then : + + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +$as_echo_n "checking whether the -Werror option is usable... " >&6; } +if ${gl_cv_cc_vis_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_vis_werror=yes +else + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +$as_echo "$gl_cv_cc_vis_werror" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +$as_echo_n "checking for simple visibility declarations... " >&6; } +if ${gl_cv_cc_visibility+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_visibility=yes +else + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +$as_echo "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +cat >>confdefs.h <<_ACEOF +#define HAVE_VISIBILITY $HAVE_VISIBILITY +_ACEOF + + + + +fi + + + + + + + + + + GL_GNULIB_SETLOCALE_NULL=1 + + + + + +$as_echo "#define GNULIB_TEST_SETLOCALE_NULL 1" >>confdefs.h + + + + + + + if test $ac_cv_func_sigaction = yes; then + ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include +" +if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1 +_ACEOF + + +fi + + if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then + HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 + fi + else + HAVE_SIGACTION=0 + fi + + + if test $HAVE_SIGACTION = 0; then + GL_COND_OBJ_SIGACTION_TRUE= + GL_COND_OBJ_SIGACTION_FALSE='#' +else + GL_COND_OBJ_SIGACTION_TRUE='#' + GL_COND_OBJ_SIGACTION_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SIGACTION_TRUE}" && test -z "${GL_COND_OBJ_SIGACTION_FALSE}"; then + GL_COND_OBJ_SIGACTION_TRUE='#' + GL_COND_OBJ_SIGACTION_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SIGACTION_TRUE"; then : + + + + + + + + ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" " +#include + +" +if test "x$ac_cv_type_siginfo_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T 1 +_ACEOF + + +fi + + if test $ac_cv_type_siginfo_t = no; then + HAVE_SIGINFO_T=0 + fi + + +fi + + + + + + + + + + GL_GNULIB_SIGACTION=1 + + + + + +$as_echo "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit macro" >&5 +$as_echo_n "checking for signbit macro... " >&6; } +if ${gl_cv_func_signbit+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_signbit="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_signbit="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_signbit="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_signbit="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +/* If signbit is defined as a function, don't use it, since calling it for + 'float' or 'long double' arguments would involve conversions. + If signbit is not declared at all but exists as a library function, don't + use it, since the prototype may not match. + If signbit is not declared at all but exists as a compiler built-in, don't + use it, since it's preferable to use __builtin_signbit* (no warnings, + no conversions). */ +#ifndef signbit +# error "signbit should be a macro" +#endif +#include + +/* Global variables. + Needed because GCC 4 constant-folds __builtin_signbitl (literal) + but cannot constant-fold __builtin_signbitl (variable). */ +float vf; +double vd; +long double vl; +int main () +{ +/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. + So we use -p0f and -p0d instead. */ +float p0f = 0.0f; +float m0f = -p0f; +double p0d = 0.0; +double m0d = -p0d; +/* On HP-UX 10.20, negating 0.0L does not yield -0.0L. + So we use another constant expression instead. + But that expression does not work on other platforms, such as when + cross-compiling to PowerPC on Mac OS X 10.5. */ +long double p0l = 0.0L; +#if defined __hpux || defined __sgi +long double m0l = -LDBL_MIN * LDBL_MIN; +#else +long double m0l = -p0l; +#endif + int result = 0; + if (signbit (vf)) /* link check */ + vf++; + { + float plus_inf = 1.0f / p0f; + float minus_inf = -1.0f / p0f; + if (!(!signbit (255.0f) + && signbit (-255.0f) + && !signbit (p0f) + && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f)) + && !signbit (plus_inf) + && signbit (minus_inf))) + result |= 1; + } + if (signbit (vd)) /* link check */ + vd++; + { + double plus_inf = 1.0 / p0d; + double minus_inf = -1.0 / p0d; + if (!(!signbit (255.0) + && signbit (-255.0) + && !signbit (p0d) + && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d)) + && !signbit (plus_inf) + && signbit (minus_inf))) + result |= 2; + } + if (signbit (vl)) /* link check */ + vl++; + { + long double plus_inf = 1.0L / p0l; + long double minus_inf = -1.0L / p0l; + if (signbit (255.0L)) + result |= 4; + if (!signbit (-255.0L)) + result |= 4; + if (signbit (p0l)) + result |= 8; + if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))) + result |= 16; + if (signbit (plus_inf)) + result |= 32; + if (!signbit (minus_inf)) + result |= 64; + } + return result; +} + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_signbit=yes +else + gl_cv_func_signbit=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit" >&5 +$as_echo "$gl_cv_func_signbit" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit compiler built-ins" >&5 +$as_echo_n "checking for signbit compiler built-ins... " >&6; } +if ${gl_cv_func_signbit_builtins+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_signbit_builtins="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_signbit_builtins="guessing yes" ;; + # Guess yes on mingw, no on MSVC. + mingw*) if test -n "$GCC"; then + gl_cv_func_signbit_builtins="guessing yes" + else + gl_cv_func_signbit_builtins="guessing no" + fi + ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_signbit_builtins="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if (__GNUC__ >= 4) || (__clang_major__ >= 4) +# define signbit(x) \ + (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ + sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ + __builtin_signbitf (x)) +#else +# error "signbit should be three compiler built-ins" +#endif +#include + +/* Global variables. + Needed because GCC 4 constant-folds __builtin_signbitl (literal) + but cannot constant-fold __builtin_signbitl (variable). */ +float vf; +double vd; +long double vl; +int main () +{ +/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. + So we use -p0f and -p0d instead. */ +float p0f = 0.0f; +float m0f = -p0f; +double p0d = 0.0; +double m0d = -p0d; +/* On HP-UX 10.20, negating 0.0L does not yield -0.0L. + So we use another constant expression instead. + But that expression does not work on other platforms, such as when + cross-compiling to PowerPC on Mac OS X 10.5. */ +long double p0l = 0.0L; +#if defined __hpux || defined __sgi +long double m0l = -LDBL_MIN * LDBL_MIN; +#else +long double m0l = -p0l; +#endif + int result = 0; + if (signbit (vf)) /* link check */ + vf++; + { + float plus_inf = 1.0f / p0f; + float minus_inf = -1.0f / p0f; + if (!(!signbit (255.0f) + && signbit (-255.0f) + && !signbit (p0f) + && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f)) + && !signbit (plus_inf) + && signbit (minus_inf))) + result |= 1; + } + if (signbit (vd)) /* link check */ + vd++; + { + double plus_inf = 1.0 / p0d; + double minus_inf = -1.0 / p0d; + if (!(!signbit (255.0) + && signbit (-255.0) + && !signbit (p0d) + && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d)) + && !signbit (plus_inf) + && signbit (minus_inf))) + result |= 2; + } + if (signbit (vl)) /* link check */ + vl++; + { + long double plus_inf = 1.0L / p0l; + long double minus_inf = -1.0L / p0l; + if (signbit (255.0L)) + result |= 4; + if (!signbit (-255.0L)) + result |= 4; + if (signbit (p0l)) + result |= 8; + if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))) + result |= 16; + if (signbit (plus_inf)) + result |= 32; + if (!signbit (minus_inf)) + result |= 64; + } + return result; +} + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_signbit_builtins=yes +else + gl_cv_func_signbit_builtins=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit_builtins" >&5 +$as_echo "$gl_cv_func_signbit_builtins" >&6; } + case "$gl_cv_func_signbit_builtins" in + *yes) + REPLACE_SIGNBIT_USING_BUILTINS=1 + ;; + *) + case "$gl_cv_func_signbit" in + *yes) ;; + *) + REPLACE_SIGNBIT=1 + ;; + esac + ;; + esac + case "$host_os" in + solaris*) + REPLACE_SIGNBIT=1 + ;; + esac + if test $REPLACE_SIGNBIT = 1; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'float'" >&5 +$as_echo_n "checking where to find the sign bit in a 'float'... " >&6; } +if ${gl_cv_cc_float_signbit+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + gl_cv_cc_float_signbit="unknown" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#define NWORDS \ + ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { float value; unsigned int word[NWORDS]; } + memory_float; +static memory_float plus = { 1.0f }; +static memory_float minus = { -1.0f }; +int main () +{ + size_t j, k, i; + unsigned int m; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + /* Find the different bit. */ + k = 0; m = 0; + for (j = 0; j < NWORDS; j++) + { + unsigned int x = plus.word[j] ^ minus.word[j]; + if ((x & (x - 1)) || (x && m)) + { + /* More than one bit difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 2; + } + if (x) + { + k = j; + m = x; + } + } + if (m == 0) + { + /* No difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 3; + } + /* Now m = plus.word[k] ^ ~minus.word[k]. */ + if (plus.word[k] & ~minus.word[k]) + { + /* Oh? The sign bit is set in the positive and cleared in the negative + numbers? */ + fprintf (fp, "unknown"); + fclose (fp); + return 4; + } + for (i = 0; ; i++) + if ((m >> i) & 1) + break; + fprintf (fp, "word %d bit %d", (int) k, (int) i); + if (fclose (fp) != 0) + return 5; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_float_signbit=`cat conftest.out` +else + gl_cv_cc_float_signbit="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_signbit" >&5 +$as_echo "$gl_cv_cc_float_signbit" >&6; } + case "$gl_cv_cc_float_signbit" in + word*bit*) + word=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define FLT_SIGNBIT_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define FLT_SIGNBIT_BIT $bit +_ACEOF + + ;; + esac + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'double'" >&5 +$as_echo_n "checking where to find the sign bit in a 'double'... " >&6; } +if ${gl_cv_cc_double_signbit+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + gl_cv_cc_double_signbit="unknown" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#define NWORDS \ + ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { double value; unsigned int word[NWORDS]; } + memory_float; +static memory_float plus = { 1.0 }; +static memory_float minus = { -1.0 }; +int main () +{ + size_t j, k, i; + unsigned int m; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + /* Find the different bit. */ + k = 0; m = 0; + for (j = 0; j < NWORDS; j++) + { + unsigned int x = plus.word[j] ^ minus.word[j]; + if ((x & (x - 1)) || (x && m)) + { + /* More than one bit difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 2; + } + if (x) + { + k = j; + m = x; + } + } + if (m == 0) + { + /* No difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 3; + } + /* Now m = plus.word[k] ^ ~minus.word[k]. */ + if (plus.word[k] & ~minus.word[k]) + { + /* Oh? The sign bit is set in the positive and cleared in the negative + numbers? */ + fprintf (fp, "unknown"); + fclose (fp); + return 4; + } + for (i = 0; ; i++) + if ((m >> i) & 1) + break; + fprintf (fp, "word %d bit %d", (int) k, (int) i); + if (fclose (fp) != 0) + return 5; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_double_signbit=`cat conftest.out` +else + gl_cv_cc_double_signbit="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_signbit" >&5 +$as_echo "$gl_cv_cc_double_signbit" >&6; } + case "$gl_cv_cc_double_signbit" in + word*bit*) + word=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define DBL_SIGNBIT_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define DBL_SIGNBIT_BIT $bit +_ACEOF + + ;; + esac + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'long double'" >&5 +$as_echo_n "checking where to find the sign bit in a 'long double'... " >&6; } +if ${gl_cv_cc_long_double_signbit+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + gl_cv_cc_long_double_signbit="unknown" + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#define NWORDS \ + ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) +typedef union { long double value; unsigned int word[NWORDS]; } + memory_float; +static memory_float plus = { 1.0L }; +static memory_float minus = { -1.0L }; +int main () +{ + size_t j, k, i; + unsigned int m; + FILE *fp = fopen ("conftest.out", "w"); + if (fp == NULL) + return 1; + /* Find the different bit. */ + k = 0; m = 0; + for (j = 0; j < NWORDS; j++) + { + unsigned int x = plus.word[j] ^ minus.word[j]; + if ((x & (x - 1)) || (x && m)) + { + /* More than one bit difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 2; + } + if (x) + { + k = j; + m = x; + } + } + if (m == 0) + { + /* No difference. */ + fprintf (fp, "unknown"); + fclose (fp); + return 3; + } + /* Now m = plus.word[k] ^ ~minus.word[k]. */ + if (plus.word[k] & ~minus.word[k]) + { + /* Oh? The sign bit is set in the positive and cleared in the negative + numbers? */ + fprintf (fp, "unknown"); + fclose (fp); + return 4; + } + for (i = 0; ; i++) + if ((m >> i) & 1) + break; + fprintf (fp, "word %d bit %d", (int) k, (int) i); + if (fclose (fp) != 0) + return 5; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_cc_long_double_signbit=`cat conftest.out` +else + gl_cv_cc_long_double_signbit="unknown" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.out + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_signbit" >&5 +$as_echo "$gl_cv_cc_long_double_signbit" >&6; } + case "$gl_cv_cc_long_double_signbit" in + word*bit*) + word=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'` + bit=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word.*bit //'` + +cat >>confdefs.h <<_ACEOF +#define LDBL_SIGNBIT_WORD $word +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define LDBL_SIGNBIT_BIT $bit +_ACEOF + + ;; + esac + + + if test "$gl_cv_cc_float_signbit" = unknown; then + ac_fn_c_check_decl "$LINENO" "copysignf" "ac_cv_have_decl_copysignf" "#include +" +if test "x$ac_cv_have_decl_copysignf" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_COPYSIGNF $ac_have_decl +_ACEOF + + if test "$ac_cv_have_decl_copysignf" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignf can be used without linking with libm" >&5 +$as_echo_n "checking whether copysignf can be used without linking with libm... " >&6; } +if ${gl_cv_func_copysignf_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + float x, y; +int +main () +{ +return copysignf (x, y) < 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_copysignf_no_libm=yes +else + gl_cv_func_copysignf_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignf_no_libm" >&5 +$as_echo "$gl_cv_func_copysignf_no_libm" >&6; } + if test $gl_cv_func_copysignf_no_libm = yes; then + +$as_echo "#define HAVE_COPYSIGNF_IN_LIBC 1" >>confdefs.h + + fi + fi + fi + if test "$gl_cv_cc_double_signbit" = unknown; then + ac_fn_c_check_decl "$LINENO" "copysign" "ac_cv_have_decl_copysign" "#include +" +if test "x$ac_cv_have_decl_copysign" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_COPYSIGN $ac_have_decl +_ACEOF + + if test "$ac_cv_have_decl_copysign" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5 +$as_echo_n "checking whether copysign can be used without linking with libm... " >&6; } +if ${gl_cv_func_copysign_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + double x, y; +int +main () +{ +return copysign (x, y) < 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_copysign_no_libm=yes +else + gl_cv_func_copysign_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysign_no_libm" >&5 +$as_echo "$gl_cv_func_copysign_no_libm" >&6; } + if test $gl_cv_func_copysign_no_libm = yes; then + +$as_echo "#define HAVE_COPYSIGN_IN_LIBC 1" >>confdefs.h + + fi + fi + fi + if test "$gl_cv_cc_long_double_signbit" = unknown; then + ac_fn_c_check_decl "$LINENO" "copysignl" "ac_cv_have_decl_copysignl" "#include +" +if test "x$ac_cv_have_decl_copysignl" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_COPYSIGNL $ac_have_decl +_ACEOF + + if test "$ac_cv_have_decl_copysignl" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignl can be used without linking with libm" >&5 +$as_echo_n "checking whether copysignl can be used without linking with libm... " >&6; } +if ${gl_cv_func_copysignl_no_libm+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + long double x, y; +int +main () +{ +return copysignl (x, y) < 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_copysignl_no_libm=yes +else + gl_cv_func_copysignl_no_libm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignl_no_libm" >&5 +$as_echo "$gl_cv_func_copysignl_no_libm" >&6; } + if test $gl_cv_func_copysignl_no_libm = yes; then + +$as_echo "#define HAVE_COPYSIGNL_IN_LIBC 1" >>confdefs.h + + fi + fi + fi + fi + + + if test $REPLACE_SIGNBIT = 1; then + GL_COND_OBJ_SIGNBIT3_TRUE= + GL_COND_OBJ_SIGNBIT3_FALSE='#' +else + GL_COND_OBJ_SIGNBIT3_TRUE='#' + GL_COND_OBJ_SIGNBIT3_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SIGNBIT3_TRUE}" && test -z "${GL_COND_OBJ_SIGNBIT3_FALSE}"; then + GL_COND_OBJ_SIGNBIT3_TRUE='#' + GL_COND_OBJ_SIGNBIT3_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_SIGNBIT=1 + + + + + +$as_echo "#define GNULIB_TEST_SIGNBIT 1" >>confdefs.h + + + + + + + HAVE_POSIX_SIGNALBLOCKING=0 + if test "$gl_cv_type_sigset_t" = yes; then + ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" +if test "x$ac_cv_func_sigprocmask" = xyes; then : + HAVE_POSIX_SIGNALBLOCKING=1 +fi + + fi + + + if test $HAVE_POSIX_SIGNALBLOCKING = 0; then + GL_COND_OBJ_SIGPROCMASK_TRUE= + GL_COND_OBJ_SIGPROCMASK_FALSE='#' +else + GL_COND_OBJ_SIGPROCMASK_TRUE='#' + GL_COND_OBJ_SIGPROCMASK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_SIGPROCMASK_TRUE}" && test -z "${GL_COND_OBJ_SIGPROCMASK_FALSE}"; then + GL_COND_OBJ_SIGPROCMASK_TRUE='#' + GL_COND_OBJ_SIGPROCMASK_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_SIGPROCMASK_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_SIGPROCMASK=1 + + + + + +$as_echo "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h + + + + + for ac_header in stdint.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 +$as_echo_n "checking for SIZE_MAX... " >&6; } +if ${gl_cv_size_max+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_cv_size_max=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_STDINT_H +#include +#endif +#ifdef SIZE_MAX +Found it +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Found it" >/dev/null 2>&1; then : + gl_cv_size_max=yes +fi +rm -f conftest* + + if test $gl_cv_size_max != yes; then + if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include +#include "; then : + +else + size_t_bits_minus_1= +fi + + if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : + +else + fits_in_uint= +fi + + if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then + if test $fits_in_uint = 1; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + extern size_t foo; + extern unsigned long foo; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + fits_in_uint=0 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $fits_in_uint = 1; then + gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" + else + gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" + fi + else + gl_cv_size_max='((size_t)~(size_t)0)' + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 +$as_echo "$gl_cv_size_max" >&6; } + if test "$gl_cv_size_max" != yes; then + +cat >>confdefs.h <<_ACEOF +#define SIZE_MAX $gl_cv_size_max +_ACEOF + + fi + + + + + gl_cv_func_snprintf_usable=no + for ac_func in snprintf +do : + ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SNPRINTF 1 +_ACEOF + +fi +done + + if test $ac_cv_func_snprintf = yes; then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } +if ${gl_cv_func_snprintf_size1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; + *) gl_cv_func_snprintf_size1="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 1, "%d", 12345); + return buf[1] != 'E'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_size1=yes +else + gl_cv_func_snprintf_size1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } + + case "$gl_cv_func_snprintf_size1" in + *yes) + + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5 +$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; } +if ${gl_cv_func_printf_positions+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_positions="guessing yes";; + # Guess no on native Windows. + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_positions=yes +else + gl_cv_func_printf_positions=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5 +$as_echo "$gl_cv_func_printf_positions" >&6; } + + case "$gl_cv_func_printf_positions" in + *yes) + gl_cv_func_snprintf_usable=yes + ;; + esac + ;; + esac + ;; + esac + fi + if test $gl_cv_func_snprintf_usable = no; then + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext" + + if test $ac_cv_func_snprintf = yes; then + REPLACE_SNPRINTF=1 + else + + if test $ac_cv_have_decl_snprintf = yes; then + REPLACE_SNPRINTF=1 + fi + fi + : + + fi + + if test $ac_cv_have_decl_snprintf = no; then + HAVE_DECL_SNPRINTF=0 + fi + + + + + + + + + + + GL_GNULIB_SNPRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_SNPRINTF 1" >>confdefs.h + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_SNPRINTF 1 +_ACEOF + + + + + + + + + + + + + + + + + + gl_cv_func_snprintf_posix=no + for ac_func in snprintf +do : + ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SNPRINTF 1 +_ACEOF + +fi +done + + if test $ac_cv_func_snprintf = yes; then + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf fully supports the 'n' directive" >&5 +$as_echo_n "checking whether snprintf fully supports the 'n' directive... " >&6; } +if ${gl_cv_func_snprintf_directive_n+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess no on glibc when _FORTIFY_SOURCE >= 2. + *-gnu* | gnu*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if _FORTIFY_SOURCE >= 2 + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_snprintf_directive_n="guessing yes" +else + gl_cv_func_snprintf_directive_n="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; + darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_snprintf_directive_n="guessing no";; + solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; + aix*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on OSF/1 >= 5. + osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; + osf*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_directive_n="guessing no";; + netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";; + # Guess no on native Windows. + mingw*) gl_cv_func_snprintf_directive_n="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_directive_n="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char fmtstring[10]; +static char buf[100]; +int main () +{ + int count = -1; + /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) + support %n in format strings in read-only memory but not in writable + memory. */ + strcpy (fmtstring, "%d %n"); + my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); + if (count != 6) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_directive_n=yes +else + gl_cv_func_snprintf_directive_n=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_directive_n" >&5 +$as_echo "$gl_cv_func_snprintf_directive_n" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } +if ${gl_cv_func_snprintf_size1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; + *) gl_cv_func_snprintf_size1="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 1, "%d", 12345); + return buf[1] != 'E'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_size1=yes +else + gl_cv_func_snprintf_size1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf respects a zero size as in C99" >&5 +$as_echo_n "checking whether vsnprintf respects a zero size as in C99... " >&6; } +if ${gl_cv_func_vsnprintf_zerosize_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + midnightbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on native Windows. + mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_vsnprintf_zerosize_c99="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 0, "%d", 12345); + return buf[0] != 'D'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_vsnprintf_zerosize_c99=yes +else + gl_cv_func_vsnprintf_zerosize_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_vsnprintf_zerosize_c99" >&5 +$as_echo "$gl_cv_func_vsnprintf_zerosize_c99" >&6; } + + case "$gl_cv_func_printf_sizes_c99" in + *yes) + case "$gl_cv_func_printf_long_double" in + *yes) + case "$gl_cv_func_printf_infinite" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + case "$gl_cv_func_printf_directive_a" in + *yes) + case "$gl_cv_func_printf_directive_f" in + *yes) + case "$gl_cv_func_printf_directive_n" in + *yes) + case "$gl_cv_func_printf_directive_ls" in + *yes) + case "$gl_cv_func_printf_positions" in + *yes) + case "$gl_cv_func_printf_flag_grouping" in + *yes) + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + case "$gl_cv_func_printf_flag_zero" in + *yes) + case "$gl_cv_func_printf_precision" in + *yes) + case "$gl_cv_func_printf_enomem" in + *yes) + case "$gl_cv_func_snprintf_truncation_c99" in + *yes) + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + case "$gl_cv_func_snprintf_directive_n" in + *yes) + case "$gl_cv_func_snprintf_size1" in + *yes) + case "$gl_cv_func_vsnprintf_zerosize_c99" in + *yes) + # snprintf exists and is + # already POSIX compliant. + gl_cv_func_snprintf_posix=yes + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + fi + if test $gl_cv_func_snprintf_posix = no; then + + + + case "$gl_cv_func_printf_infinite" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + + case "$gl_cv_func_printf_long_double" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + ;; + esac + + + + case "$gl_cv_func_printf_directive_a" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h + + for ac_func in nl_langinfo +do : + ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo" +if test "x$ac_cv_func_nl_langinfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NL_LANGINFO 1 +_ACEOF + +fi +done + + ;; + esac + + + + case "$gl_cv_func_printf_directive_f" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_directive_ls" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_grouping" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_zero" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_precision" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_enomem" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + + if test $ac_cv_func_vasnprintf = yes; then + +$as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h + + fi + + + + + + + + + + ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes; then : + +else + +$as_echo "#define ptrdiff_t long" >>confdefs.h + + +fi + + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext" + + if test $ac_cv_func_snprintf = yes; then + REPLACE_SNPRINTF=1 + else + + if test $ac_cv_have_decl_snprintf = yes; then + REPLACE_SNPRINTF=1 + fi + fi + : + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 +$as_echo_n "checking for ssize_t... " >&6; } +if ${gt_cv_ssize_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int x = sizeof (ssize_t *) + sizeof (ssize_t); + return !x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_ssize_t=yes +else + gt_cv_ssize_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 +$as_echo "$gt_cv_ssize_t" >&6; } + if test $gt_cv_ssize_t = no; then + +$as_echo "#define ssize_t int" >>confdefs.h + + fi + + + + + + case "$host_os" in + mingw*) + REPLACE_STAT=1 + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 +$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } +if ${gl_cv_func_stat_file_slash+:} false; then : + $as_echo_n "(cached) " >&6 +else + touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +int result = 0; + struct stat st; + if (!stat ("conftest.tmp/", &st)) + result |= 1; +#if HAVE_LSTAT + if (!stat ("conftest.lnk/", &st)) + result |= 2; +#endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_stat_file_slash=yes +else + gl_cv_func_stat_file_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.tmp conftest.lnk +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 +$as_echo "$gl_cv_func_stat_file_slash" >&6; } + case $gl_cv_func_stat_file_slash in + *no) + REPLACE_STAT=1 + +$as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h +;; + esac + case $host_os in + solaris*) + REPLACE_FSTAT=1 ;; + esac + ;; + esac + + + if test $REPLACE_STAT = 1; then + GL_COND_OBJ_STAT_TRUE= + GL_COND_OBJ_STAT_FALSE='#' +else + GL_COND_OBJ_STAT_TRUE='#' + GL_COND_OBJ_STAT_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STAT_TRUE}" && test -z "${GL_COND_OBJ_STAT_FALSE}"; then + GL_COND_OBJ_STAT_TRUE='#' + GL_COND_OBJ_STAT_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STAT_TRUE"; then : + + case "$host_os" in + mingw*) + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" + + ;; + esac + + + + : + + +fi + + + + + + + + + + GL_GNULIB_STAT=1 + + + + + +$as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h + + + + + + + + ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 +_ACEOF + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 +$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } +if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #if HAVE_SYS_TIME_H + # include + #endif + #include + struct timespec ts; + struct stat st; + +int +main () +{ + + st.st_atim = ts; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes +else + ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 +$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } + if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then + +$as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h + + fi +else + ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 +_ACEOF + + +else + ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 +_ACEOF + + +else + ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 +_ACEOF + + +fi + +fi + +fi + +fi + + + + + + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 +_ACEOF + + +else + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1 +_ACEOF + + +else + ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include + #include +" +if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1 +_ACEOF + + +fi + +fi + +fi + + + + GL_GENERATE_STDARG_H=false + NEXT_STDARG_H='' + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 +$as_echo_n "checking for va_copy... " >&6; } +if ${gl_cv_func_va_copy+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef va_copy +void (*func) (va_list, va_list) = va_copy; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_va_copy=yes +else + gl_cv_func_va_copy=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5 +$as_echo "$gl_cv_func_va_copy" >&6; } + if test $gl_cv_func_va_copy = no; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _AIX && !defined __GNUC__ + AIX vaccine + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "vaccine" >/dev/null 2>&1; then : + gl_aixcc=yes +else + gl_aixcc=no +fi +rm -f conftest* + + if test $gl_aixcc = yes; then + GL_GENERATE_STDARG_H=true + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdarg_h='<'stdarg.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if ${gl_cv_next_stdarg_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo 'stdarg.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_stdarg_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_stdarg_h + gl_cv_next_stdarg_h='"'$gl_header'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5 +$as_echo "$gl_cv_next_stdarg_h" >&6; } + fi + NEXT_STDARG_H=$gl_cv_next_stdarg_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdarg.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdarg_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive + + + + + if test "$gl_cv_next_stdarg_h" = '""'; then + gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' + NEXT_STDARG_H="$gl_cv_next_stdarg_h" + fi + else + + + exec 9>&6 6>/dev/null + + if ${gl_cv_func___va_copy+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef __va_copy +error, bail out +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func___va_copy=yes +else + gl_cv_func___va_copy=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + + exec 6>&9 9>&- + + + if test $gl_cv_func___va_copy = yes; then + +$as_echo "#define va_copy __va_copy" >>confdefs.h + + else + + +$as_echo "#define va_copy gl_va_copy" >>confdefs.h + + fi + fi + fi + + + + + + + case "$GL_GENERATE_STDARG_H" in + false) STDARG_H='' ;; + true) + if test -z "$STDARG_H"; then + STDARG_H="${gl_source_base_prefix}stdarg.h" + fi + ;; + *) echo "*** GL_GENERATE_STDARG_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDARG_H; then + GL_GENERATE_STDARG_H_TRUE= + GL_GENERATE_STDARG_H_FALSE='#' +else + GL_GENERATE_STDARG_H_TRUE='#' + GL_GENERATE_STDARG_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then + GL_GENERATE_STDARG_H_TRUE='#' + GL_GENERATE_STDARG_H_FALSE='#' + fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bool, true, false" >&5 +$as_echo_n "checking for bool, true, false... " >&6; } +if ${gl_cv_c_bool+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if true == false + #error "true == false" + #endif + extern bool b; + bool b = true == false; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_c_bool=yes +else + gl_cv_c_bool=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_bool" >&5 +$as_echo "$gl_cv_c_bool" >&6; } + if test "$gl_cv_c_bool" = yes; then + +$as_echo "#define HAVE_C_BOOL 1" >>confdefs.h + + fi + + + + + + + if test $ac_cv_header_stdckdint_h = yes; then + GL_GENERATE_STDCKDINT_H=false + else + GL_GENERATE_STDCKDINT_H=true + fi + + + + + case "$GL_GENERATE_STDCKDINT_H" in + false) STDCKDINT_H='' ;; + true) + if test -z "$STDCKDINT_H"; then + STDCKDINT_H="${gl_source_base_prefix}stdckdint.h" + fi + ;; + *) echo "*** GL_GENERATE_STDCKDINT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDCKDINT_H; then + GL_GENERATE_STDCKDINT_H_TRUE= + GL_GENERATE_STDCKDINT_H_FALSE='#' +else + GL_GENERATE_STDCKDINT_H_TRUE='#' + GL_GENERATE_STDCKDINT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDCKDINT_H_TRUE}" && test -z "${GL_GENERATE_STDCKDINT_H_FALSE}"; then + GL_GENERATE_STDCKDINT_H_TRUE='#' + GL_GENERATE_STDCKDINT_H_FALSE='#' + fi + + + + + + + + + + + + + + + + + case "$GL_GENERATE_STDDEF_H" in + false) STDDEF_H='' ;; + true) + if test -z "$STDDEF_H"; then + STDDEF_H="${gl_source_base_prefix}stddef.h" + fi + ;; + *) echo "*** GL_GENERATE_STDDEF_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDDEF_H; then + GL_GENERATE_STDDEF_H_TRUE= + GL_GENERATE_STDDEF_H_FALSE='#' +else + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE='#' + fi + + + + + + + + + + + + case "$GL_GENERATE_STDINT_H" in + false) STDINT_H='' ;; + true) + if test -z "$STDINT_H"; then + STDINT_H="${gl_source_base_prefix}stdint.h" + fi + ;; + *) echo "*** GL_GENERATE_STDINT_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_STDINT_H; then + GL_GENERATE_STDINT_H_TRUE= + GL_GENERATE_STDINT_H_FALSE='#' +else + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE= +fi +: + if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE='#' + fi + + + + + + + + + + case "$GL_GENERATE_LIMITS_H" in + false) LIMITS_H='' ;; + true) + if test -z "$LIMITS_H"; then + LIMITS_H="${gl_source_base_prefix}limits.h" + fi + ;; + *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_LIMITS_H; then + GL_GENERATE_LIMITS_H_TRUE= + GL_GENERATE_LIMITS_H_FALSE='#' +else + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE= +fi +: + if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then + GL_GENERATE_LIMITS_H_TRUE='#' + GL_GENERATE_LIMITS_H_FALSE='#' + fi + + + + + + + + + + + + + + + if test $REPLACE_STDIO_READ_FUNCS = 1; then + GL_COND_OBJ_STDIO_READ_TRUE= + GL_COND_OBJ_STDIO_READ_FALSE='#' +else + GL_COND_OBJ_STDIO_READ_TRUE='#' + GL_COND_OBJ_STDIO_READ_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STDIO_READ_TRUE}" && test -z "${GL_COND_OBJ_STDIO_READ_FALSE}"; then + GL_COND_OBJ_STDIO_READ_TRUE='#' + GL_COND_OBJ_STDIO_READ_FALSE='#' + fi + + + if test $REPLACE_STDIO_WRITE_FUNCS = 1; then + GL_COND_OBJ_STDIO_WRITE_TRUE= + GL_COND_OBJ_STDIO_WRITE_FALSE='#' +else + GL_COND_OBJ_STDIO_WRITE_TRUE='#' + GL_COND_OBJ_STDIO_WRITE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STDIO_WRITE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_WRITE_FALSE}"; then + GL_COND_OBJ_STDIO_WRITE_TRUE='#' + GL_COND_OBJ_STDIO_WRITE_FALSE='#' + fi + + + + + + + + + + + GL_GNULIB_FSCANF=1 + + + + + +$as_echo "#define GNULIB_TEST_FSCANF 1" >>confdefs.h + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_FSCANF 1 +_ACEOF + + + + + + + + + + + + GL_GNULIB_SCANF=1 + + + + + +$as_echo "#define GNULIB_TEST_SCANF 1" >>confdefs.h + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_SCANF 1 +_ACEOF + + + + + + + + + + + + GL_GNULIB_FGETC=1 + + + + + +$as_echo "#define GNULIB_TEST_FGETC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_GETC=1 + + + + + +$as_echo "#define GNULIB_TEST_GETC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_GETCHAR=1 + + + + + +$as_echo "#define GNULIB_TEST_GETCHAR 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FGETS=1 + + + + + +$as_echo "#define GNULIB_TEST_FGETS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FREAD=1 + + + + + +$as_echo "#define GNULIB_TEST_FREAD 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_FPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_PRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_VFPRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_VFPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_VPRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_VPRINTF 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPUTC=1 + + + + + +$as_echo "#define GNULIB_TEST_FPUTC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTC=1 + + + + + +$as_echo "#define GNULIB_TEST_PUTC 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTCHAR=1 + + + + + +$as_echo "#define GNULIB_TEST_PUTCHAR 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FPUTS=1 + + + + + +$as_echo "#define GNULIB_TEST_FPUTS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_PUTS=1 + + + + + +$as_echo "#define GNULIB_TEST_PUTS 1" >>confdefs.h + + + + + + + + + + + + + GL_GNULIB_FWRITE=1 + + + + + +$as_echo "#define GNULIB_TEST_FWRITE 1" >>confdefs.h + + + + + + + + + + + + + + for ac_func in strcasecmp +do : + ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" +if test "x$ac_cv_func_strcasecmp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRCASECMP 1 +_ACEOF + +fi +done + + if test $ac_cv_func_strcasecmp = no; then + HAVE_STRCASECMP=0 + fi + + + + for ac_func in strncasecmp +do : + ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp" +if test "x$ac_cv_func_strncasecmp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRNCASECMP 1 +_ACEOF + +fi +done + + if test $ac_cv_func_strncasecmp = yes; then + HAVE_STRNCASECMP=1 + else + HAVE_STRNCASECMP=0 + fi + ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default" +if test "x$ac_cv_have_decl_strncasecmp" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRNCASECMP $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_strncasecmp = no; then + HAVE_DECL_STRNCASECMP=0 + fi + + + + if test $HAVE_STRCASECMP = 0; then + GL_COND_OBJ_STRCASECMP_TRUE= + GL_COND_OBJ_STRCASECMP_FALSE='#' +else + GL_COND_OBJ_STRCASECMP_TRUE='#' + GL_COND_OBJ_STRCASECMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRCASECMP_FALSE}"; then + GL_COND_OBJ_STRCASECMP_TRUE='#' + GL_COND_OBJ_STRCASECMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRCASECMP_TRUE"; then : + + + : + + +fi + + if test $HAVE_STRNCASECMP = 0; then + GL_COND_OBJ_STRNCASECMP_TRUE= + GL_COND_OBJ_STRNCASECMP_FALSE='#' +else + GL_COND_OBJ_STRNCASECMP_TRUE='#' + GL_COND_OBJ_STRNCASECMP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRNCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRNCASECMP_FALSE}"; then + GL_COND_OBJ_STRNCASECMP_TRUE='#' + GL_COND_OBJ_STRNCASECMP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRNCASECMP_TRUE"; then : + + + : + + +fi + + + + + + + for ac_func in strcasestr +do : + ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" +if test "x$ac_cv_func_strcasestr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRCASESTR 1 +_ACEOF + +fi +done + + if test $ac_cv_func_strcasestr = no; then + HAVE_STRCASESTR=0 + else + if test $REPLACE_MEMCHR = 1; then + REPLACE_STRCASESTR=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 +$as_echo_n "checking whether strcasestr works... " >&6; } +if ${gl_cv_func_strcasestr_works_always+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__ */ +#ifdef __GNU_LIBRARY__ + #include + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ + || defined __UCLIBC__ + Lucky user + #endif +#elif defined __CYGWIN__ + #include + #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) + Lucky user + #endif +#else + Lucky user +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky user" >/dev/null 2>&1; then : + gl_cv_func_strcasestr_works_always="guessing yes" +else + gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal" +fi +rm -f conftest* + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include /* for __GNU_LIBRARY__, strcasestr */ +#ifdef __GNU_LIBRARY__ + #include + #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 + Unlucky user + #endif +#endif +#define P "_EF_BF_BD" +#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P +#define NEEDLE P P P P P + +int +main () +{ +return !!strcasestr (HAYSTACK, NEEDLE); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_strcasestr_works_always=yes +else + gl_cv_func_strcasestr_works_always=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_works_always" >&5 +$as_echo "$gl_cv_func_strcasestr_works_always" >&6; } + case "$gl_cv_func_strcasestr_works_always" in + *yes) ;; + *) + REPLACE_STRCASESTR=1 + ;; + esac + fi + fi + + if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strcasestr.$ac_objext" + + + : + + fi + + + + + + + + + + + + + + + GL_GNULIB_STRCASESTR=1 + + + + + +$as_echo "#define GNULIB_TEST_STRCASESTR 1" >>confdefs.h + + + + + + + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 + fi + + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi + + + if test $REPLACE_STRDUP = 1; then + GL_COND_OBJ_STRDUP_TRUE= + GL_COND_OBJ_STRDUP_FALSE='#' +else + GL_COND_OBJ_STRDUP_TRUE='#' + GL_COND_OBJ_STRDUP_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRDUP_TRUE}" && test -z "${GL_COND_OBJ_STRDUP_FALSE}"; then + GL_COND_OBJ_STRDUP_TRUE='#' + GL_COND_OBJ_STRDUP_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRDUP_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRDUP=1 + + + + + +$as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h + + + + + + + + + if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 +$as_echo_n "checking for working strerror function... " >&6; } +if ${gl_cv_func_working_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +if (!*strerror (-2)) return 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_working_strerror=yes +else + gl_cv_func_working_strerror=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 +$as_echo "$gl_cv_func_working_strerror" >&6; } + case "$gl_cv_func_working_strerror" in + *yes) ;; + *) + REPLACE_STRERROR=1 + ;; + esac + + else + REPLACE_STRERROR=1 + fi + + + if test $REPLACE_STRERROR = 1; then + GL_COND_OBJ_STRERROR_TRUE= + GL_COND_OBJ_STRERROR_FALSE='#' +else + GL_COND_OBJ_STRERROR_TRUE='#' + GL_COND_OBJ_STRERROR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_FALSE}"; then + GL_COND_OBJ_STRERROR_TRUE='#' + GL_COND_OBJ_STRERROR_FALSE='#' + fi + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_STRERROR 1 +_ACEOF + + + + + + + + + + + + + + + + + GL_GNULIB_STRERROR=1 + + + + + +$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h + + + + + + + if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE= + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' +else + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_FALSE}"; then + GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' + GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRERROR_OVERRIDE_TRUE"; then : + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + for ac_header in winsock2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINSOCK2_H 1 +_ACEOF + +fi + +done + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + +fi + + + + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5 +$as_echo_n "checking for working strnlen... " >&6; } +if ${ac_cv_func_strnlen_working+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + # Guess no on AIX systems, yes otherwise. + case "$host_os" in + aix*) ac_cv_func_strnlen_working=no;; + *) ac_cv_func_strnlen_working=yes;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + +#define S "foobar" +#define S_LEN (sizeof S - 1) + + /* At least one implementation is buggy: that of AIX 4.3 would + give strnlen (S, 1) == 3. */ + + int i; + for (i = 0; i < S_LEN + 1; ++i) + { + int expected = i <= S_LEN ? i : S_LEN; + if (strnlen (S, i) != expected) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_strnlen_working=yes +else + ac_cv_func_strnlen_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 +$as_echo "$ac_cv_func_strnlen_working" >&6; } +test $ac_cv_func_strnlen_working = no && : + + + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + fi + + + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then + GL_COND_OBJ_STRNLEN_TRUE= + GL_COND_OBJ_STRNLEN_FALSE='#' +else + GL_COND_OBJ_STRNLEN_TRUE='#' + GL_COND_OBJ_STRNLEN_FALSE= +fi +: + if test -z "${GL_COND_OBJ_STRNLEN_TRUE}" && test -z "${GL_COND_OBJ_STRNLEN_FALSE}"; then + GL_COND_OBJ_STRNLEN_TRUE='#' + GL_COND_OBJ_STRNLEN_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_STRNLEN_TRUE"; then : + + : + +fi + + + + + + + + + + + + + + + GL_GNULIB_STRNLEN=1 + + + + + +$as_echo "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_TEMPNAME 1 +_ACEOF + + + + + + + + + + + : + + + + + + + + + + + + + if { test "$HAVE_LIBUNISTRING" != yes \ + || { + + + + test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ + || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ + && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ + || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ + && test $LIBUNISTRING_VERSION_SUBMINOR -lt 11 + } + } + } + + + + + } + }; then + if test -z "$LIBUNISTRING_UNITYPES_H"; then + LIBUNISTRING_UNITYPES_H="${gl_source_base_prefix}unitypes.h" + fi + else + LIBUNISTRING_UNITYPES_H= + fi + + + + + + + if { test "$HAVE_LIBUNISTRING" != yes \ + || { + + + + test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ + || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ + && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ + || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ + && test $LIBUNISTRING_VERSION_SUBMINOR -lt 11 + } + } + } + + + + + } + }; then + if test -z "$LIBUNISTRING_UNIWIDTH_H"; then + LIBUNISTRING_UNIWIDTH_H="${gl_source_base_prefix}uniwidth.h" + fi + else + LIBUNISTRING_UNIWIDTH_H= + fi + + + + + + + if { test "$HAVE_LIBUNISTRING" != yes \ + || { + + + + test $LIBUNISTRING_VERSION_MAJOR -lt 1 \ + || { test $LIBUNISTRING_VERSION_MAJOR -eq 1 \ + && { test $LIBUNISTRING_VERSION_MINOR -lt 1 \ + || { test $LIBUNISTRING_VERSION_MINOR -eq 1 \ + && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 + } + } + } + + + + + } + }; then + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE= + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#' +else + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#' + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE= +fi +: + if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#' + LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#' + fi + + + + + + + case "$host_os" in + mingw*) + REPLACE_UTIME=1 + ;; + *) + for ac_func in utime +do : + ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime" +if test "x$ac_cv_func_utime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UTIME 1 +_ACEOF + +fi +done + + if test $ac_cv_func_utime = no; then + HAVE_UTIME=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utime handles trailing slashes on files" >&5 +$as_echo_n "checking whether utime handles trailing slashes on files... " >&6; } +if ${gl_cv_func_utime_file_slash+:} false; then : + $as_echo_n "(cached) " >&6 +else + touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_utime_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_utime_file_slash="guessing yes" ;; + # Guess no on macOS. + darwin*) gl_cv_func_utime_file_slash="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_utime_file_slash="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +int result = 0; + if (!utime ("conftest.tmp/", NULL)) + result |= 1; + #if HAVE_LSTAT + if (!utime ("conftest.lnk/", NULL)) + result |= 2; + #endif + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_utime_file_slash=yes +else + gl_cv_func_utime_file_slash=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.tmp conftest.lnk + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utime_file_slash" >&5 +$as_echo "$gl_cv_func_utime_file_slash" >&6; } + case $gl_cv_func_stat_file_slash in + *no) + REPLACE_UTIME=1 + +$as_echo "#define REPLACE_FUNC_UTIME_FILE 1" >>confdefs.h + + ;; + esac + fi + ;; + esac + + + if test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1; then + GL_COND_OBJ_UTIME_TRUE= + GL_COND_OBJ_UTIME_FALSE='#' +else + GL_COND_OBJ_UTIME_TRUE='#' + GL_COND_OBJ_UTIME_FALSE= +fi +: + if test -z "${GL_COND_OBJ_UTIME_TRUE}" && test -z "${GL_COND_OBJ_UTIME_FALSE}"; then + GL_COND_OBJ_UTIME_TRUE='#' + GL_COND_OBJ_UTIME_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_UTIME_TRUE"; then : + + : + +fi + + + + + + + + + + GL_GNULIB_UTIME=1 + + + + + +$as_echo "#define GNULIB_TEST_UTIME 1" >>confdefs.h + + + + + + + + + + + + + + + + ac_fn_c_check_decl "$LINENO" "futimes" "ac_cv_have_decl_futimes" "#include +" +if test "x$ac_cv_have_decl_futimes" = xyes; then : + +fi + + if test $ac_cv_have_decl_futimes = yes; then + for ac_func in futimes +do : + ac_fn_c_check_func "$LINENO" "futimes" "ac_cv_func_futimes" +if test "x$ac_cv_func_futimes" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FUTIMES 1 +_ACEOF + +fi +done + + else + ac_cv_func_futimes=no + fi + + + ac_fn_c_check_decl "$LINENO" "futimesat" "ac_cv_have_decl_futimesat" "#include +" +if test "x$ac_cv_have_decl_futimesat" = xyes; then : + +fi + + if test $ac_cv_have_decl_futimesat = yes; then + for ac_func in futimesat +do : + ac_fn_c_check_func "$LINENO" "futimesat" "ac_cv_func_futimesat" +if test "x$ac_cv_func_futimesat" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FUTIMESAT 1 +_ACEOF + +fi +done + + else + ac_cv_func_futimesat=no + fi + + + if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5 +$as_echo_n "checking whether futimesat handles NULL file... " >&6; } +if ${gl_cv_func_futimesat_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + touch conftest.file + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_futimesat_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_futimesat_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_futimesat_works="$gl_cross_guess_normal" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + + +$gl_mda_defines + +int +main () +{ +int fd = open ("conftest.file", O_RDWR); + if (fd < 0) return 1; + if (futimesat (fd, NULL, NULL)) return 2; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_futimesat_works=yes +else + gl_cv_func_futimesat_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + rm -f conftest.file +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5 +$as_echo "$gl_cv_func_futimesat_works" >&6; } + case "$gl_cv_func_futimesat_works" in + *yes) ;; + *) + +$as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h + + ;; + esac + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5 +$as_echo_n "checking for variable-length arrays... " >&6; } +if ${ac_cv_c_vararrays+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC_NO_VLA__ + defined + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "defined" >/dev/null 2>&1; then : + ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined' +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Test for VLA support. This test is partly inspired + from examples in the C standard. Use at least two VLA + functions to detect the GCC 3.4.3 bug described in: + https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html + */ + #ifdef __STDC_NO_VLA__ + syntax error; + #else + extern int n; + int B[100]; + int fvla (int m, int C[m][m]); + + int + simple (int count, int all[static count]) + { + return all[count - 1]; + } + + int + fvla (int m, int C[m][m]) + { + typedef int VLA[m][m]; + VLA x; + int D[m]; + static int (*q)[m] = &B; + int (*s)[n] = q; + return C && &x[0][0] == &D[0] && &D[0] == s[0]; + } + #endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_vararrays=yes +else + ac_cv_c_vararrays=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_vararrays" >&5 +$as_echo "$ac_cv_c_vararrays" >&6; } + if test "$ac_cv_c_vararrays" = yes; then + +$as_echo "#define HAVE_C_VARARRAYS 1" >>confdefs.h + + elif test "$ac_cv_c_vararrays" = no; then + +$as_echo "#define __STDC_NO_VLA__ 1" >>confdefs.h + + fi + + + + + if test $ac_cv_func_vasnprintf = no; then + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + + if test $ac_cv_func_vasnprintf = yes; then + +$as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h + + fi + + + + + + + + + + ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes; then : + +else + +$as_echo "#define ptrdiff_t long" >>confdefs.h + + +fi + + + + + + + + fi + + + + gl_cv_func_vsnprintf_usable=no + for ac_func in vsnprintf +do : + ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" +if test "x$ac_cv_func_vsnprintf" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_VSNPRINTF 1 +_ACEOF + +fi +done + + if test $ac_cv_func_vsnprintf = yes; then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } +if ${gl_cv_func_snprintf_size1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; + *) gl_cv_func_snprintf_size1="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 1, "%d", 12345); + return buf[1] != 'E'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_size1=yes +else + gl_cv_func_snprintf_size1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } + + case "$gl_cv_func_snprintf_size1" in + *yes) + + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5 +$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; } +if ${gl_cv_func_printf_positions+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + # Guess yes on Android. + linux*-android*) gl_cv_func_printf_positions="guessing yes";; + # Guess no on native Windows. + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_printf_positions=yes +else + gl_cv_func_printf_positions=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5 +$as_echo "$gl_cv_func_printf_positions" >&6; } + + case "$gl_cv_func_printf_positions" in + *yes) + gl_cv_func_vsnprintf_usable=yes + ;; + esac + ;; + esac + ;; + esac + fi + if test $gl_cv_func_vsnprintf_usable = no; then + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext" + + if test $ac_cv_func_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + else + + if test $ac_cv_have_decl_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + fi + fi + : + + fi + + if test $ac_cv_have_decl_vsnprintf = no; then + HAVE_DECL_VSNPRINTF=0 + fi + + + + + + + + + + + GL_GNULIB_VSNPRINTF=1 + + + + + +$as_echo "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + gl_cv_func_vsnprintf_posix=no + for ac_func in vsnprintf +do : + ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" +if test "x$ac_cv_func_vsnprintf" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_VSNPRINTF 1 +_ACEOF + +fi +done + + if test $ac_cv_func_vsnprintf = yes; then + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf fully supports the 'n' directive" >&5 +$as_echo_n "checking whether snprintf fully supports the 'n' directive... " >&6; } +if ${gl_cv_func_snprintf_directive_n+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess no on glibc when _FORTIFY_SOURCE >= 2. + *-gnu* | gnu*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if _FORTIFY_SOURCE >= 2 + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_func_snprintf_directive_n="guessing yes" +else + gl_cv_func_snprintf_directive_n="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + midnightbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; + darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_snprintf_directive_n="guessing no";; + solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; + aix*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on OSF/1 >= 5. + osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; + osf*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_snprintf_directive_n="guessing no";; + netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_snprintf_directive_n="guessing yes";; + # Guess no on Android. + linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";; + # Guess no on native Windows. + mingw*) gl_cv_func_snprintf_directive_n="guessing no";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_snprintf_directive_n="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +static char fmtstring[10]; +static char buf[100]; +int main () +{ + int count = -1; + /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) + support %n in format strings in read-only memory but not in writable + memory. */ + strcpy (fmtstring, "%d %n"); + my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); + if (count != 6) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_directive_n=yes +else + gl_cv_func_snprintf_directive_n=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_directive_n" >&5 +$as_echo "$gl_cv_func_snprintf_directive_n" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } +if ${gl_cv_func_snprintf_size1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on Android. + linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; + *) gl_cv_func_snprintf_size1="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if HAVE_SNPRINTF +# define my_snprintf snprintf +#else +# include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +#endif +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 1, "%d", 12345); + return buf[1] != 'E'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_snprintf_size1=yes +else + gl_cv_func_snprintf_size1=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf respects a zero size as in C99" >&5 +$as_echo_n "checking whether vsnprintf respects a zero size as in C99... " >&6; } +if ${gl_cv_func_vsnprintf_zerosize_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on FreeBSD >= 5. + freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + midnightbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Mac OS X >= 10.3. + darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Solaris >= 2.6. + solaris2.[0-5] | solaris2.[0-5].*) + gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on AIX >= 4. + aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on IRIX >= 6.5. + irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on NetBSD >= 3. + netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) + gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on Android. + linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # Guess yes on native Windows. + mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_vsnprintf_zerosize_c99="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +static int my_snprintf (char *buf, int size, const char *format, ...) +{ + va_list args; + int ret; + va_start (args, format); + ret = vsnprintf (buf, size, format, args); + va_end (args); + return ret; +} +int main() +{ + static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; + my_snprintf (buf, 0, "%d", 12345); + return buf[0] != 'D'; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_vsnprintf_zerosize_c99=yes +else + gl_cv_func_vsnprintf_zerosize_c99=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_vsnprintf_zerosize_c99" >&5 +$as_echo "$gl_cv_func_vsnprintf_zerosize_c99" >&6; } + + case "$gl_cv_func_printf_sizes_c99" in + *yes) + case "$gl_cv_func_printf_long_double" in + *yes) + case "$gl_cv_func_printf_infinite" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + case "$gl_cv_func_printf_directive_a" in + *yes) + case "$gl_cv_func_printf_directive_f" in + *yes) + case "$gl_cv_func_printf_directive_n" in + *yes) + case "$gl_cv_func_printf_directive_ls" in + *yes) + case "$gl_cv_func_printf_positions" in + *yes) + case "$gl_cv_func_printf_flag_grouping" in + *yes) + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + case "$gl_cv_func_printf_flag_zero" in + *yes) + case "$gl_cv_func_printf_precision" in + *yes) + case "$gl_cv_func_printf_enomem" in + *yes) + case "$gl_cv_func_snprintf_truncation_c99" in + *yes) + case "$gl_cv_func_snprintf_retval_c99" in + *yes) + case "$gl_cv_func_snprintf_directive_n" in + *yes) + case "$gl_cv_func_snprintf_size1" in + *yes) + case "$gl_cv_func_vsnprintf_zerosize_c99" in + *yes) + # vsnprintf exists and is + # already POSIX compliant. + gl_cv_func_vsnprintf_posix=yes + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + ;; + esac + fi + if test $gl_cv_func_vsnprintf_posix = no; then + + + + case "$gl_cv_func_printf_infinite" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + + case "$gl_cv_func_printf_long_double" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + ;; + esac + + + + case "$gl_cv_func_printf_directive_a" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h + + for ac_func in nl_langinfo +do : + ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo" +if test "x$ac_cv_func_nl_langinfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NL_LANGINFO 1 +_ACEOF + +fi +done + + ;; + esac + + + + case "$gl_cv_func_printf_directive_f" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_directive_ls" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_grouping" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_flag_zero" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_precision" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + case "$gl_cv_func_printf_enomem" in + *yes) + ;; + *) + +$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h + + +$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h + + ;; + esac + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + + if test $ac_cv_func_vasnprintf = yes; then + +$as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h + + fi + + + + + + + + + + ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes; then : + +else + +$as_echo "#define ptrdiff_t long" >>confdefs.h + + +fi + + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext" + + if test $ac_cv_func_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + else + + if test $ac_cv_have_decl_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + fi + fi + : + + fi + + + + + + + + + + + + + + + + + + + + + + + + + if case "$host_os" in + mingw*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_incomplete_state=yes +else + gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_mbrtowc_sanitycheck=yes +else + gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + + + + if test $ac_cv_func_wcrtomb = no; then + HAVE_WCRTOMB=0 + ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " + #include + +" +if test "x$ac_cv_have_decl_wcrtomb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_WCRTOMB $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_wcrtomb = yes; then + REPLACE_WCRTOMB=1 + fi + else + if test $REPLACE_WCRTOMB = 0; then + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb works in the C locale" >&5 +$as_echo_n "checking whether wcrtomb works in the C locale... " >&6; } +if ${gl_cv_func_wcrtomb_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess no on Android. + linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_works="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +int main () +{ + mbstate_t state; + char out[64]; + int count; + memset (&state, 0, sizeof (state)); + out[0] = 'x'; + count = wcrtomb (out, L'a', &state); + return !(count == 1 && out[0] == 'a'); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_wcrtomb_works=yes +else + gl_cv_func_wcrtomb_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5 +$as_echo "$gl_cv_func_wcrtomb_works" >&6; } + case "$gl_cv_func_wcrtomb_works" in + *yes) ;; + *) +$as_echo "#define WCRTOMB_C_LOCALE_BUG 1" >>confdefs.h + + REPLACE_WCRTOMB=1 ;; + esac + fi + if test $REPLACE_WCRTOMB = 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 +$as_echo_n "checking whether wcrtomb return value is correct... " >&6; } +if ${gl_cv_func_wcrtomb_retval+:} false; then : + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX 4, OSF/1, Solaris, native Windows. + aix4* | osf* | solaris* | mingw*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + esac + if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 1; + } + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 2; + { + wchar_t wc = (wchar_t) 0xBADFACE; + if (mbtowc (&wc, "\303\274", 2) == 2) + if (wcrtomb (NULL, wc, NULL) != 1) + result |= 2; + } + } + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 4; + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + if (wcrtomb (NULL, 0, NULL) != 1) + result |= 8; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_wcrtomb_retval=yes +else + gl_cv_func_wcrtomb_retval=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5 +$as_echo "$gl_cv_func_wcrtomb_retval" >&6; } + case "$gl_cv_func_wcrtomb_retval" in + *yes) ;; + *) +$as_echo "#define WCRTOMB_RETVAL_BUG 1" >>confdefs.h + + REPLACE_WCRTOMB=1 ;; + esac + fi + fi + + + if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then + GL_COND_OBJ_WCRTOMB_TRUE= + GL_COND_OBJ_WCRTOMB_FALSE='#' +else + GL_COND_OBJ_WCRTOMB_TRUE='#' + GL_COND_OBJ_WCRTOMB_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WCRTOMB_TRUE}" && test -z "${GL_COND_OBJ_WCRTOMB_FALSE}"; then + GL_COND_OBJ_WCRTOMB_TRUE='#' + GL_COND_OBJ_WCRTOMB_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_WCRTOMB_TRUE"; then : + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_WCRTOMB=1 + + + + + +$as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h + + + + + + + + + + + + + + + + + + + + + + ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" " + #include + +" +if test "x$ac_cv_have_decl_wcwidth" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_WCWIDTH $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_wcwidth != yes; then + HAVE_DECL_WCWIDTH=0 + fi + + if test $ac_cv_func_wcwidth != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth is a macro" >&5 +$as_echo_n "checking whether wcwidth is a macro... " >&6; } +if ${gl_cv_func_wcwidth_macro+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef wcwidth + wchar_header_defines_wcwidth +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "wchar_header_defines_wcwidth" >/dev/null 2>&1; then : + gl_cv_func_wcwidth_macro=yes +else + gl_cv_func_wcwidth_macro=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_macro" >&5 +$as_echo "$gl_cv_func_wcwidth_macro" >&6; } + fi + + if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then + HAVE_WCWIDTH=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5 +$as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; } +if ${gl_cv_func_wcwidth_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";; + # Guess yes on musl systems. + *-musl*) gl_cv_func_wcwidth_works="guessing yes";; + # Guess yes on AIX 7 systems. + aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; + *) gl_cv_func_wcwidth_works="$gl_cross_guess_normal";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if !HAVE_DECL_WCWIDTH +extern +# ifdef __cplusplus +"C" +# endif +int wcwidth (int); +#endif +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "en_US.UTF-8") != NULL) + { + if (wcwidth (0x0301) > 0) + result |= 1; + if (wcwidth (0x05B0) > 0) + result |= 2; + if (wcwidth (0x200B) > 0) + result |= 4; + if (wcwidth (0xFF1A) == 0) + result |= 8; + if (wcwidth (0x2202) > 1) + result |= 16; + } + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_wcwidth_works=yes +else + gl_cv_func_wcwidth_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5 +$as_echo "$gl_cv_func_wcwidth_works" >&6; } + case "$gl_cv_func_wcwidth_works" in + *yes) ;; + *no) REPLACE_WCWIDTH=1 ;; + esac + else + HAVE_WCWIDTH=0 + fi + + + if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then + GL_COND_OBJ_WCWIDTH_TRUE= + GL_COND_OBJ_WCWIDTH_FALSE='#' +else + GL_COND_OBJ_WCWIDTH_TRUE='#' + GL_COND_OBJ_WCWIDTH_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WCWIDTH_TRUE}" && test -z "${GL_COND_OBJ_WCWIDTH_FALSE}"; then + GL_COND_OBJ_WCWIDTH_TRUE='#' + GL_COND_OBJ_WCWIDTH_FALSE='#' + fi + + if test -z "$GL_COND_OBJ_WCWIDTH_TRUE"; then : + + + + : + + +fi + + + + + + + + + + + + + + + GL_GNULIB_WCWIDTH=1 + + + + + +$as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h + + + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_MUTEX_TRUE= + GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' +else + GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_MUTEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_MUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_MUTEX_FALSE}"; then + GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_ONCE_TRUE= + GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' +else + GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' + GL_COND_OBJ_WINDOWS_ONCE_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_ONCE_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_ONCE_FALSE}"; then + GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' + GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE= + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' +else + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE}"; then + GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' + GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' + fi + + + + if case "$host_os" in mingw*) true;; *) false;; esac; then + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE= + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' +else + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_FALSE}"; then + GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' + GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wmemchr" >&5 +$as_echo_n "checking for wmemchr... " >&6; } +if ${gl_cv_func_wmemchr+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +return ! wmemchr ((const wchar_t *) 0, (wchar_t) ' ', 0); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_wmemchr=yes +else + gl_cv_func_wmemchr=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wmemchr" >&5 +$as_echo "$gl_cv_func_wmemchr" >&6; } + if test $gl_cv_func_wmemchr = no; then + HAVE_WMEMCHR=0 + fi + + + if test $HAVE_WMEMCHR = 0; then + GL_COND_OBJ_WMEMCHR_TRUE= + GL_COND_OBJ_WMEMCHR_FALSE='#' +else + GL_COND_OBJ_WMEMCHR_TRUE='#' + GL_COND_OBJ_WMEMCHR_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_WMEMCHR_FALSE}"; then + GL_COND_OBJ_WMEMCHR_TRUE='#' + GL_COND_OBJ_WMEMCHR_FALSE='#' + fi + + + + + + + + + + + + + + + + GL_GNULIB_WMEMCHR=1 + + + + + +$as_echo "#define GNULIB_TEST_WMEMCHR 1" >>confdefs.h + + + + + + + + + + + + if test $ac_cv_func_wmempcpy = no; then + HAVE_WMEMPCPY=0 + fi + + + if test $HAVE_WMEMPCPY = 0; then + GL_COND_OBJ_WMEMPCPY_TRUE= + GL_COND_OBJ_WMEMPCPY_FALSE='#' +else + GL_COND_OBJ_WMEMPCPY_TRUE='#' + GL_COND_OBJ_WMEMPCPY_FALSE= +fi +: + if test -z "${GL_COND_OBJ_WMEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_WMEMPCPY_FALSE}"; then + GL_COND_OBJ_WMEMPCPY_TRUE='#' + GL_COND_OBJ_WMEMPCPY_FALSE='#' + fi + + + + + + + + + + + + + + + + GL_GNULIB_WMEMPCPY=1 + + + + + +$as_echo "#define GNULIB_TEST_WMEMPCPY 1" >>confdefs.h + + + + + + for ac_header in stdint.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H 1 +_ACEOF + +fi + +done + + + # End of code from modules + + + + + + + + + + + + gltests_libdeps= + gltests_ltlibdeps= + + + + + + + + + + + + + gl_source_base='tests' + gl_source_base_prefix= + gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS + + gl_module_indicator_condition=$gltests_WITNESS + + + + + + + + + + + + + LIBGNU_LIBDEPS="$gl_libdeps" + + LIBGNU_LTLIBDEPS="$gl_ltlibdeps" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if ${ac_cv_search_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char 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 + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_strerror=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_strerror+:} false; then : + break +fi +done +if ${ac_cv_search_strerror+:} false; then : + +else + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 +$as_echo "$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 + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.18 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + 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 + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + 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 + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + 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 + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${acl_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + 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 variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${acl_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if ${acl_cv_rpath+:} false; then : + $as_echo_n "(cached) " >&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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_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 + acl_libdirstem2= + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if ${gl_cv_solaris_64bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _LP64 +sixtyfour bits +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sixtyfour bits" >/dev/null 2>&1; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + 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 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + + + + + + + + + + + + + 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" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + 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= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + 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 "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + 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" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; 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 "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_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 "$acl_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/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + 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" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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 "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_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=\"$acl_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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + 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 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } +if eval \${$gt_func_gnugettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libc=yes" +else + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$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 + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if ${am_cv_func_iconv+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if ${am_cv_func_iconv_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes; then : + + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +else + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +$as_echo "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +$as_echo "$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" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + 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= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + 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 "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + 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" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; 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 "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_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 "$acl_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/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + 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" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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 "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_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=\"$acl_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 + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } +if eval \${$gt_func_gnugettext_libintl+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libintl=yes" +else + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_link "$LINENO"; then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$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 + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +$as_echo "$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 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +$as_echo "$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 + + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + +$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + if test x$USE_NLS = xyes; then + USE_NLS_TRUE= + USE_NLS_FALSE='#' +else + USE_NLS_TRUE='#' + USE_NLS_FALSE= +fi + + + +pkgdatadir=${datadir}/${PACKAGE} + + prefix_NONE= + exec_prefix_NONE= + test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix + eval ac_define_dir="\"$pkgdatadir\"" + eval ac_define_dir="\"$ac_define_dir\"" + PKGDATADIR="$ac_define_dir" + + +cat >>confdefs.h <<_ACEOF +#define PKGDATADIR "$ac_define_dir" +_ACEOF + + test "$prefix_NONE" && prefix=NONE + test "$exec_prefix_NONE" && exec_prefix=NONE + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether building from git" >&5 +$as_echo_n "checking whether building from git... " >&6; } +if test -f "$srcdir/roll-a-release.sh" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + from_git=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + from_git=no +fi + if test x$from_git = xyes; then + BUILDING_FROM_GIT_TRUE= + BUILDING_FROM_GIT_FALSE='#' +else + BUILDING_FROM_GIT_TRUE='#' + BUILDING_FROM_GIT_FALSE= +fi + + + +if test x$from_git = xyes; then + if test ! -f $(aclocal --print-ac-dir)/pkg.m4; then + as_fn_error $? " + *** The pkg.m4 macros are missing. + *** The pkg-config package needs to be installed when building from git. + *** After fixing this problem, rerun ./autogen.sh." "$LINENO" 5 + fi + if test "$ac_cv_path_MSGFMT" = ":"; then + as_fn_error $? " + *** The msgfmt program is missing. + *** The gettext package needs to be installed when building from git." "$LINENO" 5 + fi +fi + + +for ac_header in libintl.h limits.h pwd.h termios.h sys/param.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +# Check whether --enable-browser was given. +if test "${enable_browser+set}" = set; then : + enableval=$enable_browser; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_browser" != xyes; then + enable_browser=no + fi +fi +if test "x$enable_browser" != xno; then + +$as_echo "#define ENABLE_BROWSER 1" >>confdefs.h + +fi + +# Check whether --enable-color was given. +if test "${enable_color+set}" = set; then : + enableval=$enable_color; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_color" = xyes; then + if test "x$enable_nanorc" != xyes; then + as_fn_error $? " + *** --enable-color needs --enable-nanorc to work" "$LINENO" 5 + fi + else + enable_color=no + fi +fi +if test "x$enable_nanorc" = xno; then + if test "x$enable_color" = xyes; then + as_fn_error $? " + *** --enable-color cannot work with --disable-nanorc" "$LINENO" 5 + else + # Disabling nanorc silently disables color support. + enable_color=no + fi +fi +if test "x$enable_color" != xno; then + +$as_echo "#define ENABLE_COLOR 1" >>confdefs.h + + color_support=yes +fi + +# Check whether --enable-comment was given. +if test "${enable_comment+set}" = set; then : + enableval=$enable_comment; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_comment" = xyes; then + as_fn_error $? " + *** --enable-comment cannot work with --enable-tiny" "$LINENO" 5 + else + enable_comment=no + fi +fi +if test "x$enable_comment" != xno; then + +$as_echo "#define ENABLE_COMMENT 1" >>confdefs.h + +fi + +# Check whether --enable-extra was given. +if test "${enable_extra+set}" = set; then : + enableval=$enable_extra; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_extra" != xyes; then + enable_extra=no + fi +fi +if test "x$enable_extra" != xno; then + +$as_echo "#define ENABLE_EXTRA 1" >>confdefs.h + +fi + +# Check whether --enable-formatter was given. +if test "${enable_formatter+set}" = set; then : + enableval=$enable_formatter; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_formatter" = xyes; then + if test "x$enable_color" != xyes; then + as_fn_error $? " + *** --enable-formatter needs both --enable-color and --enable-nanorc to work" "$LINENO" 5 + fi + else + enable_formatter=no + fi +fi +if test "x$enable_color" = xno; then + if test "x$enable_formatter" = xyes; then + as_fn_error $? " + *** --enable-formatter cannot work with --disable-color nor --disable-nanorc" "$LINENO" 5 + else + enable_formatter=no + fi +fi +if test "x$enable_formatter" != xno; then + +$as_echo "#define ENABLE_FORMATTER 1" >>confdefs.h + +fi + +# Check whether --enable-help was given. +if test "${enable_help+set}" = set; then : + enableval=$enable_help; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_help" = xyes; then + if test "x$enable_multibuffer" != xyes; then + as_fn_error $? " + *** --enable-help needs --enable-multibuffer to work" "$LINENO" 5 + fi + else + enable_help=no + fi +fi +if test "x$enable_multibuffer" = xno; then + if test "x$enable_help" = xyes; then + as_fn_error $? " + *** --enable-help cannot work with --disable-multibuffer" "$LINENO" 5 + else + # Disabling multibuffer silently disables the help texts. + enable_help=no + fi +fi +if test "x$enable_help" != xno; then + +$as_echo "#define ENABLE_HELP 1" >>confdefs.h + +fi + +# Check whether --enable-histories was given. +if test "${enable_histories+set}" = set; then : + enableval=$enable_histories; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_histories" != xyes; then + enable_histories=no + fi +fi +if test "x$enable_histories" != xno; then + +$as_echo "#define ENABLE_HISTORIES 1" >>confdefs.h + +fi + +# Check whether --enable-justify was given. +if test "${enable_justify+set}" = set; then : + enableval=$enable_justify; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_justify" != xyes; then + enable_justify=no + fi +fi +if test "x$enable_justify" != xno; then + +$as_echo "#define ENABLE_JUSTIFY 1" >>confdefs.h + +fi + +# Check whether --enable-libmagic was given. +if test "${enable_libmagic+set}" = set; then : + enableval=$enable_libmagic; +fi + +if test "x$enable_libmagic" = xyes; then + if test "x$enable_tiny" = xyes; then + if test "x$enable_color" != xyes; then + as_fn_error $? " + *** --enable-libmagic needs both --enable-color and --enable-nanorc to work" "$LINENO" 5 + fi + fi + if test "x$enable_color" = xno; then + as_fn_error $? " + *** --enable-libmagic cannot work with --disable-color nor --disable-nanorc" "$LINENO" 5 + fi +fi + +# Check whether --enable-linter was given. +if test "${enable_linter+set}" = set; then : + enableval=$enable_linter; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_linter" = xyes; then + if test "x$enable_color" != xyes; then + as_fn_error $? " + *** --enable-linter needs both --enable-color and --enable-nanorc to work" "$LINENO" 5 + fi + else + enable_linter=no + fi +fi +if test "x$enable_color" = xno; then + if test "x$enable_linter" = xyes; then + as_fn_error $? " + *** --enable-linter cannot work with --disable-color nor --disable-nanorc" "$LINENO" 5 + else + enable_linter=no + fi +fi +if test "x$enable_linter" != xno; then + +$as_echo "#define ENABLE_LINTER 1" >>confdefs.h + +fi + +# Check whether --enable-linenumbers was given. +if test "${enable_linenumbers+set}" = set; then : + enableval=$enable_linenumbers; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_linenumbers" != xyes; then + enable_linenumbers=no + fi +fi +if test "x$enable_linenumbers" != xno; then + +$as_echo "#define ENABLE_LINENUMBERS 1" >>confdefs.h + +fi + +# Check whether --enable-mouse was given. +if test "${enable_mouse+set}" = set; then : + enableval=$enable_mouse; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_mouse" != xyes; then + enable_mouse=no + fi +fi +if test "x$enable_mouse" != xno; then + +$as_echo "#define ENABLE_MOUSE 1" >>confdefs.h + +fi + +# Check whether --enable-multibuffer was given. +if test "${enable_multibuffer+set}" = set; then : + enableval=$enable_multibuffer; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_multibuffer" != xyes; then + enable_multibuffer=no + fi +fi +if test "x$enable_multibuffer" != xno; then + +$as_echo "#define ENABLE_MULTIBUFFER 1" >>confdefs.h + +fi + +# Check whether --enable-nanorc was given. +if test "${enable_nanorc+set}" = set; then : + enableval=$enable_nanorc; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_nanorc" != xyes; then + enable_nanorc=no + fi +fi +if test "x$enable_nanorc" != xno; then + +$as_echo "#define ENABLE_NANORC 1" >>confdefs.h + + nanorc_support=yes +fi + +# Check whether --enable-operatingdir was given. +if test "${enable_operatingdir+set}" = set; then : + enableval=$enable_operatingdir; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_operatingdir" != xyes; then + enable_operatingdir=no + fi +fi +if test "x$enable_operatingdir" != xno; then + +$as_echo "#define ENABLE_OPERATINGDIR 1" >>confdefs.h + +fi + +# Check whether --enable-speller was given. +if test "${enable_speller+set}" = set; then : + enableval=$enable_speller; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_speller" != xyes; then + enable_speller=no + fi +fi +if test "x$enable_speller" != xno; then + +$as_echo "#define ENABLE_SPELLER 1" >>confdefs.h + +fi + +# Check whether --enable-tabcomp was given. +if test "${enable_tabcomp+set}" = set; then : + enableval=$enable_tabcomp; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_tabcomp" != xyes; then + enable_tabcomp=no + fi +fi +if test "x$enable_tabcomp" != xno; then + +$as_echo "#define ENABLE_TABCOMP 1" >>confdefs.h + +fi + +# Check whether --enable-wordcomp was given. +if test "${enable_wordcomp+set}" = set; then : + enableval=$enable_wordcomp; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_wordcomp" = xyes; then + as_fn_error $? " + *** --enable-wordcomp cannot work with --enable-tiny" "$LINENO" 5 + else + enable_wordcomp=no + fi +fi +if test "x$enable_wordcomp" != xno; then + +$as_echo "#define ENABLE_WORDCOMPLETION 1" >>confdefs.h + +fi + +# Check whether --enable-wrapping was given. +if test "${enable_wrapping+set}" = set; then : + enableval=$enable_wrapping; +fi + +if test "x$enable_tiny" = xyes; then + if test "x$enable_wrapping" != xyes; then + enable_wrapping=no + fi +fi +if test "x$enable_wrapping" != xno; then + +$as_echo "#define ENABLE_WRAPPING 1" >>confdefs.h + +fi + +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +fi + +if test "x$enable_debug" = xyes; then + +$as_echo "#define DEBUG 1" >>confdefs.h + +else + +$as_echo "#define NDEBUG 1" >>confdefs.h + +fi + +# Check whether --enable-tiny was given. +if test "${enable_tiny+set}" = set; then : + enableval=$enable_tiny; +fi + +if test "x$enable_tiny" = xyes; then + +$as_echo "#define NANO_TINY 1" >>confdefs.h + + if test "x$enable_libmagic" != xyes; then + enable_libmagic=no + fi +fi + + if test x$color_support = xyes; then + USE_COLOR_TRUE= + USE_COLOR_FALSE='#' +else + USE_COLOR_TRUE='#' + USE_COLOR_FALSE= +fi + + if test x$nanorc_support = xyes; then + USE_NANORC_TRUE= + USE_NANORC_FALSE='#' +else + USE_NANORC_TRUE='#' + USE_NANORC_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable UTF-8 support" >&5 +$as_echo_n "checking whether to enable UTF-8 support... " >&6; } +# Check whether --enable-utf8 was given. +if test "${enable_utf8+set}" = set; then : + enableval=$enable_utf8; +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_utf8:-auto}" >&5 +$as_echo "${enable_utf8:-auto}" >&6; } + +# Check whether --enable-altrcname was given. +if test "${enable_altrcname+set}" = set; then : + enableval=$enable_altrcname; if test x$enableval != no; then + +cat >>confdefs.h <<_ACEOF +#define RCFILE_NAME "$enableval" +_ACEOF + rcfilename=$enableval +fi +fi + + + +if test "x$enable_utf8" != xno; then + for ac_func in iswalpha iswalnum iswpunct mbstowcs wctomb +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +fi + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wall" >&5 +$as_echo_n "checking whether C compiler accepts -Wall... " >&6; } +if ${ax_cv_check_cflags___Wall+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wall" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Wall=yes +else + ax_cv_check_cflags___Wall=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wall" >&5 +$as_echo "$ax_cv_check_cflags___Wall" >&6; } +if test x"$ax_cv_check_cflags___Wall" = xyes; then : + CFLAGS="$CFLAGS -Wall" +else + : +fi + + + +if eval "test x$CURSES_LIB_NAME = x"; then + if test "x$enable_utf8" != xno; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncursesw" >&5 +$as_echo_n "checking for ncursesw... " >&6; } + +if test -n "$NCURSESW_CFLAGS"; then + pkg_cv_NCURSESW_CFLAGS="$NCURSESW_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NCURSESW_CFLAGS=`$PKG_CONFIG --cflags "ncursesw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$NCURSESW_LIBS"; then + pkg_cv_NCURSESW_LIBS="$NCURSESW_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NCURSESW_LIBS=`$PKG_CONFIG --libs "ncursesw" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + NCURSESW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncursesw" 2>&1` + else + NCURSESW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncursesw" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$NCURSESW_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : +else + NCURSESW_CFLAGS=$pkg_cv_NCURSESW_CFLAGS + NCURSESW_LIBS=$pkg_cv_NCURSESW_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + CURSES_LIB=$NCURSESW_LIBS + CPPFLAGS="$NCURSESW_CFLAGS $CPPFLAGS" + CURSES_LIB_NAME=ncursesw + CURSES_LIB_WIDE=yes + +fi + else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncurses" >&5 +$as_echo_n "checking for ncurses... " >&6; } + +if test -n "$NCURSES_CFLAGS"; then + pkg_cv_NCURSES_CFLAGS="$NCURSES_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NCURSES_CFLAGS=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$NCURSES_LIBS"; then + pkg_cv_NCURSES_LIBS="$NCURSES_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NCURSES_LIBS=`$PKG_CONFIG --libs "ncurses" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + NCURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncurses" 2>&1` + else + NCURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncurses" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$NCURSES_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : +else + NCURSES_CFLAGS=$pkg_cv_NCURSES_CFLAGS + NCURSES_LIBS=$pkg_cv_NCURSES_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + CURSES_LIB=$NCURSES_LIBS + CPPFLAGS="$NCURSES_CFLAGS $CPPFLAGS" + CURSES_LIB_NAME=ncurses + +fi + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + for ac_header in ncurses.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default" +if test "x$ac_cv_header_ncurses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NCURSES_H 1 +_ACEOF + +fi + +done + + + if test "x$enable_utf8" != xno; then + OLDLIBS="$LIBS" + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ncursesw5-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}ncursesw5-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NCURSESW_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NCURSESW_CONFIG"; then + ac_cv_prog_NCURSESW_CONFIG="$NCURSESW_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NCURSESW_CONFIG="${ac_tool_prefix}ncursesw5-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NCURSESW_CONFIG=$ac_cv_prog_NCURSESW_CONFIG +if test -n "$NCURSESW_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NCURSESW_CONFIG" >&5 +$as_echo "$NCURSESW_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NCURSESW_CONFIG"; then + ac_ct_NCURSESW_CONFIG=$NCURSESW_CONFIG + # Extract the first word of "ncursesw5-config", so it can be a program name with args. +set dummy ncursesw5-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NCURSESW_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NCURSESW_CONFIG"; then + ac_cv_prog_ac_ct_NCURSESW_CONFIG="$ac_ct_NCURSESW_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NCURSESW_CONFIG="ncursesw5-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NCURSESW_CONFIG=$ac_cv_prog_ac_ct_NCURSESW_CONFIG +if test -n "$ac_ct_NCURSESW_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NCURSESW_CONFIG" >&5 +$as_echo "$ac_ct_NCURSESW_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NCURSESW_CONFIG" = x; then + NCURSESW_CONFIG="no" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NCURSESW_CONFIG=$ac_ct_NCURSESW_CONFIG + fi +else + NCURSESW_CONFIG="$ac_cv_prog_NCURSESW_CONFIG" +fi + + if test "x$NCURSESW_CONFIG" != xno; then + CURSES_LIB=`$NCURSESW_CONFIG --libs` + LIBS="$CURSES_LIB $LIBS" + CPPFLAGS="`$NCURSESW_CONFIG --cflags` $CPPFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wget_wch in -lncursesw" >&5 +$as_echo_n "checking for wget_wch in -lncursesw... " >&6; } +if ${ac_cv_lib_ncursesw_wget_wch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncursesw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char wget_wch (); +int +main () +{ +return wget_wch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ncursesw_wget_wch=yes +else + ac_cv_lib_ncursesw_wget_wch=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_wget_wch" >&5 +$as_echo "$ac_cv_lib_ncursesw_wget_wch" >&6; } +if test "x$ac_cv_lib_ncursesw_wget_wch" = xyes; then : + CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes +fi + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wget_wch in -lncursesw" >&5 +$as_echo_n "checking for wget_wch in -lncursesw... " >&6; } +if ${ac_cv_lib_ncursesw_wget_wch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncursesw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char wget_wch (); +int +main () +{ +return wget_wch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ncursesw_wget_wch=yes +else + ac_cv_lib_ncursesw_wget_wch=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_wget_wch" >&5 +$as_echo "$ac_cv_lib_ncursesw_wget_wch" >&6; } +if test "x$ac_cv_lib_ncursesw_wget_wch" = xyes; then : + CURSES_LIB="-lncursesw" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes +fi + + fi + LIBS="$OLDLIBS" + fi + + if eval "test x$CURSES_LIB_NAME = x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 +$as_echo_n "checking for initscr in -lncurses... " >&6; } +if ${ac_cv_lib_ncurses_initscr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncurses $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char initscr (); +int +main () +{ +return initscr (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ncurses_initscr=yes +else + ac_cv_lib_ncurses_initscr=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 +$as_echo "$ac_cv_lib_ncurses_initscr" >&6; } +if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : + CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses +fi + + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + for ac_header in curses.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default" +if test "x$ac_cv_header_curses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CURSES_H 1 +_ACEOF + +fi + +done + + + if test "x$enable_utf8" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wget_wch in -lcurses" >&5 +$as_echo_n "checking for wget_wch in -lcurses... " >&6; } +if ${ac_cv_lib_curses_wget_wch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcurses $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char wget_wch (); +int +main () +{ +return wget_wch (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_curses_wget_wch=yes +else + ac_cv_lib_curses_wget_wch=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_wget_wch" >&5 +$as_echo "$ac_cv_lib_curses_wget_wch" >&6; } +if test "x$ac_cv_lib_curses_wget_wch" = xyes; then : + CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses CURSES_LIB_WIDE=yes +fi + + fi + + if eval "test x$CURSES_LIB_NAME = x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lcurses" >&5 +$as_echo_n "checking for initscr in -lcurses... " >&6; } +if ${ac_cv_lib_curses_initscr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcurses $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char initscr (); +int +main () +{ +return initscr (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_curses_initscr=yes +else + ac_cv_lib_curses_initscr=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_initscr" >&5 +$as_echo "$ac_cv_lib_curses_initscr" >&6; } +if test "x$ac_cv_lib_curses_initscr" = xyes; then : + CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses +fi + + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + as_fn_error $? " + *** No curses lib was found. Please install the curses header files + *** from libncurses-dev (Debian), ncurses-devel (Fedora), or similar. + *** (Or install ncurses from https://ftp.gnu.org/gnu/ncurses/.)" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: The curses library to be used is: $CURSES_LIB_NAME" >&5 +$as_echo " The curses library to be used is: $CURSES_LIB_NAME" >&6; } +fi + +as_ac_Lib=`$as_echo "ac_cv_lib_$CURSES_LIB_NAME''_use_default_colors" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for use_default_colors in -l$CURSES_LIB_NAME" >&5 +$as_echo_n "checking for use_default_colors in -l$CURSES_LIB_NAME... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$CURSES_LIB_NAME $CURSES_LIB $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char use_default_colors (); +int +main () +{ +return use_default_colors (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +$as_echo "#define HAVE_USE_DEFAULT_COLORS 1" >>confdefs.h + +fi + +as_ac_Lib=`$as_echo "ac_cv_lib_$CURSES_LIB_NAME''_set_escdelay" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for set_escdelay in -l$CURSES_LIB_NAME" >&5 +$as_echo_n "checking for set_escdelay in -l$CURSES_LIB_NAME... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$CURSES_LIB_NAME $CURSES_LIB $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char set_escdelay (); +int +main () +{ +return set_escdelay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +$as_echo "#define HAVE_SET_ESCDELAY 1" >>confdefs.h + +fi + +as_ac_Lib=`$as_echo "ac_cv_lib_$CURSES_LIB_NAME''_key_defined" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for key_defined in -l$CURSES_LIB_NAME" >&5 +$as_echo_n "checking for key_defined in -l$CURSES_LIB_NAME... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$CURSES_LIB_NAME $CURSES_LIB $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char key_defined (); +int +main () +{ +return key_defined (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + +$as_echo "#define HAVE_KEY_DEFINED 1" >>confdefs.h + +fi + + +LIBS="$LIBS $CURSES_LIB" + + + +if test "x$enable_utf8" != xno && \ + test x$CURSES_LIB_WIDE = xyes && \ + test x$ac_cv_func_iswalpha = xyes && \ + test x$ac_cv_func_iswalnum = xyes && \ + test x$ac_cv_func_iswpunct = xyes && \ + test x$ac_cv_func_mbstowcs = xyes && \ + test x$ac_cv_func_wctomb = xyes; then + +$as_echo "#define ENABLE_UTF8 1" >>confdefs.h + +else + if test "x$enable_utf8" = xyes; then + as_fn_error $? " + *** UTF-8 support was requested, but insufficient support was + *** detected in your curses and/or C libraries. Please verify + *** that both your curses library and your C library were built + *** with wide-character support." "$LINENO" 5 + elif test "x$enable_utf8" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + *** Insufficient UTF-8 support was detected in your curses + *** and/or C libraries. If you want UTF-8 support, please + *** verify that both your curses library and your C library + *** were built with wide-character support." >&5 +$as_echo "$as_me: WARNING: + *** Insufficient UTF-8 support was detected in your curses + *** and/or C libraries. If you want UTF-8 support, please + *** verify that both your curses library and your C library + *** were built with wide-character support." >&2;} + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for enhanced regular expression flag" >&5 +$as_echo_n "checking for enhanced regular expression flag... " >&6; } +if ${nano_cv_flag_reg_enhanced+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + #ifndef REG_ENHANCED + error: No REG_ENHANCED support! + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + nano_cv_flag_reg_enhanced=yes +else + nano_cv_flag_reg_enhanced=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $nano_cv_flag_reg_enhanced" >&5 +$as_echo "$nano_cv_flag_reg_enhanced" >&6; } +if test "$ac_use_included_regex" = "yes"; then + nano_cv_flag_reg_enhanced="no" +fi +if test "$nano_cv_flag_reg_enhanced" = "yes"; then + nano_reg_extended="REG_EXTENDED | REG_ENHANCED" +else + nano_reg_extended="REG_EXTENDED" +fi + + +cat >>confdefs.h <<_ACEOF +#define NANO_REG_EXTENDED $nano_reg_extended +_ACEOF + + +if test x$color_support = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE_EXTENDED is needed" >&5 +$as_echo_n "checking whether _XOPEN_SOURCE_EXTENDED is needed... " >&6; } + if test "$cross_compiling" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + *** Can't check need for _XOPEN_SOURCE_EXTENDED when cross-compiling." >&5 +$as_echo "$as_me: WARNING: + *** Can't check need for _XOPEN_SOURCE_EXTENDED when cross-compiling." >&2;} +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int main(void) +{ + int testcolor = COLOR_WHITE; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +else + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifndef _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED 1 +#endif +#include +int main(void) +{ + int testcolor = COLOR_WHITE; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +$as_echo "#define NEED_XOPEN_SOURCE_EXTENDED 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not sure" >&5 +$as_echo "not sure" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + *** Couldn't successfully compile basic color test with or without + *** _XOPEN_SOURCE_EXTENDED. This build may not compile. Consider + *** configuring with --disable-color or installing ncurses." >&5 +$as_echo "$as_me: WARNING: + *** Couldn't successfully compile basic color test with or without + *** _XOPEN_SOURCE_EXTENDED. This build may not compile. Consider + *** configuring with --disable-color or installing ncurses." >&2;} +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +if test "x$enable_libmagic" != "xno"; then : + + for ac_header in magic.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "magic.h" "ac_cv_header_magic_h" "$ac_includes_default" +if test "x$ac_cv_header_magic_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MAGIC_H 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for magic_open in -lmagic" >&5 +$as_echo_n "checking for magic_open in -lmagic... " >&6; } +if ${ac_cv_lib_magic_magic_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmagic $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char magic_open (); +int +main () +{ +return magic_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_magic_magic_open=yes +else + ac_cv_lib_magic_magic_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_magic_magic_open" >&5 +$as_echo "$ac_cv_lib_magic_magic_open" >&6; } +if test "x$ac_cv_lib_magic_magic_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMAGIC 1 +_ACEOF + + LIBS="-lmagic $LIBS" + +fi + + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5 +$as_echo_n "checking for inflate in -lz... " >&6; } +if ${ac_cv_lib_z_inflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inflate (); +int +main () +{ +return inflate (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_inflate=yes +else + ac_cv_lib_z_inflate=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5 +$as_echo "$ac_cv_lib_z_inflate" >&6; } +if test "x$ac_cv_lib_z_inflate" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +fi + + +fi + +# Check for groff html support. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HTML support in groff" >&5 +$as_echo_n "checking for HTML support in groff... " >&6; } +groff -t -mandoc -Thtml /dev/null +if test $? -ne 0 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + *** Will not generate HTML version of man pages. Consider + *** installing a newer version of groff with HTML support." >&5 +$as_echo "$as_me: WARNING: + *** Will not generate HTML version of man pages. Consider + *** installing a newer version of groff with HTML support." >&2;} + groff_html_support=no +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + groff_html_support=yes +fi + if test x$groff_html_support = xyes; then + GROFF_HTML_TRUE= + GROFF_HTML_FALSE='#' +else + GROFF_HTML_TRUE='#' + GROFF_HTML_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile doc/Makefile doc/sample.nanorc lib/Makefile m4/Makefile po/Makefile.in src/Makefile syntax/Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +# Check whether --enable-year2038 was given. +if test "${enable_year2038+set}" = set; then : + enableval=$enable_year2038; +fi + +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + + + gl_libobjs= + gl_ltlibobjs= + gl_libobjdeps= + if test -n "$gl_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' + for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gl_libobjs="$gl_libobjs $i.$ac_objext" + gl_ltlibobjs="$gl_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" + done + fi + gl_LIBOBJS=$gl_libobjs + + gl_LTLIBOBJS=$gl_ltlibobjs + + gl_LIBOBJDEPS=$gl_libobjdeps + + + + gltests_libobjs= + gltests_ltlibobjs= + gltests_libobjdeps= + if test -n "$gltests_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gltests_libobjs="$gltests_libobjs $i.$ac_objext" + gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" + done + fi + gltests_LIBOBJS=$gltests_libobjs + + gltests_LTLIBOBJS=$gltests_ltlibobjs + + gltests_LIBOBJDEPS=$gltests_libobjdeps + + +if test -z "${USE_NLS_TRUE}" && test -z "${USE_NLS_FALSE}"; then + as_fn_error $? "conditional \"USE_NLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILDING_FROM_GIT_TRUE}" && test -z "${BUILDING_FROM_GIT_FALSE}"; then + as_fn_error $? "conditional \"BUILDING_FROM_GIT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_COLOR_TRUE}" && test -z "${USE_COLOR_FALSE}"; then + as_fn_error $? "conditional \"USE_COLOR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_NANORC_TRUE}" && test -z "${USE_NANORC_FALSE}"; then + as_fn_error $? "conditional \"USE_NANORC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GROFF_HTML_TRUE}" && test -z "${GROFF_HTML_FALSE}"; then + as_fn_error $? "conditional \"GROFF_HTML\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by GNU nano $as_me 7.2, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +GNU nano home page: . +General help using GNU software: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +GNU nano config.status 7.2 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" +# 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 || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/sample.nanorc") CONFIG_FILES="$CONFIG_FILES doc/sample.nanorc" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "syntax/Makefile") CONFIG_FILES="$CONFIG_FILES syntax/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "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" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/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 assignment 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 assignment 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 + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +make showinfo diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..b08dade --- /dev/null +++ b/configure.ac @@ -0,0 +1,600 @@ +# Configuration for GNU nano - a small and user-friendly text editor +# +# Copyright (C) 1999-2011, 2013-2023 Free Software Foundation, Inc. +# Copyright (C) 2014, 2017 Mike Frysinger +# +# GNU nano is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# GNU nano 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 https://www.gnu.org/licenses/. + +AC_INIT([GNU nano], [7.2], [nano-devel@gnu.org], [nano]) +AC_CONFIG_SRCDIR([src/nano.c]) +AC_CANONICAL_HOST +AM_INIT_AUTOMAKE([1.14]) +AM_MAINTAINER_MODE([enable]) +AC_CONFIG_HEADERS([config.h]) + +dnl Make sure the ONCE macros are available. + +AC_PREREQ([2.69]) + +dnl Lie about gnulib features we don't use to speed up & shrink down. + +gl_cv_func_printf_directive_n=yes +gl_cv_func_printf_infinite_long_double=yes +gl_cv_func_printf_long_double=yes +gl_cv_func_snprintf_directive_n=yes +gl_cv_glob_lists_symlinks=yes + +dnl Checks for programs. + +AC_USE_SYSTEM_EXTENSIONS +AC_PROG_CC +gl_EARLY +gl_INIT +AC_PROG_LN_S +AC_SEARCH_LIBS([strerror], [cposix]) +AC_SYS_LARGEFILE +PKG_PROG_PKG_CONFIG + +dnl Internationalization macros. + +AM_GNU_GETTEXT_VERSION([0.18.3]) +AM_GNU_GETTEXT([external], [need-ngettext]) +AM_CONDITIONAL(USE_NLS, test x$USE_NLS = xyes) + +dnl Data location. + +pkgdatadir=${datadir}/${PACKAGE} +AC_DEFINE_DIR([PKGDATADIR], [pkgdatadir], [Where data are placed to.]) + +dnl Whether this is a git repository. + +AC_MSG_CHECKING([whether building from git]) +if test -f "$srcdir/roll-a-release.sh" ; then + AC_MSG_RESULT([yes]) + from_git=yes +else + AC_MSG_RESULT([no]) + from_git=no +fi +AM_CONDITIONAL(BUILDING_FROM_GIT, test x$from_git = xyes) + +dnl Checks for pkg-config and gettext when building from git. + +if test x$from_git = xyes; then + if test ! -f $(aclocal --print-ac-dir)/pkg.m4; then + AC_MSG_ERROR([ + *** The pkg.m4 macros are missing. + *** The pkg-config package needs to be installed when building from git. + *** After fixing this problem, rerun ./autogen.sh.]) + fi + if test "$ac_cv_path_MSGFMT" = ":"; then + AC_MSG_ERROR([ + *** The msgfmt program is missing. + *** The gettext package needs to be installed when building from git.]) + fi +fi + +dnl Checks for header files. + +AC_CHECK_HEADERS(libintl.h limits.h pwd.h termios.h sys/param.h) + +dnl Checks for options. + +AC_ARG_ENABLE(browser, +AS_HELP_STRING([--disable-browser], [Disable the built-in file browser])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_browser" != xyes; then + enable_browser=no + fi +fi +if test "x$enable_browser" != xno; then + AC_DEFINE(ENABLE_BROWSER, 1, [Define this to enable the built-in file browser.]) +fi + +AC_ARG_ENABLE(color, +AS_HELP_STRING([--disable-color], [Disable color and syntax highlighting])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_color" = xyes; then + if test "x$enable_nanorc" != xyes; then + AC_MSG_ERROR([ + *** --enable-color needs --enable-nanorc to work]) + fi + else + enable_color=no + fi +fi +if test "x$enable_nanorc" = xno; then + if test "x$enable_color" = xyes; then + AC_MSG_ERROR([ + *** --enable-color cannot work with --disable-nanorc]) + else + # Disabling nanorc silently disables color support. + enable_color=no + fi +fi +if test "x$enable_color" != xno; then + AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting.]) + color_support=yes +fi + +AC_ARG_ENABLE(comment, +AS_HELP_STRING([--disable-comment], [Disable the comment/uncomment function])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_comment" = xyes; then + AC_MSG_ERROR([ + *** --enable-comment cannot work with --enable-tiny]) + else + enable_comment=no + fi +fi +if test "x$enable_comment" != xno; then + AC_DEFINE(ENABLE_COMMENT, 1, [Define this to enable the comment/uncomment function.]) +fi + +AC_ARG_ENABLE(extra, +AS_HELP_STRING([--disable-extra], [Disable the Easter egg])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_extra" != xyes; then + enable_extra=no + fi +fi +if test "x$enable_extra" != xno; then + AC_DEFINE(ENABLE_EXTRA, 1, [Define this to have an Easter egg.]) +fi + +AC_ARG_ENABLE(formatter, +AS_HELP_STRING([--disable-formatter], [Disable the formatting tool])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_formatter" = xyes; then + if test "x$enable_color" != xyes; then + AC_MSG_ERROR([ + *** --enable-formatter needs both --enable-color and --enable-nanorc to work]) + fi + else + enable_formatter=no + fi +fi +if test "x$enable_color" = xno; then + if test "x$enable_formatter" = xyes; then + AC_MSG_ERROR([ + *** --enable-formatter cannot work with --disable-color nor --disable-nanorc]) + else + enable_formatter=no + fi +fi +if test "x$enable_formatter" != xno; then + AC_DEFINE(ENABLE_FORMATTER, 1, [Define this to have access to a formatter.]) +fi + +AC_ARG_ENABLE(help, +AS_HELP_STRING([--disable-help], [Disable the built-in help texts])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_help" = xyes; then + if test "x$enable_multibuffer" != xyes; then + AC_MSG_ERROR([ + *** --enable-help needs --enable-multibuffer to work]) + fi + else + enable_help=no + fi +fi +if test "x$enable_multibuffer" = xno; then + if test "x$enable_help" = xyes; then + AC_MSG_ERROR([ + *** --enable-help cannot work with --disable-multibuffer]) + else + # Disabling multibuffer silently disables the help texts. + enable_help=no + fi +fi +if test "x$enable_help" != xno; then + AC_DEFINE(ENABLE_HELP, 1, [Define this to enable the Ctrl+G help texts.]) +fi + +AC_ARG_ENABLE(histories, +AS_HELP_STRING([--disable-histories], [Disable search and position histories])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_histories" != xyes; then + enable_histories=no + fi +fi +if test "x$enable_histories" != xno; then + AC_DEFINE(ENABLE_HISTORIES, 1, [Define this to have search and position histories.]) +fi + +AC_ARG_ENABLE(justify, +AS_HELP_STRING([--disable-justify], [Disable the justify/unjustify functions])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_justify" != xyes; then + enable_justify=no + fi +fi +if test "x$enable_justify" != xno; then + AC_DEFINE(ENABLE_JUSTIFY, 1, [Define this to have the routines for justifying.]) +fi + +AC_ARG_ENABLE(libmagic, +AS_HELP_STRING([--disable-libmagic], [Disable detection of file types via libmagic])) +if test "x$enable_libmagic" = xyes; then + if test "x$enable_tiny" = xyes; then + if test "x$enable_color" != xyes; then + AC_MSG_ERROR([ + *** --enable-libmagic needs both --enable-color and --enable-nanorc to work]) + fi + fi + if test "x$enable_color" = xno; then + AC_MSG_ERROR([ + *** --enable-libmagic cannot work with --disable-color nor --disable-nanorc]) + fi +fi + +AC_ARG_ENABLE(linter, +AS_HELP_STRING([--disable-linter], [Disable the linting tool])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_linter" = xyes; then + if test "x$enable_color" != xyes; then + AC_MSG_ERROR([ + *** --enable-linter needs both --enable-color and --enable-nanorc to work]) + fi + else + enable_linter=no + fi +fi +if test "x$enable_color" = xno; then + if test "x$enable_linter" = xyes; then + AC_MSG_ERROR([ + *** --enable-linter cannot work with --disable-color nor --disable-nanorc]) + else + enable_linter=no + fi +fi +if test "x$enable_linter" != xno; then + AC_DEFINE(ENABLE_LINTER, 1, [Define this to have access to a linter.]) +fi + +AC_ARG_ENABLE(linenumbers, +AS_HELP_STRING([--disable-linenumbers], [Disable line numbering])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_linenumbers" != xyes; then + enable_linenumbers=no + fi +fi +if test "x$enable_linenumbers" != xno; then + AC_DEFINE(ENABLE_LINENUMBERS, 1, [Define this to enable line numbering.]) +fi + +AC_ARG_ENABLE(mouse, +AS_HELP_STRING([--disable-mouse], [Disable mouse support])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_mouse" != xyes; then + enable_mouse=no + fi +fi +if test "x$enable_mouse" != xno; then + AC_DEFINE(ENABLE_MOUSE, 1, [Define this to enable mouse support.]) +fi + +AC_ARG_ENABLE(multibuffer, +AS_HELP_STRING([--disable-multibuffer], [Disable multiple file buffers])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_multibuffer" != xyes; then + enable_multibuffer=no + fi +fi +if test "x$enable_multibuffer" != xno; then + AC_DEFINE(ENABLE_MULTIBUFFER, 1, [Define this to enable multiple file buffers.]) +fi + +AC_ARG_ENABLE(nanorc, +AS_HELP_STRING([--disable-nanorc], [Disable the use of .nanorc files])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_nanorc" != xyes; then + enable_nanorc=no + fi +fi +if test "x$enable_nanorc" != xno; then + AC_DEFINE(ENABLE_NANORC, 1, [Define this to enable the use of .nanorc files.]) + nanorc_support=yes +fi + +AC_ARG_ENABLE(operatingdir, +AS_HELP_STRING([--disable-operatingdir], [Disable the setting of an operating directory])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_operatingdir" != xyes; then + enable_operatingdir=no + fi +fi +if test "x$enable_operatingdir" != xno; then + AC_DEFINE(ENABLE_OPERATINGDIR, 1, [Define this to allow setting an operating directory (a chroot of sorts).]) +fi + +AC_ARG_ENABLE(speller, +AS_HELP_STRING([--disable-speller], [Disable the spell-checking tool])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_speller" != xyes; then + enable_speller=no + fi +fi +if test "x$enable_speller" != xno; then + AC_DEFINE(ENABLE_SPELLER, 1, [Define this to have access to a spell checker.]) +fi + +AC_ARG_ENABLE(tabcomp, +AS_HELP_STRING([--disable-tabcomp], [Disable the tab-completion functions])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_tabcomp" != xyes; then + enable_tabcomp=no + fi +fi +if test "x$enable_tabcomp" != xno; then + AC_DEFINE(ENABLE_TABCOMP, 1, [Define this to have tab completion for filenames and search strings.]) +fi + +AC_ARG_ENABLE(wordcomp, +AS_HELP_STRING([--disable-wordcomp], [Disable the word-completion function])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_wordcomp" = xyes; then + AC_MSG_ERROR([ + *** --enable-wordcomp cannot work with --enable-tiny]) + else + enable_wordcomp=no + fi +fi +if test "x$enable_wordcomp" != xno; then + AC_DEFINE(ENABLE_WORDCOMPLETION, 1, [Define this to enable the word-completion function.]) +fi + +AC_ARG_ENABLE(wrapping, +AS_HELP_STRING([--disable-wrapping], [Disable all hard-wrapping of text])) +if test "x$enable_tiny" = xyes; then + if test "x$enable_wrapping" != xyes; then + enable_wrapping=no + fi +fi +if test "x$enable_wrapping" != xno; then + AC_DEFINE(ENABLE_WRAPPING, 1, [Define this to have hard text wrapping.]) +fi + +AC_ARG_ENABLE(debug, +AS_HELP_STRING([--enable-debug], [Enable debugging (disabled by default)])) +if test "x$enable_debug" = xyes; then + AC_DEFINE(DEBUG, 1, [Define this to enable debug messages and abortion on failing asserts.]) +else + AC_DEFINE(NDEBUG, 1, [Shut up assert warnings :-)]) +fi + +AC_ARG_ENABLE(tiny, +AS_HELP_STRING([--enable-tiny], [Disable features for the sake of size])) +if test "x$enable_tiny" = xyes; then + AC_DEFINE(NANO_TINY, 1, [Define this to make the nano executable as small as possible.]) + if test "x$enable_libmagic" != xyes; then + enable_libmagic=no + fi +fi + +AM_CONDITIONAL(USE_COLOR, test x$color_support = xyes) +AM_CONDITIONAL(USE_NANORC, test x$nanorc_support = xyes) + +AC_MSG_CHECKING([whether to enable UTF-8 support]) +AC_ARG_ENABLE(utf8, AS_HELP_STRING([--enable-utf8], [Enable UTF-8 support])) +AC_MSG_RESULT(${enable_utf8:-auto}) + +AC_ARG_ENABLE(altrcname, +AS_HELP_STRING([--enable-altrcname], [Specify an alternate rcfile name (default: .nanorc)]), +[if test x$enableval != no; then + AC_DEFINE_UNQUOTED(RCFILE_NAME, "$enableval", [Specify an alternate rcfile name (default: .nanorc).]) rcfilename=$enableval +fi]) + +dnl Checks for functions. + +if test "x$enable_utf8" != xno; then + AC_CHECK_FUNCS(iswalpha iswalnum iswpunct mbstowcs wctomb) +fi + +AC_CHECK_FUNCS_ONCE(chmod chown fchmod fchown flockfile funlockfile + fork fsync geteuid pipe wait waitpid) + +dnl Checks for available flags. + +AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"], [], []) + +dnl Checks for libraries. + +if eval "test x$CURSES_LIB_NAME = x"; then + if test "x$enable_utf8" != xno; then + PKG_CHECK_MODULES([NCURSESW], [ncursesw], [ + CURSES_LIB=$NCURSESW_LIBS + CPPFLAGS="$NCURSESW_CFLAGS $CPPFLAGS" + CURSES_LIB_NAME=ncursesw + CURSES_LIB_WIDE=yes + ], [:]) + else + PKG_CHECK_MODULES([NCURSES], [ncurses], [ + CURSES_LIB=$NCURSES_LIBS + CPPFLAGS="$NCURSES_CFLAGS $CPPFLAGS" + CURSES_LIB_NAME=ncurses + ], [:]) + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + AC_CHECK_HEADERS(ncurses.h) + + if test "x$enable_utf8" != xno; then + OLDLIBS="$LIBS" + AC_CHECK_TOOL(NCURSESW_CONFIG, ncursesw5-config, no) + if test "x$NCURSESW_CONFIG" != xno; then + CURSES_LIB=`$NCURSESW_CONFIG --libs` + LIBS="$CURSES_LIB $LIBS" + CPPFLAGS="`$NCURSESW_CONFIG --cflags` $CPPFLAGS" + AC_CHECK_LIB(ncursesw, wget_wch, [CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes]) + else + AC_CHECK_LIB(ncursesw, wget_wch, [CURSES_LIB="-lncursesw" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes]) + fi + LIBS="$OLDLIBS" + fi + + if eval "test x$CURSES_LIB_NAME = x"; then + AC_CHECK_LIB(ncurses, initscr, [CURSES_LIB="-lncurses" CURSES_LIB_NAME=ncurses]) + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + AC_CHECK_HEADERS(curses.h) + + if test "x$enable_utf8" != xno; then + AC_CHECK_LIB(curses, wget_wch, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses CURSES_LIB_WIDE=yes]) + fi + + if eval "test x$CURSES_LIB_NAME = x"; then + AC_CHECK_LIB(curses, initscr, [CURSES_LIB="-lcurses" CURSES_LIB_NAME=curses]) + fi +fi + +if eval "test x$CURSES_LIB_NAME = x"; then + AC_MSG_ERROR([ + *** No curses lib was found. Please install the curses header files + *** from libncurses-dev (Debian), ncurses-devel (Fedora), or similar. + *** (Or install ncurses from https://ftp.gnu.org/gnu/ncurses/.)]) +else + AC_MSG_RESULT([ The curses library to be used is: $CURSES_LIB_NAME]) +fi + +AC_CHECK_LIB([$CURSES_LIB_NAME], [use_default_colors], + [AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1, [Define this if your curses library has the use_default_colors() function.])], + [], [$CURSES_LIB]) +AC_CHECK_LIB([$CURSES_LIB_NAME], [set_escdelay], + [AC_DEFINE(HAVE_SET_ESCDELAY, 1, [Define this if your curses library has the set_escdelay() function.])], + [], [$CURSES_LIB]) +AC_CHECK_LIB([$CURSES_LIB_NAME], [key_defined], + [AC_DEFINE(HAVE_KEY_DEFINED, 1, [Define this if your curses library has the key_defined() function.])], + [], [$CURSES_LIB]) + +LIBS="$LIBS $CURSES_LIB" + +AC_SUBST(CURSES_LIB) + +if test "x$enable_utf8" != xno && \ + test x$CURSES_LIB_WIDE = xyes && \ + test x$ac_cv_func_iswalpha = xyes && \ + test x$ac_cv_func_iswalnum = xyes && \ + test x$ac_cv_func_iswpunct = xyes && \ + test x$ac_cv_func_mbstowcs = xyes && \ + test x$ac_cv_func_wctomb = xyes; then + AC_DEFINE(ENABLE_UTF8, 1, [Define this if your system has sufficient UTF-8 support.]) +else + if test "x$enable_utf8" = xyes; then + AC_MSG_ERROR([ + *** UTF-8 support was requested, but insufficient support was + *** detected in your curses and/or C libraries. Please verify + *** that both your curses library and your C library were built + *** with wide-character support.]) + elif test "x$enable_utf8" != xno; then + AC_MSG_WARN([ + *** Insufficient UTF-8 support was detected in your curses + *** and/or C libraries. If you want UTF-8 support, please + *** verify that both your curses library and your C library + *** were built with wide-character support.]) + fi +fi + +AC_CACHE_CHECK([for enhanced regular expression flag], nano_cv_flag_reg_enhanced, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[ + #ifndef REG_ENHANCED + error: No REG_ENHANCED support! + #endif + ]])], + [nano_cv_flag_reg_enhanced=yes], + [nano_cv_flag_reg_enhanced=no])]) +dnl The bundled gnulib regex module doesn't support REG_ENHANCED. +if test "$ac_use_included_regex" = "yes"; then + nano_cv_flag_reg_enhanced="no" +fi +if test "$nano_cv_flag_reg_enhanced" = "yes"; then + nano_reg_extended="REG_EXTENDED | REG_ENHANCED" +else + nano_reg_extended="REG_EXTENDED" +fi + +AC_DEFINE_UNQUOTED(NANO_REG_EXTENDED, $nano_reg_extended, + [Flag(s) to use to get the full range of extended regular expressions]) + +if test x$color_support = xyes; then + AC_MSG_CHECKING([whether _XOPEN_SOURCE_EXTENDED is needed]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +int main(void) +{ + int testcolor = COLOR_WHITE; + return 0; +}]])], + AC_MSG_RESULT(no), + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#ifndef _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED 1 +#endif +#include +int main(void) +{ + int testcolor = COLOR_WHITE; + return 0; +}]])], + AC_DEFINE(NEED_XOPEN_SOURCE_EXTENDED, 1, [Define this if you need the _XOPEN_SOURCE_EXTENDED macro for color support.]) + AC_MSG_RESULT(yes), + AC_MSG_RESULT(not sure) + AC_MSG_WARN([ + *** Couldn't successfully compile basic color test with or without + *** _XOPEN_SOURCE_EXTENDED. This build may not compile. Consider + *** configuring with --disable-color or installing ncurses.])), + AC_MSG_WARN([ + *** Can't check need for _XOPEN_SOURCE_EXTENDED when cross-compiling.])) +fi + +AS_IF([test "x$enable_libmagic" != "xno"], [ + AC_CHECK_HEADERS([magic.h]) + AC_CHECK_LIB(magic, magic_open) + AC_CHECK_HEADERS([zlib.h]) + AC_CHECK_LIB(z, inflate) +]) + +# Check for groff html support. +AC_MSG_CHECKING([for HTML support in groff]) +groff -t -mandoc -Thtml /dev/null +if test $? -ne 0 ; then + AC_MSG_RESULT([no]) + AC_MSG_WARN([ + *** Will not generate HTML version of man pages. Consider + *** installing a newer version of groff with HTML support.]) + groff_html_support=no +else + AC_MSG_RESULT([yes]) + groff_html_support=yes +fi +AM_CONDITIONAL(GROFF_HTML, test x$groff_html_support = xyes) + +AC_CONFIG_FILES([ +Makefile +doc/Makefile +doc/sample.nanorc +lib/Makefile +m4/Makefile +po/Makefile.in +src/Makefile +syntax/Makefile +]) + +AC_OUTPUT + +make showinfo diff --git a/depcomp b/depcomp new file mode 100644 index 0000000..6b39162 --- /dev/null +++ b/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2020 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..08cccac --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,33 @@ +SUBDIRS = +BUILT_SOURCES = + +dist_html_DATA = faq.html + +dist_man_MANS = nano.1 rnano.1 +html_pages = nano.1.html rnano.1.html + +if USE_NANORC +dist_man_MANS += nanorc.5 +html_pages += nanorc.5.html +endif + +nano.1.html: nano.1 + groff -t -mandoc -Thtml < $? > $@ +nanorc.5.html: nanorc.5 + groff -t -mandoc -Thtml < $? > $@ +rnano.1.html: rnano.1 + groff -t -mandoc -Thtml < $? > $@ + +if GROFF_HTML +BUILT_SOURCES += $(html_pages) +dist_html_DATA += $(html_pages) +endif + +info_TEXINFOS = nano.texi + +BUILT_SOURCES += nano.html +dist_html_DATA += nano.html + +AM_MAKEINFOHTMLFLAGS = --no-split -c HEADERS=0 + +EXTRA_DIST = $(BUILT_SOURCES) $(info_TEXINFOS) diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000..70143b1 --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,2458 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@USE_NANORC_TRUE@am__append_1 = nanorc.5 +@USE_NANORC_TRUE@am__append_2 = nanorc.5.html +@GROFF_HTML_TRUE@am__append_3 = $(html_pages) +@GROFF_HTML_TRUE@am__append_4 = $(html_pages) +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ + $(top_srcdir)/m4/absolute-header.m4 \ + $(top_srcdir)/m4/ac_define_dir.m4 $(top_srcdir)/m4/alloca.m4 \ + $(top_srcdir)/m4/assert_h.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/chdir-long.m4 \ + $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ + $(top_srcdir)/m4/ctype_h.m4 $(top_srcdir)/m4/d-type.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/error_h.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/exponentf.m4 \ + $(top_srcdir)/m4/exponentl.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/filenamecat.m4 \ + $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ + $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \ + $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/free.m4 \ + $(top_srcdir)/m4/frexp.m4 $(top_srcdir)/m4/frexpl.m4 \ + $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ + $(top_srcdir)/m4/futimens.m4 $(top_srcdir)/m4/getcwd.m4 \ + $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \ + $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getlogin.m4 \ + $(top_srcdir)/m4/getlogin_r.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/getrandom.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glob.m4 \ + $(top_srcdir)/m4/glob_h.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/include_next.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ + $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/isnand.m4 \ + $(top_srcdir)/m4/isnanf.m4 $(top_srcdir)/m4/isnanl.m4 \ + $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/langinfo_h.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/ldexpl.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libunistring-base.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ + $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ + $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ + $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ + $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ + $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ + $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ + $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \ + $(top_srcdir)/m4/mkstemps.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ + $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/open-cloexec.m4 \ + $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ + $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pid_t.m4 \ + $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf-frexp.m4 \ + $(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readdir.m4 \ + $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \ + $(top_srcdir)/m4/save-cwd.m4 \ + $(top_srcdir)/m4/setlocale_null.m4 \ + $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ + $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/signbit.m4 \ + $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf-posix.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \ + $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ + $(top_srcdir)/m4/std-gnu11.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ + $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ + $(top_srcdir)/m4/strcasestr.m4 $(top_srcdir)/m4/strdup.m4 \ + $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ + $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \ + $(top_srcdir)/m4/sys_random_h.m4 \ + $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \ + $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/timespec.m4 \ + $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utime_h.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \ + $(top_srcdir)/m4/visibility.m4 \ + $(top_srcdir)/m4/vsnprintf-posix.m4 \ + $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ + $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ + $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ + $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \ + $(top_srcdir)/m4/wmemchr.m4 $(top_srcdir)/m4/wmempcpy.m4 \ + $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/zzgnulib.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_html_DATA_DIST) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = sample.nanorc +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) +am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) +am__v_DVIPS_0 = @echo " DVIPS " $@; +am__v_DVIPS_1 = +AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) +am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) +am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; +am__v_MAKEINFO_1 = +AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) +am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) +am__v_INFOHTML_0 = @echo " INFOHTML" $@; +am__v_INFOHTML_1 = +AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) +am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) +am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; +am__v_TEXI2DVI_1 = +AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) +am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) +am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; +am__v_TEXI2PDF_1 = +AM_V_texinfo = $(am__v_texinfo_@AM_V@) +am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) +am__v_texinfo_0 = -q +am__v_texinfo_1 = +AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) +am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) +am__v_texidevnull_0 = > /dev/null +am__v_texidevnull_1 = +INFO_DEPS = $(srcdir)/nano.info +am__TEXINFO_TEX_DIR = $(srcdir) +DVIS = nano.dvi +PDFS = nano.pdf +PSS = nano.ps +HTMLS = nano.html +TEXINFOS = nano.texi +TEXI2DVI = texi2dvi +TEXI2PDF = $(TEXI2DVI) --pdf --batch +MAKEINFOHTML = $(MAKEINFO) --html +DVIPS = dvips +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(htmldir)" +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +man5dir = $(mandir)/man5 +NROFF = nroff +MANS = $(dist_man_MANS) +am__dist_html_DATA_DIST = faq.html nano.1.html rnano.1.html \ + nanorc.5.html nano.html +DATA = $(dist_html_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ + $(srcdir)/sample.nanorc.in texinfo.tex +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASSERT_H = @ASSERT_H@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CLOCK_TIME_LIB = @CLOCK_TIME_LIB@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURSES_LIB = @CURSES_LIB@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ERROR_H = @ERROR_H@ +EXEEXT = @EXEEXT@ +FLOAT_H = @FLOAT_H@ +FNMATCH_H = @FNMATCH_H@ +GETLOGIN_LIB = @GETLOGIN_LIB@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETRANDOM_LIB = @GETRANDOM_LIB@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLOB_H = @GLOB_H@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ +GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ +GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ +GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ +GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ +GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ +GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ +GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ +GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ +GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ +GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ +GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ +GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ +GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ +GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_COSF = @GL_GNULIB_COSF@ +GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ +GL_GNULIB_COSL = @GL_GNULIB_COSL@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ +GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ +GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ +GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ +GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ +GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ +GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ +GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ +GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFS = @GL_GNULIB_FFS@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ +GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ +GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ +GL_GNULIB_FMA = @GL_GNULIB_FMA@ +GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ +GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ +GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ +GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ +GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ +GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ +GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ +GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GLOB = @GL_GNULIB_GLOB@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ +GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ +GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ +GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ +GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ +GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ +GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ +GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ +GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ +GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ +GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ +GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LOG = @GL_GNULIB_LOG@ +GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ +GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ +GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ +GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ +GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ +GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ +GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ +GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ +GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ +GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ +GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ +GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ +GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ +GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ +GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ +GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_UTIME = @GL_GNULIB_MDA_UTIME@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ +GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ +GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_MODF = @GL_GNULIB_MODF@ +GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ +GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_POWF = @GL_GNULIB_POWF@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ +GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ +GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ +GL_GNULIB_RINT = @GL_GNULIB_RINT@ +GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ +GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ +GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ +GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SINF = @GL_GNULIB_SINF@ +GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ +GL_GNULIB_SINL = @GL_GNULIB_SINL@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ +GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TANF = @GL_GNULIB_TANF@ +GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ +GL_GNULIB_TANL = @GL_GNULIB_TANL@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ +GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIME = @GL_GNULIB_UTIME@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WAITPID = @GL_GNULIB_WAITPID@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ +HAVE_ACOSF = @HAVE_ACOSF@ +HAVE_ACOSL = @HAVE_ACOSL@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ +HAVE_ASINF = @HAVE_ASINF@ +HAVE_ASINL = @HAVE_ASINL@ +HAVE_ATAN2F = @HAVE_ATAN2F@ +HAVE_ATANF = @HAVE_ATANF@ +HAVE_ATANL = @HAVE_ATANL@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CBRT = @HAVE_CBRT@ +HAVE_CBRTF = @HAVE_CBRTF@ +HAVE_CBRTL = @HAVE_CBRTL@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ +HAVE_COPYSIGN = @HAVE_COPYSIGN@ +HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_COSF = @HAVE_COSF@ +HAVE_COSHF = @HAVE_COSHF@ +HAVE_COSL = @HAVE_COSL@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ +HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ +HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ +HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ +HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ +HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ +HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ +HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ +HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_GETW = @HAVE_DECL_GETW@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ +HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ +HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ +HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ +HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ +HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ +HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ +HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ +HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ +HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ +HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DIRENT_H = @HAVE_DIRENT_H@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_ERROR = @HAVE_ERROR@ +HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPF = @HAVE_EXPF@ +HAVE_EXPL = @HAVE_EXPL@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_EXPM1 = @HAVE_EXPM1@ +HAVE_EXPM1F = @HAVE_EXPM1F@ +HAVE_FABSF = @HAVE_FABSF@ +HAVE_FABSL = @HAVE_FABSL@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFS = @HAVE_FFS@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FMA = @HAVE_FMA@ +HAVE_FMAF = @HAVE_FMAF@ +HAVE_FMAL = @HAVE_FMAL@ +HAVE_FMODF = @HAVE_FMODF@ +HAVE_FMODL = @HAVE_FMODL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FREXPF = @HAVE_FREXPF@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GLOB = @HAVE_GLOB@ +HAVE_GLOB_H = @HAVE_GLOB_H@ +HAVE_GLOB_PATTERN_P = @HAVE_GLOB_PATTERN_P@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_HYPOTF = @HAVE_HYPOTF@ +HAVE_HYPOTL = @HAVE_HYPOTL@ +HAVE_ILOGB = @HAVE_ILOGB@ +HAVE_ILOGBF = @HAVE_ILOGBF@ +HAVE_ILOGBL = @HAVE_ILOGBL@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISNAND = @HAVE_ISNAND@ +HAVE_ISNANF = @HAVE_ISNANF@ +HAVE_ISNANL = @HAVE_ISNANL@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LDEXPF = @HAVE_LDEXPF@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LOG10F = @HAVE_LOG10F@ +HAVE_LOG10L = @HAVE_LOG10L@ +HAVE_LOG1P = @HAVE_LOG1P@ +HAVE_LOG1PF = @HAVE_LOG1PF@ +HAVE_LOG1PL = @HAVE_LOG1PL@ +HAVE_LOGBF = @HAVE_LOGBF@ +HAVE_LOGBL = @HAVE_LOGBL@ +HAVE_LOGF = @HAVE_LOGF@ +HAVE_LOGL = @HAVE_LOGL@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MODFF = @HAVE_MODFF@ +HAVE_MODFL = @HAVE_MODFL@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OPENDIR = @HAVE_OPENDIR@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_POWF = @HAVE_POWF@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READDIR = @HAVE_READDIR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_REMAINDER = @HAVE_REMAINDER@ +HAVE_REMAINDERF = @HAVE_REMAINDERF@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_REWINDDIR = @HAVE_REWINDDIR@ +HAVE_RINT = @HAVE_RINT@ +HAVE_RINTL = @HAVE_RINTL@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SINF = @HAVE_SINF@ +HAVE_SINHF = @HAVE_SINHF@ +HAVE_SINL = @HAVE_SINL@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_SQRTF = @HAVE_SQRTF@ +HAVE_SQRTL = @HAVE_SQRTL@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASECMP = @HAVE_STRCASECMP@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRINGS_H = @HAVE_STRINGS_H@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_TANF = @HAVE_TANF@ +HAVE_TANHF = @HAVE_TANHF@ +HAVE_TANL = @HAVE_TANL@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIME = @HAVE_UTIME@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_UTIME_H = @HAVE_UTIME_H@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__EXIT = @HAVE__EXIT@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTHREAD = @LIBTHREAD@ +LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ +LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETLOGIN = @LIB_GETLOGIN@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MBRTOWC_LIB = @MBRTOWC_LIB@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NCURSESW_CFLAGS = @NCURSESW_CFLAGS@ +NCURSESW_CONFIG = @NCURSESW_CONFIG@ +NCURSESW_LIBS = @NCURSESW_LIBS@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_LIBS = @NCURSES_LIBS@ +NEXT_ASSERT_H = @NEXT_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_GLOB_H = @NEXT_AS_FIRST_DIRECTIVE_GLOB_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_UTIME_H = @NEXT_AS_FIRST_DIRECTIVE_UTIME_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_GLOB_H = @NEXT_GLOB_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRINGS_H = @NEXT_STRINGS_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_UTIME_H = @NEXT_UTIME_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGDATADIR = @PKGDATADIR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ACOSF = @REPLACE_ACOSF@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_ASINF = @REPLACE_ASINF@ +REPLACE_ATAN2F = @REPLACE_ATAN2F@ +REPLACE_ATANF = @REPLACE_ATANF@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CBRTF = @REPLACE_CBRTF@ +REPLACE_CBRTL = @REPLACE_CBRTL@ +REPLACE_CEIL = @REPLACE_CEIL@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_COSF = @REPLACE_COSF@ +REPLACE_COSHF = @REPLACE_COSHF@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DIRFD = @REPLACE_DIRFD@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_ERROR = @REPLACE_ERROR@ +REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_EXP2 = @REPLACE_EXP2@ +REPLACE_EXP2L = @REPLACE_EXP2L@ +REPLACE_EXPF = @REPLACE_EXPF@ +REPLACE_EXPL = @REPLACE_EXPL@ +REPLACE_EXPM1 = @REPLACE_EXPM1@ +REPLACE_EXPM1F = @REPLACE_EXPM1F@ +REPLACE_EXPM1L = @REPLACE_EXPM1L@ +REPLACE_FABSL = @REPLACE_FABSL@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FLOOR = @REPLACE_FLOOR@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FMA = @REPLACE_FMA@ +REPLACE_FMAF = @REPLACE_FMAF@ +REPLACE_FMAL = @REPLACE_FMAL@ +REPLACE_FMOD = @REPLACE_FMOD@ +REPLACE_FMODF = @REPLACE_FMODF@ +REPLACE_FMODL = @REPLACE_FMODL@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPF = @REPLACE_FREXPF@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GLOB = @REPLACE_GLOB@ +REPLACE_GLOB_PATTERN_P = @REPLACE_GLOB_PATTERN_P@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ +REPLACE_HYPOT = @REPLACE_HYPOT@ +REPLACE_HYPOTF = @REPLACE_HYPOTF@ +REPLACE_HYPOTL = @REPLACE_HYPOTL@ +REPLACE_ILOGB = @REPLACE_ILOGB@ +REPLACE_ILOGBF = @REPLACE_ILOGBF@ +REPLACE_ILOGBL = @REPLACE_ILOGBL@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_ISINF = @REPLACE_ISINF@ +REPLACE_ISNAN = @REPLACE_ISNAN@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_ITOLD = @REPLACE_ITOLD@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LOG = @REPLACE_LOG@ +REPLACE_LOG10 = @REPLACE_LOG10@ +REPLACE_LOG10F = @REPLACE_LOG10F@ +REPLACE_LOG10L = @REPLACE_LOG10L@ +REPLACE_LOG1P = @REPLACE_LOG1P@ +REPLACE_LOG1PF = @REPLACE_LOG1PF@ +REPLACE_LOG1PL = @REPLACE_LOG1PL@ +REPLACE_LOG2 = @REPLACE_LOG2@ +REPLACE_LOG2F = @REPLACE_LOG2F@ +REPLACE_LOG2L = @REPLACE_LOG2L@ +REPLACE_LOGB = @REPLACE_LOGB@ +REPLACE_LOGBF = @REPLACE_LOGBF@ +REPLACE_LOGBL = @REPLACE_LOGBL@ +REPLACE_LOGF = @REPLACE_LOGF@ +REPLACE_LOGL = @REPLACE_LOGL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_MODF = @REPLACE_MODF@ +REPLACE_MODFF = @REPLACE_MODFF@ +REPLACE_MODFL = @REPLACE_MODFL@ +REPLACE_NAN = @REPLACE_NAN@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMAINDER = @REPLACE_REMAINDER@ +REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ +REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RINTL = @REPLACE_RINTL@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ +REPLACE_SINF = @REPLACE_SINF@ +REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_SQRTF = @REPLACE_SQRTF@ +REPLACE_SQRTL = @REPLACE_SQRTL@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TANF = @REPLACE_TANF@ +REPLACE_TANHF = @REPLACE_TANHF@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNC = @REPLACE_TRUNC@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TRUNCF = @REPLACE_TRUNCF@ +REPLACE_TRUNCL = @REPLACE_TRUNCL@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIME = @REPLACE_UTIME@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ +SED = @SED@ +SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDARG_H = @STDARG_H@ +STDCKDINT_H = @STDCKDINT_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = +BUILT_SOURCES = $(am__append_3) nano.html +dist_html_DATA = faq.html $(am__append_4) nano.html +dist_man_MANS = nano.1 rnano.1 $(am__append_1) +html_pages = nano.1.html rnano.1.html $(am__append_2) +info_TEXINFOS = nano.texi +AM_MAKEINFOHTMLFLAGS = --no-split -c HEADERS=0 +EXTRA_DIST = $(BUILT_SOURCES) $(info_TEXINFOS) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .dvi .html .info .pdf .ps .texi +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +sample.nanorc: $(top_builddir)/config.status $(srcdir)/sample.nanorc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +.texi.info: + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + am__cwd=`pwd` && $(am__cd) $(srcdir) && \ + rm -rf $$backupdir && mkdir $$backupdir && \ + if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ + for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ + if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ + done; \ + else :; fi && \ + cd "$$am__cwd"; \ + if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ + -o $@ $<; \ + then \ + rc=0; \ + $(am__cd) $(srcdir); \ + else \ + rc=$$?; \ + $(am__cd) $(srcdir) && \ + $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ + fi; \ + rm -rf $$backupdir; exit $$rc + +.texi.dvi: + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ + $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + $< + +.texi.pdf: + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ + $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + $< + +.texi.html: + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ + -o $(@:.html=.htp) $<; \ + then \ + rm -rf $@ && mv $(@:.html=.htp) $@; \ + else \ + rm -rf $(@:.html=.htp); exit 1; \ + fi +$(srcdir)/nano.info: nano.texi +nano.dvi: nano.texi +nano.pdf: nano.texi +nano.html: nano.texi +.dvi.ps: + $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + $(DVIPS) $(AM_V_texinfo) -o $@ $< + +uninstall-dvi-am: + @$(NORMAL_UNINSTALL) + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ + rm -f "$(DESTDIR)$(dvidir)/$$f"; \ + done + +uninstall-html-am: + @$(NORMAL_UNINSTALL) + @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ + rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ + done + +uninstall-info-am: + @$(PRE_UNINSTALL) + @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ + if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ + then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ + done; \ + else :; fi + @$(NORMAL_UNINSTALL) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ + (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ + echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ + rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ + else :; fi); \ + done + +uninstall-pdf-am: + @$(NORMAL_UNINSTALL) + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ + done + +uninstall-ps-am: + @$(NORMAL_UNINSTALL) + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ + rm -f "$(DESTDIR)$(psdir)/$$f"; \ + done + +dist-info: $(INFO_DEPS) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + case $$base in \ + $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ + for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ + if test -f $$file; then \ + relfile=`expr "$$file" : "$$d/\(.*\)"`; \ + test -f "$(distdir)/$$relfile" || \ + cp -p $$file "$(distdir)/$$relfile"; \ + else :; fi; \ + done; \ + done + +mostlyclean-aminfo: + -rm -rf nano.t2d nano.t2p + +clean-aminfo: + -test -z "nano.dvi nano.pdf nano.ps nano.html" \ + || rm -rf nano.dvi nano.pdf nano.ps nano.html + +maintainer-clean-aminfo: + @list='$(INFO_DEPS)'; for i in $$list; do \ + i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ + echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ + rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ + done +install-man1: $(dist_man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +install-man5: $(dist_man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man5dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.5[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ + done; } + +uninstall-man5: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man5dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.5[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) +install-dist_htmlDATA: $(dist_html_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ + done + +uninstall-dist_htmlDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-info +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(INFO_DEPS) $(MANS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(htmldir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-recursive + +clean-am: clean-aminfo clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: $(DVIS) + +html: html-recursive + +html-am: $(HTMLS) + +info: info-recursive + +info-am: $(INFO_DEPS) + +install-data-am: install-dist_htmlDATA install-info-am install-man + +install-dvi: install-dvi-recursive + +install-dvi-am: $(DVIS) + @$(NORMAL_INSTALL) + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ + done +install-exec-am: + +install-html: install-html-recursive + +install-html-am: $(HTMLS) + @$(NORMAL_INSTALL) + @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ + $(am__strip_dir) \ + d2=$$d$$p; \ + if test -d "$$d2"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ + echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ + else \ + list2="$$list2 $$d2"; \ + fi; \ + done; \ + test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ + done; } +install-info: install-info-recursive + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ + fi; \ + for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ + for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ + $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ + if test -f $$ifile; then \ + echo "$$ifile"; \ + else : ; fi; \ + done; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done + @$(POST_INSTALL) + @if $(am__can_run_installinfo); then \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ + install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ + done; \ + else : ; fi +install-man: install-man1 install-man5 + +install-pdf: install-pdf-recursive + +install-pdf-am: $(PDFS) + @$(NORMAL_INSTALL) + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done +install-ps: install-ps-recursive + +install-ps-am: $(PSS) + @$(NORMAL_INSTALL) + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-aminfo \ + maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-aminfo mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: $(PDFS) + +ps: ps-recursive + +ps-am: $(PSS) + +uninstall-am: uninstall-dist_htmlDATA uninstall-dvi-am \ + uninstall-html-am uninstall-info-am uninstall-man \ + uninstall-pdf-am uninstall-ps-am + +uninstall-man: uninstall-man1 uninstall-man5 + +.MAKE: $(am__recursive_targets) all check install install-am \ + install-exec install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-aminfo clean-generic cscopelist-am ctags \ + ctags-am dist-info distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dist_htmlDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-man1 install-man5 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-aminfo \ + maintainer-clean-generic mostlyclean mostlyclean-aminfo \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-dist_htmlDATA uninstall-dvi-am \ + uninstall-html-am uninstall-info-am uninstall-man \ + uninstall-man1 uninstall-man5 uninstall-pdf-am uninstall-ps-am + +.PRECIOUS: Makefile + + +nano.1.html: nano.1 + groff -t -mandoc -Thtml < $? > $@ +nanorc.5.html: nanorc.5 + groff -t -mandoc -Thtml < $? > $@ +rnano.1.html: rnano.1 + groff -t -mandoc -Thtml < $? > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/faq.html b/doc/faq.html new file mode 100644 index 0000000..3e8a9db --- /dev/null +++ b/doc/faq.html @@ -0,0 +1,288 @@ + + + + + The GNU nano editor FAQ + + + + + + + +

The GNU nano editor FAQ

+

Table of Contents

+

1. General

+

+ 1.1. What is GNU nano?
+ 1.2. What is the history behind nano?
+ 1.3. Why the name change from TIP?
+ 1.4. What is the current version of nano?
+ 1.5. I want to read the manpage without having to download the program! +

+

2. Where to get GNU nano.

+

+ 2.1. FTP and WWW sites that carry nano.
+ 2.2. RedHat and derivatives (.rpm) packages.
+ 2.3. Debian (.deb) packages.
+ 2.4. By git (for the brave). +

+

3. Installation and Configuration

+

+ 3.1. How do I install the RPM or DEB package?
+ 3.2. Compiling from source: WHAT THE HECK DO I DO NOW?
+ 3.3. Why does everything go into /usr/local?
+ 3.4. nano should automatically run strip on the binary when installing it!
+ 3.5. How can I make the executable smaller? This is too bloated!
+ 3.6. Tell me more about this multibuffer stuff!
+ 3.7. Tell me more about this verbatim input stuff!
+ 3.8. How do I make a .nanorc file that nano will read when I start it?
+ 3.9. Why does my self-compiled nano not read /etc/nanorc?
+

+

4. Running

+

+ 4.1. Alt+Up does nothing on a Linux console. How can I make it scroll?
+ 4.2. How can I make Ctrl+Shift+Left/Right select words on urxvt?
+ 4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?
+ 4.4. With what keystroke can I paste text from the clipboard into nano?
+ 4.5. How do I select text for or paste text from the clipboard when nano's mouse support is turned on?
+ 4.6. When I paste text into a document, each line gets indented further than the last. Why? And how can I stop this?
+ 4.7. When I paste from Windows into a remote nano, nano rewraps the lines. What gives?
+ 4.8. I've compiled nano with color support, but I don't see any color when I run it!
+ 4.9. How do I make nano my default editor (in Pine, mutt, etc.)?
+

+

5. Internationalization

+

+ 5.1. There's no translation for my language!
+ 5.2. I don't like the translation for <x> in my language. How can I fix it?
+ 5.3. What is the status of Unicode support? +

+

6. Advocacy and Licensing

+

+ 6.1. Why should I use nano instead of Pico?
+ 6.2. Why should I use Pico instead of nano?
+ 6.3. What is so bad about the older Pine license?
+ 6.4. Okay, well, what mail program should I use then? +

+

7. Miscellaneous

+

+ 7.1. Where can I ask questions or send suggestions?
+ 7.2. How do I submit a bug report or patch?
+ 7.3. I want to send the development team a big load of cash (or just a thank you).
+ 7.4. How do I join the development team?
+ 7.5. Can I have write access to the git tree? +

+
+ +

1. General

+

1.1. What is GNU nano?

+

GNU nano was designed to be a free replacement for the Pico text editor, part of the Pine email suite from The University of Washington. It aimed to "emulate Pico as closely as is reasonable and then include extra functionality".

+

1.2. What is the history behind nano?

+

Funny you should ask!

+

In the beginning...

+

For years Pine was THE program used to read email on a Unix system. The Pico text editor is the portion of the program one would use to compose his or her mail messages. Many beginners to Unix flocked to Pico and Pine because of their well organized, easy to use interfaces. With the proliferation of GNU/Linux in the mid to late 90's, many University students became intimately familiar with the strengths (and weaknesses) of Pine and Pico.

+

Then came Debian...

+

The Debian GNU/Linux distribution, known for its strict standards in distributing truly "free" software (i.e. software with no restrictions on redistribution), would not include a binary package for Pine or Pico. Many people had a serious dilemma: they loved these programs, but the versions available at the time were not truly free software in the GNU sense of the word.

+

The event...

+

It was in late 1999 when Chris Allegretta (our hero) was yet again complaining to himself about the less-than-perfect license Pico was distributed under, the 1000 makefiles that came with it and how just a few small improvements could make it the Best Editor in the World (TM). Having been a convert from Slackware to Debian, he missed having a simple binary package that included Pine and Pico, and had grown tired of downloading them himself.

+

Finally something snapped inside and Chris coded and hacked like a madman for many hours straight one weekend to make a (barely usable) Pico clone, at the time called TIP (Tip Isn't Pico). The program could not be invoked without a filename, could not save files, had no help text display, spell checker, and so forth. But over time it improved, and with the help of a few great coders it matured to the (hopefully) stable state it is in today.

+

In February 2001, nano was declared an official GNU program by Richard Stallman. nano also reached its first production release on March 22, 2001.

+

1.3. Why the name change from TIP?

+

On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program "establishes a full duplex terminal connection to a remote host", and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).

+

1.4. What is the current version of nano?

+

The current version of nano should be 7.2. Of course, you should always check the nano homepage to see what the latest and greatest version is.

+

1.5. I want to read the man page without having to download the program!

+

Jeez, demanding, aren't we? Okay, look here.

+
+ +

2. Where to get GNU nano.

+

2.1. Web sites that carry nano.

+

The nano source tarballs can be downloaded from the following web sites:

+ +
+

2.2. RPM packages (RedHat, OpenSuse, and derivatives).

+
+ +
+

2.3. Deb packages (Debian and derivatives):

+

Debian users can check out the current nano packages for:

+ +

You can also have a look at the Package Pool to see all the available binary and source packages.

+
+

2.4. By git (for the brave).

+

For the "bleeding edge" current version of nano, you can use git to download the current source code. Note: believe it or not, by downloading code that has not yet stabilized into an official release, there could quite possibly be bugs, in fact the code may not even compile! Anyway, see the hacking document for info on getting and building nano from git.

+
+ +

3. Installation and Configuration

+

3.1. How do I install the RPM or DEB package?

+

It's simple really! As root, type rpm -Uvh nano-x.y-1*.rpm if you have a RedHat-ish system or dpkg -i nano_x.y-1*.deb if you have a Debian-ish system, where x.y is the version number of nano. There are other programs to install packages, and if you wish to use those, knock yourself out.

+

3.2. Compiling from source: WHAT THE HECK DO I DO NOW?

+

Okay, take a deep breath, this really isn't hard. Unpack the nano source with a command like:

+

tar -xvf nano-x.y.tar.gz

+

Then you need to run configure with any options you might want (if any).

+

The average case is this:

+

cd nano-x.y/
+ ./configure
+ make
+ make install   #(as root, of course)

+

3.3. Why does everything go into /usr/local?

+

Well, that's what the configure script defaults to. If you wish to change this, simply do this:

+

./configure --prefix=/usr

+

This will put nano into /usr/bin when you run make install.

+

3.4. nano should automatically run strip on the binary when installing it!

+

It does when you use make install-strip. The default make install does not, and will not, run strip automatically.

+

3.5. How can I make the executable smaller? This is too bloated!

+

Actually, there are several parts of the editor that can be disabled. You can pass arguments to the configure script that disable certain features. Here's a brief list:

+
+    --disable-browser       Disable the built-in file browser
+    --disable-color         Disable color and syntax highlighting
+    --disable-comment       Disable the comment/uncomment function
+    --disable-extra         Disable the easter egg
+    --disable-formatter     Disable the formatting tool
+    --disable-help          Disable the built-in help texts
+    --disable-histories     Disable the saving of search strings and cursor positions
+    --disable-justify       Disable the justify/unjustify functions
+    --disable-libmagic      Disable the use of libmagic for determining a file's syntax
+    --disable-linenumbers   Disable line numbering
+    --disable-linter        Disable the linting tool
+    --disable-mouse         Disable mouse support
+    --disable-multibuffer   Disable the opening of multiple file buffers
+    --disable-nanorc        Disable the use of .nanorc files
+    --disable-operatingdir  Disable the setting of an operating directory
+    --disable-speller       Disable the spell-checking tool
+    --disable-tabcomp       Disable the tab-completion functions
+    --disable-wordcomp      Disable the word-completion function
+    --disable-wrapping      Disable all hard-wrapping of text
+

There's also the --enable-tiny option which disables everything above, as well as some larger chunks of the program (like the undo/redo code and the code for selecting text). Also, if you know you don't need other languages, you can use --disable-nls to disable internationalization and save a few kilobytes. And finally, there's always good old strip to remove all unneeded symbols.

+
+

3.6. Tell me more about this multibuffer stuff!

+

To use multiple file buffers, you must not have configured nano with --disable-multibuffer nor with --enable-tiny (use nano -V to check the compilation options). Then when you want to insert a file into its own buffer instead of into the current file, just hit Meta-F after typing ^R. If you always want files to be loaded into their own buffers, use the -F or --multibuffer flag when you invoke nano, or add set multibuffer to your .nanorc file.

+

You can move between the buffers you have open with the Meta-< and Meta-> keys, or more easily without holding Shift: Meta-, and Meta-. (clear as mud, right? =-). When you have more than one buffer open, the ^X shortcut will say "Close", instead of "Exit".

+

3.7. Tell me more about this verbatim input stuff!

+

When you want to insert a literal character into the file you're editing, such as a control character that nano usually treats as a command, first press Meta-V (if you're not at a prompt, you'll get the message "Verbatim Input" on the status bar), then press the key(s) that generate the character you want.

+

Alternatively, if Unicode support is enabled (see section 5.3), you can press Meta-V and then type a six-digit hexadecimal code (from 000000 to 10FFFF, case-insensitive), and the character with the corresponding value will be inserted. The status bar will change to "Unicode Input: ......" when you do this.

+

3.8. How do I make a .nanorc file that will be read when I start nano?

+

It's not hard at all! Simply copy the sample.nanorc from the doc/ directory in the nano source package (or from /usr/doc/nano on your system) to .nanorc in your home directory, and then edit it. If you didn't get a sample nanorc, the syntax of the file is simple: features are turned on and off by using the words set and unset followed by the long option name of the feature (see man nanorc for the full list of options). For example, "set quickblank" or "set smarthome". Of course, for this to work, your nano must not have been compiled with --disable-nanorc.

+

3.9. Why does my self-compiled nano not read /etc/nanorc?

+

By default (see 3.3), nano gets installed into /usr/local. This also means that, at startup, nano will read /usr/local/etc/nanorc instead of /etc/nanorc. You can make a symlink from the former to the latter if you want your self-compiled nano to read the same nanorc as the system-installed nano. Or you can configure your nano to overwrite the system nano (again, see 3.3).

+
+ +

4. Running

+

4.1. Alt+Up does nothing on a Linux console. How can I make it scroll?

+

On Debian and its derivatives, the Alt+Up keystroke on a Linux console + produces by default a 'KeyboardSignal', which normally does absolutely nothing and is useless + for the average user. To get the keystroke to do what it ought to do (scroll the viewport + one row up), run this in a Linux console:

+

dumpkeys --full | sed s/KeyboardSignal/Up/ | sudo loadkeys -

+

You will need to run this command whenever you first switch to a Linux console.

+

Or you can (as root) execute the following little script just once:

+

for file in /etc/console-setup/cached*.kmap.gz; do
+     gunzip $file;
+     sed -i 's/KeyboardSignal/Up/' ${file%.gz};
+     gzip ${file%.gz};
+ done

+

4.2. How can I make Ctrl+Shift+Left/Right select words on urxvt?

+

The urxvt terminal emulator produces non-standard escape sequences for the modified cursor keys. These deviant sequences are not listed in the terminfo database, which means that ncurses does not recognize them. The easiest way around this is to tell urxvt to produce xterm-compatible escape sequences for the relevant keystrokes. To achieve this, add the following lines to your ~/.Xresources file:

+
+    URxvt.iso14755_52: False
+
+    URxvt.keysym.C-S-Up: \033[1;6A
+    URxvt.keysym.C-S-Down: \033[1;6B
+    URxvt.keysym.C-S-Right: \033[1;6C
+    URxvt.keysym.C-S-Left: \033[1;6D
+
+    URxvt.keysym.M-Up: \033[1;3A
+    URxvt.keysym.M-Down: \033[1;3B
+    URxvt.keysym.M-Right: \033[1;3C
+    URxvt.keysym.M-Left: \033[1;3D
+
+    URxvt.keysym.M-Insert: \033[2;3~
+    URxvt.keysym.M-Delete: \033[3;3~
+
+    URxvt.keysym.M-Page_Up: \033[5;3~
+    URxvt.keysym.M-Page_Down: \033[6;3~
+

Then run xrdb ~/.Xresources and restart your urxvt terminal. Now Ctrl+Shift+Left and Ctrl+Shift+Right will select words, Alt+Up and Alt+Down will scroll the text without moving the cursor, and several such things more.

+

4.3. Ack! My numeric keypad's keys don't work properly when NumLock is off! What can I do?

+

You can use the -K or --rawsequences option on the command line, or add the line set rawsequences to your .nanorc. However, nano's mouse support will be disabled if you do any of these things.

+

4.4. With what keystroke can I paste text from the clipboard into nano?

+

In most desktop environments Shift+Insert will paste the contents of the clipboard.

+

4.5. How do I select text for or paste text from the clipboard when nano's mouse support is turned on?

+

Try holding down the Shift key and selecting or pasting the text as you normally would.

+

4.6. When I paste text into a document, each line gets indented further than the last. Why? And how can I stop this?

+

You have the autoindent feature turned on. Hit Meta-I to turn it off, paste your text, and then hit Meta-I again to turn it back on.

+

Update: Since version 4.8, nano will suppress auto-indentation during a paste, so you no longer need to toggle it off and on manually.

+

4.7. When I paste from Windows into a remote nano, nano rewraps the lines. What gives?

+

When pasting from Windows, in some situations linefeeds are sent instead of carriage returns (Enters). And linefeeds are ^Js, which make nano justify (rewrap) the current paragraph. To prevent these linefeeds from causing these unwanted justifications, add this line to your .nanorc on the remote Linux box: unbind ^J main or bind ^J enter main, depending on whether the paste contains CR + LF or only LF.

+

Update: Since version 4.8, nano will ignore linefeed characters in a paste, so you no longer need the above workaround.

+

4.8. I've compiled nano with color support, but I don't see any color when I run it!

+

If you want nano to actually use color, you have to specify the color configurations you want it to use in your .nanorc. Several example configurations are in the syntax/ subdirectory of the nano source, which are normally installed to /usr/local/share/nano/. To enable all of them, uncomment the line # include "/usr/local/share/nano/*.nanorc" in your nanorc. See also section 3.9.

+

4.9. How do I make nano my default editor (in Pine, mutt, etc.)?

+

You need to make nano your $EDITOR. If you want this to be saved, you should put a line like this in your .bashrc if you use bash (or .zshrc if you believe in zsh):

+

export EDITOR=/usr/local/bin/nano

+

or, if you use tcsh, put this in your .cshrc file:

+

setenv EDITOR /usr/local/bin/nano

+

Change /usr/local/bin/nano to wherever nano is installed on your system. Type "which nano" to find out. This will not take effect until the next time you log in. So log out and back in again.

+

Then, on top of that, if you use Pine, you must go into setup (type S at the main menu), and then configure (type C). Hit Enter on the lines that say:

+

[ ] enable-alternate-editor-cmd
+ [ ] enable-alternate-editor-implicitly

+

Then exit (E) and select Yes (Y).

+

If you're a mutt user, you should see an effect immediately the next time you log in. No further configuration is needed. However, if you want to let people know you use nano to compose your email messages, you can put a line like this in your .muttrc:

+

my_hdr X-Composer: nano-x.y

+

Again, replace x.y with the version of nano you use.

+
+ +

5. Internationalization

+

5.1. There's no translation for my language!

+

In June 2001, GNU nano entered the Translation Project and since then, translations should be managed from there.

+

If there isn't a translation for your language, you could ask your language team to translate nano, or better still, join that team and do it yourself. Joining a team is easy. You just need to ask the team leader to add you, and then send a translation disclaimer to the FSF (this is necessary as nano is an official GNU package, but it does not mean that you transfer the rights of your work to the FSF, it's just so the FSF can legally manage them).

+

In any case, translating nano is easy. Just grab the latest nano.pot file listed on nano's page at the TP, and translate each msgid line into your native language on the msgstr line. When you're done, you should send it to the TP's central PO-file repository.

+

5.2. I don't like the translation for <x> in my language. How can I fix it?

+

The best way is to send an e-mail with your suggested corrections to the team's mailing list. The address is mentioned in the Language-Team: field in the relevant PO file. The team leader or the assigned translator can then make the changes reach the nano-devel list.

+

5.3. What is the status of Unicode support?

+

Unicode should be fully usable nowadays. When the encoding of your terminal is set to UTF-8, and your locale (mainly the LANG environment variable) is UTF-8 too, then you should be able to read, enter and save Unicode text.

+
+ +

6. Advocacy and Licensing

+

6.1. Why should I use nano instead of Pico?

+

If you want features like undo/redo, syntax highlighting, line numbers, soft-wrapping, opening multiple files at once, an interface localized to your language, or search and replace with support for regular expressions, then you want nano.

+

6.2. Why should I use Pico instead of nano?

+

If you use your editor only to write emails or other texts and have no need for the above-mentioned features, then Pico will do fine for you.

+

6.3. What is so bad about the older Pine license?

+

The U of W license for older versions of Pine and Pico is not considered truly Free Software according to both the Free Software Foundation and the Debian Free Software Guidelines. The main problem regards the limitations on distributing derived works: according to UW, you can distribute their software, and you can modify it, but you can not do both, i.e. distribute modified binaries.

+

6.4. Okay, well, what mail program should I use then?

+

If you are looking to use a Free Software program similar to Pine, and Emacs is not your thing, you should definitely take a look at mutt. It is a full-screen, console based mail program that actually has a lot more flexibility than Pine, but has a keymap included in the distribution that allows you to use the same keystrokes as Pine would to send and receive mail. It's also under the GNU General Public License, version 2.0.

+

Of course, due to the license change you can now use the Alpine distribution of PINE as it is now considered Free Software, but you would be sacrificing many of nano's features to do so.

+
+ +

7. Miscellaneous

+

7.1. Where can I ask questions or send suggestions?

+

There are three mailing lists for nano hosted at Savannah: info-nano, help-nano and nano-devel. info-nano is a very low traffic list where new versions of nano are announced (surprise!). help-nano is for getting help with the editor without needing to hear all of the development issues surrounding it. nano-devel is a normally low, sometimes high traffic list for discussing the present and future development of nano. Here are links to where you can sign up for a given list:

+

info-nano - https://lists.gnu.org/mailman/listinfo/info-nano/
+ help-nano - https://lists.gnu.org/mailman/listinfo/help-nano/
+ nano-devel - https://lists.gnu.org/mailman/listinfo/nano-devel/

+

7.3. How do I submit a bug report or patch?

+
+

The best way to submit bugs is through the Savannah bug tracker, as you can check whether the bug you are reporting has already been submitted, and it makes it easier for the maintainers to keep track of them. +

You can submit patches for nano via Savannah's patch manager.

+

7.3. I want to send the development team a big load of cash (or just a thank you).

+

That's fine. Send it our way! Better yet, fix a bug in the program or implement a cool feature and send us that instead (though cash is fine too).

+

7.4. How do I join the development team?

+

The easiest way is to consistently send in good patches that add some needed functionality, fix a bug or two, and/or make the program more optimized/efficient. Then ask nicely and you will probably be added to the Savannah development list and be given write access after a while. There is a lot of responsibility that goes along with being a team member, so don't think it's just something to add to your resume.

+

7.5. Can I have write access to the git tree?

+

Re-read section 7.4 and you should know the answer.

+
+ + + diff --git a/doc/nano.1 b/doc/nano.1 new file mode 100644 index 0000000..1eb19c5 --- /dev/null +++ b/doc/nano.1 @@ -0,0 +1,427 @@ +.\" Copyright (C) 1999-2011, 2013-2023 Free Software Foundation, Inc. +.\" +.\" This document is dual-licensed. You may distribute and/or modify it +.\" under the terms of either of the following licenses: +.\" +.\" * The GNU General Public License, as published by the Free Software +.\" Foundation, version 3 or (at your option) any later version. You +.\" should have received a copy of the GNU General Public License +.\" along with this program. If not, see +.\" . +.\" +.\" * The GNU Free Documentation License, as published by the Free +.\" Software Foundation, version 1.2 or (at your option) any later +.\" version, with no Invariant Sections, no Front-Cover Texts, and no +.\" Back-Cover Texts. You should have received a copy of the GNU Free +.\" Documentation License along with this program. If not, see +.\" . +.\" +.TH NANO 1 "version 7.2" "January 2023" + +.SH NAME +nano \- Nano's ANOther editor, inspired by Pico + +.SH SYNOPSIS +.B nano +.RI [ options "] [[\fB+" line [\fB, column "]] " file ]... +.sp +.BR nano " [" \fIoptions "] [[" + [ crCR ]( / | ? ) \fIstring "] " \fIfile ]... + +.SH DESCRIPTION +\fBnano\fP is a small and friendly editor. It copies the look and feel +of Pico, but is free software, and implements several features that Pico +lacks, such as: opening multiple files, scrolling per line, undo/redo, +syntax coloring, line numbering, and soft-wrapping overlong lines. +.sp +When giving a filename on the command line, the cursor can be put on a +specific line by adding the line number with a plus sign (\fB+\fR) before +the filename, and even in a specific column by adding it with a comma. +(Negative numbers count from the end of the file or line.) +The cursor can be put on the first or last occurrence of a specific string +by specifying that string after \fB+/\fR or \fB+?\fR before the filename. +The string can be made case sensitive and/or caused to be interpreted as a +regular expression by inserting \fBc\fR and/or \fBr\fR after the \fB+\fR sign. +These search modes can be explicitly disabled by using the uppercase variant +of those letters: \fBC\fR and/or \fBR\fR. When the string contains spaces, +it needs to be enclosed in quotes. To give an example: to open a file at +the first occurrence of the word "Foo", you would do: +.sp +.RS 4 +.BI "nano +c/Foo " file +.RE +.sp +As a special case: if instead of a filename a dash (\fB\-\fR) is given, +\fBnano\fR will read data from standard input. + +.SH EDITING +Entering text and moving around in a file is straightforward: typing the +letters and using the normal cursor movement keys. Commands are entered +by using the Control (^) and the Alt or Meta (M\-) keys. +Typing \fB^K\fR deletes the current line and puts it in the cutbuffer. +Consecutive \fB^K\fRs will put all deleted lines together in the cutbuffer. +Any cursor movement or executing any other command will cause the next +\fB^K\fR to overwrite the cutbuffer. A \fB^U\fR will paste the current +contents of the cutbuffer at the current cursor position. +.sp +When a more precise piece of text needs to be cut or copied, you can mark +its start with \fB^6\fR, move the cursor to its end (the marked text will be +highlighted), and then use \fB^K\fR to cut it, or \fBM\-6\fR to copy it to the +cutbuffer. You can also save the marked text to a file with \fB^O\fR, or +spell check it with \fB^T^T\fR. +.sp +On some terminals, text can be selected also by holding down Shift while +using the arrow keys. Holding down the Ctrl or Alt key too will increase +the stride. +Any cursor movement without Shift being held will cancel such a selection. +.sp +Any valid Unicode code point can be inserted into the buffer by typing +\fBM\-V\fR followed by the hexadecimal digits of the code point (concluded +with \fB\fR or \fB\fR when it are fewer than six digits). +A literal control code (except \fB^J\fR) can be inserted by typing +\fBM\-V\fR followed by the pertinent keystroke. +.sp +The two lines at the bottom of the screen show some important commands; +the built-in help (\fB^G\fR) lists all the available ones. +The default key bindings can be changed via a \fInanorc\fR file -- see +.BR nanorc (5). + +.SH OPTIONS +.TP +.BR \-A ", " \-\-smarthome +Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. +.TP +.BR \-B ", " \-\-backup +When saving a file, back up the previous version of it, using the current +filename suffixed with a tilde (\fB~\fP). +.TP +.BR \-C\ \fIdirectory ", " \-\-backupdir= \fIdirectory +Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved -- when backups are enabled (\fB\-B\fR). +The uniquely numbered files are stored in the specified \fIdirectory\fR. +.TP +.BR \-D ", " \-\-boldtext +For the interface, use bold instead of reverse video. This will be overridden +by setting the options \fBtitlecolor\fP, \fBstatuscolor\fP, \fBkeycolor\fP, +\fBfunctioncolor\fP, \fBnumbercolor\fP, and/or \fBselectedcolor\fP in your +nanorc file. See \fBnanorc\fR(5). +.TP +.BR \-E ", " \-\-tabstospaces +Convert each typed tab to spaces -- to the number of spaces +that a tab at that position would take up. +.TP +.BR \-F ", " \-\-multibuffer +Read a file into a new buffer by default. +.TP +.BR \-G ", " \-\-locking +Use vim-style file locking when editing files. +.TP +.BR \-H ", " \-\-historylog +Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. +.TP +.BR \-I ", " \-\-ignorercfiles +Don't look at the system's \fInanorc\fR nor at the user's \fInanorc\fR. +.TP +.BR \-J\ \fInumber ", " \-\-guidestripe= \fInumber +Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with \fBset stripecolor\fR +in your \fInanorc\fR file.) +.TP +.BR \-K ", " \-\-rawsequences +Interpret escape sequences directly, instead of asking \fBncurses\fR +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables \fBnano\fR's mouse support. +.TP +.BR \-L ", " \-\-nonewlines +Don't automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) +.TP +.BR \-M ", " \-\-trimblanks +Snip trailing whitespace from the wrapped line when automatic +hard-wrapping occurs or when text is justified. +.TP +.BR \-N ", " \-\-noconvert +Disable automatic conversion of files from DOS/Mac format. +.TP +.BR \-O ", " \-\-bookstyle +When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). +.TP +.BR \-P ", " \-\-positionlog +For the 200 most recent files, log the last position of the cursor, +and place it at that position again upon reopening such a file. +.TP +.BR "\-Q ""\fIregex\fB""" ", " "\-\-quotestr=""" \fIregex """ +Set the regular expression for matching the quoting part of a line. +The default value is "\fB^([\ \\t]*([!#%:;>|}]|//))+\fR". +(Note that \fB\\t\fP stands for an actual Tab.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. +.TP +.BR \-R ", " \-\-restricted +Restricted mode: don't read or write to any file not specified on the +command line. This means: don't read or write history files; +don't allow suspending; don't allow spell checking; +don't allow a file to be appended to, prepended to, or saved under a +different name if it already has one; and don't make backup files. +Restricted mode can also be activated by invoking \fBnano\fP +with any name beginning with 'r' (e.g. "rnano"). +.TP +.BR \-S ", " \-\-softwrap +Display over multiple screen rows lines that exceed the screen's width. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen's edge, by using also \fB\-\-atblanks\fR.) +(The old short option, \fB\-$\fR, is deprecated.) +.TP +.BR \-T\ \fInumber ", " \-\-tabsize= \fInumber +Set the size (width) of a tab to \fInumber\fP columns. The value of +\fInumber\fR must be greater than 0. The default value is \fB8\fR. +.TP +.BR \-U ", " \-\-quickblank +Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option \fB\-c\fR (\fB\-\-constantshow\fR) overrides this. +When option \fB\-\-minibar\fR or \fB\-\-zero\fR is in effect, +\fB\-\-quickblank\fR makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. +. +.TP +.BR \-V ", " \-\-version +Show the current version number and exit. +.TP +.BR \-W ", " \-\-wordbounds +Detect word boundaries differently by treating punctuation +characters as part of a word. +.TP +.BR "\-X ""\fIcharacters\fB""" ", " "\-\-wordchars=""" \fIcharacters """ +Specify which other characters (besides the normal alphanumeric ones) +should be considered as part of a word. When using this option, you +probably want to omit \fB\-W\fR (\fB\-\-wordbounds\fR). +.TP +.BR \-Y\ \fIname ", " \-\-syntax= \fIname +Specify the name of the syntax highlighting to use from among the ones +defined in the \fInanorc\fP files. +.TP +.BR \-Z ", " \-\-zap +Let an unmodified Backspace or Delete erase the marked region +(instead of a single character, and without affecting the cutbuffer). +.TP +.BR \-a ", " \-\-atblanks +When doing soft line wrapping, wrap lines at whitespace +instead of always at the edge of the screen. +.TP +.BR \-b ", " \-\-breaklonglines +Automatically hard-wrap the current line when it becomes overlong. +(This option is the opposite of \fB\-w\fR (\fB\-\-nowrap\fR) -- +the last one given takes effect.) +.TP +.BR \-c ", " \-\-constantshow +Constantly show the cursor position on the status bar. +Note that this overrides option \fB\-U\fR (\fB\-\-quickblank\fR). +.TP +.BR \-d ", " \-\-rebinddelete +Interpret the Delete and Backspace keys differently so that both Backspace +and Delete work properly. You should only use this option when on your +system either Backspace acts like Delete or Delete acts like Backspace. +.TP +.BR \-e ", " \-\-emptyline +Do not use the line below the title bar, leaving it entirely blank. +.TP +.BR \-f\ \fIfile ", " \-\-rcfile= \fIfile +Read only this \fIfile\fR for setting nano's options, instead of reading +both the system-wide and the user's nanorc files. +.TP +.BR \-g ", " \-\-showcursor +Make the cursor visible in the file browser (putting it on the +highlighted item) and in the help viewer. Useful for braille users +and people with poor vision. +.TP +.BR \-h ", " \-\-help +Show a summary of the available command-line options and exit. +.TP +.BR \-i ", " \-\-autoindent +Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). +.TP +.BR \-j ", " \-\-jumpyscrolling +Scroll the buffer contents per half-screen instead of per line. +.TP +.BR \-k ", " \-\-cutfromcursor +Make the 'Cut Text' command (normally \fB^K\fR) cut from the current cursor +position to the end of the line, instead of cutting the entire line. +.TP +.BR \-l ", " \-\-linenumbers +Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) +.TP +.BR \-m ", " \-\-mouse +Enable mouse support, if available for your system. When enabled, mouse +clicks can be used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X Window +System, and on the console when gpm is running. Text can still be +selected through dragging by holding down the Shift key. +.TP +.BR \-n ", " \-\-noread +Treat any name given on the command line as a new file. This allows +\fBnano\fR to write to named pipes: it will start with a blank buffer, +and will write to the pipe when the user saves the "file". This way +\fBnano\fR can be used as an editor in combination with for instance +\fBgpg\fR without having to write sensitive data to disk first. +.TP +.BR \-o\ \fIdirectory ", " \-\-operatingdir= \fIdirectory +Set the operating directory. This makes \fBnano\fP set up something +similar to a chroot. +.TP +.BR \-p ", " \-\-preserve +Preserve the XON and XOFF sequences (\fB^Q\fR and \fB^S\fR) so they +will be caught by the terminal. +.TP +.BR \-q ", " \-\-indicator +Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. +.TP +.BR \-r\ \fInumber ", " \-\-fill= \fInumber +Set the target width for justifying and automatic hard-wrapping at this +\fInumber\fR of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus \fInumber\fR columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is \fB\-8\fR. +.TP +.B "\-s ""\fIprogram\fR [\fIargument \fR...]\fB""\fR, \fB\-\-speller=""\fIprogram\fR [\fIargument \fR...]\fB""" +Use this command to perform spell checking and correcting, instead of +using the built-in corrector that calls \fBhunspell\fR(1) or \fBspell\fR(1). +.TP +.BR \-t ", " \-\-saveonexit +Save a changed buffer without prompting (when exiting with \fB^X\fR). +.TP +.BR \-u ", " \-\-unix +Save a file by default in Unix format. This overrides nano's +default behavior of saving a file in the format that it had. +(This option has no effect when you also use \fB\-\-noconvert\fR.) +.TP +.BR \-v ", " \-\-view +Just view the file and disallow editing: read-only mode. +This mode allows the user to open also other files for viewing, +unless \fB\-\-restricted\fR is given too. +.TP +.BR \-w ", " \-\-nowrap +Do not automatically hard-wrap the current line when it becomes overlong. +This is the default. (This option is the opposite of \fB\-b\fR +(\fB\-\-breaklonglines\fR) -- the last one given takes effect.) +.TP +.BR \-x ", " \-\-nohelp +Don't show the two help lines at the bottom of the screen. +.TP +.BR \-y ", " \-\-afterends +Make Ctrl+Right and Ctrl+Delete stop at word ends instead of beginnings. +.TP +.BR \-! ", " \-\-magic +When neither the file's name nor its first line give a clue, +try using libmagic to determine the applicable syntax. +.TP +.BR \-% ", " \-\-stateflags +Use the top-right corner of the screen for showing some state flags: +\fBI\fR when auto-indenting, \fBM\fR when the mark is on, \fBL\fR when +hard-wrapping (breaking long lines), \fBR\fR when recording a macro, +and \fBS\fR when soft-wrapping. +When the buffer is modified, a star (\fB*\fR) is shown after the +filename in the center of the title bar. +.TP +.BR \-_ ", " \-\-minibar +Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by \fB\-\-stateflags\fR, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +\fB\-\-constantshow\fR is used, and can be toggled on and off with \fBM\-C\fR. +The state flags are displayed only when \fB\-\-stateflags\fR is used. +.TP +.BR \-0 ", " \-\-zero +Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With \fBM\-Z\fR the title bar plus status bar can be toggled. +With \fBM\-X\fR the help lines. + +.SH TOGGLES +Several of the above options can be switched on and off also while +\fBnano\fR is running. For example, \fBM\-L\fR toggles the +hard-wrapping of long lines, \fBM\-S\fR toggles soft-wrapping, +\fBM\-N\fR toggles line numbers, \fBM\-M\fR toggles the mouse, +\fBM\-I\fR auto-indentation, and \fBM\-X\fR the help lines. +See at the end of the \fB^G\fR help text for a complete list. +.sp +The \fBM\-X\fR toggle is special: it works in all menus except +the help viewer and the linter. All other toggles work in +the main menu only. + +.SH FILES +When \fB\-\-rcfile\fR is given, \fBnano\fR will read just the specified file +for setting its options and syntaxes and key bindings. Without that option, +\fBnano\fR will read two configuration files: first the system's +\fInanorc\fR (if it exists), and then the user's \fInanorc\fR (if it +exists), either \fI~/.nanorc\fR or \fI$XDG_CONFIG_HOME/nano/nanorc\fR +or \fI~/.config/nano/nanorc\fR, whichever is encountered first. See +.BR nanorc (5) +for more information on the possible contents of those files. +.sp +See \fI/usr/share/nano/\fR and \fI/usr/share/nano/extra/\fR +for available syntax-coloring definitions. + +.SH NOTES +Option \fB\-z\fR (\fB\-\-suspendable\fR) has been removed. +Suspension is enabled by default, reachable via \fB^T^Z\fR. +(If you want a plain \fB^Z\fR to suspend nano, add +\fBbind ^Z suspend main\fR to your nanorc.) +.sp +If no alternative spell checker command is specified on the command +line nor in one of the \fInanorc\fP files, \fBnano\fP will check the +\fBSPELL\fP environment variable for one. +.sp +In some cases \fBnano\fP will try to dump the buffer into an emergency +file. This will happen mainly if \fBnano\fP receives a SIGHUP or +SIGTERM or runs out of memory. It will write the buffer into a file +named \fInano.save\fP if the buffer didn't have a name already, or will +add a ".save" suffix to the current filename. If an emergency file with +that name already exists in the current directory, it will add ".save" +plus a number (e.g.\& ".save.1") to the current filename in order to make +it unique. In multibuffer mode, \fBnano\fP will write all the open +buffers to their respective emergency files. + +.SH BUGS +The recording and playback of keyboard macros works correctly only on a +terminal emulator, not on a Linux console (VT), because the latter does +not by default distinguish modified from unmodified arrow keys. +.sp +Please report any other bugs that you encounter via: +.br +.IR https://savannah.gnu.org/bugs/?group=nano . +.sp +When nano crashes, it will save any modified buffers to emergency .save files. +If you are able to reproduce the crash and you want to get a backtrace, define +the environment variable \fBNANO_NOCATCH\fR. + +.SH HOMEPAGE +.I https://nano\-editor.org/ + +.SH SEE ALSO +.BR nanorc (5) +.sp +\fI/usr/share/doc/nano/\fP (or equivalent on your system) diff --git a/doc/nano.1.html b/doc/nano.1.html new file mode 100644 index 0000000..50e6e6c --- /dev/null +++ b/doc/nano.1.html @@ -0,0 +1,707 @@ + + + + + + + + + +NANO + + + + +

NANO

+ +NAME
+SYNOPSIS
+DESCRIPTION
+EDITING
+OPTIONS
+TOGGLES
+FILES
+NOTES
+BUGS
+HOMEPAGE
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

nano - +Nano’s ANOther editor, inspired by Pico

+ +

SYNOPSIS + +

+ + +

nano +[options] +[[+line[,column]] +file]...

+ +

nano +[options] +[[+[crCR](/|?)string] +file]...

+ +

DESCRIPTION + +

+ + +

nano is +a small and friendly editor. It copies the look and feel of +Pico, but is free software, and implements several features +that Pico lacks, such as: opening multiple files, scrolling +per line, undo/redo, syntax coloring, line numbering, and +soft-wrapping overlong lines.

+ +

When giving a +filename on the command line, the cursor can be put on a +specific line by adding the line number with a plus sign +(+) before the filename, and even in a specific +column by adding it with a comma. (Negative numbers count +from the end of the file or line.) The cursor can be put on +the first or last occurrence of a specific string by +specifying that string after +/ or +? before +the filename. The string can be made case sensitive and/or +caused to be interpreted as a regular expression by +inserting c and/or r after the + sign. +These search modes can be explicitly disabled by using the +uppercase variant of those letters: C and/or +R. When the string contains spaces, it needs to be +enclosed in quotes. To give an example: to open a file at +the first occurrence of the word "Foo", you would +do:

+ +

nano ++c/Foo file

+ +

As a special +case: if instead of a filename a dash (-) is given, +nano will read data from standard input.

+ +

EDITING + +

+ + +

Entering text +and moving around in a file is straightforward: typing the +letters and using the normal cursor movement keys. Commands +are entered by using the Control (^) and the Alt or Meta +(M-) keys. Typing ^K deletes the current line and +puts it in the cutbuffer. Consecutive ^Ks will put +all deleted lines together in the cutbuffer. Any cursor +movement or executing any other command will cause the next +^K to overwrite the cutbuffer. A ^U will paste +the current contents of the cutbuffer at the current cursor +position.

+ +

When a more +precise piece of text needs to be cut or copied, you can +mark its start with ^6, move the cursor to its end +(the marked text will be highlighted), and then use +^K to cut it, or M-6 to copy it to the +cutbuffer. You can also save the marked text to a file with +^O, or spell check it with ^T^T.

+ +

On some +terminals, text can be selected also by holding down Shift +while using the arrow keys. Holding down the Ctrl or Alt key +too will increase the stride. Any cursor movement without +Shift being held will cancel such a selection.

+ +

Any valid +Unicode code point can be inserted into the buffer by typing +M-V followed by the hexadecimal digits of the code +point (concluded with <Space> or +<Enter> when it are fewer than six digits). A +literal control code (except ^J) can be inserted by +typing M-V followed by the pertinent keystroke.

+ +

The two lines +at the bottom of the screen show some important commands; +the built-in help (^G) lists all the available ones. +The default key bindings can be changed via a nanorc +file -- see nanorc(5).

+ +

OPTIONS + +

+ + +

-A, +--smarthome

+ +

Make the Home key smarter. When +Home is pressed anywhere but at the very beginning of +non-whitespace characters on a line, the cursor will jump to +that beginning (either forwards or backwards). If the cursor +is already at that position, it will jump to the true +beginning of the line.

+ +

-B, --backup

+ +

When saving a file, back up the +previous version of it, using the current filename suffixed +with a tilde (~).

+ + +

-C directory, +--backupdir=directory

+ +

Make and keep not just one +backup file, but make and keep a uniquely numbered one every +time a file is saved -- when backups are enabled +(-B). The uniquely numbered files are stored in the +specified directory.

+ +

-D, +--boldtext

+ +

For the interface, use bold +instead of reverse video. This will be overridden by setting +the options titlecolor, statuscolor, +keycolor, functioncolor, numbercolor, +and/or selectedcolor in your nanorc file. See +nanorc(5).

+ +

-E, +--tabstospaces

+ +

Convert each typed tab to +spaces -- to the number of spaces that a tab at that +position would take up.

+ +

-F, +--multibuffer

+ +

Read a file into a new buffer +by default.

+ +

-G, --locking

+ +

Use vim-style file locking when +editing files.

+ +

-H, +--historylog

+ +

Save the last hundred search +strings and replacement strings and executed commands, so +they can be easily reused in later sessions.

+ +

-I, +--ignorercfiles

+ +

Don’t look at the +system’s nanorc nor at the user’s +nanorc.

+ +

-J number, +--guidestripe=number

+ +

Draw a vertical stripe at the +given column, to help judge the width of the text. (The +color of the stripe can be changed with set +stripecolor in your nanorc file.)

+ +

-K, +--rawsequences

+ +

Interpret escape sequences +directly, instead of asking ncurses to translate +them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description +that is used does not fully match the actual behavior of +your terminal. This can happen when you ssh into a BSD +machine, for example.) Using this option disables +nano’s mouse support.

+ +

-L, +--nonewlines

+ +

Don’t automatically add a +newline when a text does not end with one. (This can cause +you to save non-POSIX text files.)

+ +

-M, +--trimblanks

+ +

Snip trailing whitespace from +the wrapped line when automatic hard-wrapping occurs or when +text is justified.

+ +

-N, +--noconvert

+ +

Disable automatic conversion of +files from DOS/Mac format.

+ +

-O, +--bookstyle

+ +

When justifying, treat any line +that starts with whitespace as the beginning of a paragraph +(unless auto-indenting is on).

+ +

-P, +--positionlog

+ +

For the 200 most recent files, +log the last position of the cursor, and place it at that +position again upon reopening such a file.

+ +

-Q +"regex", +--quotestr="regex"

+ +

Set the regular expression for +matching the quoting part of a line. The default value is +"^([ \t]*([!#%:;>|}]|//))+". (Note +that \t stands for an actual Tab.) This makes it +possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing +source code.

+ +

-R, +--restricted

+ +

Restricted mode: don’t +read or write to any file not specified on the command line. +This means: don’t read or write history files; +don’t allow suspending; don’t allow spell +checking; don’t allow a file to be appended to, +prepended to, or saved under a different name if it already +has one; and don’t make backup files. Restricted mode +can also be activated by invoking nano with any name +beginning with ’r’ (e.g. "rnano").

+ +

-S, +--softwrap

+ +

Display over multiple screen +rows lines that exceed the screen’s width. (You can +make this soft-wrapping occur at whitespace instead of +rudely at the screen’s edge, by using also +--atblanks.) (The old short option, -$, is +deprecated.)

+ +

-T number, +--tabsize=number

+ +

Set the size (width) of a tab +to number columns. The value of number must be +greater than 0. The default value is 8.

+ +

-U, +--quickblank

+ +

Make status-bar messages +disappear after 1 keystroke instead of after 20. Note that +option -c (--constantshow) overrides this. +When option --minibar or --zero is in effect, +--quickblank makes a message disappear after 0.8 +seconds instead of after the default 1.5 seconds.

+ +

-V, --version

+ +

Show the current version number +and exit.

+ +

-W, +--wordbounds

+ +

Detect word boundaries +differently by treating punctuation characters as part of a +word.

+ +

-X +"characters", +--wordchars="characters"

+ +

Specify which other characters +(besides the normal alphanumeric ones) should be considered +as part of a word. When using this option, you probably want +to omit -W (--wordbounds).

+ +

-Y name, +--syntax=name

+ +

Specify the name of the syntax +highlighting to use from among the ones defined in the +nanorc files.

+ +

-Z, --zap

+ +

Let an unmodified Backspace or +Delete erase the marked region (instead of a single +character, and without affecting the cutbuffer).

+ +

-a, +--atblanks

+ +

When doing soft line wrapping, +wrap lines at whitespace instead of always at the edge of +the screen.

+ +

-b, +--breaklonglines

+ +

Automatically hard-wrap the +current line when it becomes overlong. (This option is the +opposite of -w (--nowrap) -- the last one +given takes effect.)

+ +

-c, +--constantshow

+ +

Constantly show the cursor +position on the status bar. Note that this overrides option +-U (--quickblank).

+ +

-d, +--rebinddelete

+ +

Interpret the Delete and +Backspace keys differently so that both Backspace and Delete +work properly. You should only use this option when on your +system either Backspace acts like Delete or Delete acts like +Backspace.

+ +

-e, +--emptyline

+ +

Do not use the line below the +title bar, leaving it entirely blank.

+ +

-f file, +--rcfile=file

+ +

Read only this file for +setting nano’s options, instead of reading both the +system-wide and the user’s nanorc files.

+ +

-g, +--showcursor

+ +

Make the cursor visible in the +file browser (putting it on the highlighted item) and in the +help viewer. Useful for braille users and people with poor +vision.

+ +

-h, --help

+ +

Show a summary of the available +command-line options and exit.

+ +

-i, +--autoindent

+ +

Automatically indent a newly +created line to the same number of tabs and/or spaces as the +previous line (or as the next line if the previous line is +the beginning of a paragraph).

+ +

-j, +--jumpyscrolling

+ +

Scroll the buffer contents per +half-screen instead of per line.

+ +

-k, +--cutfromcursor

+ +

Make the ’Cut Text’ +command (normally ^K) cut from the current cursor +position to the end of the line, instead of cutting the +entire line.

+ +

-l, +--linenumbers

+ +

Display line numbers to the +left of the text area. (Any line with an anchor additionally +gets a mark in the margin.)

+ +

-m, --mouse

+ +

Enable mouse support, if +available for your system. When enabled, mouse clicks can be +used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X +Window System, and on the console when gpm is running. Text +can still be selected through dragging by holding down the +Shift key.

+ +

-n, --noread

+ +

Treat any name given on the +command line as a new file. This allows nano to write +to named pipes: it will start with a blank buffer, and will +write to the pipe when the user saves the "file". +This way nano can be used as an editor in combination +with for instance gpg without having to write +sensitive data to disk first.

+ + +

-o directory, +--operatingdir=directory

+ +

Set the operating directory. +This makes nano set up something similar to a +chroot.

+ +

-p, +--preserve

+ +

Preserve the XON and XOFF +sequences (^Q and ^S) so they will be caught +by the terminal.

+ +

-q, +--indicator

+ +

Display a "scrollbar" +on the righthand side of the edit window. It shows the +position of the viewport in the buffer and how much of the +buffer is covered by the viewport.

+ +

-r number, +--fill=number

+ +

Set the target width for +justifying and automatic hard-wrapping at this number +of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus number columns, +allowing the wrap point to vary along with the width of the +screen if the screen is resized. The default value is +-8.

+ +

-s "program +[argument ...]", +--speller="program [argument +...]"

+ +

Use this command to perform +spell checking and correcting, instead of using the built-in +corrector that calls hunspell(1) or +spell(1).

+ +

-t, +--saveonexit

+ +

Save a changed buffer without +prompting (when exiting with ^X).

+ +

-u, --unix

+ +

Save a file by default in Unix +format. This overrides nano’s default behavior of +saving a file in the format that it had. (This option has no +effect when you also use --noconvert.)

+ +

-v, --view

+ +

Just view the file and disallow +editing: read-only mode. This mode allows the user to open +also other files for viewing, unless --restricted is +given too.

+ +

-w, --nowrap

+ +

Do not automatically hard-wrap +the current line when it becomes overlong. This is the +default. (This option is the opposite of -b +(--breaklonglines) -- the last one given takes +effect.)

+ +

-x, --nohelp

+ +

Don’t show the two help +lines at the bottom of the screen.

+ +

-y, +--afterends

+ +

Make Ctrl+Right and Ctrl+Delete +stop at word ends instead of beginnings.

+ +

-!, --magic

+ +

When neither the file’s +name nor its first line give a clue, try using libmagic to +determine the applicable syntax.

+ +

-%, +--stateflags

+ +

Use the top-right corner of the +screen for showing some state flags: I when +auto-indenting, M when the mark is on, L when +hard-wrapping (breaking long lines), R when recording +a macro, and S when soft-wrapping. When the buffer is +modified, a star (*) is shown after the filename in +the center of the title bar.

+ +

-_, --minibar

+ +

Suppress the title bar and +instead show information about the current buffer at the +bottom of the screen, in the space for the status bar. In +this "minibar" the filename is shown on the left, +followed by an asterisk if the buffer has been modified. On +the right are displayed the current line and column number, +the code of the character under the cursor (in Unicode +format: U+xxxx), the same flags as are shown by +--stateflags, and a percentage that expresses how far +the cursor is into the file (linewise). When a file is +loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the +filename. This number is cleared upon the next keystroke, or +replaced with an [i/n] counter when multiple buffers are +open. The line plus column numbers and the character code +are displayed only when --constantshow is used, and +can be toggled on and off with M-C. The state flags +are displayed only when --stateflags is used.

+ +

-0, --zero

+ +

Hide all elements of the +interface (title bar, status bar, and help lines) and use +all rows of the terminal for showing the contents of the +buffer. The status bar appears only when there is a +significant message, and disappears after 1.5 seconds or +upon the next keystroke. With M-Z the title bar plus +status bar can be toggled. With M-X the help +lines.

+ +

TOGGLES + +

+ + +

Several of the +above options can be switched on and off also while +nano is running. For example, M-L toggles the +hard-wrapping of long lines, M-S toggles +soft-wrapping, M-N toggles line numbers, M-M +toggles the mouse, M-I auto-indentation, and +M-X the help lines. See at the end of the ^G +help text for a complete list.

+ +

The M-X +toggle is special: it works in all menus except the help +viewer and the linter. All other toggles work in the main +menu only.

+ +

FILES + +

+ + +

When +--rcfile is given, nano will read just the +specified file for setting its options and syntaxes and key +bindings. Without that option, nano will read two +configuration files: first the system’s nanorc +(if it exists), and then the user’s nanorc (if +it exists), either ~/.nanorc or +$XDG_CONFIG_HOME/nano/nanorc or +~/.config/nano/nanorc, whichever is encountered +first. See nanorc(5) for more information on the +possible contents of those files.

+ +

See +/usr/share/nano/ and /usr/share/nano/extra/ +for available syntax-coloring definitions.

+ +

NOTES + +

+ + +

Option +-z (--suspendable) has been removed. +Suspension is enabled by default, reachable via ^T^Z. +(If you want a plain ^Z to suspend nano, add bind +^Z suspend main to your nanorc.)

+ +

If no +alternative spell checker command is specified on the +command line nor in one of the nanorc files, +nano will check the SPELL environment variable +for one.

+ +

In some cases +nano will try to dump the buffer into an emergency +file. This will happen mainly if nano receives a +SIGHUP or SIGTERM or runs out of memory. It will write the +buffer into a file named nano.save if the buffer +didn’t have a name already, or will add a +".save" suffix to the current filename. If an +emergency file with that name already exists in the current +directory, it will add ".save" plus a number (e.g. +".save.1") to the current filename in order to +make it unique. In multibuffer mode, nano will write +all the open buffers to their respective emergency +files.

+ +

BUGS + +

+ + +

The recording +and playback of keyboard macros works correctly only on a +terminal emulator, not on a Linux console (VT), because the +latter does not by default distinguish modified from +unmodified arrow keys.

+ +

Please report +any other bugs that you encounter via:
+https://savannah.gnu.org/bugs/?group=nano
.

+ +

When nano +crashes, it will save any modified buffers to emergency +.save files. If you are able to reproduce the crash and you +want to get a backtrace, define the environment variable +NANO_NOCATCH.

+ +

HOMEPAGE + +

+ + + +

https://nano-editor.org/

+ +

SEE ALSO + +

+ + + +

nanorc(5)

+ + +

/usr/share/doc/nano/ +(or equivalent on your system)

+
+ + diff --git a/doc/nano.html b/doc/nano.html new file mode 100644 index 0000000..0711623 --- /dev/null +++ b/doc/nano.html @@ -0,0 +1,2355 @@ + + + + + +The GNU nano text editor + + + + + + + + + + + + + +

The GNU nano text editor

+ + + + + + + + + + + + + +

This manual documents GNU nano, version 7.2. +

+ + + + + + + + + + + + + + + +
+

1 Introduction

+ +

GNU nano is a small and friendly text editor. Besides +basic text editing, nano offers features like undo/redo, +syntax coloring, interactive search-and-replace, auto-indentation, +line numbers, word completion, file locking, backup files, and +internationalization support. +

+

The original goal for nano was to be a complete bug-for-bug +emulation of Pico. But currently the goal is to be as compatible +as is reasonable while offering a superset of Pico’s functionality. +See Pico Compatibility for more details on how nano and +Pico differ. +

+

Starting with version 4.0, nano no longer hard-wraps an overlong +line by default. It further uses linewise scrolling by default, and by +default includes the line below the title bar into the editing area. +If you want the old, Pico behavior back, you can use the +following options: --breaklonglines, +--jumpyscrolling, and --emptyline +(or -bje). +

+

Please report bugs via https://savannah.gnu.org/bugs/?group=nano. +

+

For background information see https://nano-editor.org/. +

+ +
+

2 Invoking

+ +

The usual way to invoke nano is: +

+
+
nano [FILE]
+
+ +

But it is also possible to specify one or more options (see Command-line Options), +and to edit several files in a row. Additionally, the cursor +can be put on a specific line of a file by adding the line number +with a plus sign before the filename, and even in a specific column by +adding it with a comma. +(Negative numbers count from the end of the file or line.) +The cursor can also be put on the first or last occurrence of a specific string +by specifying that string after +/ or +? before the filename. +The string can be made case sensitive and/or caused to be interpreted as a +regular expression by inserting a c and/or r after the plus sign. +These search modes can be explicitly disabled by using the uppercase variant +of those letters: C and/or R. When the string contains spaces, +it needs to be enclosed in quotes. +A more complete command synopsis thus is: +

+
+
nano [OPTION]… [[+LINE[,COLUMN]|+[crCR](/|?)STRING] FILE]…
+
+ +

Normally, however, you set your preferred options in a nanorc +file (see Nanorc Files). And when using set positionlog +(making nano remember the cursor position when you close a file), +you will rarely need to specify a line number. +

+

As a special case: when instead of a filename a dash is given, nano +will read data from standard input. This means you can pipe the output of +a command straight into a buffer, and then edit it. +

+ +
+

3 Editor Basics

+ + + + + + + + + + + + + +
+

3.1 Screen Layout

+ +

The default screen of nano consists of four areas. +From top to bottom these are: the title bar, the edit window, +the status bar, and two help lines. +

+

The title bar consists of +three sections: left, center and right. The section on the left +displays the version of nano being used. The center section +displays the current filename, or "New Buffer" if the file has not yet +been named. The section on the right displays "Modified" if the +file has been modified since it was last saved or opened. +

+

The status bar is the third line from the bottom of the screen. It +shows important and informational messages. Any error messages that +occur from using the editor will appear on the status bar. Any questions +that are asked of the user will be asked on the status bar, and any user +input (search strings, filenames, etc.) will be input on the status bar. +

+

The two help lines at the bottom of the screen show some of the most +essential functions of the editor. +

+
+

3.2 Entering Text

+ +

nano is a "modeless" editor. This means that all keystrokes, +with the exception of Control and Meta sequences, enter text into the +file being edited. +

+

Characters not present on the keyboard can be entered in two ways: +

+
    +
  • For characters with a single-byte code, +pressing the Esc key twice and then typing a three-digit decimal number +(from 000 to 255) will make nano behave as if you +typed the key with that value. + +
  • For any possible character, pressing M-V (Alt+V) and then typing a +series of hexadecimal digits (at most six, or concluded with Enter or +Space) will enter the corresponding Unicode character into the buffer. +
+ +

For example, typing Esc Esc 2 3 4 will enter the character "ê" — +useful when writing about a French party. Typing M-V 0 0 2 2 c 4 +will enter the symbol "⋄", a little diamond. +

+

Typing M-V followed by anything other than a hexadecimal digit +will enter this keystroke verbatim into the buffer, allowing the user +to insert literal control codes (except ^J) or escape sequences. +

+
+

3.3 Commands

+ +

Commands are given by using the Control key (Ctrl, shown as ^) +or the Meta key (Alt or Cmd, shown as M-). +

+
    +
  • A control-key sequence is entered by holding down the Ctrl key and +pressing the desired key. + +
  • A meta-key sequence is entered by holding down the Meta key (normally +the Alt key) and pressing the desired key. +
+ +

If for some reason on your system the combinations with Ctrl or Alt do +not work, you can generate them by using the Esc key. A control-key +sequence is generated by pressing the Esc key twice and then pressing +the desired key, and a meta-key sequence by pressing the Esc key once +and then pressing the desired key. +

+
+

3.4 The Cutbuffer

+ +

Text can be cut from a file a whole line at a time with ^K. +The cut line is stored in the cutbuffer. Consecutive strokes of ^K +will add each cut line to this buffer, but a ^K +after any other keystroke will overwrite the entire cutbuffer. +

+

The contents of the cutbuffer can be pasted at the current cursor position +with ^U. +

+

A line of text can be copied into the cutbuffer (without cutting it) +with M-6. +

+
+

3.5 The Mark

+ +

Text can be selected by first ’setting the Mark’ with ^6 +or M-A and then moving the cursor to the other end of the portion +to be selected. The selected portion of text will be highlighted. +This selection can now be cut or copied in its entirety with a single +^K or M-6. Or the selection can be used to limit the scope of +a search-and-replace (^\) or spell-checking session (^T^T). +

+

On some terminals, text can be selected also by holding down Shift +while using the cursor keys. Holding down the Ctrl or Alt +key too will increase the stride. Such a selection is cancelled +upon any cursor movement where Shift isn’t held. +

+

Cutting or copying selected text toggles off the mark automatically. +If needed, it can be toggled off manually with another ^6 or M-A. +

+
+

3.6 Search and Replace

+ +

One can search the current buffer for the occurrence of any string +with the Search command (default key binding: ^W). The default search +mode is forward, case-insensitive, and for literal strings. But one +can search backwards by pressing M-B, search case sensitively with M-C, +and interpret regular expressions in the search string with M-R. +

+

A regular expression in a search string always covers just one line; +it cannot span multiple lines. And when replacing (with ^\ or M-R) +the replacement string cannot contain a newline (LF). +

+
+

3.7 Using the Mouse

+ +

When mouse support has been configured and enabled, a single mouse click +places the cursor at the indicated position. Clicking a second time in +the same position toggles the mark. Clicking in the two help lines +executes the selected shortcut. To be able to select text with the +left button, or paste text with the middle button, hold down the +Shift key during those actions. +

+

The mouse will work in the X Window System, and on the console when gpm +is running. +

+
+

3.8 Anchors

+ +

With M-Ins you can place an anchor (a kind of temporary bookmark) +at the current line. With M-PgUp and M-PgDn you can jump +to an anchor in the backward/forward direction. This jumping wraps +around at the top and bottom. +

+

When a line with an anchor is removed, the line where the cursor ends up +inherits the anchor. After performing an operation on the entire buffer +(like formatting it, piping it through a command, or doing an external +spell check on it), any anchors that were present are gone. And when +you close the buffer, all its anchors simply disappear; they are not saved. +

+

Anchors are visualized in the margin when line numbers are activated. +

+
+

3.9 Limitations

+ +

The recording and playback of keyboard macros works correctly only on a +terminal emulator, not on a Linux console (VT), because the latter does +not by default distinguish modified from unmodified arrow keys. +

+ +
+

4 The Help Viewer

+ +

The built-in help in nano is available by pressing ^G. +It is fairly self-explanatory. It documents the various parts of the +editor and the available keystrokes. Navigation is via the ^Y (Page Up) +and ^V (Page Down) keys. ^X exits from the help viewer. +

+ +
+

5 The File Browser

+ +

When in the Read-File (^R) or Write-Out menu (^O), +pressing ^T will invoke the file browser. +Here, one can navigate directories in a graphical manner in order to +find the desired file. +

+

Basic movement in the file browser is accomplished with the arrow and +other cursor-movement keys. More targeted movement is accomplished by +searching, via ^W or w, or by changing directory, via +^_ or g. The behavior of the Enter key (or s) +varies by what is currently selected. +If the currently selected object is a directory, the file browser will +enter and display the contents of the directory. If the object is a +file, this filename and path are copied to the status bar, and the file +browser exits. +

+ +
+

6 Command-line Options

+ +

nano takes the following options from the command line: +

+
+
-A
+
--smarthome
+

Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. +

+
+
-B
+
--backup
+

When saving a file, back up the previous version of it, using the current +filename suffixed with a tilde (~). +

+
+
-C directory
+
--backupdir=directory
+

Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved — when backups are enabled. +The uniquely numbered files are stored in the specified directory. +

+
+
-D
+
--boldtext
+

For the interface, use bold instead of reverse video. This will be overridden +by setting the options titlecolor, statuscolor, keycolor, +functioncolor, numbercolor, and/or selectedcolor in your +nanorc file. See set keycolor for details. +

+
+
-E
+
--tabstospaces
+

Convert each typed tab to spaces — to the number of spaces +that a tab at that position would take up. +

+
+
-F
+
--multibuffer
+

Read a file into a new buffer by default. +

+
+
-G
+
--locking
+

Enable vim-style file locking when editing files. +

+
+
-H
+
--historylog
+

Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. +

+
+
-I
+
--ignorercfiles
+

Don’t look at the system’s nanorc file nor at the user’s nanorc. +

+
+
-J
+
--guidestripe
+

Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with set stripecolor +in your nanorc file.) +

+
+
-K
+
--rawsequences
+

Interpret escape sequences directly, instead of asking ncurses +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables nano’s mouse support. +

+
+
-L
+
--nonewlines
+

Don’t automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) +

+
+
-M
+
--trimblanks
+

Snip trailing whitespace from the wrapped line when automatic +hard-wrapping occurs or when text is justified. +

+
+
-N
+
--noconvert
+

Disable automatic conversion of files from DOS/Mac format. +

+
+
-O
+
--bookstyle
+

When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). +

+
+
-P
+
--positionlog
+

For the 200 most recent files, log the last position of the cursor, +and place it at that position again upon reopening such a file. +

+
+
-Q "regex"
+
--quotestr="regex"
+

Set the regular expression for matching the quoting part of a line. +The default value is "^([ \t]*([!#%:;>|}]|//))+". +(Note that \t stands for a literal Tab character.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. +

+
+
-R
+
--restricted
+

Restricted mode: don’t read or write to any file not specified on the +command line. This means: don’t read or write history files; don’t allow +suspending; don’t allow spell checking; don’t +allow a file to be appended to, prepended to, or saved under a different +name if it already has one; and don’t make backup files. +Restricted mode can also be activated by invoking nano with +any name beginning with r (e.g. rnano). +

+
+
-S
+
--softwrap
+

Display over multiple screen rows lines that exceed the screen’s width. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen’s edge, by using also --atblanks.) +(The old short option, -$, is deprecated.) +

+
+
-T number
+
--tabsize=number
+

Set the displayed tab length to number columns. The value of +number must be greater than 0. The default value is 8. +

+
+
-U
+
--quickblank
+

Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option -c (--constantshow) overrides this. +When option --minibar or --zero is in effect, +--quickblank makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. +

+
+
-V
+
--version
+

Show the current version number and exit. +

+
+
-W
+
--wordbounds
+

Detect word boundaries differently by treating punctuation +characters as parts of words. +

+
+
-X "characters"
+
--wordchars="characters"
+

Specify which other characters (besides the normal alphanumeric ones) +should be considered as parts of words. When using this option, you +probably want to omit -W (--wordbounds). +

+
+
-Y name
+
--syntax=name
+

Specify the syntax to be used for highlighting. +See Syntax Highlighting for more info. +

+
+
-Z
+
--zap
+

Let an unmodified Backspace or Delete erase the marked region +(instead of a single character, and without affecting the cutbuffer). +

+
+
-a
+
--atblanks
+

When doing soft line wrapping, wrap lines at whitespace +instead of always at the edge of the screen. +

+
+
-b
+
--breaklonglines
+

Automatically hard-wrap the current line when it becomes overlong. +(This option is the opposite of -w (--nowrap) — +the last one given takes effect.) +

+
+
-c
+
--constantshow
+

Constantly display the cursor position (line number, column number, +and character number) on the status bar. +Note that this overrides option -U (--quickblank). +

+
+
-d
+
--rebinddelete
+

Interpret the Delete and Backspace keys differently so that +both work properly. You should only use this option when on your system +either Backspace acts like Delete or Delete acts like Backspace. +

+
+
-e
+
--emptyline
+

Do not use the line below the title bar, leaving it entirely blank. +

+
+
-f file
+
--rcfile=file
+

Read only this file for setting nano’s options, instead of reading +both the system-wide and the user’s nanorc files. +

+
+
-g
+
--showcursor
+

Make the cursor visible in the file browser (putting it on the +highlighted item) and in the help viewer. Useful for braille users +and people with poor vision. +

+
+
-h
+
--help
+

Show a summary of command-line options and exit. +

+
+
-i
+
--autoindent
+

Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). +

+
+
-j
+
--jumpyscrolling
+

Scroll the buffer contents per half-screen instead of per line. +

+
+
-k
+
--cutfromcursor
+

Make the ’Cut Text’ command (normally ^K) cut from the current cursor +position to the end of the line, instead of cutting the entire line. +

+
+
-l
+
--linenumbers
+

Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) +

+
+
-m
+
--mouse
+

Enable mouse support, if available for your system. When enabled, mouse +clicks can be used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X Window +System, and on the console when gpm is running. Text can still be +selected through dragging by holding down the Shift key. +

+
+
-n
+
--noread
+

Treat any name given on the command line as a new file. This allows +nano to write to named pipes: it will start with a blank buffer, +and will write to the pipe when the user saves the "file". This way +nano can be used as an editor in combination with for instance +gpg without having to write sensitive data to disk first. +

+
+
-o directory
+
--operatingdir=directory
+

Set the operating directory. This makes nano set up something +similar to a chroot. +

+
+
-p
+
--preserve
+

Preserve the ^Q (XON) and ^S (XOFF) sequences so data being +sent to the editor can be stopped and started. +

+
+
-q
+
--indicator
+

Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. +

+
+
-r number
+
--fill=number
+

Set the target width for justifying and automatic hard-wrapping at this +number of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus number columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is -8. +

+
+
-s "program [argument …]"
+
--speller="program [argument …]"
+

Use the given program to do spell checking and correcting. By default, +nano uses the command specified in the SPELL environment +variable. If SPELL is not set, and --speller is +not specified either, then nano uses its own interactive spell +corrector, which requires either hunspell or GNU spell +to be installed. +

+
+
-t
+
--saveonexit
+

Save a changed buffer without prompting (when exiting with ^X). +This can be handy when nano is used as the composer of an +email program. +

+
+
-u
+
--unix
+

Save a file by default in Unix format. This overrides nano’s +default behavior of saving a file in the format that it had. +(This option has no effect when you also use --noconvert.) +

+
+
-v
+
--view
+

Don’t allow the contents of the file to be altered: read-only mode. +This mode allows the user to open also other files for viewing, +unless --restricted is given too. +(Note that this option should NOT be used in place of correct +file permissions to implement a read-only file.) +

+
+
-w
+
--nowrap
+

Do not automatically hard-wrap the current line when it becomes overlong. +This is the default. (This option is the opposite of -b +(--breaklonglines) — the last one given takes effect.) +

+ +
+
-x
+
--nohelp
+

Expert mode: don’t show the two help lines at the bottom of the screen. +This affects the location of the status bar as well, as in Expert mode it +is located at the very bottom of the editor. +

+

Note: When accessing the help system, Expert mode is temporarily +disabled to display the help-system navigation keys. +

+
+
-y
+
--afterends
+

Make Ctrl+Right and Ctrl+Delete stop at word ends +instead of beginnings. +

+
+
-!
+
--magic
+

When neither the file’s name nor its first line give a clue, +try using libmagic to determine the applicable syntax. +

+
+
-%
+
--stateflags
+

Use the top-right corner of the screen for showing some state flags: +I when auto-indenting, M when the mark is on, L when +hard-wrapping (breaking long lines), R when recording a macro, +and S when soft-wrapping. +When the buffer is modified, a star (*) is shown after the +filename in the center of the title bar. +

+
+
-_
+
--minibar
+

Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by --stateflags, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +--constantshow is used, and can be toggled on and off with M-C. +The state flags are displayed only when --stateflags is used. +

+
+
-0
+
--zero
+

Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With M-Z the title bar plus status bar can be toggled. +With M-X the help lines. +

+
+
+ +
+

Option -z (--suspendable) has been removed. +Suspension is enabled by default, reachable via ^T^Z. +(If you want a plain ^Z to suspend nano, add +bind ^Z suspend main to your nanorc.) +

+ +
+

7 Feature Toggles

+ +

Toggles allow you to change certain aspects of the editor while you are +editing, aspects that you would normally specify via command-line options +or nanorc options. Each toggle can be flicked via a Meta-key combination +— the Meta key is normally the Alt key (see Commands +for more details). The following global toggles are available: +

+
+
+
Constant Cursor Position Display
+

M-C toggles the -c (--constantshow) command-line option. +

+
+
Smart Home Key
+

M-H toggles the -A (--smarthome) command-line option. +

+
+
Auto Indent
+

M-I toggles the -i (--autoindent) command-line option. +

+
+
Cut From Cursor To End-of-Line
+

M-K toggles the -k (--cutfromcursor) command-line option. +

+
+
Long-Line Wrapping
+

M-L toggles the -b (--breaklonglines) command-line option. +

+
+
Mouse Support
+

M-M toggles the -m (--mouse) command-line option. +

+
+
Line Numbers
+

M-N toggles the -l (--linenumbers) command-line option. +

+
+
Tabs To Spaces
+

M-O toggles the -E (--tabstospaces) command-line option. +

+
+
Whitespace Display
+

M-P toggles the displaying of whitespace (see Whitespace). +

+
+
Soft Wrapping
+

M-S toggles the -S (--softwrap) command-line option. +

+
+
Expert
+

M-X toggles the -x (--nohelp) command-line option. +

+
+
Syntax Coloring
+

M-Y toggles syntax coloring, when your nanorc defines syntaxes +(see Syntax Highlighting). +

+
+
Hidden Interface
+

M-Z toggles the -0 (--zero) command-line option, +but without the -x (--nohelp) part. That is: it toggles +just the title bar plus status bar (or the combined minibar plus status bar), +not the help lines. The latter are toggled with M-X. +

+
+
+ + +
+

8 Nanorc Files

+ +

Nanorc files can be used to configure nano to your liking +without using command-line options. During startup nano will +normally read two files: first the system-wide file, /etc/nanorc +(the exact path may be different on your system), and then the user-specific +file, either ~/.nanorc or $XDG_CONFIG_HOME/nano/nanorc or +.config/nano/nanorc, whichever exists first. +However, if --rcfile is given, nano will skip the +above files and will read just the specified settings file. +

+

A nanorc file can contain set and unset commands for +various options (see Settings). It can also contain commands that +define syntax highlighting (see Syntax Highlighting) and commands +that rebind keys (Rebinding Keys). Each command should be on a +separate line, and all commands should be written in lowercase. +

+

Options that do not take an argument are unset by default. So using +the unset command is only needed when wanting to override a +setting from the system’s nanorc file in your own nanorc. Options that +take an argument cannot be unset, but can be assigned the empty string. +

+

Any command-line option overrides its nanorc setting, of course. +

+

Quotes inside the characters parameters below should not be escaped. +The last double quote on the line will be seen as the closing quote. +

+ + + + + + +
+

8.1 Settings

+ +

The supported settings in a nanorc file are: +

+
+
set afterends
+

Make Ctrl+Right and Ctrl+Delete stop at word ends +instead of beginnings. +

+
+
set allow_insecure_backup
+

When backing up files, allow the backup to succeed even if its +permissions can’t be (re)set due to special OS considerations. +You should NOT enable this option unless you are sure you need it. +

+
+
set atblanks
+

When soft line wrapping is enabled, make it wrap lines at blank characters +(tabs and spaces) instead of always at the edge of the screen. +

+
+
set autoindent
+

Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). +

+
+
set backup
+

When saving a file, back up the previous version of it, using the current +filename suffixed with a tilde (~). +

+
+
set backupdir "directory"
+

Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved — when backups are enabled +with set backup or --backup or -B. +The uniquely numbered files are stored in the specified directory. +

+
+
set boldtext
+

Use bold instead of reverse video for the title bar, status bar, key combos, +function tags, line numbers, and selected text. This is overridden by +setting the options titlecolor, statuscolor, keycolor, +functioncolor, numbercolor, and/or selectedcolor. +

+
+
set bookstyle
+

When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). +

+
+
set brackets "characters"
+

Set the characters treated as closing brackets when justifying +paragraphs. This may not include blank characters. Only closing +punctuation (see set punct), optionally followed by the specified +closing brackets, can end sentences. The default value is +""')>]}". +

+
+
set breaklonglines
+

Automatically hard-wrap the current line when it becomes overlong. +

+
+
set casesensitive
+

Do case-sensitive searches by default. +

+
+
set constantshow
+

Constantly display the cursor position on the status bar. +Note that this overrides quickblank. +

+
+
set cutfromcursor
+

Use cut-from-cursor-to-end-of-line by default, instead of cutting the whole line. +

+
+
set emptyline
+

Do not use the line below the title bar, leaving it entirely blank. +

+
+
set errorcolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the status bar when an error message is displayed. +The default value is bold,white,red. +See set keycolor for valid color names. +

+
+
set fill number
+

Set the target width for justifying and automatic hard-wrapping at this +number of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus number columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is -8. +

+
+
set functioncolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the concise function descriptions +in the two help lines at the bottom of the screen. +See set keycolor for valid color names. +

+
+
set guidestripe number
+

Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with set stripecolor.) +

+
+
set historylog
+

Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. +

+
+
set indicator
+

Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. +

+
+
set jumpyscrolling
+

Scroll the buffer contents per half-screen instead of per line. +

+
+
set keycolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the shortcut key combos +in the two help lines at the bottom of the screen. +Valid names for the foreground and background colors are: +red, green, blue, +magenta, yellow, cyan, +white, and black. +Each of these eight names may be prefixed with the word +light to get a brighter version of that color. +The word grey or gray may be used +as a synonym for lightblack. +

+

On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +pink, purple, mauve, +lagoon, mint, lime, +peach, orange, latte, +rosy, beet, plum, sea, +sky, slate, teal, sage, +brown, ocher, sand, tawny, +brick, crimson, and normal +— where normal means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with #, with the digits representing the amounts of red, +green, and blue, respectively. This tells nano to select from the +available palette the color that approximates the given values. +

+

Either fgcolor or ,bgcolor may be left out, +and the pair may be preceded by bold and/or italic +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. +

+
+
set linenumbers
+

Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) +

+
+
set locking
+

Enable vim-style lock-files for when editing files. +

+
+
set magic
+

When neither the file’s name nor its first line give a clue, +try using libmagic to determine the applicable syntax. +(Calling libmagic can be relatively time consuming. +It is therefore not done by default.) +

+
+
set matchbrackets "characters"
+

Specify the opening and closing brackets that can be found by bracket +searches. This may not include blank characters. The opening set must +come before the closing set, and the two sets must be in the same order. +The default value is "(<[{)>]}". +

+
+
set minibar
+

Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by set stateflags, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +set constantshow is used, and can be toggled on and off with M-C. +The state flags are displayed only when set stateflags is used. +

+
+
set minicolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the minibar. +(When this option is not specified, the colors of the title bar are used.) +See set keycolor for valid color names. +

+
+
set mouse
+

Enable mouse support, so that mouse clicks can be used to place the +cursor, set the mark (with a double click), or execute shortcuts. +

+
+
set multibuffer
+

When reading in a file with ^R, insert it into a new buffer by default. +

+
+
set noconvert
+

Don’t convert files from DOS/Mac format. +

+
+
set nohelp
+

Don’t display the help lists at the bottom of the screen. +

+
+
set nonewlines
+

Don’t automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) +

+
+
set nowrap
+

Deprecated option since it has become the default setting. +When needed, use unset breaklonglines instead. +

+
+
set numbercolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for line numbers. +See set keycolor for valid color names. +

+
+
set operatingdir "directory"
+

nano will only read and write files inside "directory" and its +subdirectories. Also, the current directory is changed to here, so +files are inserted from this directory. By default, the operating +directory feature is turned off. +

+
+
set positionlog
+

Save the cursor position of files between editing sessions. +The cursor position is remembered for the 200 most-recently edited files. +

+
+
set preserve
+

Preserve the XON and XOFF keys (^Q and ^S). +

+
+
set promptcolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the prompt bar. +(When this option is not specified, the colors of the title bar are used.) +See set keycolor for valid color names. +

+
+
set punct "characters"
+

Set the characters treated as closing punctuation when justifying +paragraphs. This may not include blank characters. Only the +specified closing punctuation, optionally followed by closing brackets +(see set brackets), can end sentences. +The default value is "!.?". +

+
+
set quickblank
+

Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option constantshow overrides this. +When option minibar or zero is in effect, +quickblank makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. +

+
+
set quotestr "regex"
+

Set the regular expression for matching the quoting part of a line. +The default value is "^([ \t]*([!#%:;>|}]|//))+". +(Note that \t stands for a literal Tab character.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. +

+
+
set rawsequences
+

Interpret escape sequences directly, instead of asking ncurses +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables nano’s mouse support. +

+
+
set rebinddelete
+

Interpret the Delete and Backspace keys differently so that +both work properly. You should only use this option when on your system +either Backspace acts like Delete or Delete acts like Backspace. +

+
+
set regexp
+

Do regular-expression searches by default. +Regular expressions in nano are of the extended type (ERE). +

+
+
set saveonexit
+

Save a changed buffer automatically on exit (^X); don’t prompt. +

+
+
set scrollercolor fgcolor,bgcolor
+

Use this color combination for the indicator alias "scrollbar". +(On terminal emulators that link to a libvte older than version 0.55, +using a background color here does not work correctly.) +See set keycolor for valid color names. +

+
+
set selectedcolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for selected text. +See set keycolor for valid color names. +

+
+
set showcursor
+

Put the cursor on the highlighted item in the file browser, and show +the cursor in the help viewer, to aid braille users and people with +poor vision. +

+
+
set smarthome
+

Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. +

+
+
set softwrap
+

Display lines that exceed the screen’s width over multiple screen lines. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen’s edge, by using also set atblanks.) +

+
+
set speller "program [argument …]"
+

Use the given program to do spell checking and correcting. +See --speller for details. +

+
+
set spotlightcolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for highlighting a search match. +The default value is black,lightyellow. +See set keycolor for valid color names. +

+
+
set stateflags
+

Use the top-right corner of the screen for showing some state flags: +I when auto-indenting, M when the mark is on, L when +hard-wrapping (breaking long lines), R when recording a macro, +and S when soft-wrapping. +When the buffer is modified, a star (*) is shown after the +filename in the center of the title bar. +

+
+
set statuscolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the status bar. +See set keycolor for valid color names. +

+
+
set stripecolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the vertical guiding stripe. +See set keycolor for valid color names. +

+
+
set tabsize number
+

Use a tab size of number columns. The value of number must be +greater than 0. The default value is 8. +

+
+
set tabstospaces
+

Convert each typed tab to spaces — to the number of spaces +that a tab at that position would take up. +

+
+
set titlecolor [bold,][italic,]fgcolor,bgcolor
+

Use this color combination for the title bar. +See set keycolor for valid color names. +

+
+
set trimblanks
+

Remove trailing whitespace from wrapped lines when automatic +hard-wrapping occurs or when text is justified. +

+
+
set unix
+

Save a file by default in Unix format. This overrides nano’s +default behavior of saving a file in the format that it had. +(This option has no effect when you also use set noconvert.) +

+
+
set whitespace "characters"
+

Set the two characters used to indicate the presence of tabs and +spaces. They must be single-column characters. The default pair +for a UTF-8 locale is "»·", and for other locales ">.". +

+
+
set wordbounds
+

Detect word boundaries differently by treating punctuation +characters as part of a word. +

+
+
set wordchars "characters"
+

Specify which other characters (besides the normal alphanumeric ones) +should be considered as parts of words. When using this option, you +probably want to unset wordbounds. +

+
+
set zap
+

Let an unmodified Backspace or Delete erase the marked region +(instead of a single character, and without affecting the cutbuffer). +

+
+
set zero
+

Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With M-Z the title bar plus status bar can be toggled. +With M-X the help lines. +

+
+
+ +
+

8.2 Syntax Highlighting

+ +

Coloring the different syntactic elements of a file +is done via regular expressions (see the color command below). +This is inherently imperfect, because regular expressions are not +powerful enough to fully parse a file. Nevertheless, regular +expressions can do a lot and are easy to make, so they are a +good fit for a small editor like nano. +

+

See /usr/share/nano/ and /usr/share/nano/extra/ +for the syntax-coloring definitions that are available out of the box. +

+

All regular expressions in nano are POSIX extended regular expressions +(ERE). This means that ., ?, *, +, ^, +$, and several other characters are special. +The period . matches any single character, +? means the preceding item is optional, +* means the preceding item may be matched zero or more times, ++ means the preceding item must be matched one or more times, +^ matches the beginning of a line, and $ the end, +\< matches the start of a word, and \> the end, +and \s matches a blank. +It also means that lookahead and lookbehind are not possible. +A complete explanation can be found in the manual of GNU grep: +info grep regular. +

+

Each regular expression in a nanorc file should be wrapped in +double quotes (""). Multiple regular expressions can follow +each other on a line by separating them with blanks. This means that +a regular expression cannot contain a double quote followed by a blank. +When you need this combination inside a regular expression, +then either the double quote or the blank should be put +between square brackets ([]). +

+

A separate syntax can be defined for each kind of file +via the following commands in a nanorc file: +

+
+
syntax name ["fileregex" …]
+

Start the definition of a syntax with this name. +All subsequent color and other such commands +will be added to this syntax, until a new syntax +command is encountered. +

+

When nano is run, this syntax will be automatically +activated if the current filename matches the extended regular +expression fileregex. Or the syntax can be explicitly +activated by using the -Y or --syntax +command-line option followed by the name. +

+

The default syntax is special: it takes no fileregex, +and applies to files that don’t match any syntax’s regexes. +The none syntax is reserved; specifying it on the +command line is the same as not having a syntax at all. +

+
+
header "regex" …
+

If from all defined syntaxes no fileregex matched, then compare +this regex (or regexes) against the first line of the current file, +to determine whether this syntax should be used for it. +

+
+
magic "regex" …
+

If no fileregex matched and no header regex matched +either, then compare this regex (or regexes) against the +result of querying the magic database about the current +file, to determine whether this syntax should be used for it. +(This functionality only works when libmagic is installed +on the system and will be silently ignored otherwise.) +

+
+
formatter program [argument …]
+

Run the given program on the full contents of the current buffer. +

+
+
linter program [argument …]
+

Use the given program to do a syntax check on the current buffer. +

+
+
comment "string"
+

Use the given string for commenting and uncommenting lines. +If the string contains a vertical bar or pipe character (|), +this designates bracket-style comments; for example, "/*|*/" for +CSS files. The characters before the pipe are prepended to the line and the +characters after the pipe are appended at the end of the line. If no pipe +character is present, the full string is prepended; for example, "#" for +Python files. If empty double quotes are specified, the comment/uncomment +functions are disabled; for example, "" for JSON. +The default value is "#". +

+
+
tabgives "string"
+

Make the <Tab> key produce the given string. Useful for languages like +Python that want to see only spaces for indentation. +This overrides the setting of the tabstospaces option. +

+
+
color [bold,][italic,]fgcolor,bgcolor "regex" …
+

Paint all pieces of text that match the extended regular expression "regex" +with the given foreground and background colors, at least one of which must +be specified. Valid color names are: +red, green, blue, +magenta, yellow, cyan, +white, and black. +Each of these eight names may be prefixed with the word +light to get a brighter version of that color. +The word grey or gray may be used +as a synonym for lightblack. +

+

On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +pink, purple, mauve, +lagoon, mint, lime, +peach, orange, latte, +rosy, beet, plum, sea, +sky, slate, teal, sage, +brown, ocher, sand, tawny, +brick, crimson, and normal +— where normal means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with #, with the digits representing the amounts of red, +green, and blue, respectively. This tells nano to select from the +available palette the color that approximates the given values. +

+

The color pair may be preceded by bold and/or italic +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. +

+

All coloring commands are applied in the order in which they are specified, +which means that later commands can recolor stuff that was colored earlier. +

+
+
icolor [bold,][italic,]fgcolor,bgcolor "regex" …
+

Same as above, except that the matching is case insensitive. +

+
+
color [bold,][italic,]fgcolor,bgcolor start="fromrx" end="torx"
+

Paint all pieces of text whose start matches extended regular expression +"fromrx" and whose end matches extended regular expression "torx" with +the given foreground and background colors, at least one of +which must be specified. This means that, after an initial instance of +"fromrx", all text until the first instance of "torx" will be colored. +This allows syntax highlighting to span multiple lines. +

+
+
icolor [bold,][italic,]fgcolor,bgcolor start="fromrx" end="torx"
+

Same as above, except that the matching is case insensitive. +

+
+
include "syntaxfile"
+

Read in self-contained color syntaxes from "syntaxfile". Note that +"syntaxfile" may contain only the above commands, from syntax +to icolor. +

+
+
extendsyntax name command argument
+

Extend the syntax previously defined as "name" with another command. +This allows you to add a new color, icolor, header, +magic, formatter, linter, comment, +or tabgives command to an already +defined syntax — useful when you want to slightly improve a syntax defined +in one of the system-installed files (which normally are not writable). +

+
+
+ +
+

8.3 Rebinding Keys

+ +

Key bindings can be changed via the following three commands in a +nanorc file: +

+
+
bind key function menu
+

Rebinds key to function in the context of menu +(or in all menus where the function exists when all is used). +

+
+
bind key "string" menu
+

Makes key produce string in the context of menu +(or in all menus where the key exists when all is used). +Besides literal text and/or control codes, the string may contain +function names between braces. These functions will be invoked when the +key is typed. To include a literal opening brace, use {{}. +

+
+
unbind key menu
+

Unbinds key from menu +(or from all menus where the key exists when all is used). +

+
+
+ +

Note that bind key "{function}" menu is equivalent to +bind key function menu, except that for the latter form +nano will check the availabilty of the function +in the given menu at startup time (and report an error if +it does not exist there), whereas for the first form nano +will check at execution time that the function exists but not +whether it makes any sense in the current menu. The user has to take +care that a function name between braces (or any sequence of them) +is appropriate. Strange behavior can result when it is not. +

+
+

The format of key should be one of: +

+
+
+
^X
+

where X is a Latin letter, or one of several +ASCII characters (@, ], \, ^, _), or the word "Space". +Example: ^C. +

+
+
M-X
+

where X is any ASCII character except [, or the word "Space". +Example: M-8. +

+
+
Sh-M-X
+

where X is a Latin letter. +Example: Sh-M-U. +By default, each Meta+letter keystroke does the same as the corresponding +Shift+Meta+letter. But when any Shift+Meta bind is made, that will +no longer be the case, for all letters. +

+
+
Fn
+

where n is a numeric value from 1 to 24. +Example: F10. +(Often, F13 to F24 can be typed as F1 to F12 +with Shift.) +

+
+
Ins or Del
+
+
+ +
+

Rebinding ^M (Enter) or ^I (Tab) is probably not a good idea. +Rebinding ^[ (Esc) is not possible, because its keycode +is the starter byte of Meta keystrokes and escape sequences. +Rebinding any of the dedicated cursor-moving keys (the arrows, Home, End, +PageUp and PageDown) is not possible. +On some terminals it’s not possible to rebind ^H (unless --raw +is used) because its keycode is identical to that of the Backspace key. +

+
+

Valid names for the function to be bound are: +

+
+
help
+

Invokes the help viewer. +

+
+
cancel
+

Cancels the current command. +

+
+
exit
+

Exits from the program (or from the help viewer or file browser). +

+
+
writeout
+

Writes the current buffer to disk, asking for a name. +

+
+
savefile
+

Writes the current file to disk without prompting. +

+
+
insert
+

Inserts a file into the current buffer (at the current cursor position), +or into a new buffer when option multibuffer is set. +

+
+
whereis
+

Starts a forward search for text in the current buffer — or for filenames +matching a string in the current list in the file browser. +

+
+
wherewas
+

Starts a backward search for text in the current buffer — or for filenames +matching a string in the current list in the file browser. +

+
+
findprevious
+

Searches the next occurrence in the backward direction. +

+
+
findnext
+

Searches the next occurrence in the forward direction. +

+
+
replace
+

Interactively replaces text within the current buffer. +

+
+
cut
+

Cuts and stores the current line (or the marked region). +

+
+
copy
+

Copies the current line (or the marked region) without deleting it. +

+
+
paste
+

Pastes the currently stored text into the current buffer at the +current cursor position. +

+
+
zap
+

Throws away the current line (or the marked region). +(This function is bound by default to Alt+Delete.) +

+
+
chopwordleft
+

Deletes from the cursor position to the beginning of the preceding word. +(This function is bound by default to Shift+Ctrl+Delete. If your terminal +produces ^H for Ctrl+Backspace, you can make Ctrl+Backspace delete +the word to the left of the cursor by rebinding ^H to this function.) +

+
+
chopwordright
+

Deletes from the cursor position to the beginning of the next word. +(This function is bound by default to Ctrl+Delete.) +

+
+
cutrestoffile
+

Cuts all text from the cursor position till the end of the buffer. +

+
+
mark
+

Sets the mark at the current position, to start selecting text. +Or, when it is set, unsets the mark. +

+
+
location
+

Reports the current position of the cursor in the buffer: +the line, column, and character positions. +

+
+
wordcount
+

Counts and reports on the status bar the number of lines, words, +and characters in the current buffer (or in the marked region). +

+
+
execute
+

Prompts for a program to execute. The program’s output will be inserted +into the current buffer (or into a new buffer when M-F is toggled). +

+
+
speller
+

Invokes a spell-checking program, either the default hunspell +or GNU spell, or the one defined by --speller or +set speller. +

+
+
formatter
+

Invokes a full-buffer-processing program (if the active syntax defines one). +(The current buffer is written out to a temporary file, the program +is run on it, and then the temporary file is read back in, replacing +the contents of the buffer.) +

+
+
linter
+

Invokes a syntax-checking program (if the active syntax defines one). +If this program produces lines of the form "filename:linenum:charnum: +some message", then the cursor will be put at the indicated position +in the mentioned file while showing "some message" on the status bar. +You can move from message to message with PgUp and PgDn, +and leave linting mode with ^C or Enter. +

+
+
justify
+

Justifies the current paragraph (or the marked region). +A paragraph is a group of contiguous lines that, apart from possibly +the first line, all have the same indentation. The beginning of a +paragraph is detected by either this lone line with a differing +indentation or by a preceding blank line. +

+
+
fulljustify
+

Justifies the entire current buffer (or the marked region). +

+
+
indent
+

Indents (shifts to the right) the current line or the marked lines. +

+
+
unindent
+

Unindents (shifts to the left) the current line or the marked lines. +

+
+
comment
+

Comments or uncomments the current line or the marked lines, +using the comment style specified in the active syntax. +

+
+
complete
+

Completes (when possible) the fragment before the cursor +to a full word found elsewhere in the current buffer. +

+
+
left
+

Goes left one position (in the editor or browser). +

+
+
right
+

Goes right one position (in the editor or browser). +

+
+
up
+

Goes one line up (in the editor or browser). +

+
+
down
+

Goes one line down (in the editor or browser). +

+
+
scrollup
+

Scrolls the viewport up one row (meaning that the text slides down) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to Alt+Up. +If Alt+Up does nothing on your Linux console, see the FAQ: +https://nano-editor.org/dist/latest/faq.html#4.1.) +

+
+
scrolldown
+

Scrolls the viewport down one row (meaning that the text slides up) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to Alt+Down.) +

+
+
center
+

Scrolls the line with the cursor to the middle of the screen. +

+
+
prevword
+

Moves the cursor to the beginning of the previous word. +

+
+
nextword
+

Moves the cursor to the beginning of the next word. +

+
+
home
+

Moves the cursor to the beginning of the current line. +

+
+
end
+

Moves the cursor to the end of the current line. +

+
+
beginpara
+

Moves the cursor to the beginning of the current paragraph. +

+
+
endpara
+

Moves the cursor to the end of the current paragraph. +

+
+
prevblock
+

Moves the cursor to the beginning of the current or preceding block of text. +(Blocks are separated by one or more blank lines.) +

+
+
nextblock
+

Moves the cursor to the beginning of the next block of text. +

+
+
pageup
+

Goes up one screenful. +

+
+
pagedown
+

Goes down one screenful. +

+
+
firstline
+

Goes to the first line of the file. +

+
+
lastline
+

Goes to the last line of the file. +

+
+
gotoline
+

Goes to a specific line (and column if specified). Negative numbers count +from the end of the file (and end of the line). +

+
+
findbracket
+

Moves the cursor to the bracket (or brace or parenthesis, etc.) that matches +(pairs) with the one under the cursor. See set matchbrackets. +

+
+
anchor
+

Places an anchor at the current line, or removes it when already present. +(An anchor is visible when line numbers are activated.) +

+
+
prevanchor
+

Goes to the first anchor before the current line. +

+
+
nextanchor
+

Goes to the first anchor after the current line. +

+
+
prevbuf
+

Switches to editing/viewing the previous buffer when multiple buffers are open. +

+
+
nextbuf
+

Switches to editing/viewing the next buffer when multiple buffers are open. +

+
+
verbatim
+

Inserts the next keystroke verbatim into the file, or begins Unicode input +when a hexadecimal digit is typed (see Entering Text for details). +

+
+
tab
+

Inserts a tab at the current cursor location. +

+
+
enter
+

Inserts a new line below the current one. +

+
+
delete
+

Deletes the character under the cursor. +

+
+
backspace
+

Deletes the character before the cursor. +

+
+
recordmacro
+

Starts the recording of keystrokes — the keystrokes are stored +as a macro. When already recording, the recording is stopped. +

+
+
runmacro
+

Replays the keystrokes of the last recorded macro. +

+
+
undo
+

Undoes the last performed text action (add text, delete text, etc). +

+
+
redo
+

Redoes the last undone action (i.e., it undoes an undo). +

+
+
refresh
+

Refreshes the screen. +

+
+
suspend
+

Suspends the editor and returns control to the shell +(until you tell the process to resume execution with fg). +

+
+
casesens
+

Toggles whether searching/replacing ignores or respects the case of +the given characters. +

+
+
regexp
+

Toggles whether searching/replacing uses literal strings or regular expressions. +

+
+
backwards
+

Toggles whether searching/replacing goes forward or backward. +

+
+
older
+

Retrieves the previous (earlier) entry at a prompt. +

+
+
newer
+

Retrieves the next (later) entry at a prompt. +

+
+
flipreplace
+

Toggles between searching for something and replacing something. +

+
+
flipgoto
+

Toggles between searching for text and targeting a line number. +

+
+
flipexecute
+

Toggles between inserting a file and executing a command. +

+
+
flippipe
+

When executing a command, toggles whether the current buffer (or marked +region) is piped to the command. +

+
+
flipnewbuffer
+

Toggles between inserting into the current buffer and into a new +empty buffer. +

+
+
flipconvert
+

When reading in a file, toggles between converting and not converting +it from DOS/Mac format. Converting is the default. +

+
+
dosformat
+

When writing a file, switches to writing a DOS format (CR/LF). +

+
+
macformat
+

When writing a file, switches to writing a Mac format. +

+
+
append
+

When writing a file, appends to the end instead of overwriting. +

+
+
prepend
+

When writing a file, ’prepends’ (writes at the beginning) instead of overwriting. +

+
+
backup
+

When writing a file, creates a backup of the current file. +

+
+
discardbuffer
+

When about to write a file, discard the current buffer without saving. +(This function is bound by default only when option --saveonexit +is in effect.) +

+
+
browser
+

Starts the file browser (in the Read File and Write Out menus), +allowing to select a file from a list. +

+
+
gotodir
+

Goes to a directory to be specified, allowing to browse anywhere +in the filesystem. +

+
+
firstfile
+

Goes to the first file in the list when using the file browser. +

+
+
lastfile
+

Goes to the last file in the list when using the file browser. +

+
+
nohelp
+

Toggles the presence of the two-line list of key bindings at the bottom of the screen. +(This toggle is special: it is available in all menus except the help viewer +and the linter. All further toggles are available in the main menu only.) +

+
+
zero
+

Toggles the presence of title bar and status bar. +

+
+
constantshow
+

Toggles the constant display of the current line, column, and character positions. +

+
+
softwrap
+

Toggles the displaying of overlong lines on multiple screen lines. +

+
+
linenumbers
+

Toggles the display of line numbers in front of the text. +

+
+
whitespacedisplay
+

Toggles the showing of whitespace. +

+
+
nosyntax
+

Toggles syntax highlighting. +

+
+
smarthome
+

Toggles the smartness of the Home key. +

+
+
autoindent
+

Toggles whether a newly created line will contain the same amount of leading +whitespace as the preceding line — or as the next line if the preceding line +is the beginning of a paragraph. +

+
+
cutfromcursor
+

Toggles whether cutting text will cut the whole line or just from the current cursor +position to the end of the line. +

+
+
breaklonglines
+

Toggles whether long lines will be hard-wrapped to the next line. +(The old name of this function, ’nowrap’, is deprecated.) +

+
+
tabstospaces
+

Toggles whether typed tabs will be converted to spaces. +

+
+
mouse
+

Toggles mouse support. +

+
+
+ +
+

Valid names for menu are: +

+
+
main
+

The main editor window where text is entered and edited. +

+
+
help
+

The help-viewer menu. +

+
+
search
+

The search menu (AKA whereis). +

+
+
replace
+

The ’search to replace’ menu. +

+
+
replacewith
+

The ’replace with’ menu, which comes up after ’search to replace’. +

+
+
yesno
+

The ’yesno’ menu, where the Yes/No/All/Cancel question is asked. +

+
+
gotoline
+

The ’goto line (and column)’ menu. +

+
+
writeout
+

The ’write file’ menu. +

+
+
insert
+

The ’insert file’ menu. +

+
+
browser
+

The ’file browser’ menu, for selecting a file to be opened or +inserted or written to. +

+
+
whereisfile
+

The ’search for a file’ menu in the file browser. +

+
+
gotodir
+

The ’go to directory’ menu in the file browser. +

+
+
execute
+

The menu for inserting the output from an external command, +or for filtering the buffer (or the marked region) through +an external command, or for executing one of several tools. +

+
+
spell
+

The menu of the integrated spell checker where the user can edit a misspelled word. +

+
+
linter
+

The linter menu, which allows jumping through the linting messages. +

+
+
all
+

A special name that encompasses all menus. For bind it means +all menus where the specified function exists; for unbind +it means all menus where the specified key exists. +

+
+
+ + +
+

9 Pico Compatibility

+ +

nano emulates Pico quite closely, but there +are some differences between the two editors: +

+
+
Hard-Wrapping
+

Unlike Pico, nano does not automatically hard-wrap the current +line when it becomes overlong during typing. This hard-wrapping can be +switched on with the --breaklonglines option. With that option, +nano by default breaks lines at screen width minus eight columns, +whereas Pico does it at screen width minus six columns. You can make +nano do as Pico by using --fill=-6. +

+
+
Scrolling
+

By default, nano will scroll just one line (instead of half +a screen) when the cursor is moved to a line that is just out of view. +And when paging up or down, nano keeps the cursor in the same +screen position as much as possible, instead of always placing it on the +first line of the viewport. The Pico-like behavior can be obtained +with the --jumpyscrolling option. +

+
+
Edit Area
+

Pico never uses the line directly below the title bar, leaving it always +blank. nano includes this line in the editing area, in order +to not waste space, and because in this way it is slightly clearer where +the text starts. If you are accustomed to this line being empty, you can +get it back with the --emptyline option. +

+
+
Interactive Replace
+

Instead of allowing you to replace either just one occurrence of a search +string or all of them, nano’s replace function is interactive: it +will pause at each found search string and query whether to replace this +instance. You can then choose Yes, or No (skip this one), or All (don’t +ask any more), or Cancel (stop with replacing). +

+
+
Search and Replace History
+

When the option -H or --historylog is given (or set in +a nanorc file), text entered as search or replace strings is stored. +These strings can be accessed with the up/down arrow keys at their +respective prompts, or you can +type the first few characters and then use Tab to cycle through the +matching strings. A retrieved string can subsequently be edited. +

+
+
Position History
+

When the option -P or --positionlog is given (or set in +a nanorc file), nano will store the position of the cursor +when you close a file, and will place the cursor in that position +again when you later reopen the file. +

+
+
Current Cursor Position
+

The output of the "Display Cursor Position" command (^C) displays +not only the current line and character position of the cursor, +but also (between the two) the current column position. +

+
+
Spell Checking
+

In the internal spell checker misspelled words are sorted alphabetically +and trimmed for uniqueness, such that the words ’apple’ and ’Apple’ will +be prompted for correction separately. +

+
+
Writing Selected Text to Files
+

When using the Write-Out key (^O), text that has been selected using the +marking key (^^) can not just be written out to a new (or existing) file, +it can also be appended or prepended to an existing file. +

+
+
Reading Text from a Command
+

When using the Read-File key (^R), nano can not just read a file, +it can also read the output of a command to be run (^X). +

+
+
Reading from Working Directory
+

By default, Pico will read files from the user’s home directory (when +using ^R), but it will write files to the current working directory +(when using ^O). nano makes this symmetrical: always reading +from and writing to the current working directory — the directory +that nano was started in. +

+
+
File Browser
+

In the file browser, nano does not implement the Add, Copy, +Rename, and Delete commands that Pico provides. In nano the +browser is just a file browser, not a file manager. +

+
+
Toggles
+

Many options which alter the functionality of the program can be +"toggled" on or off using Meta key sequences, meaning the program does +not have to be restarted to turn a particular feature on or off. +See Feature Toggles for a list of options that can be toggled. +Or see the list at the end of the main internal help text (^G) instead. +

+
+
+ + +
+

10 Building and its Options

+ +

Building nano from source is straightforward if you are +familiar with compiling programs with autoconf support: +

+
+
  tar -xf nano-x.y.tar.gz
+  cd nano-x.y
+  ./configure
+  make
+  make install
+
+ +

The possible options to ./configure are: +

+
+
--disable-browser
+

Exclude the file browser that can be called with ^T when +wanting to read or write a file. +

+
+
--disable-color
+

Exclude support for syntax coloring. This also eliminates the -Y +command-line option, which allows choosing a specific syntax. +

+
+
--disable-comment
+

Exclude the single-keystroke comment/uncomment function (M-3). +

+
+
--disable-extra
+

Exclude the Easter egg: a crawl of major contributors. +

+
+
--disable-formatter
+

Exclude the code for calling a formatting tool. +

+
+
--disable-help
+

Exclude the help texts (^G). This makes the binary much smaller, +but also makes it difficult for new users to learn more than very basic +things about using the editor. +

+
+
--disable-histories
+

Exclude the code for handling the history files: the search and +replace strings that were used, the commands that were executed, +and the cursor position at which each file was closed. +This also eliminates the -H and -P command-line +options, which switch on the storing of search/replace strings, +executed commands, and cursor positions. +

+
+
--disable-justify
+

Exclude the text-justification functions (^J and M-J). +

+
+
--disable-libmagic
+

Exclude the code for using the library of magic-number tests (for +determining the file type and thus which syntax to use for coloring — +in most cases the regexes for filename and header line will be enough). +

+
+
--disable-linenumbers
+

Exclude the ability to show line numbers. This also eliminates +the -l command-line option, which turns line numbering on. +

+
+
--disable-linter
+

Exclude the code for calling a linting tool. +

+
+
--disable-mouse
+

Exclude all mouse functionality. This also eliminates the -m +command-line option, which enables the mouse functionality. +

+
+
--disable-multibuffer
+

Exclude support for opening multiple files at a time and switching +between them. This also eliminates the -F command-line option, +which causes a file to be read into a separate buffer by default. +

+
+
--disable-nanorc
+

Exclude support for reading the nanorc files at startup. With such +support, you can store custom settings in a system-wide and a per-user +nanorc file rather than having to pass command-line options to get +the desired behavior. See Nanorc Files for more info. +Disabling this also eliminates the -I command-line option, +which inhibits the reading of nanorc files. +

+
+
--disable-operatingdir
+

Exclude the code for setting an operating directory. This also eliminates +the -o command-line option, which sets the operating directory. +

+
+
--disable-speller
+

Exclude the code for spell checking. This also eliminates the -s +command-line option, which allows specifying an alternate spell checker. +

+
+
--disable-tabcomp
+

Exclude tab completion (when nano asks for a filename or search string +or replace string or command to execute). +

+
+
--disable-wordcomp
+

Exclude word completion (^]). +

+
+
--disable-wrapping
+

Exclude all hard-wrapping of overlong lines. This also eliminates the +-b and -w command-line options, which switch automatic +long-line wrapping on and off, respectively. +

+
+
--enable-tiny
+

This option implies all of the above. It also disables some other +internals of the editor, like the function toggles, the marking of text, +the undo/redo code, line anchors, the recording and playback of a macro, +softwrapping, and the cut-to-end-of-line code. These things stay disabled +also when using the enabling counterpart of the above options together with +--enable-tiny to switch specific features back on. +

+
+
--enable-debug
+

Include some code for runtime debugging output. This can get messy, so +chances are you only want this feature when you’re working on the nano source. +

+
+
--disable-nls
+

Exclude Native Language support. This will disable the use of any +available GNU nano translations. +

+
+
--enable-utf8
+

Include support for handling and displaying Unicode files. +This requires a "wide" version of the curses library. +

+
+
--disable-utf8
+

Exclude support for handling and displaying Unicode files. Normally the +configure script auto-detects whether to enable UTF-8 support or not. +You can use this or the previous option to override that detection. +

+
+
--enable-altrcname=name
+

Use the file with the given name (in the user’s home directory) +as nano’s settings file, instead of the default .nanorc. +

+
+
+ +
+ + +
+ + + + + diff --git a/doc/nano.info b/doc/nano.info new file mode 100644 index 0000000..914eead --- /dev/null +++ b/doc/nano.info @@ -0,0 +1,2034 @@ +This is nano.info, produced by makeinfo version 6.7 from nano.texi. + +INFO-DIR-SECTION Editors +START-INFO-DIR-ENTRY +* nano: (nano). Small and friendly text editor. +END-INFO-DIR-ENTRY + + +File: nano.info, Node: Top, Next: Introduction, Up: (dir) + +The GNU nano text editor +************************ + +This manual documents GNU ‘nano’, version 7.2. + +* Menu: + +* Introduction:: +* Invoking:: +* Editor Basics:: +* The Help Viewer:: +* The File Browser:: +* Command-line Options:: +* Feature Toggles:: +* Nanorc Files:: +* Pico Compatibility:: +* Building and its Options:: + + +File: nano.info, Node: Introduction, Next: Invoking, Prev: Top, Up: Top + +1 Introduction +************** + +GNU ‘nano’ is a small and friendly text editor. Besides basic text +editing, ‘nano’ offers features like undo/redo, syntax coloring, +interactive search-and-replace, auto-indentation, line numbers, word +completion, file locking, backup files, and internationalization +support. + + The original goal for ‘nano’ was to be a complete bug-for-bug +emulation of Pico. But currently the goal is to be as compatible as is +reasonable while offering a superset of Pico’s functionality. *Note +Pico Compatibility:: for more details on how ‘nano’ and Pico differ. + + Starting with version 4.0, ‘nano’ no longer hard-wraps an overlong +line by default. It further uses linewise scrolling by default, and by +default includes the line below the title bar into the editing area. If +you want the old, Pico behavior back, you can use the following options: +‘--breaklonglines’, ‘--jumpyscrolling’, and ‘--emptyline’ (or ‘-bje’). + + Please report bugs via . + + For background information see . + + +File: nano.info, Node: Invoking, Next: Editor Basics, Prev: Introduction, Up: Top + +2 Invoking +********** + +The usual way to invoke ‘nano’ is: + + nano [FILE] + + But it is also possible to specify one or more options (*note +Command-line Options::), and to edit several files in a row. +Additionally, the cursor can be put on a specific line of a file by +adding the line number with a plus sign before the filename, and even in +a specific column by adding it with a comma. (Negative numbers count +from the end of the file or line.) The cursor can also be put on the +first or last occurrence of a specific string by specifying that string +after ‘+/’ or ‘+?’ before the filename. The string can be made case +sensitive and/or caused to be interpreted as a regular expression by +inserting a ‘c’ and/or ‘r’ after the plus sign. These search modes can +be explicitly disabled by using the uppercase variant of those letters: +‘C’ and/or ‘R’. When the string contains spaces, it needs to be +enclosed in quotes. A more complete command synopsis thus is: + + nano [OPTION]... [[+LINE[,COLUMN]|+[crCR](/|?)STRING] FILE]... + + Normally, however, you set your preferred options in a ‘nanorc’ file +(*note Nanorc Files::). And when using ‘set positionlog’ (making ‘nano’ +remember the cursor position when you close a file), you will rarely +need to specify a line number. + + As a special case: when instead of a filename a dash is given, ‘nano’ +will read data from standard input. This means you can pipe the output +of a command straight into a buffer, and then edit it. + + +File: nano.info, Node: Editor Basics, Next: The Help Viewer, Prev: Invoking, Up: Top + +3 Editor Basics +*************** + +* Menu: + +* Screen Layout:: +* Entering Text:: +* Commands:: +* The Cutbuffer:: +* The Mark:: +* Search and Replace:: +* Using the Mouse:: +* Anchors:: +* Limitations:: + + +File: nano.info, Node: Screen Layout, Next: Entering Text, Up: Editor Basics + +3.1 Screen Layout +================= + +The default screen of ‘nano’ consists of four areas. From top to bottom +these are: the title bar, the edit window, the status bar, and two help +lines. + + The title bar consists of three sections: left, center and right. +The section on the left displays the version of ‘nano’ being used. The +center section displays the current filename, or "New Buffer" if the +file has not yet been named. The section on the right displays +"Modified" if the file has been modified since it was last saved or +opened. + + The status bar is the third line from the bottom of the screen. It +shows important and informational messages. Any error messages that +occur from using the editor will appear on the status bar. Any +questions that are asked of the user will be asked on the status bar, +and any user input (search strings, filenames, etc.) will be input on +the status bar. + + The two help lines at the bottom of the screen show some of the most +essential functions of the editor. + + +File: nano.info, Node: Entering Text, Next: Commands, Prev: Screen Layout, Up: Editor Basics + +3.2 Entering Text +================= + +‘nano’ is a "modeless" editor. This means that all keystrokes, with the +exception of Control and Meta sequences, enter text into the file being +edited. + + Characters not present on the keyboard can be entered in two ways: + + • For characters with a single-byte code, pressing the Esc key twice + and then typing a three-digit decimal number (from ‘000’ to ‘255’) + will make ‘nano’ behave as if you typed the key with that value. + + • For any possible character, pressing ‘M-V’ (Alt+V) and then typing + a series of hexadecimal digits (at most six, or concluded with + ‘Enter’ or ‘Space’) will enter the corresponding Unicode character + into the buffer. + + For example, typing ‘Esc Esc 2 3 4’ will enter the character "ê" — +useful when writing about a French party. Typing ‘M-V 0 0 2 2 c 4’ will +enter the symbol "⋄", a little diamond. + + Typing ‘M-V’ followed by anything other than a hexadecimal digit will +enter this keystroke verbatim into the buffer, allowing the user to +insert literal control codes (except ‘^J’) or escape sequences. + + +File: nano.info, Node: Commands, Next: The Cutbuffer, Prev: Entering Text, Up: Editor Basics + +3.3 Commands +============ + +Commands are given by using the Control key (Ctrl, shown as ‘^’) or the +Meta key (Alt or Cmd, shown as ‘M-’). + + • A control-key sequence is entered by holding down the Ctrl key and + pressing the desired key. + + • A meta-key sequence is entered by holding down the Meta key + (normally the Alt key) and pressing the desired key. + + If for some reason on your system the combinations with Ctrl or Alt +do not work, you can generate them by using the Esc key. A control-key +sequence is generated by pressing the Esc key twice and then pressing +the desired key, and a meta-key sequence by pressing the Esc key once +and then pressing the desired key. + + +File: nano.info, Node: The Cutbuffer, Next: The Mark, Prev: Commands, Up: Editor Basics + +3.4 The Cutbuffer +================= + +Text can be cut from a file a whole line at a time with ‘^K’. The cut +line is stored in the cutbuffer. Consecutive strokes of ‘^K’ will add +each cut line to this buffer, but a ‘^K’ after any other keystroke will +overwrite the entire cutbuffer. + + The contents of the cutbuffer can be pasted at the current cursor +position with ‘^U’. + + A line of text can be copied into the cutbuffer (without cutting it) +with ‘M-6’. + + +File: nano.info, Node: The Mark, Next: Search and Replace, Prev: The Cutbuffer, Up: Editor Basics + +3.5 The Mark +============ + +Text can be selected by first ’setting the Mark’ with ‘^6’ or ‘M-A’ and +then moving the cursor to the other end of the portion to be selected. +The selected portion of text will be highlighted. This selection can +now be cut or copied in its entirety with a single ‘^K’ or ‘M-6’. Or +the selection can be used to limit the scope of a search-and-replace +(‘^\’) or spell-checking session (‘^T^T’). + + On some terminals, text can be selected also by holding down ‘Shift’ +while using the cursor keys. Holding down the ‘Ctrl’ or ‘Alt’ key too +will increase the stride. Such a selection is cancelled upon any cursor +movement where ‘Shift’ isn’t held. + + Cutting or copying selected text toggles off the mark automatically. +If needed, it can be toggled off manually with another ‘^6’ or ‘M-A’. + + +File: nano.info, Node: Search and Replace, Next: Using the Mouse, Prev: The Mark, Up: Editor Basics + +3.6 Search and Replace +====================== + +One can search the current buffer for the occurrence of any string with +the Search command (default key binding: ‘^W’). The default search mode +is forward, case-insensitive, and for literal strings. But one can +search backwards by pressing ‘M-B’, search case sensitively with ‘M-C’, +and interpret regular expressions in the search string with ‘M-R’. + + A regular expression in a search string always covers just one line; +it cannot span multiple lines. And when replacing (with ‘^\’ or ‘M-R’) +the replacement string cannot contain a newline (LF). + + +File: nano.info, Node: Using the Mouse, Next: Anchors, Prev: Search and Replace, Up: Editor Basics + +3.7 Using the Mouse +=================== + +When mouse support has been configured and enabled, a single mouse click +places the cursor at the indicated position. Clicking a second time in +the same position toggles the mark. Clicking in the two help lines +executes the selected shortcut. To be able to select text with the left +button, or paste text with the middle button, hold down the Shift key +during those actions. + + The mouse will work in the X Window System, and on the console when +gpm is running. + + +File: nano.info, Node: Anchors, Next: Limitations, Prev: Using the Mouse, Up: Editor Basics + +3.8 Anchors +=========== + +With ‘M-Ins’ you can place an anchor (a kind of temporary bookmark) at +the current line. With ‘M-PgUp’ and ‘M-PgDn’ you can jump to an anchor +in the backward/forward direction. This jumping wraps around at the top +and bottom. + + When a line with an anchor is removed, the line where the cursor ends +up inherits the anchor. After performing an operation on the entire +buffer (like formatting it, piping it through a command, or doing an +external spell check on it), any anchors that were present are gone. +And when you close the buffer, all its anchors simply disappear; they +are not saved. + + Anchors are visualized in the margin when line numbers are activated. + + +File: nano.info, Node: Limitations, Prev: Anchors, Up: Editor Basics + +3.9 Limitations +=============== + +The recording and playback of keyboard macros works correctly only on a +terminal emulator, not on a Linux console (VT), because the latter does +not by default distinguish modified from unmodified arrow keys. + + +File: nano.info, Node: The Help Viewer, Next: The File Browser, Prev: Editor Basics, Up: Top + +4 The Help Viewer +***************** + +The built-in help in ‘nano’ is available by pressing ‘^G’. It is fairly +self-explanatory. It documents the various parts of the editor and the +available keystrokes. Navigation is via the ‘^Y’ (Page Up) and ‘^V’ +(Page Down) keys. ‘^X’ exits from the help viewer. + + +File: nano.info, Node: The File Browser, Next: Command-line Options, Prev: The Help Viewer, Up: Top + +5 The File Browser +****************** + +When in the Read-File (‘^R’) or Write-Out menu (‘^O’), pressing ‘^T’ +will invoke the file browser. Here, one can navigate directories in a +graphical manner in order to find the desired file. + + Basic movement in the file browser is accomplished with the arrow and +other cursor-movement keys. More targeted movement is accomplished by +searching, via ‘^W’ or ‘w’, or by changing directory, via ‘^_’ or ‘g’. +The behavior of the ‘Enter’ key (or ‘s’) varies by what is currently +selected. If the currently selected object is a directory, the file +browser will enter and display the contents of the directory. If the +object is a file, this filename and path are copied to the status bar, +and the file browser exits. + + +File: nano.info, Node: Command-line Options, Next: Feature Toggles, Prev: The File Browser, Up: Top + +6 Command-line Options +********************** + +‘nano’ takes the following options from the command line: + +‘-A’ +‘--smarthome’ + Make the Home key smarter. When Home is pressed anywhere but at + the very beginning of non-whitespace characters on a line, the + cursor will jump to that beginning (either forwards or backwards). + If the cursor is already at that position, it will jump to the true + beginning of the line. + +‘-B’ +‘--backup’ + When saving a file, back up the previous version of it, using the + current filename suffixed with a tilde (‘~’). + +‘-C DIRECTORY’ +‘--backupdir=DIRECTORY’ + Make and keep not just one backup file, but make and keep a + uniquely numbered one every time a file is saved — when backups are + enabled. The uniquely numbered files are stored in the specified + directory. + +‘-D’ +‘--boldtext’ + For the interface, use bold instead of reverse video. This will be + overridden by setting the options ‘titlecolor’, ‘statuscolor’, + ‘keycolor’, ‘functioncolor’, ‘numbercolor’, and/or ‘selectedcolor’ + in your nanorc file. *Note set keycolor:: for details. + +‘-E’ +‘--tabstospaces’ + Convert each typed tab to spaces — to the number of spaces that a + tab at that position would take up. + +‘-F’ +‘--multibuffer’ + Read a file into a new buffer by default. + +‘-G’ +‘--locking’ + Enable vim-style file locking when editing files. + +‘-H’ +‘--historylog’ + Save the last hundred search strings and replacement strings and + executed commands, so they can be easily reused in later sessions. + +‘-I’ +‘--ignorercfiles’ + Don’t look at the system’s nanorc file nor at the user’s nanorc. + +‘-J’ +‘--guidestripe’ + Draw a vertical stripe at the given column, to help judge the width + of the text. (The color of the stripe can be changed with ‘set + stripecolor’ in your nanorc file.) + +‘-K’ +‘--rawsequences’ + Interpret escape sequences directly, instead of asking ‘ncurses’ to + translate them. (If you need this option to get some keys to work + properly, it means that the terminfo terminal description that is + used does not fully match the actual behavior of your terminal. + This can happen when you ssh into a BSD machine, for example.) + Using this option disables ‘nano’’s mouse support. + +‘-L’ +‘--nonewlines’ + Don’t automatically add a newline when a text does not end with + one. (This can cause you to save non-POSIX text files.) + +‘-M’ +‘--trimblanks’ + Snip trailing whitespace from the wrapped line when automatic + hard-wrapping occurs or when text is justified. + +‘-N’ +‘--noconvert’ + Disable automatic conversion of files from DOS/Mac format. + +‘-O’ +‘--bookstyle’ + When justifying, treat any line that starts with whitespace as the + beginning of a paragraph (unless auto-indenting is on). + +‘-P’ +‘--positionlog’ + For the 200 most recent files, log the last position of the cursor, + and place it at that position again upon reopening such a file. + +‘-Q "REGEX"’ +‘--quotestr="REGEX"’ + Set the regular expression for matching the quoting part of a line. + The default value is "^([ \t]*([!#%:;>|}]|//))+". (Note that ‘\t’ + stands for a literal Tab character.) This makes it possible to + rejustify blocks of quoted text when composing email, and to rewrap + blocks of line comments when writing source code. + +‘-R’ +‘--restricted’ + Restricted mode: don’t read or write to any file not specified on + the command line. This means: don’t read or write history files; + don’t allow suspending; don’t allow spell checking; don’t allow a + file to be appended to, prepended to, or saved under a different + name if it already has one; and don’t make backup files. + Restricted mode can also be activated by invoking ‘nano’ with any + name beginning with ‘r’ (e.g. ‘rnano’). + +‘-S’ +‘--softwrap’ + Display over multiple screen rows lines that exceed the screen’s + width. (You can make this soft-wrapping occur at whitespace + instead of rudely at the screen’s edge, by using also + ‘--atblanks’.) (The old short option, ‘-$’, is deprecated.) + +‘-T NUMBER’ +‘--tabsize=NUMBER’ + Set the displayed tab length to NUMBER columns. The value of + NUMBER must be greater than 0. The default value is 8. + +‘-U’ +‘--quickblank’ + Make status-bar messages disappear after 1 keystroke instead of + after 20. Note that option ‘-c’ (‘--constantshow’) overrides this. + When option ‘--minibar’ or ‘--zero’ is in effect, ‘--quickblank’ + makes a message disappear after 0.8 seconds instead of after the + default 1.5 seconds. + +‘-V’ +‘--version’ + Show the current version number and exit. + +‘-W’ +‘--wordbounds’ + Detect word boundaries differently by treating punctuation + characters as parts of words. + +‘-X "CHARACTERS"’ +‘--wordchars="CHARACTERS"’ + Specify which other characters (besides the normal alphanumeric + ones) should be considered as parts of words. When using this + option, you probably want to omit ‘-W’ (‘--wordbounds’). + +‘-Y NAME’ +‘--syntax=NAME’ + Specify the syntax to be used for highlighting. *Note Syntax + Highlighting:: for more info. + +‘-Z’ +‘--zap’ + Let an unmodified ‘Backspace’ or ‘Delete’ erase the marked region + (instead of a single character, and without affecting the + cutbuffer). + +‘-a’ +‘--atblanks’ + When doing soft line wrapping, wrap lines at whitespace instead of + always at the edge of the screen. + +‘-b’ +‘--breaklonglines’ + Automatically hard-wrap the current line when it becomes overlong. + (This option is the opposite of ‘-w’ (‘--nowrap’) — the last one + given takes effect.) + +‘-c’ +‘--constantshow’ + Constantly display the cursor position (line number, column number, + and character number) on the status bar. Note that this overrides + option ‘-U’ (‘--quickblank’). + +‘-d’ +‘--rebinddelete’ + Interpret the ‘Delete’ and ‘Backspace’ keys differently so that + both work properly. You should only use this option when on your + system either ‘Backspace’ acts like Delete or ‘Delete’ acts like + Backspace. + +‘-e’ +‘--emptyline’ + Do not use the line below the title bar, leaving it entirely blank. + +‘-f FILE’ +‘--rcfile=FILE’ + Read only this FILE for setting nano’s options, instead of reading + both the system-wide and the user’s nanorc files. + +‘-g’ +‘--showcursor’ + Make the cursor visible in the file browser (putting it on the + highlighted item) and in the help viewer. Useful for braille users + and people with poor vision. + +‘-h’ +‘--help’ + Show a summary of command-line options and exit. + +‘-i’ +‘--autoindent’ + Automatically indent a newly created line to the same number of + tabs and/or spaces as the previous line (or as the next line if the + previous line is the beginning of a paragraph). + +‘-j’ +‘--jumpyscrolling’ + Scroll the buffer contents per half-screen instead of per line. + +‘-k’ +‘--cutfromcursor’ + Make the ’Cut Text’ command (normally ‘^K’) cut from the current + cursor position to the end of the line, instead of cutting the + entire line. + +‘-l’ +‘--linenumbers’ + Display line numbers to the left of the text area. (Any line with + an anchor additionally gets a mark in the margin.) + +‘-m’ +‘--mouse’ + Enable mouse support, if available for your system. When enabled, + mouse clicks can be used to place the cursor, set the mark (with a + double click), and execute shortcuts. The mouse will work in the X + Window System, and on the console when gpm is running. Text can + still be selected through dragging by holding down the Shift key. + +‘-n’ +‘--noread’ + Treat any name given on the command line as a new file. This + allows ‘nano’ to write to named pipes: it will start with a blank + buffer, and will write to the pipe when the user saves the "file". + This way ‘nano’ can be used as an editor in combination with for + instance ‘gpg’ without having to write sensitive data to disk + first. + +‘-o DIRECTORY’ +‘--operatingdir=DIRECTORY’ + Set the operating directory. This makes ‘nano’ set up something + similar to a chroot. + +‘-p’ +‘--preserve’ + Preserve the ‘^Q’ (XON) and ‘^S’ (XOFF) sequences so data being + sent to the editor can be stopped and started. + +‘-q’ +‘--indicator’ + Display a "scrollbar" on the righthand side of the edit window. It + shows the position of the viewport in the buffer and how much of + the buffer is covered by the viewport. + +‘-r NUMBER’ +‘--fill=NUMBER’ + Set the target width for justifying and automatic hard-wrapping at + this NUMBER of columns. If the value is 0 or less, wrapping will + occur at the width of the screen minus NUMBER columns, allowing the + wrap point to vary along with the width of the screen if the screen + is resized. The default value is -8. + +‘-s "PROGRAM [ARGUMENT ...]"’ +‘--speller="PROGRAM [ARGUMENT ...]"’ + Use the given program to do spell checking and correcting. By + default, ‘nano’ uses the command specified in the ‘SPELL’ + environment variable. If ‘SPELL’ is not set, and ‘--speller’ is + not specified either, then ‘nano’ uses its own interactive spell + corrector, which requires either ‘hunspell’ or GNU ‘spell’ to be + installed. + +‘-t’ +‘--saveonexit’ + Save a changed buffer without prompting (when exiting with ‘^X’). + This can be handy when ‘nano’ is used as the composer of an email + program. + +‘-u’ +‘--unix’ + Save a file by default in Unix format. This overrides nano’s + default behavior of saving a file in the format that it had. (This + option has no effect when you also use ‘--noconvert’.) + +‘-v’ +‘--view’ + Don’t allow the contents of the file to be altered: read-only mode. + This mode allows the user to open also other files for viewing, + unless ‘--restricted’ is given too. (Note that this option should + NOT be used in place of correct file permissions to implement a + read-only file.) + +‘-w’ +‘--nowrap’ + Do not automatically hard-wrap the current line when it becomes + overlong. This is the default. (This option is the opposite of + ‘-b’ (‘--breaklonglines’) — the last one given takes effect.) + +‘-x’ +‘--nohelp’ + Expert mode: don’t show the two help lines at the bottom of the + screen. This affects the location of the status bar as well, as in + Expert mode it is located at the very bottom of the editor. + + Note: When accessing the help system, Expert mode is temporarily + disabled to display the help-system navigation keys. + +‘-y’ +‘--afterends’ + Make ‘Ctrl+Right’ and ‘Ctrl+Delete’ stop at word ends instead of + beginnings. + +‘-!’ +‘--magic’ + When neither the file’s name nor its first line give a clue, try + using libmagic to determine the applicable syntax. + +‘-%’ +‘--stateflags’ + Use the top-right corner of the screen for showing some state + flags: ‘I’ when auto-indenting, ‘M’ when the mark is on, ‘L’ when + hard-wrapping (breaking long lines), ‘R’ when recording a macro, + and ‘S’ when soft-wrapping. When the buffer is modified, a star + (‘*’) is shown after the filename in the center of the title bar. + +‘-_’ +‘--minibar’ + Suppress the title bar and instead show information about the + current buffer at the bottom of the screen, in the space for the + status bar. In this "minibar" the filename is shown on the left, + followed by an asterisk if the buffer has been modified. On the + right are displayed the current line and column number, the code of + the character under the cursor (in Unicode format: U+xxxx), the + same flags as are shown by ‘--stateflags’, and a percentage that + expresses how far the cursor is into the file (linewise). When a + file is loaded or saved, and also when switching between buffers, + the number of lines in the buffer is displayed after the filename. + This number is cleared upon the next keystroke, or replaced with an + [i/n] counter when multiple buffers are open. The line plus column + numbers and the character code are displayed only when + ‘--constantshow’ is used, and can be toggled on and off with ‘M-C’. + The state flags are displayed only when ‘--stateflags’ is used. + +‘-0’ +‘--zero’ + Hide all elements of the interface (title bar, status bar, and help + lines) and use all rows of the terminal for showing the contents of + the buffer. The status bar appears only when there is a + significant message, and disappears after 1.5 seconds or upon the + next keystroke. With ‘M-Z’ the title bar plus status bar can be + toggled. With ‘M-X’ the help lines. + + + Option ‘-z’ (‘--suspendable’) has been removed. Suspension is +enabled by default, reachable via ‘^T^Z’. (If you want a plain ‘^Z’ to +suspend nano, add ‘bind ^Z suspend main’ to your nanorc.) + + +File: nano.info, Node: Feature Toggles, Next: Nanorc Files, Prev: Command-line Options, Up: Top + +7 Feature Toggles +***************** + +Toggles allow you to change certain aspects of the editor while you are +editing, aspects that you would normally specify via command-line +options or nanorc options. Each toggle can be flicked via a Meta-key +combination — the ‘Meta’ key is normally the ‘Alt’ key (*note Commands:: +for more details). The following global toggles are available: + + +‘Constant Cursor Position Display’ + ‘M-C’ toggles the ‘-c’ (‘--constantshow’) command-line option. + +‘Smart Home Key’ + ‘M-H’ toggles the ‘-A’ (‘--smarthome’) command-line option. + +‘Auto Indent’ + ‘M-I’ toggles the ‘-i’ (‘--autoindent’) command-line option. + +‘Cut From Cursor To End-of-Line’ + ‘M-K’ toggles the ‘-k’ (‘--cutfromcursor’) command-line option. + +‘Long-Line Wrapping’ + ‘M-L’ toggles the ‘-b’ (‘--breaklonglines’) command-line option. + +‘Mouse Support’ + ‘M-M’ toggles the ‘-m’ (‘--mouse’) command-line option. + +‘Line Numbers’ + ‘M-N’ toggles the ‘-l’ (‘--linenumbers’) command-line option. + +‘Tabs To Spaces’ + ‘M-O’ toggles the ‘-E’ (‘--tabstospaces’) command-line option. + +‘Whitespace Display’ + ‘M-P’ toggles the displaying of whitespace (*note Whitespace::). + +‘Soft Wrapping’ + ‘M-S’ toggles the ‘-S’ (‘--softwrap’) command-line option. + +‘Expert’ + ‘M-X’ toggles the ‘-x’ (‘--nohelp’) command-line option. + +‘Syntax Coloring’ + ‘M-Y’ toggles syntax coloring, when your nanorc defines syntaxes + (*note Syntax Highlighting::). + +‘Hidden Interface’ + ‘M-Z’ toggles the ‘-0’ (‘--zero’) command-line option, but without + the ‘-x’ (‘--nohelp’) part. That is: it toggles just the title bar + plus status bar (or the combined minibar plus status bar), not the + help lines. The latter are toggled with ‘M-X’. + + +File: nano.info, Node: Nanorc Files, Next: Pico Compatibility, Prev: Feature Toggles, Up: Top + +8 Nanorc Files +************** + +Nanorc files can be used to configure ‘nano’ to your liking without +using command-line options. During startup ‘nano’ will normally read +two files: first the system-wide file, ‘/etc/nanorc’ (the exact path may +be different on your system), and then the user-specific file, either +‘~/.nanorc’ or ‘$XDG_CONFIG_HOME/nano/nanorc’ or ‘.config/nano/nanorc’, +whichever exists first. However, if ‘--rcfile’ is given, ‘nano’ will +skip the above files and will read just the specified settings file. + + A nanorc file can contain ‘set’ and ‘unset’ commands for various +options (*note Settings::). It can also contain commands that define +syntax highlighting (*note Syntax Highlighting::) and commands that +rebind keys (*note Rebinding Keys::). Each command should be on a +separate line, and all commands should be written in lowercase. + + Options that do not take an argument are unset by default. So using +the ‘unset’ command is only needed when wanting to override a setting +from the system’s nanorc file in your own nanorc. Options that take an +argument cannot be unset, but can be assigned the empty string. + + Any command-line option overrides its nanorc setting, of course. + + Quotes inside the CHARACTERS parameters below should not be escaped. +The last double quote on the line will be seen as the closing quote. + +* Menu: + +* Settings:: +* Syntax Highlighting:: +* Rebinding Keys:: + + +File: nano.info, Node: Settings, Next: Syntax Highlighting, Up: Nanorc Files + +8.1 Settings +============ + +The supported settings in a nanorc file are: + +‘set afterends’ + Make ‘Ctrl+Right’ and ‘Ctrl+Delete’ stop at word ends instead of + beginnings. + +‘set allow_insecure_backup’ + When backing up files, allow the backup to succeed even if its + permissions can’t be (re)set due to special OS considerations. You + should NOT enable this option unless you are sure you need it. + +‘set atblanks’ + When soft line wrapping is enabled, make it wrap lines at blank + characters (tabs and spaces) instead of always at the edge of the + screen. + +‘set autoindent’ + Automatically indent a newly created line to the same number of + tabs and/or spaces as the previous line (or as the next line if the + previous line is the beginning of a paragraph). + +‘set backup’ + When saving a file, back up the previous version of it, using the + current filename suffixed with a tilde (‘~’). + +‘set backupdir "DIRECTORY"’ + Make and keep not just one backup file, but make and keep a + uniquely numbered one every time a file is saved — when backups are + enabled with ‘set backup’ or ‘--backup’ or ‘-B’. The uniquely + numbered files are stored in the specified directory. + +‘set boldtext’ + Use bold instead of reverse video for the title bar, status bar, + key combos, function tags, line numbers, and selected text. This + is overridden by setting the options ‘titlecolor’, ‘statuscolor’, + ‘keycolor’, ‘functioncolor’, ‘numbercolor’, and/or ‘selectedcolor’. + +‘set bookstyle’ + When justifying, treat any line that starts with whitespace as the + beginning of a paragraph (unless auto-indenting is on). + +‘set brackets "CHARACTERS"’ + Set the characters treated as closing brackets when justifying + paragraphs. This may not include blank characters. Only closing + punctuation (see ‘set punct’), optionally followed by the specified + closing brackets, can end sentences. The default value is + ""')>]}". + +‘set breaklonglines’ + Automatically hard-wrap the current line when it becomes overlong. + +‘set casesensitive’ + Do case-sensitive searches by default. + +‘set constantshow’ + Constantly display the cursor position on the status bar. Note + that this overrides ‘quickblank’. + +‘set cutfromcursor’ + Use cut-from-cursor-to-end-of-line by default, instead of cutting + the whole line. + +‘set emptyline’ + Do not use the line below the title bar, leaving it entirely blank. + +‘set errorcolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the status bar when an error message + is displayed. The default value is bold,white,red. *Note set + keycolor:: for valid color names. + +‘set fill NUMBER’ + Set the target width for justifying and automatic hard-wrapping at + this NUMBER of columns. If the value is 0 or less, wrapping will + occur at the width of the screen minus NUMBER columns, allowing the + wrap point to vary along with the width of the screen if the screen + is resized. The default value is -8. + +‘set functioncolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the concise function descriptions in + the two help lines at the bottom of the screen. *Note set + keycolor:: for valid color names. + +‘set guidestripe NUMBER’ + Draw a vertical stripe at the given column, to help judge the width + of the text. (The color of the stripe can be changed with ‘set + stripecolor’.) + +‘set historylog’ + Save the last hundred search strings and replacement strings and + executed commands, so they can be easily reused in later sessions. + +‘set indicator’ + Display a "scrollbar" on the righthand side of the edit window. It + shows the position of the viewport in the buffer and how much of + the buffer is covered by the viewport. + +‘set jumpyscrolling’ + Scroll the buffer contents per half-screen instead of per line. + +‘set keycolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the shortcut key combos in the two + help lines at the bottom of the screen. Valid names for the + foreground and background colors are: ‘red’, ‘green’, ‘blue’, + ‘magenta’, ‘yellow’, ‘cyan’, ‘white’, and ‘black’. Each of these + eight names may be prefixed with the word ‘light’ to get a brighter + version of that color. The word ‘grey’ or ‘gray’ may be used as a + synonym for ‘lightblack’. + + On terminal emulators that can do at least 256 colors, other valid + (but unprefixable) color names are: ‘pink’, ‘purple’, ‘mauve’, + ‘lagoon’, ‘mint’, ‘lime’, ‘peach’, ‘orange’, ‘latte’, ‘rosy’, + ‘beet’, ‘plum’, ‘sea’, ‘sky’, ‘slate’, ‘teal’, ‘sage’, ‘brown’, + ‘ocher’, ‘sand’, ‘tawny’, ‘brick’, ‘crimson’, and ‘normal’ — where + ‘normal’ means the default foreground or background color. On such + emulators, the color may also be specified as a three-digit + hexadecimal number prefixed with ‘#’, with the digits representing + the amounts of red, green, and blue, respectively. This tells + ‘nano’ to select from the available palette the color that + approximates the given values. + + Either FGCOLOR or ,BGCOLOR may be left out, and the pair may be + preceded by ‘bold’ and/or ‘italic’ (separated by commas) to get a + bold and/or slanting typeface, if your terminal can do those. + +‘set linenumbers’ + Display line numbers to the left of the text area. (Any line with + an anchor additionally gets a mark in the margin.) + +‘set locking’ + Enable vim-style lock-files for when editing files. + +‘set magic’ + When neither the file’s name nor its first line give a clue, try + using libmagic to determine the applicable syntax. (Calling + libmagic can be relatively time consuming. It is therefore not + done by default.) + +‘set matchbrackets "CHARACTERS"’ + Specify the opening and closing brackets that can be found by + bracket searches. This may not include blank characters. The + opening set must come before the closing set, and the two sets must + be in the same order. The default value is "(<[{)>]}". + +‘set minibar’ + Suppress the title bar and instead show information about the + current buffer at the bottom of the screen, in the space for the + status bar. In this "minibar" the filename is shown on the left, + followed by an asterisk if the buffer has been modified. On the + right are displayed the current line and column number, the code of + the character under the cursor (in Unicode format: U+xxxx), the + same flags as are shown by ‘set stateflags’, and a percentage that + expresses how far the cursor is into the file (linewise). When a + file is loaded or saved, and also when switching between buffers, + the number of lines in the buffer is displayed after the filename. + This number is cleared upon the next keystroke, or replaced with an + [i/n] counter when multiple buffers are open. The line plus column + numbers and the character code are displayed only when ‘set + constantshow’ is used, and can be toggled on and off with ‘M-C’. + The state flags are displayed only when ‘set stateflags’ is used. + +‘set minicolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the minibar. (When this option is + not specified, the colors of the title bar are used.) *Note set + keycolor:: for valid color names. + +‘set mouse’ + Enable mouse support, so that mouse clicks can be used to place the + cursor, set the mark (with a double click), or execute shortcuts. + +‘set multibuffer’ + When reading in a file with ‘^R’, insert it into a new buffer by + default. + +‘set noconvert’ + Don’t convert files from DOS/Mac format. + +‘set nohelp’ + Don’t display the help lists at the bottom of the screen. + +‘set nonewlines’ + Don’t automatically add a newline when a text does not end with + one. (This can cause you to save non-POSIX text files.) + +‘set nowrap’ + Deprecated option since it has become the default setting. When + needed, use ‘unset breaklonglines’ instead. + +‘set numbercolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for line numbers. *Note set keycolor:: + for valid color names. + +‘set operatingdir "DIRECTORY"’ + ‘nano’ will only read and write files inside "directory" and its + subdirectories. Also, the current directory is changed to here, so + files are inserted from this directory. By default, the operating + directory feature is turned off. + +‘set positionlog’ + Save the cursor position of files between editing sessions. The + cursor position is remembered for the 200 most-recently edited + files. + +‘set preserve’ + Preserve the XON and XOFF keys (‘^Q’ and ‘^S’). + +‘set promptcolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the prompt bar. (When this option + is not specified, the colors of the title bar are used.) *Note set + keycolor:: for valid color names. + +‘set punct "CHARACTERS"’ + Set the characters treated as closing punctuation when justifying + paragraphs. This may not include blank characters. Only the + specified closing punctuation, optionally followed by closing + brackets (see ‘set brackets’), can end sentences. The default + value is "!.?". + +‘set quickblank’ + Make status-bar messages disappear after 1 keystroke instead of + after 20. Note that option ‘constantshow’ overrides this. When + option ‘minibar’ or ‘zero’ is in effect, ‘quickblank’ makes a + message disappear after 0.8 seconds instead of after the default + 1.5 seconds. + +‘set quotestr "REGEX"’ + Set the regular expression for matching the quoting part of a line. + The default value is "^([ \t]*([!#%:;>|}]|//))+". (Note that ‘\t’ + stands for a literal Tab character.) This makes it possible to + rejustify blocks of quoted text when composing email, and to rewrap + blocks of line comments when writing source code. + +‘set rawsequences’ + Interpret escape sequences directly, instead of asking ‘ncurses’ to + translate them. (If you need this option to get some keys to work + properly, it means that the terminfo terminal description that is + used does not fully match the actual behavior of your terminal. + This can happen when you ssh into a BSD machine, for example.) + Using this option disables ‘nano’’s mouse support. + +‘set rebinddelete’ + Interpret the ‘Delete’ and ‘Backspace’ keys differently so that + both work properly. You should only use this option when on your + system either ‘Backspace’ acts like Delete or ‘Delete’ acts like + Backspace. + +‘set regexp’ + Do regular-expression searches by default. Regular expressions in + ‘nano’ are of the extended type (ERE). + +‘set saveonexit’ + Save a changed buffer automatically on exit (‘^X’); don’t prompt. + +‘set scrollercolor FGCOLOR,BGCOLOR’ + Use this color combination for the indicator alias "scrollbar". + (On terminal emulators that link to a libvte older than version + 0.55, using a background color here does not work correctly.) + *Note set keycolor:: for valid color names. + +‘set selectedcolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for selected text. *Note set keycolor:: + for valid color names. + +‘set showcursor’ + Put the cursor on the highlighted item in the file browser, and + show the cursor in the help viewer, to aid braille users and people + with poor vision. + +‘set smarthome’ + Make the Home key smarter. When Home is pressed anywhere but at + the very beginning of non-whitespace characters on a line, the + cursor will jump to that beginning (either forwards or backwards). + If the cursor is already at that position, it will jump to the true + beginning of the line. + +‘set softwrap’ + Display lines that exceed the screen’s width over multiple screen + lines. (You can make this soft-wrapping occur at whitespace + instead of rudely at the screen’s edge, by using also ‘set + atblanks’.) + +‘set speller "PROGRAM [ARGUMENT ...]"’ + Use the given program to do spell checking and correcting. *Note + --speller:: for details. + +‘set spotlightcolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for highlighting a search match. The + default value is black,lightyellow. *Note set keycolor:: for valid + color names. + +‘set stateflags’ + Use the top-right corner of the screen for showing some state + flags: ‘I’ when auto-indenting, ‘M’ when the mark is on, ‘L’ when + hard-wrapping (breaking long lines), ‘R’ when recording a macro, + and ‘S’ when soft-wrapping. When the buffer is modified, a star + (‘*’) is shown after the filename in the center of the title bar. + +‘set statuscolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the status bar. *Note set + keycolor:: for valid color names. + +‘set stripecolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the vertical guiding stripe. *Note + set keycolor:: for valid color names. + +‘set tabsize NUMBER’ + Use a tab size of NUMBER columns. The value of NUMBER must be + greater than 0. The default value is 8. + +‘set tabstospaces’ + Convert each typed tab to spaces — to the number of spaces that a + tab at that position would take up. + +‘set titlecolor [bold,][italic,]FGCOLOR,BGCOLOR’ + Use this color combination for the title bar. *Note set keycolor:: + for valid color names. + +‘set trimblanks’ + Remove trailing whitespace from wrapped lines when automatic + hard-wrapping occurs or when text is justified. + +‘set unix’ + Save a file by default in Unix format. This overrides nano’s + default behavior of saving a file in the format that it had. (This + option has no effect when you also use ‘set noconvert’.) + +‘set whitespace "CHARACTERS"’ + Set the two characters used to indicate the presence of tabs and + spaces. They must be single-column characters. The default pair + for a UTF-8 locale is "»·", and for other locales ">.". + +‘set wordbounds’ + Detect word boundaries differently by treating punctuation + characters as part of a word. + +‘set wordchars "CHARACTERS"’ + Specify which other characters (besides the normal alphanumeric + ones) should be considered as parts of words. When using this + option, you probably want to unset ‘wordbounds’. + +‘set zap’ + Let an unmodified ‘Backspace’ or ‘Delete’ erase the marked region + (instead of a single character, and without affecting the + cutbuffer). + +‘set zero’ + Hide all elements of the interface (title bar, status bar, and help + lines) and use all rows of the terminal for showing the contents of + the buffer. The status bar appears only when there is a + significant message, and disappears after 1.5 seconds or upon the + next keystroke. With ‘M-Z’ the title bar plus status bar can be + toggled. With ‘M-X’ the help lines. + + +File: nano.info, Node: Syntax Highlighting, Next: Rebinding Keys, Prev: Settings, Up: Nanorc Files + +8.2 Syntax Highlighting +======================= + +Coloring the different syntactic elements of a file is done via regular +expressions (see the ‘color’ command below). This is inherently +imperfect, because regular expressions are not powerful enough to fully +parse a file. Nevertheless, regular expressions can do a lot and are +easy to make, so they are a good fit for a small editor like ‘nano’. + + See ‘/usr/share/nano/’ and ‘/usr/share/nano/extra/’ for the +syntax-coloring definitions that are available out of the box. + + All regular expressions in ‘nano’ are POSIX extended regular +expressions (ERE). This means that ‘.’, ‘?’, ‘*’, ‘+’, ‘^’, ‘$’, and +several other characters are special. The period ‘.’ matches any single +character, ‘?’ means the preceding item is optional, ‘*’ means the +preceding item may be matched zero or more times, ‘+’ means the +preceding item must be matched one or more times, ‘^’ matches the +beginning of a line, and ‘$’ the end, ‘\<’ matches the start of a word, +and ‘\>’ the end, and ‘\s’ matches a blank. It also means that +lookahead and lookbehind are not possible. A complete explanation can +be found in the manual of GNU grep: ‘info grep regular’. + + Each regular expression in a ‘nanorc’ file should be wrapped in +double quotes (‘""’). Multiple regular expressions can follow each +other on a line by separating them with blanks. This means that a +regular expression cannot contain a double quote followed by a blank. +When you need this combination inside a regular expression, then either +the double quote or the blank should be put between square brackets +(‘[]’). + + A separate syntax can be defined for each kind of file via the +following commands in a nanorc file: + +‘syntax NAME ["FILEREGEX" ...]’ + Start the definition of a syntax with this NAME. All subsequent + ‘color’ and other such commands will be added to this syntax, until + a new ‘syntax’ command is encountered. + + When ‘nano’ is run, this syntax will be automatically activated if + the current filename matches the extended regular expression + FILEREGEX. Or the syntax can be explicitly activated by using the + ‘-Y’ or ‘--syntax’ command-line option followed by the NAME. + + The ‘default’ syntax is special: it takes no FILEREGEX, and applies + to files that don’t match any syntax’s regexes. The ‘none’ syntax + is reserved; specifying it on the command line is the same as not + having a syntax at all. + +‘header "REGEX" ...’ + If from all defined syntaxes no FILEREGEX matched, then compare + this REGEX (or regexes) against the first line of the current file, + to determine whether this syntax should be used for it. + +‘magic "REGEX" ...’ + If no FILEREGEX matched and no ‘header’ regex matched either, then + compare this REGEX (or regexes) against the result of querying the + ‘magic’ database about the current file, to determine whether this + syntax should be used for it. (This functionality only works when + ‘libmagic’ is installed on the system and will be silently ignored + otherwise.) + +‘formatter PROGRAM [ARGUMENT ...]’ + Run the given PROGRAM on the full contents of the current buffer. + +‘linter PROGRAM [ARGUMENT ...]’ + Use the given PROGRAM to do a syntax check on the current buffer. + +‘comment "STRING"’ + Use the given string for commenting and uncommenting lines. If the + string contains a vertical bar or pipe character (|), this + designates bracket-style comments; for example, "/*|*/" for CSS + files. The characters before the pipe are prepended to the line + and the characters after the pipe are appended at the end of the + line. If no pipe character is present, the full string is + prepended; for example, "#" for Python files. If empty double + quotes are specified, the comment/uncomment functions are disabled; + for example, "" for JSON. The default value is "#". + +‘tabgives "STRING"’ + Make the key produce the given STRING. Useful for languages + like Python that want to see only spaces for indentation. This + overrides the setting of the ‘tabstospaces’ option. + +‘color [bold,][italic,]FGCOLOR,BGCOLOR "REGEX" ...’ + Paint all pieces of text that match the extended regular expression + "regex" with the given foreground and background colors, at least + one of which must be specified. Valid color names are: ‘red’, + ‘green’, ‘blue’, ‘magenta’, ‘yellow’, ‘cyan’, ‘white’, and ‘black’. + Each of these eight names may be prefixed with the word ‘light’ to + get a brighter version of that color. The word ‘grey’ or ‘gray’ + may be used as a synonym for ‘lightblack’. + + On terminal emulators that can do at least 256 colors, other valid + (but unprefixable) color names are: ‘pink’, ‘purple’, ‘mauve’, + ‘lagoon’, ‘mint’, ‘lime’, ‘peach’, ‘orange’, ‘latte’, ‘rosy’, + ‘beet’, ‘plum’, ‘sea’, ‘sky’, ‘slate’, ‘teal’, ‘sage’, ‘brown’, + ‘ocher’, ‘sand’, ‘tawny’, ‘brick’, ‘crimson’, and ‘normal’ — where + ‘normal’ means the default foreground or background color. On such + emulators, the color may also be specified as a three-digit + hexadecimal number prefixed with ‘#’, with the digits representing + the amounts of red, green, and blue, respectively. This tells + ‘nano’ to select from the available palette the color that + approximates the given values. + + The color pair may be preceded by ‘bold’ and/or ‘italic’ (separated + by commas) to get a bold and/or slanting typeface, if your terminal + can do those. + + All coloring commands are applied in the order in which they are + specified, which means that later commands can recolor stuff that + was colored earlier. + +‘icolor [bold,][italic,]FGCOLOR,BGCOLOR "REGEX" ...’ + Same as above, except that the matching is case insensitive. + +‘color [bold,][italic,]FGCOLOR,BGCOLOR start="FROMRX" end="TORX"’ + Paint all pieces of text whose start matches extended regular + expression "fromrx" and whose end matches extended regular + expression "torx" with the given foreground and background colors, + at least one of which must be specified. This means that, after an + initial instance of "fromrx", all text until the first instance of + "torx" will be colored. This allows syntax highlighting to span + multiple lines. + +‘icolor [bold,][italic,]FGCOLOR,BGCOLOR start="FROMRX" end="TORX"’ + Same as above, except that the matching is case insensitive. + +‘include "SYNTAXFILE"’ + Read in self-contained color syntaxes from "syntaxfile". Note that + "syntaxfile" may contain only the above commands, from ‘syntax’ to + ‘icolor’. + +‘extendsyntax NAME COMMAND ARGUMENT ...’ + Extend the syntax previously defined as "NAME" with another + COMMAND. This allows you to add a new ‘color’, ‘icolor’, ‘header’, + ‘magic’, ‘formatter’, ‘linter’, ‘comment’, or ‘tabgives’ command to + an already defined syntax — useful when you want to slightly + improve a syntax defined in one of the system-installed files + (which normally are not writable). + + +File: nano.info, Node: Rebinding Keys, Prev: Syntax Highlighting, Up: Nanorc Files + +8.3 Rebinding Keys +================== + +Key bindings can be changed via the following three commands in a nanorc +file: + +‘bind key function menu’ + Rebinds ‘key’ to ‘function’ in the context of ‘menu’ (or in all + menus where the function exists when ‘all’ is used). + +‘bind key "string" menu’ + Makes ‘key’ produce ‘string’ in the context of ‘menu’ (or in all + menus where the key exists when ‘all’ is used). Besides literal + text and/or control codes, the ‘string’ may contain function names + between braces. These functions will be invoked when the key is + typed. To include a literal opening brace, use ‘{{}’. + +‘unbind key menu’ + Unbinds ‘key’ from ‘menu’ (or from all menus where the key exists + when ‘all’ is used). + + Note that ‘bind key "{function}" menu’ is equivalent to ‘bind key +function menu’, except that for the latter form ‘nano’ will check the +availabilty of the ‘function’ in the given ‘menu’ at startup time (and +report an error if it does not exist there), whereas for the first form +‘nano’ will check at execution time that the ‘function’ exists but not +whether it makes any sense in the current menu. The user has to take +care that a function name between braces (or any sequence of them) is +appropriate. Strange behavior can result when it is not. + + + The format of ‘key’ should be one of: + + ‘^X’ + where X is a Latin letter, or one of several ASCII characters + (@, ], \, ^, _), or the word "Space". Example: ‘^C’. + + ‘M-X’ + where X is any ASCII character except [, or the word "Space". + Example: ‘M-8’. + + ‘Sh-M-X’ + where X is a Latin letter. Example: ‘Sh-M-U’. By default, + each Meta+letter keystroke does the same as the corresponding + Shift+Meta+letter. But when any Shift+Meta bind is made, that + will no longer be the case, for all letters. + + ‘FN’ + where N is a numeric value from 1 to 24. Example: ‘F10’. + (Often, ‘F13’ to ‘F24’ can be typed as ‘F1’ to ‘F12’ with + Shift.) + + ‘Ins’ or ‘Del’ + + + Rebinding ‘^M’ (Enter) or ‘^I’ (Tab) is probably not a good idea. +Rebinding ‘^[’ (Esc) is not possible, because its keycode is the starter +byte of Meta keystrokes and escape sequences. Rebinding any of the +dedicated cursor-moving keys (the arrows, Home, End, PageUp and +PageDown) is not possible. On some terminals it’s not possible to +rebind ‘^H’ (unless ‘--raw’ is used) because its keycode is identical to +that of the Backspace key. + + + Valid names for the ‘function’ to be bound are: + +‘help’ + Invokes the help viewer. + +‘cancel’ + Cancels the current command. + +‘exit’ + Exits from the program (or from the help viewer or file browser). + +‘writeout’ + Writes the current buffer to disk, asking for a name. + +‘savefile’ + Writes the current file to disk without prompting. + +‘insert’ + Inserts a file into the current buffer (at the current cursor + position), or into a new buffer when option ‘multibuffer’ is set. + +‘whereis’ + Starts a forward search for text in the current buffer — or for + filenames matching a string in the current list in the file + browser. + +‘wherewas’ + Starts a backward search for text in the current buffer — or for + filenames matching a string in the current list in the file + browser. + +‘findprevious’ + Searches the next occurrence in the backward direction. + +‘findnext’ + Searches the next occurrence in the forward direction. + +‘replace’ + Interactively replaces text within the current buffer. + +‘cut’ + Cuts and stores the current line (or the marked region). + +‘copy’ + Copies the current line (or the marked region) without deleting it. + +‘paste’ + Pastes the currently stored text into the current buffer at the + current cursor position. + +‘zap’ + Throws away the current line (or the marked region). (This + function is bound by default to ‘Alt+Delete’.) + +‘chopwordleft’ + Deletes from the cursor position to the beginning of the preceding + word. (This function is bound by default to ‘Shift+Ctrl+Delete’. + If your terminal produces ‘^H’ for ‘Ctrl+Backspace’, you can make + ‘Ctrl+Backspace’ delete the word to the left of the cursor by + rebinding ‘^H’ to this function.) + +‘chopwordright’ + Deletes from the cursor position to the beginning of the next word. + (This function is bound by default to ‘Ctrl+Delete’.) + +‘cutrestoffile’ + Cuts all text from the cursor position till the end of the buffer. + +‘mark’ + Sets the mark at the current position, to start selecting text. + Or, when it is set, unsets the mark. + +‘location’ + Reports the current position of the cursor in the buffer: the line, + column, and character positions. + +‘wordcount’ + Counts and reports on the status bar the number of lines, words, + and characters in the current buffer (or in the marked region). + +‘execute’ + Prompts for a program to execute. The program’s output will be + inserted into the current buffer (or into a new buffer when ‘M-F’ + is toggled). + +‘speller’ + Invokes a spell-checking program, either the default ‘hunspell’ or + GNU ‘spell’, or the one defined by ‘--speller’ or ‘set speller’. + +‘formatter’ + Invokes a full-buffer-processing program (if the active syntax + defines one). (The current buffer is written out to a temporary + file, the program is run on it, and then the temporary file is read + back in, replacing the contents of the buffer.) + +‘linter’ + Invokes a syntax-checking program (if the active syntax defines + one). If this program produces lines of the form + "filename:linenum:charnum: some message", then the cursor will be + put at the indicated position in the mentioned file while showing + "some message" on the status bar. You can move from message to + message with ‘PgUp’ and ‘PgDn’, and leave linting mode with ‘^C’ or + ‘Enter’. + +‘justify’ + Justifies the current paragraph (or the marked region). A + paragraph is a group of contiguous lines that, apart from possibly + the first line, all have the same indentation. The beginning of a + paragraph is detected by either this lone line with a differing + indentation or by a preceding blank line. + +‘fulljustify’ + Justifies the entire current buffer (or the marked region). + +‘indent’ + Indents (shifts to the right) the current line or the marked lines. + +‘unindent’ + Unindents (shifts to the left) the current line or the marked + lines. + +‘comment’ + Comments or uncomments the current line or the marked lines, using + the comment style specified in the active syntax. + +‘complete’ + Completes (when possible) the fragment before the cursor to a full + word found elsewhere in the current buffer. + +‘left’ + Goes left one position (in the editor or browser). + +‘right’ + Goes right one position (in the editor or browser). + +‘up’ + Goes one line up (in the editor or browser). + +‘down’ + Goes one line down (in the editor or browser). + +‘scrollup’ + Scrolls the viewport up one row (meaning that the text slides down) + while keeping the cursor in the same text position, if possible. + (This function is bound by default to ‘Alt+Up’. If ‘Alt+Up’ does + nothing on your Linux console, see the FAQ: + .) + +‘scrolldown’ + Scrolls the viewport down one row (meaning that the text slides up) + while keeping the cursor in the same text position, if possible. + (This function is bound by default to ‘Alt+Down’.) + +‘center’ + Scrolls the line with the cursor to the middle of the screen. + +‘prevword’ + Moves the cursor to the beginning of the previous word. + +‘nextword’ + Moves the cursor to the beginning of the next word. + +‘home’ + Moves the cursor to the beginning of the current line. + +‘end’ + Moves the cursor to the end of the current line. + +‘beginpara’ + Moves the cursor to the beginning of the current paragraph. + +‘endpara’ + Moves the cursor to the end of the current paragraph. + +‘prevblock’ + Moves the cursor to the beginning of the current or preceding block + of text. (Blocks are separated by one or more blank lines.) + +‘nextblock’ + Moves the cursor to the beginning of the next block of text. + +‘pageup’ + Goes up one screenful. + +‘pagedown’ + Goes down one screenful. + +‘firstline’ + Goes to the first line of the file. + +‘lastline’ + Goes to the last line of the file. + +‘gotoline’ + Goes to a specific line (and column if specified). Negative + numbers count from the end of the file (and end of the line). + +‘findbracket’ + Moves the cursor to the bracket (or brace or parenthesis, etc.) + that matches (pairs) with the one under the cursor. *Note set + matchbrackets::. + +‘anchor’ + Places an anchor at the current line, or removes it when already + present. (An anchor is visible when line numbers are activated.) + +‘prevanchor’ + Goes to the first anchor before the current line. + +‘nextanchor’ + Goes to the first anchor after the current line. + +‘prevbuf’ + Switches to editing/viewing the previous buffer when multiple + buffers are open. + +‘nextbuf’ + Switches to editing/viewing the next buffer when multiple buffers + are open. + +‘verbatim’ + Inserts the next keystroke verbatim into the file, or begins + Unicode input when a hexadecimal digit is typed (*note Entering + Text:: for details). + +‘tab’ + Inserts a tab at the current cursor location. + +‘enter’ + Inserts a new line below the current one. + +‘delete’ + Deletes the character under the cursor. + +‘backspace’ + Deletes the character before the cursor. + +‘recordmacro’ + Starts the recording of keystrokes — the keystrokes are stored as a + macro. When already recording, the recording is stopped. + +‘runmacro’ + Replays the keystrokes of the last recorded macro. + +‘undo’ + Undoes the last performed text action (add text, delete text, etc). + +‘redo’ + Redoes the last undone action (i.e., it undoes an undo). + +‘refresh’ + Refreshes the screen. + +‘suspend’ + Suspends the editor and returns control to the shell (until you + tell the process to resume execution with ‘fg’). + +‘casesens’ + Toggles whether searching/replacing ignores or respects the case of + the given characters. + +‘regexp’ + Toggles whether searching/replacing uses literal strings or regular + expressions. + +‘backwards’ + Toggles whether searching/replacing goes forward or backward. + +‘older’ + Retrieves the previous (earlier) entry at a prompt. + +‘newer’ + Retrieves the next (later) entry at a prompt. + +‘flipreplace’ + Toggles between searching for something and replacing something. + +‘flipgoto’ + Toggles between searching for text and targeting a line number. + +‘flipexecute’ + Toggles between inserting a file and executing a command. + +‘flippipe’ + When executing a command, toggles whether the current buffer (or + marked region) is piped to the command. + +‘flipnewbuffer’ + Toggles between inserting into the current buffer and into a new + empty buffer. + +‘flipconvert’ + When reading in a file, toggles between converting and not + converting it from DOS/Mac format. Converting is the default. + +‘dosformat’ + When writing a file, switches to writing a DOS format (CR/LF). + +‘macformat’ + When writing a file, switches to writing a Mac format. + +‘append’ + When writing a file, appends to the end instead of overwriting. + +‘prepend’ + When writing a file, ’prepends’ (writes at the beginning) instead + of overwriting. + +‘backup’ + When writing a file, creates a backup of the current file. + +‘discardbuffer’ + When about to write a file, discard the current buffer without + saving. (This function is bound by default only when option + ‘--saveonexit’ is in effect.) + +‘browser’ + Starts the file browser (in the Read File and Write Out menus), + allowing to select a file from a list. + +‘gotodir’ + Goes to a directory to be specified, allowing to browse anywhere in + the filesystem. + +‘firstfile’ + Goes to the first file in the list when using the file browser. + +‘lastfile’ + Goes to the last file in the list when using the file browser. + +‘nohelp’ + Toggles the presence of the two-line list of key bindings at the + bottom of the screen. (This toggle is special: it is available in + all menus except the help viewer and the linter. All further + toggles are available in the main menu only.) + +‘zero’ + Toggles the presence of title bar and status bar. + +‘constantshow’ + Toggles the constant display of the current line, column, and + character positions. + +‘softwrap’ + Toggles the displaying of overlong lines on multiple screen lines. + +‘linenumbers’ + Toggles the display of line numbers in front of the text. + +‘whitespacedisplay’ + Toggles the showing of whitespace. + +‘nosyntax’ + Toggles syntax highlighting. + +‘smarthome’ + Toggles the smartness of the Home key. + +‘autoindent’ + Toggles whether a newly created line will contain the same amount + of leading whitespace as the preceding line — or as the next line + if the preceding line is the beginning of a paragraph. + +‘cutfromcursor’ + Toggles whether cutting text will cut the whole line or just from + the current cursor position to the end of the line. + +‘breaklonglines’ + Toggles whether long lines will be hard-wrapped to the next line. + (The old name of this function, ’nowrap’, is deprecated.) + +‘tabstospaces’ + Toggles whether typed tabs will be converted to spaces. + +‘mouse’ + Toggles mouse support. + + + Valid names for ‘menu’ are: + +‘main’ + The main editor window where text is entered and edited. + +‘help’ + The help-viewer menu. + +‘search’ + The search menu (AKA whereis). + +‘replace’ + The ’search to replace’ menu. + +‘replacewith’ + The ’replace with’ menu, which comes up after ’search to replace’. + +‘yesno’ + The ’yesno’ menu, where the Yes/No/All/Cancel question is asked. + +‘gotoline’ + The ’goto line (and column)’ menu. + +‘writeout’ + The ’write file’ menu. + +‘insert’ + The ’insert file’ menu. + +‘browser’ + The ’file browser’ menu, for selecting a file to be opened or + inserted or written to. + +‘whereisfile’ + The ’search for a file’ menu in the file browser. + +‘gotodir’ + The ’go to directory’ menu in the file browser. + +‘execute’ + The menu for inserting the output from an external command, or for + filtering the buffer (or the marked region) through an external + command, or for executing one of several tools. + +‘spell’ + The menu of the integrated spell checker where the user can edit a + misspelled word. + +‘linter’ + The linter menu, which allows jumping through the linting messages. + +‘all’ + A special name that encompasses all menus. For ‘bind’ it means all + menus where the specified ‘function’ exists; for ‘unbind’ it means + all menus where the specified ‘key’ exists. + + +File: nano.info, Node: Pico Compatibility, Next: Building and its Options, Prev: Nanorc Files, Up: Top + +9 Pico Compatibility +******************** + +‘nano’ emulates Pico quite closely, but there are some differences +between the two editors: + +‘Hard-Wrapping’ + Unlike Pico, ‘nano’ does not automatically hard-wrap the current + line when it becomes overlong during typing. This hard-wrapping + can be switched on with the ‘--breaklonglines’ option. With that + option, ‘nano’ by default breaks lines at screen width minus eight + columns, whereas Pico does it at screen width minus six columns. + You can make ‘nano’ do as Pico by using ‘--fill=-6’. + +‘Scrolling’ + By default, ‘nano’ will scroll just one line (instead of half a + screen) when the cursor is moved to a line that is just out of + view. And when paging up or down, ‘nano’ keeps the cursor in the + same screen position as much as possible, instead of always placing + it on the first line of the viewport. The Pico-like behavior can + be obtained with the ‘--jumpyscrolling’ option. + +‘Edit Area’ + Pico never uses the line directly below the title bar, leaving it + always blank. ‘nano’ includes this line in the editing area, in + order to not waste space, and because in this way it is slightly + clearer where the text starts. If you are accustomed to this line + being empty, you can get it back with the ‘--emptyline’ option. + +‘Interactive Replace’ + Instead of allowing you to replace either just one occurrence of a + search string or all of them, ‘nano’’s replace function is + interactive: it will pause at each found search string and query + whether to replace this instance. You can then choose Yes, or No + (skip this one), or All (don’t ask any more), or Cancel (stop with + replacing). + +‘Search and Replace History’ + When the option ‘-H’ or ‘--historylog’ is given (or set in a nanorc + file), text entered as search or replace strings is stored. These + strings can be accessed with the up/down arrow keys at their + respective prompts, or you can type the first few characters and + then use ‘Tab’ to cycle through the matching strings. A retrieved + string can subsequently be edited. + +‘Position History’ + When the option ‘-P’ or ‘--positionlog’ is given (or set in a + nanorc file), ‘nano’ will store the position of the cursor when you + close a file, and will place the cursor in that position again when + you later reopen the file. + +‘Current Cursor Position’ + The output of the "Display Cursor Position" command (‘^C’) displays + not only the current line and character position of the cursor, but + also (between the two) the current column position. + +‘Spell Checking’ + In the internal spell checker misspelled words are sorted + alphabetically and trimmed for uniqueness, such that the words + ’apple’ and ’Apple’ will be prompted for correction separately. + +‘Writing Selected Text to Files’ + When using the Write-Out key (‘^O’), text that has been selected + using the marking key (‘^^’) can not just be written out to a new + (or existing) file, it can also be appended or prepended to an + existing file. + +‘Reading Text from a Command’ + When using the Read-File key (‘^R’), ‘nano’ can not just read a + file, it can also read the output of a command to be run (‘^X’). + +‘Reading from Working Directory’ + By default, Pico will read files from the user’s home directory + (when using ‘^R’), but it will write files to the current working + directory (when using ‘^O’). ‘nano’ makes this symmetrical: always + reading from and writing to the current working directory — the + directory that ‘nano’ was started in. + +‘File Browser’ + In the file browser, ‘nano’ does not implement the Add, Copy, + Rename, and Delete commands that Pico provides. In ‘nano’ the + browser is just a file browser, not a file manager. + +‘Toggles’ + Many options which alter the functionality of the program can be + "toggled" on or off using Meta key sequences, meaning the program + does not have to be restarted to turn a particular feature on or + off. *Note Feature Toggles:: for a list of options that can be + toggled. Or see the list at the end of the main internal help text + (‘^G’) instead. + + +File: nano.info, Node: Building and its Options, Prev: Pico Compatibility, Up: Top + +10 Building and its Options +*************************** + +Building ‘nano’ from source is straightforward if you are familiar with +compiling programs with autoconf support: + + tar -xf nano-x.y.tar.gz + cd nano-x.y + ./configure + make + make install + + The possible options to ‘./configure’ are: + +‘--disable-browser’ + Exclude the file browser that can be called with ‘^T’ when wanting + to read or write a file. + +‘--disable-color’ + Exclude support for syntax coloring. This also eliminates the ‘-Y’ + command-line option, which allows choosing a specific syntax. + +‘--disable-comment’ + Exclude the single-keystroke comment/uncomment function (‘M-3’). + +‘--disable-extra’ + Exclude the Easter egg: a crawl of major contributors. + +‘--disable-formatter’ + Exclude the code for calling a formatting tool. + +‘--disable-help’ + Exclude the help texts (‘^G’). This makes the binary much smaller, + but also makes it difficult for new users to learn more than very + basic things about using the editor. + +‘--disable-histories’ + Exclude the code for handling the history files: the search and + replace strings that were used, the commands that were executed, + and the cursor position at which each file was closed. This also + eliminates the ‘-H’ and ‘-P’ command-line options, which switch on + the storing of search/replace strings, executed commands, and + cursor positions. + +‘--disable-justify’ + Exclude the text-justification functions (‘^J’ and ‘M-J’). + +‘--disable-libmagic’ + Exclude the code for using the library of magic-number tests (for + determining the file type and thus which syntax to use for coloring + — in most cases the regexes for filename and header line will be + enough). + +‘--disable-linenumbers’ + Exclude the ability to show line numbers. This also eliminates the + ‘-l’ command-line option, which turns line numbering on. + +‘--disable-linter’ + Exclude the code for calling a linting tool. + +‘--disable-mouse’ + Exclude all mouse functionality. This also eliminates the ‘-m’ + command-line option, which enables the mouse functionality. + +‘--disable-multibuffer’ + Exclude support for opening multiple files at a time and switching + between them. This also eliminates the ‘-F’ command-line option, + which causes a file to be read into a separate buffer by default. + +‘--disable-nanorc’ + Exclude support for reading the nanorc files at startup. With such + support, you can store custom settings in a system-wide and a + per-user nanorc file rather than having to pass command-line + options to get the desired behavior. *Note Nanorc Files:: for more + info. Disabling this also eliminates the ‘-I’ command-line option, + which inhibits the reading of nanorc files. + +‘--disable-operatingdir’ + Exclude the code for setting an operating directory. This also + eliminates the ‘-o’ command-line option, which sets the operating + directory. + +‘--disable-speller’ + Exclude the code for spell checking. This also eliminates the ‘-s’ + command-line option, which allows specifying an alternate spell + checker. + +‘--disable-tabcomp’ + Exclude tab completion (when nano asks for a filename or search + string or replace string or command to execute). + +‘--disable-wordcomp’ + Exclude word completion (‘^]’). + +‘--disable-wrapping’ + Exclude all hard-wrapping of overlong lines. This also eliminates + the ‘-b’ and ‘-w’ command-line options, which switch automatic + long-line wrapping on and off, respectively. + +‘--enable-tiny’ + This option implies all of the above. It also disables some other + internals of the editor, like the function toggles, the marking of + text, the undo/redo code, line anchors, the recording and playback + of a macro, softwrapping, and the cut-to-end-of-line code. These + things stay disabled also when using the enabling counterpart of + the above options together with ‘--enable-tiny’ to switch specific + features back on. + +‘--enable-debug’ + Include some code for runtime debugging output. This can get + messy, so chances are you only want this feature when you’re + working on the nano source. + +‘--disable-nls’ + Exclude Native Language support. This will disable the use of any + available GNU ‘nano’ translations. + +‘--enable-utf8’ + Include support for handling and displaying Unicode files. This + requires a "wide" version of the curses library. + +‘--disable-utf8’ + Exclude support for handling and displaying Unicode files. + Normally the configure script auto-detects whether to enable UTF-8 + support or not. You can use this or the previous option to + override that detection. + +‘--enable-altrcname=NAME’ + Use the file with the given NAME (in the user’s home directory) as + nano’s settings file, instead of the default ‘.nanorc’. + + + +Tag Table: +Node: Top199 +Node: Introduction579 +Node: Invoking1775 +Node: Editor Basics3391 +Node: Screen Layout3677 +Node: Entering Text4779 +Node: Commands6034 +Node: The Cutbuffer6831 +Node: The Mark7405 +Node: Search and Replace8382 +Node: Using the Mouse9112 +Node: Anchors9726 +Node: Limitations10531 +Node: The Help Viewer10848 +Node: The File Browser11272 +Node: Command-line Options12170 +Ref: --speller21707 +Node: Feature Toggles25939 +Node: Nanorc Files28010 +Node: Settings29575 +Ref: set keycolor33747 +Ref: set matchbrackets35825 +Ref: Whitespace44200 +Node: Syntax Highlighting45378 +Node: Rebinding Keys52989 +Node: Pico Compatibility68936 +Node: Building and its Options73495 + +End Tag Table + + +Local Variables: +coding: utf-8 +End: diff --git a/doc/nano.texi b/doc/nano.texi new file mode 100644 index 0000000..f5817d6 --- /dev/null +++ b/doc/nano.texi @@ -0,0 +1,2082 @@ +\input texinfo + +@c %**start of header +@setfilename nano.info +@settitle The GNU nano text editor +@c %**end of header + +@documentencoding UTF-8 + +@documentdescription +The complete manual for the GNU nano text editor. +@end documentdescription + +@smallbook +@set EDITION 0.7 +@set VERSION 7.2 +@set UPDATED January 2023 + +@dircategory Editors +@direntry +* nano: (nano). Small and friendly text editor. +@end direntry + +@comment Prevent the black square at the end of an overlong line. +@finalout + + +@titlepage + +@title GNU @command{nano} +@subtitle a small and friendly text editor +@subtitle version 7.2 + +@author Chris Allegretta + +@page + +This manual documents the GNU @command{nano} editor. +@sp 1 +The contents of this manual are part of the GNU @command{nano} distribution. + +@sp 5 +Copyright @copyright{} 1999-2009, 2014-2023 Free Software Foundation, Inc. +@sp 1 +This document is dual-licensed. You may distribute and/or modify it +under the terms of either of the following licenses: +@sp 1 +* The GNU General Public License, as published by the Free Software + Foundation, version 3 or (at your option) any later version. You + should have received a copy of the GNU General Public License along + with this program. If not, see @url{https://www.gnu.org/licenses/}. +@sp 1 +* The GNU Free Documentation License, as published by the Free Software + Foundation, version 1.2 or (at your option) any later version, with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + You should have received a copy of the GNU Free Documentation License + along with this program. If not, see @url{https://www.gnu.org/licenses/}. + +@sp 5 +You may contact the original author by e-mail: @email{chrisa@@asty.org} + +Or contact the current maintainer: @email{bensberg@@coevern.nl} + +@sp 1 +For suggesting improvements: @email{nano-devel@@gnu.org} + +@end titlepage + + +@macro blankline +@iftex +@sp 1 +@end iftex +@end macro + + +@ifnottex + +@node Top +@top + +This manual documents GNU @command{nano}, version 7.2. + +@menu +* Introduction:: +* Invoking:: +* Editor Basics:: +* The Help Viewer:: +* The File Browser:: +* Command-line Options:: +* Feature Toggles:: +* Nanorc Files:: +* Pico Compatibility:: +* Building and its Options:: +@end menu + +@end ifnottex + + +@node Introduction +@chapter Introduction + +GNU @command{nano} is a small and friendly text editor. Besides +basic text editing, @command{nano} offers features like undo/redo, +syntax coloring, interactive search-and-replace, auto-indentation, +line numbers, word completion, file locking, backup files, and +internationalization support. + +The original goal for @command{nano} was to be a complete bug-for-bug +emulation of Pico. But currently the goal is to be as compatible +as is reasonable while offering a superset of Pico's functionality. +@xref{Pico Compatibility} for more details on how @command{nano} and +Pico differ. + +Starting with version 4.0, @command{nano} no longer hard-wraps an overlong +line by default. It further uses linewise scrolling by default, and by +default includes the line below the title bar into the editing area. +If you want the old, Pico behavior back, you can use the +following options: @option{--breaklonglines}, +@option{--jumpyscrolling}, and @option{--emptyline} +(or @option{-bje}). + +@blankline +Please report bugs via @url{https://savannah.gnu.org/bugs/?group=nano}. + +@blankline +For background information see @url{https://nano-editor.org/}. + + +@node Invoking +@chapter Invoking + +The usual way to invoke @command{nano} is: + +@blankline +@example +@code{nano [FILE]} +@end example +@blankline + +But it is also possible to specify one or more options (@pxref{Command-line Options}), +and to edit several files in a row. Additionally, the cursor +can be put on a specific line of a file by adding the line number +with a plus sign before the filename, and even in a specific column by +adding it with a comma. +(Negative numbers count from the end of the file or line.) +The cursor can also be put on the first or last occurrence of a specific string +by specifying that string after @code{+/} or @code{+?} before the filename. +The string can be made case sensitive and/or caused to be interpreted as a +regular expression by inserting a @code{c} and/or @code{r} after the plus sign. +These search modes can be explicitly disabled by using the uppercase variant +of those letters: @code{C} and/or @code{R}. When the string contains spaces, +it needs to be enclosed in quotes. +A more complete command synopsis thus is: + +@blankline +@example +@code{nano [OPTION]@dots{} [[+LINE[,COLUMN]|+[crCR](/|?)STRING] FILE]@dots{}} +@end example +@blankline + +Normally, however, you set your preferred options in a @file{nanorc} +file (@pxref{Nanorc Files}). And when using @code{set positionlog} +(making @command{nano} remember the cursor position when you close a file), +you will rarely need to specify a line number. + +As a special case: when instead of a filename a dash is given, @command{nano} +will read data from standard input. This means you can pipe the output of +a command straight into a buffer, and then edit it. + + +@node Editor Basics +@chapter Editor Basics + +@menu +* Screen Layout:: +* Entering Text:: +* Commands:: +* The Cutbuffer:: +* The Mark:: +* Search and Replace:: +* Using the Mouse:: +* Anchors:: +* Limitations:: +@end menu + +@node Screen Layout +@section Screen Layout + +The default screen of @command{nano} consists of four areas. +From top to bottom these are: the title bar, the edit window, +the status bar, and two help lines. + +The title bar consists of +three sections: left, center and right. The section on the left +displays the version of @command{nano} being used. The center section +displays the current filename, or "New Buffer" if the file has not yet +been named. The section on the right displays "Modified" if the +file has been modified since it was last saved or opened. + +The status bar is the third line from the bottom of the screen. It +shows important and informational messages. Any error messages that +occur from using the editor will appear on the status bar. Any questions +that are asked of the user will be asked on the status bar, and any user +input (search strings, filenames, etc.) will be input on the status bar. + +The two help lines at the bottom of the screen show some of the most +essential functions of the editor. + +@node Entering Text +@section Entering Text + +@command{nano} is a "modeless" editor. This means that all keystrokes, +with the exception of Control and Meta sequences, enter text into the +file being edited. + +Characters not present on the keyboard can be entered in two ways: + +@itemize @bullet +@item +For characters with a single-byte code, +pressing the Esc key twice and then typing a three-digit decimal number +(from @kbd{000} to @kbd{255}) will make @command{nano} behave as if you +typed the key with that value. + +@item +For any possible character, pressing @kbd{M-V} (Alt+V) and then typing a +series of hexadecimal digits (at most six, or concluded with @kbd{Enter} or +@kbd{Space}) will enter the corresponding Unicode character into the buffer. +@end itemize + +For example, typing @kbd{Esc Esc 2 3 4} will enter the character "ê" --- +useful when writing about a French party. Typing @kbd{M-V 0 0 2 2 c 4} +will enter the symbol "⋄", a little diamond. + +Typing @kbd{M-V} followed by anything other than a hexadecimal digit +will enter this keystroke verbatim into the buffer, allowing the user +to insert literal control codes (except @code{^J}) or escape sequences. + +@node Commands +@section Commands + +Commands are given by using the Control key (Ctrl, shown as @kbd{^}) +or the Meta key (Alt or Cmd, shown as @kbd{M-}). + +@itemize @bullet +@item +A control-key sequence is entered by holding down the Ctrl key and +pressing the desired key. + +@item +A meta-key sequence is entered by holding down the Meta key (normally +the Alt key) and pressing the desired key. +@end itemize + +If for some reason on your system the combinations with Ctrl or Alt do +not work, you can generate them by using the Esc key. A control-key +sequence is generated by pressing the Esc key twice and then pressing +the desired key, and a meta-key sequence by pressing the Esc key once +and then pressing the desired key. + +@node The Cutbuffer +@section The Cutbuffer + +Text can be cut from a file a whole line at a time with @kbd{^K}. +The cut line is stored in the cutbuffer. Consecutive strokes of @kbd{^K} +will add each cut line to this buffer, but a @kbd{^K} +after any other keystroke will overwrite the entire cutbuffer. + +The contents of the cutbuffer can be pasted at the current cursor position +with @kbd{^U}. + +A line of text can be copied into the cutbuffer (without cutting it) +with @kbd{M-6}. + +@node The Mark +@section The Mark + +Text can be selected by first 'setting the Mark' with @kbd{^6} +or @kbd{M-A} and then moving the cursor to the other end of the portion +to be selected. The selected portion of text will be highlighted. +This selection can now be cut or copied in its entirety with a single +@kbd{^K} or @kbd{M-6}. Or the selection can be used to limit the scope of +a search-and-replace (@kbd{^\}) or spell-checking session (@kbd{^T^T}). + +On some terminals, text can be selected also by holding down @kbd{Shift} +while using the cursor keys. Holding down the @kbd{Ctrl} or @kbd{Alt} +key too will increase the stride. Such a selection is cancelled +upon any cursor movement where @kbd{Shift} isn't held. + +Cutting or copying selected text toggles off the mark automatically. +If needed, it can be toggled off manually with another @kbd{^6} or @kbd{M-A}. + +@node Search and Replace +@section Search and Replace + +One can search the current buffer for the occurrence of any string +with the Search command (default key binding: @kbd{^W}). The default search +mode is forward, case-insensitive, and for literal strings. But one +can search backwards by pressing @kbd{M-B}, search case sensitively with @kbd{M-C}, +and interpret regular expressions in the search string with @kbd{M-R}. + +A regular expression in a search string always covers just one line; +it cannot span multiple lines. And when replacing (with @kbd{^\} or @kbd{M-R}) +the replacement string cannot contain a newline (LF). + +@node Using the Mouse +@section Using the Mouse + +When mouse support has been configured and enabled, a single mouse click +places the cursor at the indicated position. Clicking a second time in +the same position toggles the mark. Clicking in the two help lines +executes the selected shortcut. To be able to select text with the +left button, or paste text with the middle button, hold down the +Shift key during those actions. + +The mouse will work in the X Window System, and on the console when gpm +is running. + +@node Anchors +@section Anchors + +With @kbd{M-Ins} you can place an anchor (a kind of temporary bookmark) +at the current line. With @kbd{M-PgUp} and @kbd{M-PgDn} you can jump +to an anchor in the backward/forward direction. This jumping wraps +around at the top and bottom. + +When a line with an anchor is removed, the line where the cursor ends up +inherits the anchor. After performing an operation on the entire buffer +(like formatting it, piping it through a command, or doing an external +spell check on it), any anchors that were present are gone. And when +you close the buffer, all its anchors simply disappear; they are not saved. + +Anchors are visualized in the margin when line numbers are activated. + +@node Limitations +@section Limitations + +The recording and playback of keyboard macros works correctly only on a +terminal emulator, not on a Linux console (VT), because the latter does +not by default distinguish modified from unmodified arrow keys. + + +@node The Help Viewer +@chapter The Help Viewer + +The built-in help in @command{nano} is available by pressing @kbd{^G}. +It is fairly self-explanatory. It documents the various parts of the +editor and the available keystrokes. Navigation is via the @kbd{^Y} (Page Up) +and @kbd{^V} (Page Down) keys. @kbd{^X} exits from the help viewer. + + +@node The File Browser +@chapter The File Browser + +When in the Read-File (@kbd{^R}) or Write-Out menu (@kbd{^O}), +pressing @kbd{^T} will invoke the file browser. +Here, one can navigate directories in a graphical manner in order to +find the desired file. + +Basic movement in the file browser is accomplished with the arrow and +other cursor-movement keys. More targeted movement is accomplished by +searching, via @kbd{^W} or @kbd{w}, or by changing directory, via +@kbd{^_} or @kbd{g}. The behavior of the @kbd{Enter} key (or @kbd{s}) +varies by what is currently selected. +If the currently selected object is a directory, the file browser will +enter and display the contents of the directory. If the object is a +file, this filename and path are copied to the status bar, and the file +browser exits. + + +@node Command-line Options +@chapter Command-line Options + +@command{nano} takes the following options from the command line: + +@table @option + +@item -A +@itemx --smarthome +Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. + +@item -B +@itemx --backup +When saving a file, back up the previous version of it, using the current +filename suffixed with a tilde (@code{~}). + +@item -C @var{directory} +@itemx --backupdir=@var{directory} +Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved --- when backups are enabled. +The uniquely numbered files are stored in the specified directory. + +@item -D +@itemx --boldtext +For the interface, use bold instead of reverse video. This will be overridden +by setting the options @code{titlecolor}, @code{statuscolor}, @code{keycolor}, +@code{functioncolor}, @code{numbercolor}, and/or @code{selectedcolor} in your +nanorc file. @xref{@code{set keycolor}} for details. + +@item -E +@itemx --tabstospaces +Convert each typed tab to spaces --- to the number of spaces +that a tab at that position would take up. + +@item -F +@itemx --multibuffer +Read a file into a new buffer by default. + +@item -G +@itemx --locking +Enable vim-style file locking when editing files. + +@item -H +@itemx --historylog +Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. + +@item -I +@itemx --ignorercfiles +Don't look at the system's nanorc file nor at the user's nanorc. + +@item -J +@itemx --guidestripe +Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with @code{set stripecolor} +in your nanorc file.) + +@item -K +@itemx --rawsequences +Interpret escape sequences directly, instead of asking @code{ncurses} +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables @command{nano}'s mouse support. + +@item -L +@itemx --nonewlines +Don't automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) + +@item -M +@itemx --trimblanks +Snip trailing whitespace from the wrapped line when automatic +hard-wrapping occurs or when text is justified. + +@item -N +@itemx --noconvert +Disable automatic conversion of files from DOS/Mac format. + +@item -O +@itemx --bookstyle +When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). + +@item -P +@itemx --positionlog +For the 200 most recent files, log the last position of the cursor, +and place it at that position again upon reopening such a file. + +@item -Q "@var{regex}" +@itemx --quotestr="@var{regex}" +Set the regular expression for matching the quoting part of a line. +The default value is "@t{^([@w{ }\t]*([!#%:;>|@}]|//))+}". +(Note that @code{\t} stands for a literal Tab character.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. + +@item -R +@itemx --restricted +Restricted mode: don't read or write to any file not specified on the +command line. This means: don't read or write history files; don't allow +suspending; don't allow spell checking; don't +allow a file to be appended to, prepended to, or saved under a different +name if it already has one; and don't make backup files. +Restricted mode can also be activated by invoking @command{nano} with +any name beginning with @code{r} (e.g.@: @command{rnano}). + +@item -S +@itemx --softwrap +Display over multiple screen rows lines that exceed the screen's width. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen's edge, by using also @code{--atblanks}.) +(The old short option, @code{-$}, is deprecated.) + +@item -T @var{number} +@itemx --tabsize=@var{number} +Set the displayed tab length to @var{number} columns. The value of +@var{number} must be greater than 0. The default value is @t{8}. + +@item -U +@itemx --quickblank +Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option @option{-c} (@option{--constantshow}) overrides this. +When option @option{--minibar} or @option{--zero} is in effect, +@option{--quickblank} makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. + +@item -V +@itemx --version +Show the current version number and exit. + +@item -W +@itemx --wordbounds +Detect word boundaries differently by treating punctuation +characters as parts of words. + +@item -X "@var{characters}" +@itemx --wordchars="@var{characters}" +Specify which other characters (besides the normal alphanumeric ones) +should be considered as parts of words. When using this option, you +probably want to omit @option{-W} (@option{--wordbounds}). + +@item -Y @var{name} +@itemx --syntax=@var{name} +Specify the syntax to be used for highlighting. +@xref{Syntax Highlighting} for more info. + +@item -Z +@itemx --zap +Let an unmodified @kbd{Backspace} or @kbd{Delete} erase the marked region +(instead of a single character, and without affecting the cutbuffer). + +@item -a +@itemx --atblanks +When doing soft line wrapping, wrap lines at whitespace +instead of always at the edge of the screen. + +@item -b +@itemx --breaklonglines +Automatically hard-wrap the current line when it becomes overlong. +(This option is the opposite of @option{-w} (@option{--nowrap}) --- +the last one given takes effect.) + +@item -c +@itemx --constantshow +Constantly display the cursor position (line number, column number, +and character number) on the status bar. +Note that this overrides option @option{-U} (@option{--quickblank}). + +@item -d +@itemx --rebinddelete +Interpret the @kbd{Delete} and @kbd{Backspace} keys differently so that +both work properly. You should only use this option when on your system +either @kbd{Backspace} acts like Delete or @kbd{Delete} acts like Backspace. + +@item -e +@itemx --emptyline +Do not use the line below the title bar, leaving it entirely blank. + +@item -f @var{file} +@itemx --rcfile=@var{file} +Read only this @var{file} for setting nano's options, instead of reading +both the system-wide and the user's nanorc files. + +@item -g +@itemx --showcursor +Make the cursor visible in the file browser (putting it on the +highlighted item) and in the help viewer. Useful for braille users +and people with poor vision. + +@item -h +@itemx --help +Show a summary of command-line options and exit. + +@item -i +@itemx --autoindent +Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). + +@item -j +@itemx --jumpyscrolling +Scroll the buffer contents per half-screen instead of per line. + +@item -k +@itemx --cutfromcursor +Make the 'Cut Text' command (normally @kbd{^K}) cut from the current cursor +position to the end of the line, instead of cutting the entire line. + +@item -l +@itemx --linenumbers +Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) + +@item -m +@itemx --mouse +Enable mouse support, if available for your system. When enabled, mouse +clicks can be used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X Window +System, and on the console when gpm is running. Text can still be +selected through dragging by holding down the Shift key. + +@item -n +@itemx --noread +Treat any name given on the command line as a new file. This allows +@command{nano} to write to named pipes: it will start with a blank buffer, +and will write to the pipe when the user saves the "file". This way +@command{nano} can be used as an editor in combination with for instance +@command{gpg} without having to write sensitive data to disk first. + +@item -o @var{directory} +@itemx --operatingdir=@var{directory} +Set the operating directory. This makes @command{nano} set up something +similar to a chroot. + +@item -p +@itemx --preserve +Preserve the @kbd{^Q} (XON) and @kbd{^S} (XOFF) sequences so data being +sent to the editor can be stopped and started. + +@item -q +@itemx --indicator +Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. + +@item -r @var{number} +@itemx --fill=@var{number} +Set the target width for justifying and automatic hard-wrapping at this +@var{number} of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus @var{number} columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is @t{-8}. + +@anchor{@option{--speller}} +@item -s "@var{program} [@var{argument} @dots{}]" +@itemx --speller="@var{program} [@var{argument} @dots{}]" +Use the given program to do spell checking and correcting. By default, +@command{nano} uses the command specified in the @env{SPELL} environment +variable. If @env{SPELL} is not set, and @option{--speller} is +not specified either, then @command{nano} uses its own interactive spell +corrector, which requires either @command{hunspell} or GNU @command{spell} +to be installed. + +@item -t +@itemx --saveonexit +Save a changed buffer without prompting (when exiting with @kbd{^X}). +This can be handy when @command{nano} is used as the composer of an +email program. + +@item -u +@item --unix +Save a file by default in Unix format. This overrides nano's +default behavior of saving a file in the format that it had. +(This option has no effect when you also use @option{--noconvert}.) + +@item -v +@itemx --view +Don't allow the contents of the file to be altered: read-only mode. +This mode allows the user to open also other files for viewing, +unless @option{--restricted} is given too. +(Note that this option should NOT be used in place of correct +file permissions to implement a read-only file.) + +@item -w +@itemx --nowrap +Do not automatically hard-wrap the current line when it becomes overlong. +This is the default. (This option is the opposite of @option{-b} +(@option{--breaklonglines}) --- the last one given takes effect.) + + +@item -x +@itemx --nohelp +Expert mode: don't show the two help lines at the bottom of the screen. +This affects the location of the status bar as well, as in Expert mode it +is located at the very bottom of the editor. + +Note: When accessing the help system, Expert mode is temporarily +disabled to display the help-system navigation keys. + +@item -y +@itemx --afterends +Make @kbd{Ctrl+Right} and @kbd{Ctrl+Delete} stop at word ends +instead of beginnings. + +@item -! +@itemx --magic +When neither the file's name nor its first line give a clue, +try using libmagic to determine the applicable syntax. + +@item -% +@itemx --stateflags +Use the top-right corner of the screen for showing some state flags: +@code{I} when auto-indenting, @code{M} when the mark is on, @code{L} when +hard-wrapping (breaking long lines), @code{R} when recording a macro, +and @code{S} when soft-wrapping. +When the buffer is modified, a star (@code{*}) is shown after the +filename in the center of the title bar. + +@item -_ +@itemx --minibar +Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by @code{--stateflags}, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +@code{--constantshow} is used, and can be toggled on and off with @kbd{M-C}. +The state flags are displayed only when @code{--stateflags} is used. + +@item -0 +@itemx --zero +Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With @kbd{M-Z} the title bar plus status bar can be toggled. +With @kbd{M-X} the help lines. + +@end table + +@sp 1 +Option @code{-z} (@code{--suspendable}) has been removed. +Suspension is enabled by default, reachable via @kbd{^T^Z}. +(If you want a plain @kbd{^Z} to suspend nano, add +@code{bind ^Z suspend main} to your nanorc.) + + +@node Feature Toggles +@chapter Feature Toggles + +Toggles allow you to change certain aspects of the editor while you are +editing, aspects that you would normally specify via command-line options +or nanorc options. Each toggle can be flicked via a Meta-key combination +--- the @kbd{Meta} key is normally the @kbd{Alt} key (@pxref{Commands} +for more details). The following global toggles are available: + +@sp 1 +@table @code + +@item Constant Cursor Position Display +@kbd{M-C} toggles the @option{-c} (@option{--constantshow}) command-line option. + +@item Smart Home Key +@kbd{M-H} toggles the @option{-A} (@option{--smarthome}) command-line option. + +@item Auto Indent +@kbd{M-I} toggles the @option{-i} (@option{--autoindent}) command-line option. + +@item Cut From Cursor To End-of-Line +@kbd{M-K} toggles the @option{-k} (@option{--cutfromcursor}) command-line option. + +@item Long-Line Wrapping +@kbd{M-L} toggles the @option{-b} (@option{--breaklonglines}) command-line option. + +@item Mouse Support +@kbd{M-M} toggles the @option{-m} (@option{--mouse}) command-line option. + +@item Line Numbers +@kbd{M-N} toggles the @option{-l} (@option{--linenumbers}) command-line option. + +@item Tabs To Spaces +@kbd{M-O} toggles the @option{-E} (@option{--tabstospaces}) command-line option. + +@item Whitespace Display +@kbd{M-P} toggles the displaying of whitespace (@pxref{Whitespace}). + +@item Soft Wrapping +@kbd{M-S} toggles the @option{-S} (@option{--softwrap}) command-line option. + +@item Expert +@kbd{M-X} toggles the @option{-x} (@option{--nohelp}) command-line option. + +@item Syntax Coloring +@kbd{M-Y} toggles syntax coloring, when your nanorc defines syntaxes +(@pxref{Syntax Highlighting}). + +@item Hidden Interface +@kbd{M-Z} toggles the @option{-0} (@option{--zero}) command-line option, +but without the @option{-x} (@option{--nohelp}) part. That is: it toggles +just the title bar plus status bar (or the combined minibar plus status bar), +not the help lines. The latter are toggled with @kbd{M-X}. + +@end table + + +@node Nanorc Files +@chapter Nanorc Files + +Nanorc files can be used to configure @command{nano} to your liking +without using command-line options. During startup @command{nano} will +normally read two files: first the system-wide file, @file{/etc/nanorc} +(the exact path may be different on your system), and then the user-specific +file, either @file{~/.nanorc} or @file{$XDG_CONFIG_HOME/nano/nanorc} or +@file{.config/nano/nanorc}, whichever exists first. +However, if @option{--rcfile} is given, @command{nano} will skip the +above files and will read just the specified settings file. + +A nanorc file can contain @command{set} and @command{unset} commands for +various options (@pxref{Settings}). It can also contain commands that +define syntax highlighting (@pxref{Syntax Highlighting}) and commands +that rebind keys (@ref{Rebinding Keys}). Each command should be on a +separate line, and all commands should be written in lowercase. + +Options that do not take an argument are unset by default. So using +the @code{unset} command is only needed when wanting to override a +setting from the system's nanorc file in your own nanorc. Options that +take an argument cannot be unset, but can be assigned the empty string. + +Any command-line option overrides its nanorc setting, of course. + +Quotes inside the @var{characters} parameters below should not be escaped. +The last double quote on the line will be seen as the closing quote. + +@menu +* Settings:: +* Syntax Highlighting:: +* Rebinding Keys:: +@end menu + +@node Settings +@section Settings + +The supported settings in a nanorc file are: + +@table @code + +@item set afterends +Make @kbd{Ctrl+Right} and @kbd{Ctrl+Delete} stop at word ends +instead of beginnings. + +@item set allow_insecure_backup +When backing up files, allow the backup to succeed even if its +permissions can't be (re)set due to special OS considerations. +You should NOT enable this option unless you are sure you need it. + +@item set atblanks +When soft line wrapping is enabled, make it wrap lines at blank characters +(tabs and spaces) instead of always at the edge of the screen. + +@item set autoindent +Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). + +@item set backup +When saving a file, back up the previous version of it, using the current +filename suffixed with a tilde (@code{~}). + +@item set backupdir "@var{directory}" +Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved --- when backups are enabled +with @code{set backup} or @option{--backup} or @option{-B}. +The uniquely numbered files are stored in the specified directory. + +@item set boldtext +Use bold instead of reverse video for the title bar, status bar, key combos, +function tags, line numbers, and selected text. This is overridden by +setting the options @code{titlecolor}, @code{statuscolor}, @code{keycolor}, +@code{functioncolor}, @code{numbercolor}, and/or @code{selectedcolor}. + +@item set bookstyle +When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). + +@item set brackets "@var{characters}" +Set the characters treated as closing brackets when justifying +paragraphs. This may not include blank characters. Only closing +punctuation (see @code{set punct}), optionally followed by the specified +closing brackets, can end sentences. The default value is +"@t{"')>]@}}". + +@item set breaklonglines +Automatically hard-wrap the current line when it becomes overlong. + +@item set casesensitive +Do case-sensitive searches by default. + +@item set constantshow +Constantly display the cursor position on the status bar. +Note that this overrides @option{quickblank}. + +@item set cutfromcursor +Use cut-from-cursor-to-end-of-line by default, instead of cutting the whole line. + +@item set emptyline +Do not use the line below the title bar, leaving it entirely blank. + +@item set errorcolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the status bar when an error message is displayed. +The default value is @t{bold,white,red}. +@xref{@code{set keycolor}} for valid color names. + +@item set fill @var{number} +Set the target width for justifying and automatic hard-wrapping at this +@var{number} of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus @var{number} columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is @t{-8}. + +@item set functioncolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the concise function descriptions +in the two help lines at the bottom of the screen. +@xref{@code{set keycolor}} for valid color names. + +@item set guidestripe @var{number} +Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with @code{set stripecolor}.) + +@item set historylog +Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. + +@item set indicator +Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. + +@item set jumpyscrolling +Scroll the buffer contents per half-screen instead of per line. + +@anchor{@code{set keycolor}} +@item set keycolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the shortcut key combos +in the two help lines at the bottom of the screen. +Valid names for the foreground and background colors are: +@code{red}, @code{green}, @code{blue}, +@code{magenta}, @code{yellow}, @code{cyan}, +@code{white}, and @code{black}. +Each of these eight names may be prefixed with the word +@code{light} to get a brighter version of that color. +The word @code{grey} or @code{gray} may be used +as a synonym for @code{lightblack}. + +On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +@code{pink}, @code{purple}, @code{mauve}, +@code{lagoon}, @code{mint}, @code{lime}, +@code{peach}, @code{orange}, @code{latte}, +@code{rosy}, @code{beet}, @code{plum}, @code{sea}, +@code{sky}, @code{slate}, @code{teal}, @code{sage}, +@code{brown}, @code{ocher}, @code{sand}, @code{tawny}, +@code{brick}, @code{crimson}, and @code{normal} +--- where @code{normal} means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with @code{#}, with the digits representing the amounts of red, +green, and blue, respectively. This tells @command{nano} to select from the +available palette the color that approximates the given values. + +Either @var{fgcolor} or ,@var{bgcolor} may be left out, +and the pair may be preceded by @code{bold} and/or @code{italic} +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. + +@item set linenumbers +Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) + +@item set locking +Enable vim-style lock-files for when editing files. + +@item set magic +When neither the file's name nor its first line give a clue, +try using libmagic to determine the applicable syntax. +(Calling libmagic can be relatively time consuming. +It is therefore not done by default.) + +@anchor{@code{set matchbrackets}} +@item set matchbrackets "@var{characters}" +Specify the opening and closing brackets that can be found by bracket +searches. This may not include blank characters. The opening set must +come before the closing set, and the two sets must be in the same order. +The default value is "@t{(<[@{)>]@}}". + +@item set minibar +Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by @code{set stateflags}, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +@code{set constantshow} is used, and can be toggled on and off with @kbd{M-C}. +The state flags are displayed only when @code{set stateflags} is used. + +@item set minicolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the minibar. +(When this option is not specified, the colors of the title bar are used.) +@xref{@code{set keycolor}} for valid color names. + +@item set mouse +Enable mouse support, so that mouse clicks can be used to place the +cursor, set the mark (with a double click), or execute shortcuts. + +@item set multibuffer +When reading in a file with @kbd{^R}, insert it into a new buffer by default. + +@item set noconvert +Don't convert files from DOS/Mac format. + +@item set nohelp +Don't display the help lists at the bottom of the screen. + +@item set nonewlines +Don't automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) + +@item set nowrap +Deprecated option since it has become the default setting. +When needed, use @code{unset breaklonglines} instead. + +@item set numbercolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for line numbers. +@xref{@code{set keycolor}} for valid color names. + +@item set operatingdir "@var{directory}" +@command{nano} will only read and write files inside "directory" and its +subdirectories. Also, the current directory is changed to here, so +files are inserted from this directory. By default, the operating +directory feature is turned off. + +@item set positionlog +Save the cursor position of files between editing sessions. +The cursor position is remembered for the 200 most-recently edited files. + +@item set preserve +Preserve the XON and XOFF keys (@kbd{^Q} and @kbd{^S}). + +@item set promptcolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the prompt bar. +(When this option is not specified, the colors of the title bar are used.) +@xref{@code{set keycolor}} for valid color names. + +@item set punct "@var{characters}" +Set the characters treated as closing punctuation when justifying +paragraphs. This may not include blank characters. Only the +specified closing punctuation, optionally followed by closing brackets +(see @code{set brackets}), can end sentences. +The default value is "@t{!.?}". + +@item set quickblank +Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option @option{constantshow} overrides this. +When option @option{minibar} or @option{zero} is in effect, +@option{quickblank} makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. + +@item set quotestr "@var{regex}" +Set the regular expression for matching the quoting part of a line. +The default value is "@t{^([@w{ }\t]*([!#%:;>|@}]|//))+}". +(Note that @code{\t} stands for a literal Tab character.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. + +@item set rawsequences +Interpret escape sequences directly, instead of asking @code{ncurses} +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables @command{nano}'s mouse support. + +@item set rebinddelete +Interpret the @kbd{Delete} and @kbd{Backspace} keys differently so that +both work properly. You should only use this option when on your system +either @kbd{Backspace} acts like Delete or @kbd{Delete} acts like Backspace. + +@item set regexp +Do regular-expression searches by default. +Regular expressions in @command{nano} are of the extended type (ERE). + +@item set saveonexit +Save a changed buffer automatically on exit (@kbd{^X}); don't prompt. + +@item set scrollercolor @var{fgcolor},@var{bgcolor} +Use this color combination for the indicator alias "scrollbar". +(On terminal emulators that link to a libvte older than version 0.55, +using a background color here does not work correctly.) +@xref{@code{set keycolor}} for valid color names. + +@item set selectedcolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for selected text. +@xref{@code{set keycolor}} for valid color names. + +@item set showcursor +Put the cursor on the highlighted item in the file browser, and show +the cursor in the help viewer, to aid braille users and people with +poor vision. + +@item set smarthome +Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. + +@item set softwrap +Display lines that exceed the screen's width over multiple screen lines. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen's edge, by using also @code{set atblanks}.) + +@item set speller "@var{program} [@var{argument} @dots{}]" +Use the given program to do spell checking and correcting. +@xref{@option{--speller}} for details. + +@item set spotlightcolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for highlighting a search match. +The default value is @t{black,lightyellow}. +@xref{@code{set keycolor}} for valid color names. + +@item set stateflags +Use the top-right corner of the screen for showing some state flags: +@code{I} when auto-indenting, @code{M} when the mark is on, @code{L} when +hard-wrapping (breaking long lines), @code{R} when recording a macro, +and @code{S} when soft-wrapping. +When the buffer is modified, a star (@code{*}) is shown after the +filename in the center of the title bar. + +@item set statuscolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the status bar. +@xref{@code{set keycolor}} for valid color names. + +@item set stripecolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the vertical guiding stripe. +@xref{@code{set keycolor}} for valid color names. + +@item set tabsize @var{number} +Use a tab size of @var{number} columns. The value of @var{number} must be +greater than 0. The default value is @t{8}. + +@item set tabstospaces +Convert each typed tab to spaces --- to the number of spaces +that a tab at that position would take up. + +@item set titlecolor [bold,][italic,]@var{fgcolor},@var{bgcolor} +Use this color combination for the title bar. +@xref{@code{set keycolor}} for valid color names. + +@item set trimblanks +Remove trailing whitespace from wrapped lines when automatic +hard-wrapping occurs or when text is justified. + +@item set unix +Save a file by default in Unix format. This overrides nano's +default behavior of saving a file in the format that it had. +(This option has no effect when you also use @code{set noconvert}.) + +@anchor{Whitespace} +@item set whitespace "@var{characters}" +Set the two characters used to indicate the presence of tabs and +spaces. They must be single-column characters. The default pair +for a UTF-8 locale is @t{"»·"}, and for other locales @t{">."}. + +@item set wordbounds +Detect word boundaries differently by treating punctuation +characters as part of a word. + +@item set wordchars "@var{characters}" +Specify which other characters (besides the normal alphanumeric ones) +should be considered as parts of words. When using this option, you +probably want to unset @code{wordbounds}. + +@item set zap +Let an unmodified @kbd{Backspace} or @kbd{Delete} erase the marked region +(instead of a single character, and without affecting the cutbuffer). + +@item set zero +Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With @kbd{M-Z} the title bar plus status bar can be toggled. +With @kbd{M-X} the help lines. + +@end table + +@node Syntax Highlighting +@section Syntax Highlighting + +Coloring the different syntactic elements of a file +is done via regular expressions (see the @code{color} command below). +This is inherently imperfect, because regular expressions are not +powerful enough to fully parse a file. Nevertheless, regular +expressions can do a lot and are easy to make, so they are a +good fit for a small editor like @command{nano}. + +See @file{/usr/share/nano/} and @file{/usr/share/nano/extra/} +for the syntax-coloring definitions that are available out of the box. + +All regular expressions in @command{nano} are POSIX extended regular expressions +(ERE). This means that @code{.}, @code{?}, @code{*}, @code{+}, @code{^}, +@code{$}, and several other characters are special. +The period @code{.} matches any single character, +@code{?} means the preceding item is optional, +@code{*} means the preceding item may be matched zero or more times, +@code{+} means the preceding item must be matched one or more times, +@code{^} matches the beginning of a line, and @code{$} the end, +@code{\<} matches the start of a word, and @code{\>} the end, +and @code{\s} matches a blank. +It also means that lookahead and lookbehind are not possible. +A complete explanation can be found in the manual of GNU grep: +@code{info grep regular}. + +Each regular expression in a @file{nanorc} file should be wrapped in +double quotes (@code{""}). Multiple regular expressions can follow +each other on a line by separating them with blanks. This means that +a regular expression cannot contain a double quote followed by a blank. +When you need this combination inside a regular expression, +then either the double quote or the blank should be put +between square brackets (@code{[]}). + +A separate syntax can be defined for each kind of file +via the following commands in a nanorc file: + +@table @code + +@item syntax @var{name} ["@var{fileregex}" @dots{}] +Start the definition of a syntax with this @var{name}. +All subsequent @code{color} and other such commands +will be added to this syntax, until a new @code{syntax} +command is encountered. + +When @command{nano} is run, this syntax will be automatically +activated if the current filename matches the extended regular +expression @var{fileregex}. Or the syntax can be explicitly +activated by using the @option{-Y} or @option{--syntax} +command-line option followed by the @var{name}. + +The @code{default} syntax is special: it takes no @var{fileregex}, +and applies to files that don't match any syntax's regexes. +The @code{none} syntax is reserved; specifying it on the +command line is the same as not having a syntax at all. + +@item header "@var{regex}" @dots{} +If from all defined syntaxes no @var{fileregex} matched, then compare +this @var{regex} (or regexes) against the first line of the current file, +to determine whether this syntax should be used for it. + +@item magic "@var{regex}" @dots{} +If no @var{fileregex} matched and no @code{header} regex matched +either, then compare this @var{regex} (or regexes) against the +result of querying the @code{magic} database about the current +file, to determine whether this syntax should be used for it. +(This functionality only works when @code{libmagic} is installed +on the system and will be silently ignored otherwise.) + +@item formatter @var{program} [@var{argument} @dots{}] +Run the given @var{program} on the full contents of the current buffer. + +@item linter @var{program} [@var{argument} @dots{}] +Use the given @var{program} to do a syntax check on the current buffer. + +@item comment "@var{string}" +Use the given string for commenting and uncommenting lines. +If the string contains a vertical bar or pipe character (@t{|}), +this designates bracket-style comments; for example, @t{"/*|*/"} for +CSS files. The characters before the pipe are prepended to the line and the +characters after the pipe are appended at the end of the line. If no pipe +character is present, the full string is prepended; for example, @t{"#"} for +Python files. If empty double quotes are specified, the comment/uncomment +functions are disabled; for example, @t{""} for JSON. +The default value is "@t{#}". + +@item tabgives "@var{string}" +Make the key produce the given @var{string}. Useful for languages like +Python that want to see only spaces for indentation. +This overrides the setting of the @code{tabstospaces} option. + +@item color [bold,][italic,]@var{fgcolor},@var{bgcolor} "@var{regex}" @dots{} +Paint all pieces of text that match the extended regular expression "regex" +with the given foreground and background colors, at least one of which must +be specified. Valid color names are: +@code{red}, @code{green}, @code{blue}, +@code{magenta}, @code{yellow}, @code{cyan}, +@code{white}, and @code{black}. +Each of these eight names may be prefixed with the word +@code{light} to get a brighter version of that color. +The word @code{grey} or @code{gray} may be used +as a synonym for @code{lightblack}. + +On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +@code{pink}, @code{purple}, @code{mauve}, +@code{lagoon}, @code{mint}, @code{lime}, +@code{peach}, @code{orange}, @code{latte}, +@code{rosy}, @code{beet}, @code{plum}, @code{sea}, +@code{sky}, @code{slate}, @code{teal}, @code{sage}, +@code{brown}, @code{ocher}, @code{sand}, @code{tawny}, +@code{brick}, @code{crimson}, and @code{normal} +--- where @code{normal} means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with @code{#}, with the digits representing the amounts of red, +green, and blue, respectively. This tells @command{nano} to select from the +available palette the color that approximates the given values. + +The color pair may be preceded by @code{bold} and/or @code{italic} +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. + +All coloring commands are applied in the order in which they are specified, +which means that later commands can recolor stuff that was colored earlier. + +@item icolor [bold,][italic,]@var{fgcolor},@var{bgcolor} "@var{regex}" @dots{} +Same as above, except that the matching is case insensitive. + +@item color [bold,][italic,]@var{fgcolor},@var{bgcolor} start="@var{fromrx}" end="@var{torx}" +Paint all pieces of text whose start matches extended regular expression +"fromrx" and whose end matches extended regular expression "torx" with +the given foreground and background colors, at least one of +which must be specified. This means that, after an initial instance of +"fromrx", all text until the first instance of "torx" will be colored. +This allows syntax highlighting to span multiple lines. + +@item icolor [bold,][italic,]@var{fgcolor},@var{bgcolor} start="@var{fromrx}" end="@var{torx}" +Same as above, except that the matching is case insensitive. + +@item include "@var{syntaxfile}" +Read in self-contained color syntaxes from "syntaxfile". Note that +"syntaxfile" may contain only the above commands, from @code{syntax} +to @code{icolor}. + +@item extendsyntax @var{name} @var{command} @var{argument} @dots{} +Extend the syntax previously defined as "@var{name}" with another @var{command}. +This allows you to add a new @code{color}, @code{icolor}, @code{header}, +@code{magic}, @code{formatter}, @code{linter}, @code{comment}, +or @code{tabgives} command to an already +defined syntax --- useful when you want to slightly improve a syntax defined +in one of the system-installed files (which normally are not writable). + +@end table + +@node Rebinding Keys +@section Rebinding Keys + +Key bindings can be changed via the following three commands in a +nanorc file: + +@table @code + +@item bind key function menu +Rebinds @code{key} to @code{function} in the context of @code{menu} +(or in all menus where the function exists when @code{all} is used). + +@item bind key "string" menu +Makes @code{key} produce @code{string} in the context of @code{menu} +(or in all menus where the key exists when @code{all} is used). +Besides literal text and/or control codes, the @code{string} may contain +function names between braces. These functions will be invoked when the +key is typed. To include a literal opening brace, use @code{@{@{@}}. + +@item unbind key menu +Unbinds @code{key} from @code{menu} +(or from all menus where the key exists when @code{all} is used). + +@end table + +Note that @code{bind key "@{function@}" menu} is equivalent to +@code{bind key function menu}, except that for the latter form +@command{nano} will check the availabilty of the @code{function} +in the given @code{menu} at startup time (and report an error if +it does not exist there), whereas for the first form @command{nano} +will check at execution time that the @code{function} exists but not +whether it makes any sense in the current menu. The user has to take +care that a function name between braces (or any sequence of them) +is appropriate. Strange behavior can result when it is not. + +@sp 1 +The format of @code{key} should be one of: + +@indentedblock +@table @asis + +@item @code{^@var{X}} +where @var{X} is a Latin letter, or one of several +ASCII characters (@@, ], \, ^, _), or the word "Space". +Example: @code{^C}. + +@item @code{M-@var{X}} +where @var{X} is any ASCII character except [, or the word "Space". +Example: @code{M-8}. + +@item @code{Sh-M-@var{X}} +where @var{X} is a Latin letter. +Example: @code{Sh-M-U}. +By default, each Meta+letter keystroke does the same as the corresponding +Shift+Meta+letter. But when any Shift+Meta bind is made, that will +no longer be the case, for all letters. + +@item @code{F@var{n}} +where @var{n} is a numeric value from 1 to 24. +Example: @code{F10}. +(Often, @code{F13} to @code{F24} can be typed as @code{F1} to @code{F12} +with Shift.) + +@item @code{Ins} or @code{Del} + +@end table +@end indentedblock + +@sp 1 +Rebinding @code{^M} (Enter) or @code{^I} (Tab) is probably not a good idea. +Rebinding @code{^[} (Esc) is not possible, because its keycode +is the starter byte of Meta keystrokes and escape sequences. +Rebinding any of the dedicated cursor-moving keys (the arrows, Home, End, +PageUp and PageDown) is not possible. +On some terminals it's not possible to rebind @code{^H} (unless @code{--raw} +is used) because its keycode is identical to that of the Backspace key. + +@sp 1 +Valid names for the @code{function} to be bound are: + +@table @code + +@item help +Invokes the help viewer. + +@item cancel +Cancels the current command. + +@item exit +Exits from the program (or from the help viewer or file browser). + +@item writeout +Writes the current buffer to disk, asking for a name. + +@item savefile +Writes the current file to disk without prompting. + +@item insert +Inserts a file into the current buffer (at the current cursor position), +or into a new buffer when option @code{multibuffer} is set. + +@item whereis +Starts a forward search for text in the current buffer --- or for filenames +matching a string in the current list in the file browser. + +@item wherewas +Starts a backward search for text in the current buffer --- or for filenames +matching a string in the current list in the file browser. + +@item findprevious +Searches the next occurrence in the backward direction. + +@item findnext +Searches the next occurrence in the forward direction. + +@item replace +Interactively replaces text within the current buffer. + +@item cut +Cuts and stores the current line (or the marked region). + +@item copy +Copies the current line (or the marked region) without deleting it. + +@item paste +Pastes the currently stored text into the current buffer at the +current cursor position. + +@item zap +Throws away the current line (or the marked region). +(This function is bound by default to @kbd{Alt+Delete}.) + +@item chopwordleft +Deletes from the cursor position to the beginning of the preceding word. +(This function is bound by default to @kbd{Shift+Ctrl+Delete}. If your terminal +produces @code{^H} for @kbd{Ctrl+Backspace}, you can make @kbd{Ctrl+Backspace} delete +the word to the left of the cursor by rebinding @kbd{^H} to this function.) + +@item chopwordright +Deletes from the cursor position to the beginning of the next word. +(This function is bound by default to @kbd{Ctrl+Delete}.) + +@item cutrestoffile +Cuts all text from the cursor position till the end of the buffer. + +@item mark +Sets the mark at the current position, to start selecting text. +Or, when it is set, unsets the mark. + +@item location +Reports the current position of the cursor in the buffer: +the line, column, and character positions. + +@item wordcount +Counts and reports on the status bar the number of lines, words, +and characters in the current buffer (or in the marked region). + +@item execute +Prompts for a program to execute. The program's output will be inserted +into the current buffer (or into a new buffer when @kbd{M-F} is toggled). + +@item speller +Invokes a spell-checking program, either the default @command{hunspell} +or GNU @command{spell}, or the one defined by @option{--speller} or +@code{set speller}. + +@item formatter +Invokes a full-buffer-processing program (if the active syntax defines one). +(The current buffer is written out to a temporary file, the program +is run on it, and then the temporary file is read back in, replacing +the contents of the buffer.) + +@item linter +Invokes a syntax-checking program (if the active syntax defines one). +If this program produces lines of the form "filename:linenum:charnum: +some message", then the cursor will be put at the indicated position +in the mentioned file while showing "some message" on the status bar. +You can move from message to message with @kbd{PgUp} and @kbd{PgDn}, +and leave linting mode with @kbd{^C} or @kbd{Enter}. + +@item justify +Justifies the current paragraph (or the marked region). +A paragraph is a group of contiguous lines that, apart from possibly +the first line, all have the same indentation. The beginning of a +paragraph is detected by either this lone line with a differing +indentation or by a preceding blank line. + +@item fulljustify +Justifies the entire current buffer (or the marked region). + +@item indent +Indents (shifts to the right) the current line or the marked lines. + +@item unindent +Unindents (shifts to the left) the current line or the marked lines. + +@item comment +Comments or uncomments the current line or the marked lines, +using the comment style specified in the active syntax. + +@item complete +Completes (when possible) the fragment before the cursor +to a full word found elsewhere in the current buffer. + +@item left +Goes left one position (in the editor or browser). + +@item right +Goes right one position (in the editor or browser). + +@item up +Goes one line up (in the editor or browser). + +@item down +Goes one line down (in the editor or browser). + +@item scrollup +Scrolls the viewport up one row (meaning that the text slides down) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to @kbd{Alt+Up}. +If @kbd{Alt+Up} does nothing on your Linux console, see the FAQ: +@url{https://nano-editor.org/dist/latest/faq.html#4.1}.) + +@item scrolldown +Scrolls the viewport down one row (meaning that the text slides up) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to @kbd{Alt+Down}.) + +@item center +Scrolls the line with the cursor to the middle of the screen. + +@item prevword +Moves the cursor to the beginning of the previous word. + +@item nextword +Moves the cursor to the beginning of the next word. + +@item home +Moves the cursor to the beginning of the current line. + +@item end +Moves the cursor to the end of the current line. + +@item beginpara +Moves the cursor to the beginning of the current paragraph. + +@item endpara +Moves the cursor to the end of the current paragraph. + +@item prevblock +Moves the cursor to the beginning of the current or preceding block of text. +(Blocks are separated by one or more blank lines.) + +@item nextblock +Moves the cursor to the beginning of the next block of text. + +@item pageup +Goes up one screenful. + +@item pagedown +Goes down one screenful. + +@item firstline +Goes to the first line of the file. + +@item lastline +Goes to the last line of the file. + +@item gotoline +Goes to a specific line (and column if specified). Negative numbers count +from the end of the file (and end of the line). + +@item findbracket +Moves the cursor to the bracket (or brace or parenthesis, etc.) that matches +(pairs) with the one under the cursor. @xref{@code{set matchbrackets}}. + +@item anchor +Places an anchor at the current line, or removes it when already present. +(An anchor is visible when line numbers are activated.) + +@item prevanchor +Goes to the first anchor before the current line. + +@item nextanchor +Goes to the first anchor after the current line. + +@item prevbuf +Switches to editing/viewing the previous buffer when multiple buffers are open. + +@item nextbuf +Switches to editing/viewing the next buffer when multiple buffers are open. + +@item verbatim +Inserts the next keystroke verbatim into the file, or begins Unicode input +when a hexadecimal digit is typed (@pxref{Entering Text} for details). + +@item tab +Inserts a tab at the current cursor location. + +@item enter +Inserts a new line below the current one. + +@item delete +Deletes the character under the cursor. + +@item backspace +Deletes the character before the cursor. + +@item recordmacro +Starts the recording of keystrokes --- the keystrokes are stored +as a macro. When already recording, the recording is stopped. + +@item runmacro +Replays the keystrokes of the last recorded macro. + +@item undo +Undoes the last performed text action (add text, delete text, etc). + +@item redo +Redoes the last undone action (i.e., it undoes an undo). + +@item refresh +Refreshes the screen. + +@item suspend +Suspends the editor and returns control to the shell +(until you tell the process to resume execution with @kbd{fg}). + +@item casesens +Toggles whether searching/replacing ignores or respects the case of +the given characters. + +@item regexp +Toggles whether searching/replacing uses literal strings or regular expressions. + +@item backwards +Toggles whether searching/replacing goes forward or backward. + +@item older +Retrieves the previous (earlier) entry at a prompt. + +@item newer +Retrieves the next (later) entry at a prompt. + +@item flipreplace +Toggles between searching for something and replacing something. + +@item flipgoto +Toggles between searching for text and targeting a line number. + +@item flipexecute +Toggles between inserting a file and executing a command. + +@item flippipe +When executing a command, toggles whether the current buffer (or marked +region) is piped to the command. + +@item flipnewbuffer +Toggles between inserting into the current buffer and into a new +empty buffer. + +@item flipconvert +When reading in a file, toggles between converting and not converting +it from DOS/Mac format. Converting is the default. + +@item dosformat +When writing a file, switches to writing a DOS format (CR/LF). + +@item macformat +When writing a file, switches to writing a Mac format. + +@item append +When writing a file, appends to the end instead of overwriting. + +@item prepend +When writing a file, 'prepends' (writes at the beginning) instead of overwriting. + +@item backup +When writing a file, creates a backup of the current file. + +@item discardbuffer +When about to write a file, discard the current buffer without saving. +(This function is bound by default only when option @option{--saveonexit} +is in effect.) + +@item browser +Starts the file browser (in the Read File and Write Out menus), +allowing to select a file from a list. + +@item gotodir +Goes to a directory to be specified, allowing to browse anywhere +in the filesystem. + +@item firstfile +Goes to the first file in the list when using the file browser. + +@item lastfile +Goes to the last file in the list when using the file browser. + +@item nohelp +Toggles the presence of the two-line list of key bindings at the bottom of the screen. +(This toggle is special: it is available in all menus except the help viewer +and the linter. All further toggles are available in the main menu only.) + +@item zero +Toggles the presence of title bar and status bar. + +@item constantshow +Toggles the constant display of the current line, column, and character positions. + +@item softwrap +Toggles the displaying of overlong lines on multiple screen lines. + +@item linenumbers +Toggles the display of line numbers in front of the text. + +@item whitespacedisplay +Toggles the showing of whitespace. + +@item nosyntax +Toggles syntax highlighting. + +@item smarthome +Toggles the smartness of the Home key. + +@item autoindent +Toggles whether a newly created line will contain the same amount of leading +whitespace as the preceding line --- or as the next line if the preceding line +is the beginning of a paragraph. + +@item cutfromcursor +Toggles whether cutting text will cut the whole line or just from the current cursor +position to the end of the line. + +@item breaklonglines +Toggles whether long lines will be hard-wrapped to the next line. +(The old name of this function, 'nowrap', is deprecated.) + +@item tabstospaces +Toggles whether typed tabs will be converted to spaces. + +@item mouse +Toggles mouse support. + +@end table + +@sp 1 +Valid names for @code{menu} are: + +@table @code + +@item main +The main editor window where text is entered and edited. + +@item help +The help-viewer menu. + +@item search +The search menu (AKA whereis). + +@item replace +The 'search to replace' menu. + +@item replacewith +The 'replace with' menu, which comes up after 'search to replace'. + +@item yesno +The 'yesno' menu, where the Yes/No/All/Cancel question is asked. + +@item gotoline +The 'goto line (and column)' menu. + +@item writeout +The 'write file' menu. + +@item insert +The 'insert file' menu. + +@item browser +The 'file browser' menu, for selecting a file to be opened or +inserted or written to. + +@item whereisfile +The 'search for a file' menu in the file browser. + +@item gotodir +The 'go to directory' menu in the file browser. + +@item execute +The menu for inserting the output from an external command, +or for filtering the buffer (or the marked region) through +an external command, or for executing one of several tools. + +@item spell +The menu of the integrated spell checker where the user can edit a misspelled word. + +@item linter +The linter menu, which allows jumping through the linting messages. + +@item all +A special name that encompasses all menus. For @code{bind} it means +all menus where the specified @code{function} exists; for @code{unbind} +it means all menus where the specified @code{key} exists. + +@end table + + +@node Pico Compatibility +@chapter Pico Compatibility + +@command{nano} emulates Pico quite closely, but there +are some differences between the two editors: + +@table @code + +@item Hard-Wrapping +Unlike Pico, @command{nano} does not automatically hard-wrap the current +line when it becomes overlong during typing. This hard-wrapping can be +switched on with the @option{--breaklonglines} option. With that option, +@command{nano} by default breaks lines at screen width minus eight columns, +whereas Pico does it at screen width minus six columns. You can make +@command{nano} do as Pico by using @option{--fill=-6}. + +@item Scrolling +By default, @command{nano} will scroll just one line (instead of half +a screen) when the cursor is moved to a line that is just out of view. +And when paging up or down, @command{nano} keeps the cursor in the same +screen position as much as possible, instead of always placing it on the +first line of the viewport. The Pico-like behavior can be obtained +with the @option{--jumpyscrolling} option. + +@item Edit Area +Pico never uses the line directly below the title bar, leaving it always +blank. @command{nano} includes this line in the editing area, in order +to not waste space, and because in this way it is slightly clearer where +the text starts. If you are accustomed to this line being empty, you can +get it back with the @option{--emptyline} option. + +@item Interactive Replace +Instead of allowing you to replace either just one occurrence of a search +string or all of them, @command{nano}'s replace function is interactive: it +will pause at each found search string and query whether to replace this +instance. You can then choose Yes, or No (skip this one), or All (don't +ask any more), or Cancel (stop with replacing). + +@item Search and Replace History +When the option @option{-H} or @option{--historylog} is given (or set in +a nanorc file), text entered as search or replace strings is stored. +These strings can be accessed with the up/down arrow keys at their +respective prompts, or you can +type the first few characters and then use @kbd{Tab} to cycle through the +matching strings. A retrieved string can subsequently be edited. + +@item Position History +When the option @option{-P} or @option{--positionlog} is given (or set in +a nanorc file), @command{nano} will store the position of the cursor +when you close a file, and will place the cursor in that position +again when you later reopen the file. + +@item Current Cursor Position +The output of the "Display Cursor Position" command (@kbd{^C}) displays +not only the current line and character position of the cursor, +but also (between the two) the current column position. + +@item Spell Checking +In the internal spell checker misspelled words are sorted alphabetically +and trimmed for uniqueness, such that the words 'apple' and 'Apple' will +be prompted for correction separately. + +@item Writing Selected Text to Files +When using the Write-Out key (@kbd{^O}), text that has been selected using the +marking key (@kbd{^^}) can not just be written out to a new (or existing) file, +it can also be appended or prepended to an existing file. + +@item Reading Text from a Command +When using the Read-File key (@kbd{^R}), @command{nano} can not just read a file, +it can also read the output of a command to be run (@kbd{^X}). + +@item Reading from Working Directory +By default, Pico will read files from the user's home directory (when +using @kbd{^R}), but it will write files to the current working directory +(when using @kbd{^O}). @command{nano} makes this symmetrical: always reading +from and writing to the current working directory --- the directory +that @command{nano} was started in. + +@item File Browser +In the file browser, @command{nano} does not implement the Add, Copy, +Rename, and Delete commands that Pico provides. In @command{nano} the +browser is just a file browser, not a file manager. + +@item Toggles +Many options which alter the functionality of the program can be +"toggled" on or off using Meta key sequences, meaning the program does +not have to be restarted to turn a particular feature on or off. +@xref{Feature Toggles} for a list of options that can be toggled. +Or see the list at the end of the main internal help text (@kbd{^G}) instead. + +@end table + + +@node Building and its Options +@chapter Building and its Options + +Building @command{nano} from source is straightforward if you are +familiar with compiling programs with autoconf support: + +@blankline +@example + tar -xf nano-x.y.tar.gz + cd nano-x.y + ./configure + make + make install +@end example +@blankline + +The possible options to @code{./configure} are: + +@table @code + +@item --disable-browser +Exclude the file browser that can be called with @kbd{^T} when +wanting to read or write a file. + +@item --disable-color +Exclude support for syntax coloring. This also eliminates the @option{-Y} +command-line option, which allows choosing a specific syntax. + +@item --disable-comment +Exclude the single-keystroke comment/uncomment function (@w{@kbd{M-3}}). + +@item --disable-extra +Exclude the Easter egg: a crawl of major contributors. + +@item --disable-formatter +Exclude the code for calling a formatting tool. + +@item --disable-help +Exclude the help texts (@kbd{^G}). This makes the binary much smaller, +but also makes it difficult for new users to learn more than very basic +things about using the editor. + +@item --disable-histories +Exclude the code for handling the history files: the search and +replace strings that were used, the commands that were executed, +and the cursor position at which each file was closed. +This also eliminates the @option{-H} and @option{-P} command-line +options, which switch on the storing of search/replace strings, +executed commands, and cursor positions. + +@item --disable-justify +Exclude the text-justification functions (@kbd{^J} and @kbd{M-J}). + +@item --disable-libmagic +Exclude the code for using the library of magic-number tests (for +determining the file type and thus which syntax to use for coloring --- +in most cases the regexes for filename and header line will be enough). + +@item --disable-linenumbers +Exclude the ability to show line numbers. This also eliminates +the @option{-l} command-line option, which turns line numbering on. + +@item --disable-linter +Exclude the code for calling a linting tool. + +@item --disable-mouse +Exclude all mouse functionality. This also eliminates the @option{-m} +command-line option, which enables the mouse functionality. + +@item --disable-multibuffer +Exclude support for opening multiple files at a time and switching +between them. This also eliminates the @option{-F} command-line option, +which causes a file to be read into a separate buffer by default. + +@item --disable-nanorc +Exclude support for reading the nanorc files at startup. With such +support, you can store custom settings in a system-wide and a per-user +nanorc file rather than having to pass command-line options to get +the desired behavior. @xref{Nanorc Files} for more info. +Disabling this also eliminates the @option{-I} command-line option, +which inhibits the reading of nanorc files. + +@item --disable-operatingdir +Exclude the code for setting an operating directory. This also eliminates +the @option{-o} command-line option, which sets the operating directory. + +@item --disable-speller +Exclude the code for spell checking. This also eliminates the @option{-s} +command-line option, which allows specifying an alternate spell checker. + +@item --disable-tabcomp +Exclude tab completion (when nano asks for a filename or search string +or replace string or command to execute). + +@item --disable-wordcomp +Exclude word completion (@kbd{^]}). + +@item --disable-wrapping +Exclude all hard-wrapping of overlong lines. This also eliminates the +@option{-b} and @option{-w} command-line options, which switch automatic +long-line wrapping on and off, respectively. + +@item --enable-tiny +This option implies all of the above. It also disables some other +internals of the editor, like the function toggles, the marking of text, +the undo/redo code, line anchors, the recording and playback of a macro, +softwrapping, and the cut-to-end-of-line code. These things stay disabled +also when using the enabling counterpart of the above options together with +@option{--enable-tiny} to switch specific features back on. + +@item --enable-debug +Include some code for runtime debugging output. This can get messy, so +chances are you only want this feature when you're working on the nano source. + +@item --disable-nls +Exclude Native Language support. This will disable the use of any +available GNU @command{nano} translations. + +@item --enable-utf8 +Include support for handling and displaying Unicode files. +This requires a "wide" version of the curses library. + +@item --disable-utf8 +Exclude support for handling and displaying Unicode files. Normally the +configure script auto-detects whether to enable UTF-8 support or not. +You can use this or the previous option to override that detection. + +@item --enable-altrcname=@var{name} +Use the file with the given @var{name} (in the user's home directory) +as nano's settings file, instead of the default @code{.nanorc}. + +@end table + +@html +
+@end html + +@iftex +@contents +@end iftex + +@bye diff --git a/doc/nanorc.5 b/doc/nanorc.5 new file mode 100644 index 0000000..4416b7d --- /dev/null +++ b/doc/nanorc.5 @@ -0,0 +1,1057 @@ +.\" Copyright (C) 2003-2011, 2013-2023 Free Software Foundation, Inc. +.\" +.\" This document is dual-licensed. You may distribute and/or modify it +.\" under the terms of either of the following licenses: +.\" +.\" * The GNU General Public License, as published by the Free Software +.\" Foundation, version 3 or (at your option) any later version. You +.\" should have received a copy of the GNU General Public License +.\" along with this program. If not, see +.\" . +.\" +.\" * The GNU Free Documentation License, as published by the Free +.\" Software Foundation, version 1.2 or (at your option) any later +.\" version, with no Invariant Sections, no Front-Cover Texts, and no +.\" Back-Cover Texts. You should have received a copy of the GNU Free +.\" Documentation License along with this program. If not, see +.\" . +.\" +.TH NANORC 5 "version 7.2" "January 2023" + +.SH NAME +nanorc \- GNU nano's configuration file + +.SH DESCRIPTION +The \fInanorc\fP files contain the default settings for \fBnano\fP, +a small and friendly editor. During startup, if \fB\-\-rcfile\fR +is not given, \fBnano\fR will read two files: first the +system-wide settings, from \fI/etc/nanorc\fP (the exact path might be +different on your system), and then the user-specific settings, either +from \fI~/.nanorc\fR or from \fI$XDG_CONFIG_HOME/nano/nanorc\fR +or from \fI~/.config/nano/nanorc\fR, whichever is encountered first. +If \fB\-\-rcfile\fR is given, \fBnano\fR will read just the specified +settings file. + +.SH OPTIONS +The configuration file accepts a series of \fBset\fP and \fBunset\fP +commands, which can be used to configure nano on startup without using +command-line options. Additionally, there are some commands to define +syntax highlighting and to rebind keys -- see the two separate sections +on those. \fBnano\fP reads one command per line. +All commands and keywords should be written in lowercase. +.sp +Options in \fInanorc\fP files take precedence over nano's defaults, and +command-line options override \fInanorc\fP settings. Also, options that +do not take an argument are unset by default. So using the \fBunset\fR +command is only needed when wanting to override a setting of the system's +\fInanorc\fR file in your own \fInanorc\fR. Options that take an +argument cannot be unset. +.sp +Quotes inside the \fIcharacters\fR parameters below should not be escaped. +The last double quote on the line will be seen as the closing quote. +.sp +The supported commands and arguments are: +.TP 3 +.B set afterends +Make Ctrl+Right and Ctrl+Delete stop at word ends instead of beginnings. +.TP +.B set allow_insecure_backup +When backing up files, allow the backup to succeed even if its permissions +can't be (re)set due to special OS considerations. You should +NOT enable this option unless you are sure you need it. +.TP +.B set atblanks +When soft line wrapping is enabled, make it wrap lines at blank characters +(tabs and spaces) instead of always at the edge of the screen. +.TP +.B set autoindent +Automatically indent a newly created line to the same number of tabs +and/or spaces as the previous line (or as the next line if the previous +line is the beginning of a paragraph). +.TP +.B set backup +When saving a file, create a backup file by adding a tilde (\fB~\fP) to +the file's name. +.TP +.B set backupdir "\fIdirectory\fP" +Make and keep not just one backup file, but make and keep a uniquely +numbered one every time a file is saved -- when backups are enabled +with \fBset backup\fR or \fB\-\-backup\fR or \fB\-B\fR. +The uniquely numbered files are stored in the specified \fIdirectory\fR. +.TP +.B set boldtext +Use bold instead of reverse video for the title bar, status bar, key combos, +function tags, line numbers, and selected text. This can be overridden by +setting the options \fBtitlecolor\fP, \fBstatuscolor\fP, \fBkeycolor\fP, +\fBfunctioncolor\fP, \fBnumbercolor\fP, and \fBselectedcolor\fP. +.TP +.B set bookstyle +When justifying, treat any line that starts with whitespace as the +beginning of a paragraph (unless auto-indenting is on). +.TP +.BI "set brackets """ characters """ +Set the characters treated as closing brackets when justifying +paragraphs. This may not include blank characters. Only closing +punctuation (see \fBset punct\fP), optionally followed by the specified +closing brackets, can end sentences. The default value is "\fB\(dq')>]}\fR". +.TP +.B set breaklonglines +Automatically hard-wrap the current line when it becomes overlong. +.TP +.B set casesensitive +Do case-sensitive searches by default. +.TP +.B set constantshow +Constantly display the cursor position in the status bar. +This overrides the option \fBquickblank\fR. +.TP +.B set cutfromcursor +Use cut-from-cursor-to-end-of-line by default, instead of cutting the whole line. +.TP +.B set emptyline +Do not use the line below the title bar, leaving it entirely blank. +.TP +.B set errorcolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the status bar when an error message is displayed. +The default value is \fBbold,white,red\fR. +See \fBset titlecolor\fR for valid color names. +.TP +.B set fill \fInumber\fR +Set the target width for justifying and automatic hard-wrapping at this +\fInumber\fR of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus \fInumber\fR columns, allowing the wrap +point to vary along with the width of the screen if the screen is resized. +The default value is \fB\-8\fR. +.TP +.B set functioncolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the concise function descriptions +in the two help lines at the bottom of the screen. +See \fBset titlecolor\fR for more details. +.TP +.B set guidestripe \fInumber +Draw a vertical stripe at the given column, to help judge the width of the +text. (The color of the stripe can be changed with \fBset stripecolor\fR.) +.TP +.B set historylog +Save the last hundred search strings and replacement strings and +executed commands, so they can be easily reused in later sessions. +.TP +.B set indicator +Display a "scrollbar" on the righthand side of the edit window. +It shows the position of the viewport in the buffer +and how much of the buffer is covered by the viewport. +.TP +.B set jumpyscrolling +Scroll the buffer contents per half-screen instead of per line. +.TP +.B set keycolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the shortcut key combos +in the two help lines at the bottom of the screen. +See \fBset titlecolor\fR for more details. +.TP +.B set linenumbers +Display line numbers to the left of the text area. +(Any line with an anchor additionally gets a mark in the margin.) +.TP +.B set locking +Enable vim-style lock-files for when editing files. +.TP +.B set magic +When neither the file's name nor its first line give a clue, +try using libmagic to determine the applicable syntax. +(Calling libmagic can be relatively time consuming. +It is therefore not done by default.) +.TP +.BI "set matchbrackets """ characters """ +Specify the opening and closing brackets that can be found by bracket +searches. This may not include blank characters. The opening set must +come before the closing set, and the two sets must be in the same order. +The default value is "\fB(<[{)>]}\fP". +.TP +.B set minibar +Suppress the title bar and instead show information about +the current buffer at the bottom of the screen, in the space +for the status bar. In this "minibar" the filename is shown +on the left, followed by an asterisk if the buffer has been modified. +On the right are displayed the current line and column number, the +code of the character under the cursor (in Unicode format: U+xxxx), +the same flags as are shown by \fBset stateflags\fR, and a percentage +that expresses how far the cursor is into the file (linewise). +When a file is loaded or saved, and also when switching between buffers, +the number of lines in the buffer is displayed after the filename. +This number is cleared upon the next keystroke, or replaced with an +[i/n] counter when multiple buffers are open. +The line plus column numbers and the character code are displayed only when +\fBset constantshow\fR is used, and can be toggled on and off with \fBM\-C\fR. +The state flags are displayed only when \fBset stateflags\fR is used. +.TP +.B set minicolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the minibar. +(When this option is not specified, the colors of the title bar are used.) +See \fBset titlecolor\fR for more details. +.TP +.B set mouse +Enable mouse support, if available for your system. When enabled, mouse +clicks can be used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X Window +System, and on the console when gpm is running. Text can still be +selected through dragging by holding down the Shift key. +.TP +.B set multibuffer +When reading in a file with \fB^R\fR, insert it into a new buffer by default. +.TP +.B set noconvert +Don't convert files from DOS/Mac format. +.TP +.B set nohelp +Don't display the two help lines at the bottom of the screen. +.TP +.B set nonewlines +Don't automatically add a newline when a text does not end with one. +(This can cause you to save non-POSIX text files.) +.TP +.B set nowrap +Deprecated option since it has become the default setting. +When needed, use \fBunset breaklonglines\fR instead. +.TP +.B set numbercolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for line numbers. +See \fBset titlecolor\fR for more details. +.TP +.B set operatingdir "\fIdirectory\fP" +\fBnano\fP will only read and write files inside \fIdirectory\fP and its +subdirectories. Also, the current directory is changed to here, so +files are inserted from this directory. By default, the operating +directory feature is turned off. +.TP +.B set positionlog +Save the cursor position of files between editing sessions. +The cursor position is remembered for the 200 most-recently edited files. +.TP +.B set preserve +Preserve the XON and XOFF keys (\fB^Q\fR and \fB^S\fR). +.TP +.B set promptcolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the prompt bar. +(When this option is not specified, the colors of the title bar are used.) +See \fBset titlecolor\fR for more details. +.TP +.BI "set punct """ characters """ +Set the characters treated as closing punctuation when justifying +paragraphs. This may not include blank characters. Only the +specfified closing punctuation, optionally followed by closing brackets +(see \fBbrackets\fP), can end sentences. The default value is "\fB!.?\fP". +.TP +.B set quickblank +Make status-bar messages disappear after 1 keystroke instead of after 20. +Note that option \fBconstantshow\fR overrides this. +When option \fBminibar\fR or \fBzero\fR is in effect, +\fBquickblank\fR makes a message disappear after +0.8 seconds instead of after the default 1.5 seconds. +.TP +.BI "set quotestr """ regex """ +Set the regular expression for matching the quoting part of a line. +The default value is "\fB^([\ \\t]*([!#%:;>|}]|//))+\fP". +(Note that \fB\\t\fR stands for an actual Tab character.) +This makes it possible to rejustify blocks of quoted text when composing +email, and to rewrap blocks of line comments when writing source code. +.TP +.B set rawsequences +Interpret escape sequences directly, instead of asking \fBncurses\fR +to translate them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description that is used +does not fully match the actual behavior of your terminal. This can +happen when you ssh into a BSD machine, for example.) +Using this option disables \fBnano\fR's mouse support. +.TP +.B set rebinddelete +Interpret the Delete and Backspace keys differently so that both Backspace +and Delete work properly. You should only use this option when on your +system either Backspace acts like Delete or Delete acts like Backspace. +.TP +.B set regexp +Do regular-expression searches by default. +Regular expressions in \fBnano\fR are of the extended type (ERE). +.TP +.B set saveonexit +Save a changed buffer automatically on exit (\fB^X\fR); don't prompt. +.TP +.B set scrollercolor \fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the indicator alias "scrollbar". +(On terminal emulators that link to a libvte older than version 0.55, +using a background color here does not work correctly.) +See \fBset titlecolor\fR for more details. +.TP +.B set selectedcolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for selected text. +See \fBset titlecolor\fR for more details. +.TP +.B set showcursor +Put the cursor on the highlighted item in the file browser, and show +the cursor in the help viewer, to aid braille users and people with +poor vision. +.TP +.B set smarthome +Make the Home key smarter. When Home is pressed anywhere but at the +very beginning of non-whitespace characters on a line, the cursor will +jump to that beginning (either forwards or backwards). If the cursor is +already at that position, it will jump to the true beginning of the +line. +.TP +.B set softwrap +Display lines that exceed the screen's width over multiple screen lines. +(You can make this soft-wrapping occur at whitespace instead of rudely at +the screen's edge, by using also \fBset atblanks\fR.) +.TP +.B set speller """\fIprogram\fR [\fIargument \fR...]\fB""" +Use the given \fIprogram\fR to do spell checking and correcting, instead of +using the built-in corrector that calls \fBhunspell\fR(1) or \fBspell\fR(1). +.TP +.B set spotlightcolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for highlighting a search match. +The default value is \fBblack,lightyellow\fR. +See \fBset titlecolor\fR for valid color names. +.TP +.B set stateflags +Use the top-right corner of the screen for showing some state flags: +\fBI\fR when auto-indenting, \fBM\fR when the mark is on, \fBL\fR when +hard-wrapping (breaking long lines), \fBR\fR when recording a macro, +and \fBS\fR when soft-wrapping. +When the buffer is modified, a star (\fB*\fR) is shown after the +filename in the center of the title bar. +.TP +.B set statuscolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the status bar. +See \fBset titlecolor\fR for more details. +.TP +.B set stripecolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the vertical guiding stripe. +See \fBset titlecolor\fR for more details. +.TP +.B set tabsize \fInumber\fR +Use a tab size of \fInumber\fR columns. The value of \fInumber\fP must be +greater than 0. The default value is \fB8\fR. +.TP +.B set tabstospaces +Convert each typed tab to spaces -- to the number of spaces +that a tab at that position would take up. +.TP +.B set titlecolor \fR[\fBbold,\fR][\fBitalic,\fR]\fIfgcolor\fB,\fIbgcolor\fR +Use this color combination for the title bar. +Valid names for the foreground and background colors are: +.BR red ", " green ", " blue ", " magenta ", " yellow ", " cyan ", " +.BR white ", and " black . +Each of these eight names may be prefixed with the word \fBlight\fR +to get a brighter version of that color. +The word \fBgrey\fR or \fBgray\fR may be used +as a synonym for \fBlightblack\fR. +On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +.BR pink ", " purple ", " mauve ", " lagoon ", " mint ", " +.BR lime ", " peach ", " orange ", " latte ", " +.BR rosy ", " beet ", " plum ", " sea ", " sky ", " slate ", " +.BR teal ", " sage ", " brown ", " ocher ", " sand ", " tawny ", " +.BR brick ", " crimson ", and " normal +-- where \fBnormal\fR means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with \fB#\fR, with the digits representing the amounts of red, +green, and blue, respectively. This tells \fBnano\fR to select from the +available palette the color that approximates the given values. + +Either "\fIfgcolor\fR" or "\fB,\fIbgcolor\fR" may be left out, +and the pair may be preceded by \fBbold\fR and/or \fBitalic\fR +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. +.TP +.B set trimblanks +Remove trailing whitespace from wrapped lines when automatic +hard-wrapping occurs or when text is justified. +.TP +.B set unix +Save a file by default in Unix format. This overrides nano's +default behavior of saving a file in the format that it had. +(This option has no effect when you also use \fBset noconvert\fR.) +.TP +.BI "set whitespace """ characters """ +Set the two characters used to indicate the presence of tabs and +spaces. They must be single-column characters. The default pair +for a UTF-8 locale is "\fB\[Fc]\[md]\fR", and for other locales "\fB>.\fR". +.TP +.B set wordbounds +Detect word boundaries differently by treating punctuation +characters as parts of words. +.TP +.BI "set wordchars """ characters """ +Specify which other characters (besides the normal alphanumeric ones) +should be considered as parts of words. When using this option, you +probably want to unset \fBwordbounds\fR. +.TP +.B set zap +Let an unmodified Backspace or Delete erase the marked region +(instead of a single character, and without affecting the cutbuffer). +.TP +.B set zero +Hide all elements of the interface (title bar, status bar, and help lines) +and use all rows of the terminal for showing the contents of the buffer. +The status bar appears only when there is a significant message, +and disappears after 1.5 seconds or upon the next keystroke. +With \fBM\-Z\fR the title bar plus status bar can be toggled. +With \fBM\-X\fR the help lines. + +.SH NOTES +Option \fBset suspendable\fR has been removed. +Suspension is enabled by default, reachable via \fB^T^Z\fR. +(If you want a plain \fB^Z\fR to suspend nano, +add \fBbind ^Z suspend main\fR to your nanorc.) + +.SH SYNTAX HIGHLIGHTING +Coloring the different syntactic elements of a file +is done via regular expressions (see the \fBcolor\fR command below). +This is inherently imperfect, because regular expressions are not +powerful enough to fully parse a file. Nevertheless, regular +expressions can do a lot and are easy to make, so they are a +good fit for a small editor like \fBnano\fR. +.sp +All regular expressions in \fBnano\fR are POSIX extended regular expressions. +This means that \fB.\fR, \fB?\fR, \fB*\fR, \fB+\fR, \fB^\fR, \fB$\fR, and +several other characters are special. +The period \fB.\fR matches any single character, +\fB?\fR means the preceding item is optional, +\fB*\fR means the preceding item may be matched zero or more times, +\fB+\fR means the preceding item must be matched one or more times, +\fB^\fR matches the beginning of a line, and \fB$\fR the end, +\fB\\<\fR matches the start of a word, and \fB\\>\fR the end, +and \fB\\s\fR matches a blank. +It also means that lookahead and lookbehind are not possible. +A complete explanation can be found in the manual page of GNU grep: +\fBman grep\fR. +.sp +Each regular expression in a \fBnanorc\fR file should be wrapped in +double quotes (\fB""\fR). Multiple regular expressions can follow +each other on a line by separating them with blanks. This means that +a regular expression cannot contain a double quote followed by a blank. +When you need this combination inside a regular expression, +then either the double quote or the blank should be put +between square brackets (\fB[]\fR). +.sp +For each kind of file a separate syntax can be defined +via the following commands: +.TP +.BI syntax " name \fR[" """" fileregex """ " \fR...] +Start the definition of a syntax with this \fIname\fR. +All subsequent \fBcolor\fR and other such commands +will be added to this syntax, until a new \fBsyntax\fR +command is encountered. +.sp +When \fBnano\fR is run, this syntax will be automatically +activated if the current filename matches the extended regular +expression \fIfileregex\fR. Or the syntax can be explicitly +activated by using the \fB\-Y\fR or \fB\-\-syntax\fR +command-line option followed by the \fIname\fR. +.sp +The syntax \fBdefault\fP is special: it takes no \fIfileregex\fR, +and applies to files that don't match any syntax's regexes. +The syntax \fBnone\fP is reserved; specifying it on the command line +is the same as not having a syntax at all. +.TP +.BI "header """ regex """ \fR... +If from all defined syntaxes no \fIfileregex\fR matched, then compare +this \fIregex\fR (or regexes) against the first line of the current file, +to determine whether this syntax should be used for it. +.TP +.BI "magic """ regex """ \fR... +If no \fIfileregex\fR matched and no \fBheader\fR regex matched +either, then compare this \fIregex\fR (or regexes) against the +result of querying the \fBmagic\fP database about the current +file, to determine whether this syntax should be used for it. +(This functionality only works when \fBlibmagic\fP is installed on the +system and will be silently ignored otherwise.) +.TP +.BI formatter " program " \fR[ "argument " \fR...] +Run the given \fIprogram\fR on the full contents of the current buffer. +.TP +.BI linter " program " \fR[ "argument " \fR...] +Use the given \fIprogram\fR to run a syntax check on the current buffer. +.TP +.BI "comment """ string """ +Use the given \fIstring\fR for commenting and uncommenting lines. +If the string contains a vertical bar or pipe character (\fB|\fR), +this designates bracket-style comments; for example, "\fB/*|*/\fR" for +CSS files. The characters before the pipe are prepended to the line and the +characters after the pipe are appended at the end of the line. If no pipe +character is present, the full string is prepended; for example, "\fB#\fR" +for Python files. If empty double quotes are specified, the comment/uncomment +function is disabled; for example, "" for JSON. +The default value is "\fB#\fP". +.TP +.BI "tabgives """ string """ +Make the key produce the given \fIstring\fR. Useful for languages like +Python that want to see only spaces for indentation. +This overrides the setting of the \fBtabstospaces\fR option. +.TP +.BI "color \fR[\fBbold,\fR][\fBitalic,\fR]" fgcolor , bgcolor " """ regex """ " \fR... +Paint all pieces of text that match the extended regular expression +\fIregex\fP with the given foreground and background colors, at least +one of which must be specified. Valid color names are: +.BR red ", " green ", " blue ", " magenta ", " yellow ", " cyan ", " +.BR white ", and " black . +Each of these eight names may be prefixed with the word \fBlight\fR +to get a brighter version of that color. +The word \fBgrey\fR or \fBgray\fR may be used +as a synonym for \fBlightblack\fR. +On terminal emulators that can do at least 256 colors, +other valid (but unprefixable) color names are: +.BR pink ", " purple ", " mauve ", " lagoon ", " mint ", " +.BR lime ", " peach ", " orange ", " latte ", " +.BR rosy ", " beet ", " plum ", " sea ", " sky ", " slate ", " +.BR teal ", " sage ", " brown ", " ocher ", " sand ", " tawny ", " +.BR brick ", " crimson ", and " normal +-- where \fBnormal\fR means the default foreground or background color. +On such emulators, the color may also be specified as a three-digit hexadecimal +number prefixed with \fB#\fR, with the digits representing the amounts of red, +green, and blue, respectively. This tells \fBnano\fR to select from the +available palette the color that approximates the given values. + +The color pair may be preceded by \fBbold\fR and/or \fBitalic\fR +(separated by commas) to get a bold and/or slanting typeface, +if your terminal can do those. +.sp +All coloring commands are applied in the order in which they are specified, +which means that later commands can recolor stuff that was colored earlier. +.TP +.BI "icolor \fR[\fBbold,\fR][\fBitalic,\fR]" fgcolor , bgcolor " """ regex """ " \fR... +Same as above, except that the matching is case insensitive. +.TP +.BI "color \fR[\fBbold,\fR][\fBitalic,\fR]" fgcolor , bgcolor " start=""" fromrx """ end=""" torx """ +Paint all pieces of text whose start matches extended regular expression +\fIfromrx\fP and whose end matches extended regular expression \fItorx\fP +with the given foreground and background colors, +at least one of which must be specified. This means that, after an +initial instance of \fIfromrx\fP, all text until the first instance of +\fItorx\fP will be colored. This allows syntax highlighting to span +multiple lines. +.TP +.BI "icolor \fR[\fBbold,\fR][\fBitalic,\fR]" fgcolor , bgcolor " start=""" fromrx """ end=""" torx """ +Same as above, except that the matching is case insensitive. +.TP +.BI "include """ syntaxfile """ +Read in self-contained color syntaxes from \fIsyntaxfile\fP. Note that +\fIsyntaxfile\fP may contain only the above commands, from \fBsyntax\fP +to \fBicolor\fP. +.TP +.BI extendsyntax " name command argument " \fR... +Extend the syntax previously defined as \fIname\fR with another +\fIcommand\fR. This allows adding a new \fBcolor\fP, \fBicolor\fP, +\fBheader\fR, \fBmagic\fR, \fBformatter\fR, \fBlinter\fR, \fBcomment\fR, +or \fBtabgives\fR +command to an already defined syntax -- useful when you want to +slightly improve a syntax defined in one of the system-installed +files (which normally are not writable). + +.SH REBINDING KEYS +Key bindings can be changed via the following three commands: +.RS 3 +.TP +.BI bind " key function menu" +Rebinds the given \fIkey\fP to the given \fIfunction\fP in the given \fImenu\fP +(or in all menus where the function exists when \fBall\fP is used). +.TP +.BI bind " key " """" string """" " menu" +Makes the given \fIkey\fR produce the given \fIstring\fR in the given +\fImenu\fR (or in all menus where the key exists when \fBall\fR is used). +Besides literal text and/or control codes, the \fIstring\fR may contain +function names between braces. These functions will be invoked when +the key is typed. To include a literal opening brace, use \fB{{}\fR. +.TP +.BI unbind " key menu" +Unbinds the given \fIkey\fP from the given \fImenu\fP (or from all +menus where the key exists when \fBall\fP is used). +.RE +.sp +Note that \fBbind \fIkey\fR \fB"{\fIfunction\fB}"\fR \fImenu\fR is equivalent +to \fBbind \fIkey\fR \fIfunction\fR \fImenu\fR, except that for the latter form +\fBnano\fR will check the availabilty of the \fIfunction\fR in the given \fImenu\fR +at startup time (and report an error if it does not exist there), whereas for the +first form \fBnano\fR will check at execution time that the \fIfunction\fR exists +but not whether it makes any sense in the current menu. The user has to take care +that a function name between braces (or any sequence of them) is appropriate. +Strange behavior can result when it is not. + +.TP +The format of \fIkey\fP should be one of: +.RS 3 +.TP 7 +.BI ^ X +where \fIX\fR is a Latin letter, or one of several ASCII characters +(@, ], \\, ^, _), or the word "Space". +Example: ^C. +.TP +.BI M\- X +where \fIX\fR is any ASCII character except [, or the word "Space". +Example: M\-8. +.TP +.BI Sh\-M\- X +where \fIX\fR is a Latin letter. +Example: Sh\-M\-U. +By default, each Meta+letter keystroke does the same as the corresponding +Shift+Meta+letter. But when any Shift+Meta bind is made, that will +no longer be the case, for all letters. +.TP +.BI F N +where \fIN\fR is a numeric value from 1 to 24. +Example: F10. +(Often, \fBF13\fR to \fBF24\fR can be typed as \fBF1\fR to \fBF12\fR with Shift.) +.TP +.BR Ins " or " Del . +.RE +.sp +Rebinding \fB^M\fR (Enter) or \fB^I\fR (Tab) is probably not a good idea. +Rebinding \fB^[\fR (Esc) is not possible, because its keycode +is the starter byte of Meta keystrokes and escape sequences. +Rebinding any of the dedicated cursor-moving keys (the arrows, Home, End, +PageUp and PageDown) is not possible. +On some terminals it's not possible to rebind \fB^H\fR (unless \fB\-\-raw\fR +is used) because its keycode is identical to that of the Backspace key. + +.TP +Valid \fIfunction\fP names to be bound are: +.RS 3 +.TP 2 +.B help +Invokes the help viewer. +.TP +.B cancel +Cancels the current command. +.TP +.B exit +Exits from the program (or from the help viewer or file browser). +.TP +.B writeout +Writes the current buffer to disk, asking for a name. +.TP +.B savefile +Writes the current file to disk without prompting. +.TP +.B insert +Inserts a file into the current buffer (at the current cursor position), +or into a new buffer when option \fBmultibuffer\fR is set. +.TP +.B whereis +Starts a forward search for text in the current buffer -- or for filenames +matching a string in the current list in the file browser. +.TP +.B wherewas +Starts a backward search for text in the current buffer -- or for filenames +matching a string in the current list in the file browser. +.TP +.B findprevious +Searches the next occurrence in the backward direction. +.TP +.B findnext +Searches the next occurrence in the forward direction. +.TP +.B replace +Interactively replaces text within the current buffer. +.TP +.B cut +Cuts and stores the current line (or the marked region). +.TP +.B copy +Copies the current line (or the marked region) without deleting it. +.TP +.B paste +Pastes the currently stored text into the current buffer at the +current cursor position. +.TP +.B zap +Throws away the current line (or the marked region). +(This function is bound by default to .) +.TP +.B chopwordleft +Deletes from the cursor position to the beginning of the preceding word. +(This function is bound by default to . If your terminal +produces \fB^H\fR for , you can make delete +the word to the left of the cursor by rebinding \fB^H\fR to this function.) +.TP +.B chopwordright +Deletes from the cursor position to the beginning of the next word. +(This function is bound by default to .) +.TP +.B cutrestoffile +Cuts all text from the cursor position till the end of the buffer. +.TP +.B mark +Sets the mark at the current position, to start selecting text. +Or, when it is set, unsets the mark. +.TP +.B location +Reports the current position of the cursor in the buffer: +the line, column, and character positions. +.TP +.B wordcount +Counts and reports on the status bar the number of lines, words, +and characters in the current buffer (or in the marked region). +.TP +.B execute +Prompts for a program to execute. The program's output will be inserted +into the current buffer (or into a new buffer when \fBM\-F\fR is toggled). +.TP +.B speller +Invokes a spell-checking program, either the default \fBhunspell\fR(1) or GNU +\fBspell\fR(1), or the one defined by \fB\-\-speller\fR or \fBset speller\fR. +.TP +.B formatter +Invokes a full-buffer-processing program (if the active syntax defines one). +(The current buffer is written out to a temporary file, the program +is run on it, and then the temporary file is read back in, replacing +the contents of the buffer.) +.TP +.B linter +Invokes a syntax-checking program (if the active syntax defines one). +If this program produces lines of the form "filename:linenum:charnum: +some message", then the cursor will be put at the indicated position +in the mentioned file while showing "some message" on the status bar. +You can move from message to message with and , +and leave linting mode with \fB^C\fR or . +.TP +.B justify +Justifies the current paragraph (or the marked region). +A paragraph is a group of contiguous lines that, apart from possibly +the first line, all have the same indentation. The beginning of a +paragraph is detected by either this lone line with a differing +indentation or by a preceding blank line. +.TP +.B fulljustify +Justifies the entire current buffer (or the marked region). +.TP +.B indent +Indents (shifts to the right) the current line or the marked lines. +.TP +.B unindent +Unindents (shifts to the left) the current line or the marked lines. +.TP +.B comment +Comments or uncomments the current line or the marked lines, +using the comment style specified in the active syntax. +.TP +.B complete +Completes (when possible) the fragment before the cursor +to a full word found elsewhere in the current buffer. +.TP +.B left +Goes left one position (in the editor or browser). +.TP +.B right +Goes right one position (in the editor or browser). +.TP +.B up +Goes one line up (in the editor or browser). +.TP +.B down +Goes one line down (in the editor or browser). +.TP +.B scrollup +Scrolls the viewport up one row (meaning that the text slides down) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to . +If does nothing on your Linux console, see the FAQ: +.UR https://nano\-editor.org/dist/latest/faq.html#4.1 +.UE .) +.TP +.B scrolldown +Scrolls the viewport down one row (meaning that the text slides up) +while keeping the cursor in the same text position, if possible. +(This function is bound by default to .) +.TP +.B center +Scrolls the line with the cursor to the middle of the screen. +.TP +.B prevword +Moves the cursor to the beginning of the previous word. +.TP +.B nextword +Moves the cursor to the beginning of the next word. +.TP +.B home +Moves the cursor to the beginning of the current line. +.TP +.B end +Moves the cursor to the end of the current line. +.TP +.B beginpara +Moves the cursor to the beginning of the current paragraph. +.TP +.B endpara +Moves the cursor to the end of the current paragraph. +.TP +.B prevblock +Moves the cursor to the beginning of the current or preceding block of text. +(Blocks are separated by one or more blank lines.) +.TP +.B nextblock +Moves the cursor to the beginning of the next block of text. +.TP +.B pageup +Goes up one screenful. +.TP +.B pagedown +Goes down one screenful. +.TP +.B firstline +Goes to the first line of the file. +.TP +.B lastline +Goes to the last line of the file. +.TP +.B gotoline +Goes to a specific line (and column if specified). Negative numbers count +from the end of the file (and end of the line). +.TP +.B findbracket +Moves the cursor to the bracket (or brace or parenthesis, etc.) that matches +(pairs) with the one under the cursor. See \fBset matchbrackets\fR. +.TP +.B anchor +Places an anchor at the current line, or removes it when already present. +(An anchor is visible when line numbers are activated.) +.TP +.B prevanchor +Goes to the first anchor before the current line. +.TP +.B nextanchor +Goes to the first anchor after the current line. +.TP +.B prevbuf +Switches to editing/viewing the previous buffer when multiple buffers are open. +.TP +.B nextbuf +Switches to editing/viewing the next buffer when multiple buffers are open. +.TP +.B verbatim +Inserts the next keystroke verbatim into the file, or begins Unicode input +when a hexadecimal digit is typed. +.TP +.B tab +Inserts a tab at the current cursor location. +.TP +.B enter +Inserts a new line below the current one. +.TP +.B delete +Deletes the character under the cursor. +.TP +.B backspace +Deletes the character before the cursor. +.TP +.B recordmacro +Starts the recording of keystrokes -- the keystrokes are stored +as a macro. When already recording, the recording is stopped. +.TP +.B runmacro +Replays the keystrokes of the last recorded macro. +.TP +.B undo +Undoes the last performed text action (add text, delete text, etc). +.TP +.B redo +Redoes the last undone action (i.e., it undoes an undo). +.TP +.B refresh +Refreshes the screen. +.TP +.B suspend +Suspends the editor and returns control to the shell +(until you tell the process to resume execution with \fBfg\fR). +.TP +.B casesens +Toggles whether searching/replacing ignores or respects the case of +the given characters. +.TP +.B regexp +Toggles whether searching/replacing uses literal strings or regular expressions. +.TP +.B backwards +Toggles whether searching/replacing goes forward or backward. +.TP +.B older +Retrieves the previous (earlier) entry at a prompt. +.TP +.B newer +Retrieves the next (later) entry at a prompt. +.TP +.B flipreplace +Toggles between searching for something and replacing something. +.TP +.B flipgoto +Toggles between searching for text and targeting a line number. +.TP +.B flipexecute +Toggles between inserting a file and executing a command. +.TP +.B flippipe +When executing a command, toggles whether the current buffer (or marked +region) is piped to the command. +.TP +.B flipnewbuffer +Toggles between inserting into the current buffer and into a new +empty buffer. +.TP +.B flipconvert +When reading in a file, toggles between converting and not converting +it from DOS/Mac format. Converting is the default. +.TP +.B dosformat +When writing a file, switches to writing a DOS format (CR/LF). +.TP +.B macformat +When writing a file, switches to writing a Mac format. +.TP +.B append +When writing a file, appends to the end instead of overwriting. +.TP +.B prepend +When writing a file, 'prepends' (writes at the beginning) instead of overwriting. +.TP +.B backup +When writing a file, creates a backup of the current file. +.TP +.B discardbuffer +When about to write a file, discard the current buffer without saving. +(This function is bound by default only when option \fB\-\-saveonexit\fR +is in effect.) +.TP +.B browser +Starts the file browser (in the Read File and Write Out menus), +allowing to select a file from a list. +.TP +.B gotodir +Goes to a directory to be specified, allowing to browse anywhere +in the filesystem. +.TP +.B firstfile +Goes to the first file in the list when using the file browser. +.TP +.B lastfile +Goes to the last file in the list when using the file browser. +.TP +.B nohelp +Toggles the presence of the two-line list of key bindings at the bottom of the screen. +(This toggle is special: it is available in all menus except the help viewer +and the linter. All further toggles are available in the main menu only.) +.TP +.B zero +Toggles the presence of title bar and status bar. +.TP +.B constantshow +Toggles the constant display of the current line, column, and character positions. +.TP +.B softwrap +Toggles the displaying of overlong lines on multiple screen lines. +.TP +.B linenumbers +Toggles the display of line numbers in front of the text. +.TP +.B whitespacedisplay +Toggles the showing of whitespace. +.TP +.B nosyntax +Toggles syntax highlighting. +.TP +.B smarthome +Toggles the smartness of the Home key. +.TP +.B autoindent +Toggles whether a newly created line will contain the same amount of leading +whitespace as the preceding line -- or as the next line if the preceding line +is the beginning of a paragraph. +.TP +.B cutfromcursor +Toggles whether cutting text will cut the whole line or just from the current cursor +position to the end of the line. +.TP +.B breaklonglines +Toggles whether long lines will be hard-wrapped to the next line. +(The old name of this function, 'nowrap', is deprecated.) +.TP +.B tabstospaces +Toggles whether typed tabs will be converted to spaces. +.TP +.B mouse +Toggles mouse support. +.RE + +.TP +Valid \fImenu\fP sections are: +.RS 3 +.TP 2 +.B main +The main editor window where text is entered and edited. +.TP +.B help +The help-viewer menu. +.TP +.B search +The search menu (AKA whereis). +.TP +.B replace +The 'search to replace' menu. +.TP +.B replacewith +The 'replace with' menu, which comes up after 'search to replace'. +.TP +.B yesno +The 'yesno' menu, where the Yes/No/All/Cancel question is asked. +.TP +.B gotoline +The 'goto line (and column)' menu. +.TP +.B writeout +The 'write file' menu. +.TP +.B insert +The 'insert file' menu. +.TP +.B browser +The 'file browser' menu, for selecting a file to be opened or +inserted or written to. +.TP +.B whereisfile +The 'search for a file' menu in the file browser. +.TP +.B gotodir +The 'go to directory' menu in the file browser. +.TP +.B execute +The menu for inserting the output from an external command, +or for filtering the buffer (or the marked region) through +an external command, or for executing one of several tools. +.TP +.B spell +The menu of the integrated spell checker where the user can edit a misspelled word. +.TP +.B linter +The linter menu, which allows jumping through the linting messages. +.TP +.B all +A special name that encompasses all menus. +For \fBbind\fR it means all menus where the specified \fIfunction\fR exists; +for \fBunbind\fR it means all menus where the specified \fIkey\fR exists. +.RE + +.SH FILES +.TP +.I /etc/nanorc +System-wide configuration file. +.TP +.IR ~/.nanorc " or " $XDG_CONFIG_HOME/nano/nanorc " or " ~/.config/nano/nanorc +Per-user configuration file. +.TP +.I /usr/share/nano/* +Syntax definitions for the syntax coloring of common file types +(and for less common file types in the \fIextra/\fR subdirectory). + +.SH SEE ALSO +.BR nano (1) +.TP +.I https://nano-editor.org/cheatsheet.html +An overview of the default key bindings. diff --git a/doc/nanorc.5.html b/doc/nanorc.5.html new file mode 100644 index 0000000..992d869 --- /dev/null +++ b/doc/nanorc.5.html @@ -0,0 +1,1645 @@ + + + + + + + + + +NANORC + + + + +

NANORC

+ +NAME
+DESCRIPTION
+OPTIONS
+NOTES
+SYNTAX HIGHLIGHTING
+REBINDING KEYS
+FILES
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

nanorc - GNU +nano’s configuration file

+ +

DESCRIPTION + +

+ + +

The +nanorc files contain the default settings for +nano, a small and friendly editor. During startup, if +--rcfile is not given, nano will read two +files: first the system-wide settings, from +/etc/nanorc (the exact path might be different on +your system), and then the user-specific settings, either +from ~/.nanorc or from +$XDG_CONFIG_HOME/nano/nanorc or from +~/.config/nano/nanorc, whichever is encountered +first. If --rcfile is given, nano will read +just the specified settings file.

+ +

OPTIONS + +

+ + +

The +configuration file accepts a series of set and +unset commands, which can be used to configure nano +on startup without using command-line options. Additionally, +there are some commands to define syntax highlighting and to +rebind keys -- see the two separate sections on those. +nano reads one command per line. All commands and +keywords should be written in lowercase.

+ +

Options in +nanorc files take precedence over nano’s +defaults, and command-line options override nanorc +settings. Also, options that do not take an argument are +unset by default. So using the unset command is only +needed when wanting to override a setting of the +system’s nanorc file in your own nanorc. +Options that take an argument cannot be unset.

+ +

Quotes inside +the characters parameters below should not be +escaped. The last double quote on the line will be seen as +the closing quote.

+ +

The supported +commands and arguments are:
+set afterends

+ +

Make Ctrl+Right and Ctrl+Delete +stop at word ends instead of beginnings.

+ +

set +allow_insecure_backup

+ +

When backing up files, allow +the backup to succeed even if its permissions can’t be +(re)set due to special OS considerations. You should NOT +enable this option unless you are sure you need it.

+ +

set atblanks

+ +

When soft line wrapping is +enabled, make it wrap lines at blank characters (tabs and +spaces) instead of always at the edge of the screen.

+ +

set autoindent

+ +

Automatically indent a newly +created line to the same number of tabs and/or spaces as the +previous line (or as the next line if the previous line is +the beginning of a paragraph).

+ +

set backup

+ +

When saving a file, create a +backup file by adding a tilde (~) to the file’s +name.

+ +

set backupdir +directory

+ +

Make and keep not just one +backup file, but make and keep a uniquely numbered one every +time a file is saved -- when backups are enabled with set +backup or --backup or -B. The uniquely +numbered files are stored in the specified +directory.

+ +

set boldtext

+ +

Use bold instead of reverse +video for the title bar, status bar, key combos, function +tags, line numbers, and selected text. This can be +overridden by setting the options titlecolor, +statuscolor, keycolor, functioncolor, +numbercolor, and selectedcolor.

+ +

set bookstyle

+ +

When justifying, treat any line +that starts with whitespace as the beginning of a paragraph +(unless auto-indenting is on).

+ +

set brackets +"characters"

+ +

Set the characters treated as +closing brackets when justifying paragraphs. This may not +include blank characters. Only closing punctuation (see +set punct), optionally followed by the specified +closing brackets, can end sentences. The default value is +""’)>]}".

+ +

set breaklonglines

+ +

Automatically hard-wrap the +current line when it becomes overlong.

+ +

set casesensitive

+ +

Do case-sensitive searches by +default.

+ +

set constantshow

+ +

Constantly display the cursor +position in the status bar. This overrides the option +quickblank.

+ +

set cutfromcursor

+ +

Use +cut-from-cursor-to-end-of-line by default, instead of +cutting the whole line.

+ +

set emptyline

+ +

Do not use the line below the +title bar, leaving it entirely blank.

+ +

set errorcolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the status bar when an error message is displayed. The +default value is bold,white,red. See set +titlecolor for valid color names.

+ +

set fill +number

+ +

Set the target width for +justifying and automatic hard-wrapping at this number +of columns. If the value is 0 or less, wrapping will occur +at the width of the screen minus number columns, +allowing the wrap point to vary along with the width of the +screen if the screen is resized. The default value is +-8.

+ +

set functioncolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the concise function descriptions in the two help lines at +the bottom of the screen. See set titlecolor for more +details.

+ +

set guidestripe +number

+ +

Draw a vertical stripe at the +given column, to help judge the width of the text. (The +color of the stripe can be changed with set +stripecolor.)

+ +

set historylog

+ +

Save the last hundred search +strings and replacement strings and executed commands, so +they can be easily reused in later sessions.

+ +

set indicator

+ +

Display a "scrollbar" +on the righthand side of the edit window. It shows the +position of the viewport in the buffer and how much of the +buffer is covered by the viewport.

+ +

set jumpyscrolling

+ +

Scroll the buffer contents per +half-screen instead of per line.

+ +

set keycolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the shortcut key combos in the two help lines at the bottom +of the screen. See set titlecolor for more +details.

+ +

set linenumbers

+ +

Display line numbers to the +left of the text area. (Any line with an anchor additionally +gets a mark in the margin.)

+ +

set locking

+ +

Enable vim-style lock-files for +when editing files.

+ +

set magic

+ +

When neither the file’s +name nor its first line give a clue, try using libmagic to +determine the applicable syntax. (Calling libmagic can be +relatively time consuming. It is therefore not done by +default.)

+ +

set matchbrackets +"characters"

+ +

Specify the opening and closing +brackets that can be found by bracket searches. This may not +include blank characters. The opening set must come before +the closing set, and the two sets must be in the same order. +The default value is "(<[{)>]}".

+ +

set minibar

+ +

Suppress the title bar and +instead show information about the current buffer at the +bottom of the screen, in the space for the status bar. In +this "minibar" the filename is shown on the left, +followed by an asterisk if the buffer has been modified. On +the right are displayed the current line and column number, +the code of the character under the cursor (in Unicode +format: U+xxxx), the same flags as are shown by set +stateflags, and a percentage that expresses how far the +cursor is into the file (linewise). When a file is loaded or +saved, and also when switching between buffers, the number +of lines in the buffer is displayed after the filename. This +number is cleared upon the next keystroke, or replaced with +an [i/n] counter when multiple buffers are open. The line +plus column numbers and the character code are displayed +only when set constantshow is used, and can be +toggled on and off with M-C. The state flags are +displayed only when set stateflags is used.

+ +

set minicolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the minibar. (When this option is not specified, the colors +of the title bar are used.) See set titlecolor for +more details.

+ +

set mouse

+ +

Enable mouse support, if +available for your system. When enabled, mouse clicks can be +used to place the cursor, set the mark (with a double +click), and execute shortcuts. The mouse will work in the X +Window System, and on the console when gpm is running. Text +can still be selected through dragging by holding down the +Shift key.

+ +

set multibuffer

+ +

When reading in a file with +^R, insert it into a new buffer by default.

+ +

set noconvert

+ +

Don’t convert files from +DOS/Mac format.

+ +

set nohelp

+ +

Don’t display the two +help lines at the bottom of the screen.

+ +

set nonewlines

+ +

Don’t automatically add a +newline when a text does not end with one. (This can cause +you to save non-POSIX text files.)

+ +

set nowrap

+ +

Deprecated option since it has +become the default setting. When needed, use unset +breaklonglines instead.

+ +

set numbercolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +line numbers. See set titlecolor for more +details.

+ +

set operatingdir +directory

+ +

nano will only read and +write files inside directory and its subdirectories. +Also, the current directory is changed to here, so files are +inserted from this directory. By default, the operating +directory feature is turned off.

+ +

set positionlog

+ +

Save the cursor position of +files between editing sessions. The cursor position is +remembered for the 200 most-recently edited files.

+ +

set preserve

+ +

Preserve the XON and XOFF keys +(^Q and ^S).

+ +

set promptcolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the prompt bar. (When this option is not specified, the +colors of the title bar are used.) See set titlecolor +for more details.

+ +

set punct +"characters"

+ +

Set the characters treated as +closing punctuation when justifying paragraphs. This may not +include blank characters. Only the specfified closing +punctuation, optionally followed by closing brackets (see +brackets), can end sentences. The default value is +"!.?".

+ +

set quickblank

+ +

Make status-bar messages +disappear after 1 keystroke instead of after 20. Note that +option constantshow overrides this. When option +minibar or zero is in effect, +quickblank makes a message disappear after 0.8 +seconds instead of after the default 1.5 seconds.

+ +

set quotestr +"regex"

+ +

Set the regular expression for +matching the quoting part of a line. The default value is +"^([ \t]*([!#%:;>|}]|//))+". (Note +that \t stands for an actual Tab character.) This +makes it possible to rejustify blocks of quoted text when +composing email, and to rewrap blocks of line comments when +writing source code.

+ +

set rawsequences

+ +

Interpret escape sequences +directly, instead of asking ncurses to translate +them. (If you need this option to get some keys to work +properly, it means that the terminfo terminal description +that is used does not fully match the actual behavior of +your terminal. This can happen when you ssh into a BSD +machine, for example.) Using this option disables +nano’s mouse support.

+ +

set rebinddelete

+ +

Interpret the Delete and +Backspace keys differently so that both Backspace and Delete +work properly. You should only use this option when on your +system either Backspace acts like Delete or Delete acts like +Backspace.

+ +

set regexp

+ +

Do regular-expression searches +by default. Regular expressions in nano are of the +extended type (ERE).

+ +

set saveonexit

+ +

Save a changed buffer +automatically on exit (^X); don’t prompt.

+ +

set scrollercolor +fgcolor,bgcolor

+ +

Use this color combination for +the indicator alias "scrollbar". (On terminal +emulators that link to a libvte older than version 0.55, +using a background color here does not work correctly.) See +set titlecolor for more details.

+ +

set selectedcolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +selected text. See set titlecolor for more +details.

+ +

set showcursor

+ +

Put the cursor on the +highlighted item in the file browser, and show the cursor in +the help viewer, to aid braille users and people with poor +vision.

+ +

set smarthome

+ +

Make the Home key smarter. When +Home is pressed anywhere but at the very beginning of +non-whitespace characters on a line, the cursor will jump to +that beginning (either forwards or backwards). If the cursor +is already at that position, it will jump to the true +beginning of the line.

+ +

set softwrap

+ +

Display lines that exceed the +screen’s width over multiple screen lines. (You can +make this soft-wrapping occur at whitespace instead of +rudely at the screen’s edge, by using also set +atblanks.)

+ +

set speller +"program [argument +...]"

+ +

Use the given program to +do spell checking and correcting, instead of using the +built-in corrector that calls hunspell(1) or +spell(1).

+ +

set spotlightcolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +highlighting a search match. The default value is +black,lightyellow. See set titlecolor for +valid color names.

+ +

set stateflags

+ +

Use the top-right corner of the +screen for showing some state flags: I when +auto-indenting, M when the mark is on, L when +hard-wrapping (breaking long lines), R when recording +a macro, and S when soft-wrapping. When the buffer is +modified, a star (*) is shown after the filename in +the center of the title bar.

+ +

set statuscolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the status bar. See set titlecolor for more +details.

+ +

set stripecolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the vertical guiding stripe. See set titlecolor for +more details.

+ +

set tabsize +number

+ +

Use a tab size of number +columns. The value of number must be greater than 0. +The default value is 8.

+ +

set tabstospaces

+ +

Convert each typed tab to +spaces -- to the number of spaces that a tab at that +position would take up.

+ +

set titlecolor +[bold,][italic,]fgcolor,bgcolor

+ +

Use this color combination for +the title bar. Valid names for the foreground and background +colors are: red, green, blue, +magenta, yellow, cyan, white, +and black. Each of these eight names may be prefixed +with the word light to get a brighter version of that +color. The word grey or gray may be used as a +synonym for lightblack. On terminal emulators that +can do at least 256 colors, other valid (but unprefixable) +color names are: pink, purple, mauve, +lagoon, mint, lime, peach, +orange, latte, rosy, beet, +plum, sea, sky, slate, +teal, sage, brown, ocher, +sand, tawny, brick, crimson, and +normal -- where normal means the default +foreground or background color. On such emulators, the color +may also be specified as a three-digit hexadecimal number +prefixed with #, with the digits representing the +amounts of red, green, and blue, respectively. This tells +nano to select from the available palette the color +that approximates the given values.

+ +

Either +"fgcolor" or +",bgcolor" may be left out, and the +pair may be preceded by bold and/or italic +(separated by commas) to get a bold and/or slanting +typeface, if your terminal can do those.

+ +

set trimblanks

+ +

Remove trailing whitespace from +wrapped lines when automatic hard-wrapping occurs or when +text is justified.

+ +

set unix

+ +

Save a file by default in Unix +format. This overrides nano’s default behavior of +saving a file in the format that it had. (This option has no +effect when you also use set noconvert.)

+ +

set whitespace +"characters"

+ +

Set the two characters used to +indicate the presence of tabs and spaces. They must be +single-column characters. The default pair for a UTF-8 +locale is "»⋅", and for other +locales ">.".

+ +

set wordbounds

+ +

Detect word boundaries +differently by treating punctuation characters as parts of +words.

+ +

set wordchars +"characters"

+ +

Specify which other characters +(besides the normal alphanumeric ones) should be considered +as parts of words. When using this option, you probably want +to unset wordbounds.

+ +

set zap

+ +

Let an unmodified Backspace or +Delete erase the marked region (instead of a single +character, and without affecting the cutbuffer).

+ +

set zero

+ +

Hide all elements of the +interface (title bar, status bar, and help lines) and use +all rows of the terminal for showing the contents of the +buffer. The status bar appears only when there is a +significant message, and disappears after 1.5 seconds or +upon the next keystroke. With M-Z the title bar plus +status bar can be toggled. With M-X the help +lines.

+ +

NOTES + +

+ + +

Option set +suspendable has been removed. Suspension is enabled by +default, reachable via ^T^Z. (If you want a plain +^Z to suspend nano, add bind ^Z suspend main +to your nanorc.)

+ +

SYNTAX HIGHLIGHTING + +

+ + +

Coloring the +different syntactic elements of a file is done via regular +expressions (see the color command below). This is +inherently imperfect, because regular expressions are not +powerful enough to fully parse a file. Nevertheless, regular +expressions can do a lot and are easy to make, so they are a +good fit for a small editor like nano.

+ +

All regular +expressions in nano are POSIX extended regular +expressions. This means that ., ?, *, ++, ^, $, and several other characters +are special. The period . matches any single +character, ? means the preceding item is optional, +* means the preceding item may be matched zero or +more times, + means the preceding item must be +matched one or more times, ^ matches the beginning of +a line, and $ the end, \< matches the start +of a word, and \> the end, and \s matches a +blank. It also means that lookahead and lookbehind are not +possible. A complete explanation can be found in the manual +page of GNU grep: man grep.

+ +

Each regular +expression in a nanorc file should be wrapped in +double quotes (""). Multiple regular +expressions can follow each other on a line by separating +them with blanks. This means that a regular expression +cannot contain a double quote followed by a blank. When you +need this combination inside a regular expression, then +either the double quote or the blank should be put between +square brackets ([]).

+ +

For each kind +of file a separate syntax can be defined via the following +commands:
+syntax
name +["fileregex" ...]

+ +

Start the definition of a +syntax with this name. All subsequent color +and other such commands will be added to this syntax, until +a new syntax command is encountered.

+ +

When +nano is run, this syntax will be automatically +activated if the current filename matches the extended +regular expression fileregex. Or the syntax can be +explicitly activated by using the -Y or +--syntax command-line option followed by the +name.

+ +

The syntax +default is special: it takes no fileregex, and +applies to files that don’t match any syntax’s +regexes. The syntax none is reserved; specifying it +on the command line is the same as not having a syntax at +all.

+ +

header +"regex" ...

+ +

If from all defined syntaxes no +fileregex matched, then compare this regex (or +regexes) against the first line of the current file, to +determine whether this syntax should be used for it.

+ +

magic +"regex" ...

+ +

If no fileregex matched +and no header regex matched either, then compare this +regex (or regexes) against the result of querying the +magic database about the current file, to determine +whether this syntax should be used for it. (This +functionality only works when libmagic is installed +on the system and will be silently ignored otherwise.)

+ +

formatter program +[argument ...]

+ +

Run the given program on +the full contents of the current buffer.

+ +

linter program +[argument ...]

+ +

Use the given program to +run a syntax check on the current buffer.

+ +

comment +"string"

+ +

Use the given string for +commenting and uncommenting lines. If the string contains a +vertical bar or pipe character (|), this designates +bracket-style comments; for example, +"/*|*/" for CSS files. The characters +before the pipe are prepended to the line and the characters +after the pipe are appended at the end of the line. If no +pipe character is present, the full string is prepended; for +example, "#" for Python files. If empty +double quotes are specified, the comment/uncomment function +is disabled; for example, "" for JSON. The default +value is "#".

+ +

tabgives +"string"

+ +

Make the <Tab> key +produce the given string. Useful for languages like +Python that want to see only spaces for indentation. This +overrides the setting of the tabstospaces option.

+ +

color +[bold,][italic,]fgcolor,bgcolor +"regex" ...

+ +

Paint all pieces of text that +match the extended regular expression regex with the +given foreground and background colors, at least one of +which must be specified. Valid color names are: red, +green, blue, magenta, yellow, +cyan, white, and black. Each of these +eight names may be prefixed with the word light to +get a brighter version of that color. The word grey +or gray may be used as a synonym for +lightblack. On terminal emulators that can do at +least 256 colors, other valid (but unprefixable) color names +are: pink, purple, mauve, +lagoon, mint, lime, peach, +orange, latte, rosy, beet, +plum, sea, sky, slate, +teal, sage, brown, ocher, +sand, tawny, brick, crimson, and +normal -- where normal means the default +foreground or background color. On such emulators, the color +may also be specified as a three-digit hexadecimal number +prefixed with #, with the digits representing the +amounts of red, green, and blue, respectively. This tells +nano to select from the available palette the color +that approximates the given values.

+ +

The color pair +may be preceded by bold and/or italic +(separated by commas) to get a bold and/or slanting +typeface, if your terminal can do those.

+ +

All coloring +commands are applied in the order in which they are +specified, which means that later commands can recolor stuff +that was colored earlier.

+ +

icolor +[bold,][italic,]fgcolor,bgcolor +"regex" ...

+ +

Same as above, except that the +matching is case insensitive.

+ +

color +[bold,][italic,]fgcolor,bgcolor +start="fromrx" +end="torx"

+ +

Paint all pieces of text whose +start matches extended regular expression fromrx and +whose end matches extended regular expression torx +with the given foreground and background colors, at least +one of which must be specified. This means that, after an +initial instance of fromrx, all text until the first +instance of torx will be colored. This allows syntax +highlighting to span multiple lines.

+ +

icolor +[bold,][italic,]fgcolor,bgcolor +start="fromrx" +end="torx"

+ +

Same as above, except that the +matching is case insensitive.

+ +

include +"syntaxfile"

+ +

Read in self-contained color +syntaxes from syntaxfile. Note that syntaxfile +may contain only the above commands, from syntax to +icolor.

+ +

extendsyntax name +command argument ...

+ +

Extend the syntax previously +defined as name with another command. This +allows adding a new color, icolor, +header, magic, formatter, +linter, comment, or tabgives command to +an already defined syntax -- useful when you want to +slightly improve a syntax defined in one of the +system-installed files (which normally are not +writable).

+ +

REBINDING KEYS + +

+ + +

Key bindings +can be changed via the following three commands:

+ +

bind key function +menu

+ +

Rebinds the given key to +the given function in the given menu (or in +all menus where the function exists when all is +used).

+ +

bind key +"string" menu

+ +

Makes the given key +produce the given string in the given menu (or +in all menus where the key exists when all is used). +Besides literal text and/or control codes, the string +may contain function names between braces. These functions +will be invoked when the key is typed. To include a literal +opening brace, use {{}.

+ +

unbind key +menu

+ +

Unbinds the given key +from the given menu (or from all menus where the key +exists when all is used).

+ +

Note that +bind key +"{function}" menu is +equivalent to bind key function menu, except +that for the latter form nano will check the +availabilty of the function in the given menu +at startup time (and report an error if it does not exist +there), whereas for the first form nano will check at +execution time that the function exists but not +whether it makes any sense in the current menu. The user has +to take care that a function name between braces (or any +sequence of them) is appropriate. Strange behavior can +result when it is not.
+The format of key should be one of:

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +

^X

+ + +

where X is a Latin letter, or one of several +ASCII characters (@, ], \, ^, _), or the word +"Space". Example: ^C.

+ + +

M-X

+ + +

where X is any ASCII character except [, or the +word "Space". Example: M-8.

+ + +

Sh-M-X

+ + +

where X is a Latin letter. Example: Sh-M-U. By +default, each Meta+letter keystroke does the same as the +corresponding Shift+Meta+letter. But when any Shift+Meta +bind is made, that will no longer be the case, for all +letters.

+ + +

FN

+ + +

where N is a numeric value from 1 to 24. Example: +F10. (Often, F13 to F24 can be typed as +F1 to F12 with Shift.)

+ +

Ins or Del.

+ +

Rebinding +^M (Enter) or ^I (Tab) is probably not a good +idea. Rebinding ^[ (Esc) is not possible, because its +keycode is the starter byte of Meta keystrokes and escape +sequences. Rebinding any of the dedicated cursor-moving keys +(the arrows, Home, End, PageUp and PageDown) is not +possible. On some terminals it’s not possible to +rebind ^H (unless --raw is used) because its +keycode is identical to that of the Backspace key.
+Valid function names to be bound are:

+ +

help

+ +

Invokes the help viewer.

+ +

cancel

+ +

Cancels the current +command.

+ +

exit

+ +

Exits from the program (or from +the help viewer or file browser).

+ +

writeout

+ +

Writes the current buffer to +disk, asking for a name.

+ +

savefile

+ +

Writes the current file to disk +without prompting.

+ +

insert

+ +

Inserts a file into the current +buffer (at the current cursor position), or into a new +buffer when option multibuffer is set.

+ +

whereis

+ +

Starts a forward search for +text in the current buffer -- or for filenames matching a +string in the current list in the file browser.

+ +

wherewas

+ +

Starts a backward search for +text in the current buffer -- or for filenames matching a +string in the current list in the file browser.

+ +

findprevious

+ +

Searches the next occurrence in +the backward direction.

+ +

findnext

+ +

Searches the next occurrence in +the forward direction.

+ +

replace

+ +

Interactively replaces text +within the current buffer.

+ +

cut

+ +

Cuts and stores the current +line (or the marked region).

+ +

copy

+ +

Copies the current line (or the +marked region) without deleting it.

+ +

paste

+ +

Pastes the currently stored +text into the current buffer at the current cursor +position.

+ +

zap

+ +

Throws away the current line +(or the marked region). (This function is bound by default +to <Meta+Delete>.)

+ +

chopwordleft

+ +

Deletes from the cursor +position to the beginning of the preceding word. (This +function is bound by default to <Shift+Ctrl+Delete>. +If your terminal produces ^H for +<Ctrl+Backspace>, you can make <Ctrl+Backspace> +delete the word to the left of the cursor by rebinding +^H to this function.)

+ +

chopwordright

+ +

Deletes from the cursor +position to the beginning of the next word. (This function +is bound by default to <Ctrl+Delete>.)

+ +

cutrestoffile

+ +

Cuts all text from the cursor +position till the end of the buffer.

+ +

mark

+ +

Sets the mark at the current +position, to start selecting text. Or, when it is set, +unsets the mark.

+ +

location

+ +

Reports the current position of +the cursor in the buffer: the line, column, and character +positions.

+ +

wordcount

+ +

Counts and reports on the +status bar the number of lines, words, and characters in the +current buffer (or in the marked region).

+ +

execute

+ +

Prompts for a program to +execute. The program’s output will be inserted into +the current buffer (or into a new buffer when M-F is +toggled).

+ +

speller

+ +

Invokes a spell-checking +program, either the default hunspell(1) or GNU +spell(1), or the one defined by --speller or +set speller.

+ +

formatter

+ +

Invokes a +full-buffer-processing program (if the active syntax defines +one). (The current buffer is written out to a temporary +file, the program is run on it, and then the temporary file +is read back in, replacing the contents of the buffer.)

+ +

linter

+ +

Invokes a syntax-checking +program (if the active syntax defines one). If this program +produces lines of the form "filename:linenum:charnum: +some message", then the cursor will be put at the +indicated position in the mentioned file while showing +"some message" on the status bar. You can move +from message to message with <PgUp> and <PgDn>, +and leave linting mode with ^C or <Enter>.

+ +

justify

+ +

Justifies the current paragraph +(or the marked region). A paragraph is a group of contiguous +lines that, apart from possibly the first line, all have the +same indentation. The beginning of a paragraph is detected +by either this lone line with a differing indentation or by +a preceding blank line.

+ +

fulljustify

+ +

Justifies the entire current +buffer (or the marked region).

+ +

indent

+ +

Indents (shifts to the right) +the current line or the marked lines.

+ +

unindent

+ +

Unindents (shifts to the left) +the current line or the marked lines.

+ +

comment

+ +

Comments or uncomments the +current line or the marked lines, using the comment style +specified in the active syntax.

+ +

complete

+ +

Completes (when possible) the +fragment before the cursor to a full word found elsewhere in +the current buffer.

+ +

left

+ +

Goes left one position (in the +editor or browser).

+ +

right

+ +

Goes right one position (in the +editor or browser).

+ +

up

+ +

Goes one line up (in the editor +or browser).

+ +

down

+ +

Goes one line down (in the +editor or browser).

+ +

scrollup

+ +

Scrolls the viewport up one row +(meaning that the text slides down) while keeping the cursor +in the same text position, if possible. (This function is +bound by default to <Alt+Up>. If <Alt+Up> does +nothing on your Linux console, see the FAQ: +https://nano-editor.org/dist/latest/faq.html#4.1.)

+ +

scrolldown

+ +

Scrolls the viewport down one +row (meaning that the text slides up) while keeping the +cursor in the same text position, if possible. (This +function is bound by default to <Alt+Down>.)

+ +

center

+ +

Scrolls the line with the +cursor to the middle of the screen.

+ +

prevword

+ +

Moves the cursor to the +beginning of the previous word.

+ +

nextword

+ +

Moves the cursor to the +beginning of the next word.

+ +

home

+ +

Moves the cursor to the +beginning of the current line.

+ +

end

+ +

Moves the cursor to the end of +the current line.

+ +

beginpara

+ +

Moves the cursor to the +beginning of the current paragraph.

+ +

endpara

+ +

Moves the cursor to the end of +the current paragraph.

+ +

prevblock

+ +

Moves the cursor to the +beginning of the current or preceding block of text. (Blocks +are separated by one or more blank lines.)

+ +

nextblock

+ +

Moves the cursor to the +beginning of the next block of text.

+ +

pageup

+ +

Goes up one screenful.

+ +

pagedown

+ +

Goes down one screenful.

+ +

firstline

+ +

Goes to the first line of the +file.

+ +

lastline

+ +

Goes to the last line of the +file.

+ +

gotoline

+ +

Goes to a specific line (and +column if specified). Negative numbers count from the end of +the file (and end of the line).

+ +

findbracket

+ +

Moves the cursor to the bracket +(or brace or parenthesis, etc.) that matches (pairs) with +the one under the cursor. See set matchbrackets.

+ +

anchor

+ +

Places an anchor at the current +line, or removes it when already present. (An anchor is +visible when line numbers are activated.)

+ +

prevanchor

+ +

Goes to the first anchor before +the current line.

+ +

nextanchor

+ +

Goes to the first anchor after +the current line.

+ +

prevbuf

+ +

Switches to editing/viewing the +previous buffer when multiple buffers are open.

+ +

nextbuf

+ +

Switches to editing/viewing the +next buffer when multiple buffers are open.

+ +

verbatim

+ +

Inserts the next keystroke +verbatim into the file, or begins Unicode input when a +hexadecimal digit is typed.

+ +

tab

+ +

Inserts a tab at the current +cursor location.

+ +

enter

+ +

Inserts a new line below the +current one.

+ +

delete

+ +

Deletes the character under the +cursor.

+ +

backspace

+ +

Deletes the character before +the cursor.

+ +

recordmacro

+ +

Starts the recording of +keystrokes -- the keystrokes are stored as a macro. When +already recording, the recording is stopped.

+ +

runmacro

+ +

Replays the keystrokes of the +last recorded macro.

+ +

undo

+ +

Undoes the last performed text +action (add text, delete text, etc).

+ +

redo

+ +

Redoes the last undone action +(i.e., it undoes an undo).

+ +

refresh

+ +

Refreshes the screen.

+ +

suspend

+ +

Suspends the editor and returns +control to the shell (until you tell the process to resume +execution with fg).

+ +

casesens

+ +

Toggles whether +searching/replacing ignores or respects the case of the +given characters.

+ +

regexp

+ +

Toggles whether +searching/replacing uses literal strings or regular +expressions.

+ +

backwards

+ +

Toggles whether +searching/replacing goes forward or backward.

+ +

older

+ +

Retrieves the previous +(earlier) entry at a prompt.

+ +

newer

+ +

Retrieves the next (later) +entry at a prompt.

+ +

flipreplace

+ +

Toggles between searching for +something and replacing something.

+ +

flipgoto

+ +

Toggles between searching for +text and targeting a line number.

+ +

flipexecute

+ +

Toggles between inserting a +file and executing a command.

+ +

flippipe

+ +

When executing a command, +toggles whether the current buffer (or marked region) is +piped to the command.

+ +

flipnewbuffer

+ +

Toggles between inserting into +the current buffer and into a new empty buffer.

+ +

flipconvert

+ +

When reading in a file, toggles +between converting and not converting it from DOS/Mac +format. Converting is the default.

+ +

dosformat

+ +

When writing a file, switches +to writing a DOS format (CR/LF).

+ +

macformat

+ +

When writing a file, switches +to writing a Mac format.

+ +

append

+ +

When writing a file, appends to +the end instead of overwriting.

+ +

prepend

+ +

When writing a file, +’prepends’ (writes at the beginning) instead of +overwriting.

+ +

backup

+ +

When writing a file, creates a +backup of the current file.

+ +

discardbuffer

+ +

When about to write a file, +discard the current buffer without saving. (This function is +bound by default only when option --saveonexit is in +effect.)

+ +

browser

+ +

Starts the file browser (in the +Read File and Write Out menus), allowing to select a file +from a list.

+ +

gotodir

+ +

Goes to a directory to be +specified, allowing to browse anywhere in the +filesystem.

+ +

firstfile

+ +

Goes to the first file in the +list when using the file browser.

+ +

lastfile

+ +

Goes to the last file in the +list when using the file browser.

+ +

nohelp

+ +

Toggles the presence of the +two-line list of key bindings at the bottom of the screen. +(This toggle is special: it is available in all menus except +the help viewer and the linter. All further toggles are +available in the main menu only.)

+ +

zero

+ +

Toggles the presence of title +bar and status bar.

+ +

constantshow

+ +

Toggles the constant display of +the current line, column, and character positions.

+ +

softwrap

+ +

Toggles the displaying of +overlong lines on multiple screen lines.

+ +

linenumbers

+ +

Toggles the display of line +numbers in front of the text.

+ +

whitespacedisplay

+ +

Toggles the showing of +whitespace.

+ +

nosyntax

+ +

Toggles syntax +highlighting.

+ +

smarthome

+ +

Toggles the smartness of the +Home key.

+ +

autoindent

+ +

Toggles whether a newly created +line will contain the same amount of leading whitespace as +the preceding line -- or as the next line if the preceding +line is the beginning of a paragraph.

+ +

cutfromcursor

+ +

Toggles whether cutting text +will cut the whole line or just from the current cursor +position to the end of the line.

+ +

breaklonglines

+ +

Toggles whether long lines will +be hard-wrapped to the next line. (The old name of this +function, ’nowrap’, is deprecated.)

+ +

tabstospaces

+ +

Toggles whether typed tabs will +be converted to spaces.

+ +

mouse

+ +

Toggles mouse support.

+ +

Valid menu sections +are:

+ +

main

+ +

The main editor window where +text is entered and edited.

+ +

help

+ +

The help-viewer menu.

+ +

search

+ +

The search menu (AKA +whereis).

+ +

replace

+ +

The ’search to +replace’ menu.

+ +

replacewith

+ +

The ’replace with’ +menu, which comes up after ’search to +replace’.

+ +

yesno

+ +

The ’yesno’ menu, +where the Yes/No/All/Cancel question is asked.

+ +

gotoline

+ +

The ’goto line (and +column)’ menu.

+ +

writeout

+ +

The ’write file’ +menu.

+ +

insert

+ +

The ’insert file’ +menu.

+ +

browser

+ +

The ’file browser’ +menu, for selecting a file to be opened or inserted or +written to.

+ +

whereisfile

+ +

The ’search for a +file’ menu in the file browser.

+ +

gotodir

+ +

The ’go to +directory’ menu in the file browser.

+ +

execute

+ +

The menu for inserting the +output from an external command, or for filtering the buffer +(or the marked region) through an external command, or for +executing one of several tools.

+ +

spell

+ +

The menu of the integrated +spell checker where the user can edit a misspelled word.

+ +

linter

+ +

The linter menu, which allows +jumping through the linting messages.

+ +

all

+ +

A special name that encompasses +all menus. For bind it means all menus where the +specified function exists; for unbind it means +all menus where the specified key exists.

+ +

FILES + +

+ + + +

/etc/nanorc

+ +

System-wide configuration +file.

+ +

~/.nanorc or +$XDG_CONFIG_HOME/nano/nanorc or +~/.config/nano/nanorc

+ +

Per-user configuration +file.

+ +

/usr/share/nano/*

+ +

Syntax definitions for the +syntax coloring of common file types (and for less common +file types in the extra/ subdirectory).

+ +

SEE ALSO + +

+ + +

nano(1) +
+https://nano-editor.org/cheatsheet.html

+ +

An overview of the default key +bindings.

+
+ + diff --git a/doc/rnano.1 b/doc/rnano.1 new file mode 100644 index 0000000..27762bc --- /dev/null +++ b/doc/rnano.1 @@ -0,0 +1,60 @@ +.\" Copyright (C) 2002-2007, 2014-2023 Free Software Foundation, Inc. +.\" +.\" This document is dual-licensed. You may distribute and/or modify it +.\" under the terms of either of the following licenses: +.\" +.\" * The GNU General Public License, as published by the Free Software +.\" Foundation, version 3 or (at your option) any later version. You +.\" should have received a copy of the GNU General Public License +.\" along with this program. If not, see +.\" . +.\" +.\" * The GNU Free Documentation License, as published by the Free +.\" Software Foundation, version 1.2 or (at your option) any later +.\" version, with no Invariant Sections, no Front-Cover Texts, and no +.\" Back-Cover Texts. You should have received a copy of the GNU Free +.\" Documentation License along with this program. If not, see +.\" . +.\" +.TH RNANO 1 "version 7.2" "January 2023" + +.SH NAME +rnano \- a restricted nano + +.SH SYNOPSIS +.B rnano +.RI [ options "] [[+" line [, column "]]\ " file "]..." + +.SH DESCRIPTION +\fBrnano\fR runs the \fBnano\fR editor in restricted mode. This allows +editing only the specified file or files, and doesn't allow the user +access to the filesystem nor to a command shell. +.sp +In restricted mode, \fBnano\fR will: +.IP \[bu] 2 +not allow suspending; +.IP \[bu] +not allow saving the current buffer under a different name; +.IP \[bu] +not allow inserting another file or opening a new buffer; +.IP \[bu] +not allow appending or prepending to any file; +.IP \[bu] +not make backup files nor do spell checking. + +.SH OPTIONS +.TP +.BR \-h ", " \-\-help +Show the available command-line options and exit. +.P +For all existing options, see the \fBnano\fR(1) man page. + +.SH BUGS +Please report bugs via +.IR https://savannah.gnu.org/bugs/?group=nano . + +.SH HOMEPAGE +.I https://nano-editor.org/ + +.SH SEE ALSO +.BR nano (1) diff --git a/doc/rnano.1.html b/doc/rnano.1.html new file mode 100644 index 0000000..e08b0d8 --- /dev/null +++ b/doc/rnano.1.html @@ -0,0 +1,166 @@ + + + + + + + + + +RNANO + + + + +

RNANO

+ +NAME
+SYNOPSIS
+DESCRIPTION
+OPTIONS
+BUGS
+HOMEPAGE
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

rnano - a +restricted nano

+ +

SYNOPSIS + +

+ + +

rnano +[options] +[[+line[,column]] file]...

+ +

DESCRIPTION + +

+ + +

rnano +runs the nano editor in restricted mode. This allows +editing only the specified file or files, and doesn’t +allow the user access to the filesystem nor to a command +shell.

+ +

In restricted +mode, nano will:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

+ + +

not allow suspending;

+ + +

+ + +

not allow saving the current buffer under a different +name;

+ + +

+ + +

not allow inserting another file or opening a new +buffer;

+ + +

+ + +

not allow appending or prepending to any file;

+ + +

+ + +

not make backup files nor do spell checking.

+ +

OPTIONS + +

+ + +

-h, +--help

+ +

Show the available command-line +options and exit.

+ +

For all +existing options, see the nano(1) man page.

+ +

BUGS + +

+ + +

Please report +bugs via +https://savannah.gnu.org/bugs/?group=nano.

+ +

HOMEPAGE + +

+ + + +

https://nano-editor.org/

+ +

SEE ALSO + +

+ + + +

nano(1)

+
+ + diff --git a/doc/sample.nanorc.in b/doc/sample.nanorc.in new file mode 100644 index 0000000..f838296 --- /dev/null +++ b/doc/sample.nanorc.in @@ -0,0 +1,331 @@ +## Sample initialization file for GNU nano. +## +## For the options that take parameters, the default value is shown. +## Other options are unset by default. To make sure that an option +## is disabled, you can use "unset