From: Antonio Radici Date: Sun, 3 Oct 2010 19:41:38 +0000 (+0100) Subject: Merge commit 'upstream/1.5.21' X-Git-Tag: debian/1.5.21-1~3 X-Git-Url: https://git.llucax.com/software/mutt-debian.git/commitdiff_plain/90ca98902668310adea2bd544a61a3d6c9c12f1c?hp=594a6a48c983f012a70323047c723ef48883934a Merge commit 'upstream/1.5.21' Conflicts: Makefile.in aclocal.m4 config.h.in configure contrib/Makefile.in doc/Makefile.in imap/Makefile.in m4/Makefile.in po/bg.gmo po/ca.gmo po/cs.gmo po/da.gmo po/de.gmo po/el.gmo po/eo.gmo po/es.gmo po/et.gmo po/eu.gmo po/fr.gmo po/ga.gmo po/gl.gmo po/hu.gmo po/id.gmo po/it.gmo po/ja.gmo po/ko.gmo po/lt.gmo po/nl.gmo po/pl.gmo po/pt_BR.gmo po/ru.gmo po/sk.gmo po/sv.gmo po/tr.gmo po/uk.gmo po/zh_CN.gmo po/zh_TW.gmo --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b32c836 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +.deps/ +.pc/ +Makefile +Makefile.in +aclocal.m4 +autom4te.cache/ +config.h +config.h.in +config.h.in~ +config.log +config.status +configure +contrib/Makefile +contrib/Makefile.in +doc/.deps/ +doc/Makefile +doc/Makefile.in +doc/instdoc.sh +doc/smime_keys.man +hcachever.sh +imap/.deps/ +imap/Makefile +imap/Makefile.in +intl/Makefile +m4/Makefile +m4/Makefile.in +muttbug.sh +po/Makefile +po/Makefile.in +po/POTFILES +stamp-h1 + +debian/files +debian/mutt +debian/mutt-dbg +debian/mutt-patched +debian/stamp-patched +debian/tmp +debian/*.substvars +debian/*.debhelper* + +obj-i486-linux-gnu-patched/ +obj-i486-linux-gnu/ +tags diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index e766c66..0000000 --- a/Makefile.in +++ /dev/null @@ -1,1242 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \ - pgpewrap$(EXEEXT) mutt_md5$(EXEEXT) -bin_PROGRAMS = mutt$(EXEEXT) @DOTLOCK_TARGET@ @PGPAUX_TARGET@ -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/hcachever.sh.in $(srcdir)/muttbug.sh.in \ - $(top_srcdir)/configure $(top_srcdir)/intl/Makefile.in \ - ABOUT-NLS ChangeLog INSTALL NEWS TODO config.guess config.sub \ - depcomp install-sh missing mkdtemp.c mkinstalldirs regex.c \ - setenv.c snprintf.c strcasecmp.c strcasestr.c strdup.c \ - strsep.c strtok_r.c wcscasecmp.c -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/curslib.m4 $(top_srcdir)/m4/funcdecl.m4 \ - $(top_srcdir)/m4/funcs.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gpgme.m4 \ - $(top_srcdir)/m4/gssapi.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/types.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = intl/Makefile hcachever.sh muttbug.sh -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_mutt_OBJECTS = addrbook.$(OBJEXT) alias.$(OBJEXT) attach.$(OBJEXT) \ - base64.$(OBJEXT) browser.$(OBJEXT) buffy.$(OBJEXT) \ - color.$(OBJEXT) crypt.$(OBJEXT) cryptglue.$(OBJEXT) \ - commands.$(OBJEXT) complete.$(OBJEXT) compose.$(OBJEXT) \ - copy.$(OBJEXT) curs_lib.$(OBJEXT) curs_main.$(OBJEXT) \ - date.$(OBJEXT) edit.$(OBJEXT) enter.$(OBJEXT) flags.$(OBJEXT) \ - init.$(OBJEXT) filter.$(OBJEXT) from.$(OBJEXT) \ - getdomain.$(OBJEXT) group.$(OBJEXT) handler.$(OBJEXT) \ - hash.$(OBJEXT) hdrline.$(OBJEXT) headers.$(OBJEXT) \ - help.$(OBJEXT) hook.$(OBJEXT) keymap.$(OBJEXT) main.$(OBJEXT) \ - mbox.$(OBJEXT) menu.$(OBJEXT) mh.$(OBJEXT) mx.$(OBJEXT) \ - pager.$(OBJEXT) parse.$(OBJEXT) pattern.$(OBJEXT) \ - postpone.$(OBJEXT) query.$(OBJEXT) recvattach.$(OBJEXT) \ - recvcmd.$(OBJEXT) rfc822.$(OBJEXT) rfc1524.$(OBJEXT) \ - rfc2047.$(OBJEXT) rfc2231.$(OBJEXT) rfc3676.$(OBJEXT) \ - score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \ - signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \ - system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \ - history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \ - editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \ - ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) -am__objects_1 = -am__objects_2 = patchlist.$(OBJEXT) $(am__objects_1) -nodist_mutt_OBJECTS = $(am__objects_2) -mutt_OBJECTS = $(am_mutt_OBJECTS) $(nodist_mutt_OBJECTS) -am__DEPENDENCIES_1 = -am_mutt_dotlock_OBJECTS = mutt_dotlock.$(OBJEXT) -mutt_dotlock_OBJECTS = $(am_mutt_dotlock_OBJECTS) -am_mutt_md5_OBJECTS = mutt_md5-md5.$(OBJEXT) -mutt_md5_OBJECTS = $(am_mutt_md5_OBJECTS) -mutt_md5_DEPENDENCIES = -mutt_md5_LINK = $(CCLD) $(mutt_md5_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -pgpewrap_SOURCES = pgpewrap.c -pgpewrap_OBJECTS = pgpewrap.$(OBJEXT) -pgpewrap_LDADD = $(LDADD) -pgpewrap_DEPENDENCIES = @LIBOBJS@ -am_pgpring_OBJECTS = pgppubring.$(OBJEXT) pgplib.$(OBJEXT) \ - lib.$(OBJEXT) extlib.$(OBJEXT) sha1.$(OBJEXT) md5.$(OBJEXT) \ - pgppacket.$(OBJEXT) ascii.$(OBJEXT) -pgpring_OBJECTS = $(am_pgpring_OBJECTS) -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' -SCRIPTS = $(bin_SCRIPTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(mutt_SOURCES) $(EXTRA_mutt_SOURCES) $(nodist_mutt_SOURCES) \ - $(mutt_dotlock_SOURCES) $(mutt_md5_SOURCES) pgpewrap.c \ - $(pgpring_SOURCES) -DIST_SOURCES = $(mutt_SOURCES) $(EXTRA_mutt_SOURCES) \ - $(mutt_dotlock_SOURCES) $(mutt_md5_SOURCES) pgpewrap.c \ - $(pgpring_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = m4 po intl doc contrib imap -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBX = @DBX@ -DEBUGGER = @DEBUGGER@ -DEFS = -DPKGDATADIR=\"$(pkgdatadir)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ - -DBINDIR=\"$(bindir)\" -DMUTTLOCALEDIR=\"$(datadir)/locale\" \ - -DHAVE_CONFIG_H=1 - -DEPDIR = @DEPDIR@ -DOTLOCK_GROUP = @DOTLOCK_GROUP@ -DOTLOCK_PERMISSION = @DOTLOCK_PERMISSION@ -DOTLOCK_TARGET = @DOTLOCK_TARGET@ -DSLROOT = @DSLROOT@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GDB = @GDB@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GPGME_CFLAGS = @GPGME_CFLAGS@ -GPGME_CONFIG = @GPGME_CONFIG@ -GPGME_LIBS = @GPGME_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -ISPELL = @ISPELL@ -KRB5CFGPATH = @KRB5CFGPATH@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBIMAP = @LIBIMAP@ -LIBIMAPDEPS = @LIBIMAPDEPS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MUTTLIBS = @MUTTLIBS@ -MUTT_LIB_OBJECTS = @MUTT_LIB_OBJECTS@ -MUTT_MD5 = @MUTT_MD5@ -OBJEXT = @OBJEXT@ -OPS = @OPS@ -OSPCAT = @OSPCAT@ -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@ -PGPAUX_TARGET = @PGPAUX_TARGET@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SDB = @SDB@ -SENDMAIL = @SENDMAIL@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SMIMEAUX_TARGET = @SMIMEAUX_TARGET@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.6 foreign -@BUILD_IMAP_TRUE@IMAP_SUBDIR = imap -@BUILD_IMAP_TRUE@IMAP_INCLUDES = -I$(top_srcdir)/imap -SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR) -bin_SCRIPTS = muttbug flea @SMIMEAUX_TARGET@ -@BUILD_HCACHE_TRUE@HCVERSION = hcversion.h -BUILT_SOURCES = keymap_defs.h patchlist.c reldate.h $(HCVERSION) -mutt_SOURCES = \ - addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c \ - crypt.c cryptglue.c \ - commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c \ - edit.c enter.c flags.c init.c filter.c from.c \ - getdomain.c group.c \ - handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c \ - main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \ - postpone.c query.c recvattach.c recvcmd.c \ - rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \ - score.c send.c sendlib.c signal.c sort.c \ - status.c system.c thread.c charset.c history.c lib.c \ - muttlib.c editmsg.c mbyte.c \ - url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c - -nodist_mutt_SOURCES = $(BUILT_SOURCES) -mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ - $(INTLLIBS) $(LIBICONV) $(GPGME_LIBS) - -mutt_DEPENDENCIES = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAPDEPS) \ - $(INTLDEPS) - -AM_CPPFLAGS = -I. -I$(top_srcdir) $(IMAP_INCLUDES) $(GPGME_CFLAGS) -Iintl -EXTRA_mutt_SOURCES = account.c bcache.c crypt-gpgme.c crypt-mod-pgp-classic.c \ - crypt-mod-pgp-gpgme.c crypt-mod-smime-classic.c \ - crypt-mod-smime-gpgme.c dotlock.c gnupgparse.c hcache.c md5.c \ - mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ - mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \ - pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \ - smime.c smtp.c utf8.c wcwidth.c \ - bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h - -EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \ - configure account.h \ - attach.h buffy.h charset.h copy.h crypthash.h dotlock.h functions.h gen_defs \ - globals.h hash.h history.h init.h keymap.h mutt_crypt.h \ - mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h \ - mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h \ - mx.h pager.h pgp.h pop.h protos.h rfc1524.h rfc2047.h \ - rfc2231.h rfc822.h rfc3676.h sha1.h sort.h mime.types VERSION prepare \ - _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h \ - mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h \ - README.SSL smime.h group.h \ - muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ - ChangeLog mkchangelog.sh mutt_idna.h \ - snprintf.c regex.c crypt-gpgme.h hcachever.sh.in - -EXTRA_SCRIPTS = smime_keys -mutt_dotlock_SOURCES = mutt_dotlock.c -mutt_dotlock_LDADD = @LIBOBJS@ -mutt_dotlock_DEPENDENCIES = @LIBOBJS@ -pgpring_SOURCES = pgppubring.c pgplib.c lib.c extlib.c sha1.c md5.c pgppacket.c ascii.c -pgpring_LDADD = @LIBOBJS@ $(INTLLIBS) -pgpring_DEPENDENCIES = @LIBOBJS@ $(INTLDEPS) -mutt_md5_SOURCES = md5.c -mutt_md5_CFLAGS = -DMD5UTIL -mutt_md5_LDADD = -noinst_PROGRAMS = $(MUTT_MD5) -CLEANFILES = mutt_dotlock.c keymap_alldefs.h $(BUILT_SOURCES) -DISTCLEANFILES = flea smime_keys -ACLOCAL_AMFLAGS = -I m4 -LDADD = @LIBOBJS@ @INTLLIBS@ -all: $(BUILT_SOURCES) config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .o .obj -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -hcachever.sh: $(top_builddir)/config.status $(srcdir)/hcachever.sh.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -muttbug.sh: $(top_builddir)/config.status $(srcdir)/muttbug.sh.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) -mutt$(EXEEXT): $(mutt_OBJECTS) $(mutt_DEPENDENCIES) - @rm -f mutt$(EXEEXT) - $(LINK) $(mutt_OBJECTS) $(mutt_LDADD) $(LIBS) -mutt_dotlock$(EXEEXT): $(mutt_dotlock_OBJECTS) $(mutt_dotlock_DEPENDENCIES) - @rm -f mutt_dotlock$(EXEEXT) - $(LINK) $(mutt_dotlock_OBJECTS) $(mutt_dotlock_LDADD) $(LIBS) -mutt_md5$(EXEEXT): $(mutt_md5_OBJECTS) $(mutt_md5_DEPENDENCIES) - @rm -f mutt_md5$(EXEEXT) - $(mutt_md5_LINK) $(mutt_md5_OBJECTS) $(mutt_md5_LDADD) $(LIBS) -pgpewrap$(EXEEXT): $(pgpewrap_OBJECTS) $(pgpewrap_DEPENDENCIES) - @rm -f pgpewrap$(EXEEXT) - $(LINK) $(pgpewrap_OBJECTS) $(pgpewrap_LDADD) $(LIBS) -pgpring$(EXEEXT): $(pgpring_OBJECTS) $(pgpring_DEPENDENCIES) - @rm -f pgpring$(EXEEXT) - $(LINK) $(pgpring_OBJECTS) $(pgpring_LDADD) $(LIBS) -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mkdtemp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/regex.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/setenv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/snprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strcasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strcasestr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strdup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strsep.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtok_r.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/wcscasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/account.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addrbook.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alias.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcache.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/browser.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/complete.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compose.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-gpgme.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-mod-pgp-classic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-mod-pgp-gpgme.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-mod-smime-classic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-mod-smime-gpgme.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt-mod.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cryptglue.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curs_lib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curs_main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/date.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dotlock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editmsg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extlib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flags.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/from.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdomain.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnupgparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handler.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hcache.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hdrline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/headers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/history.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hook.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keymap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbox.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbyte.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mh.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_dotlock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_idna.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_md5-md5.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_sasl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_socket.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_ssl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_ssl_gnutls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_tunnel.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muttlib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patchlist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pattern.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgpewrap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgpinvoke.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgpkey.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgplib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgpmicalg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgppacket.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pgppubring.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop_auth.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop_lib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postpone.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvattach.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvcmd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remailer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resize.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc1524.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc2047.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc2231.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc3676.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc822.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe_asprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/score.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sort.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -mutt_md5-md5.o: md5.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mutt_md5_CFLAGS) $(CFLAGS) -MT mutt_md5-md5.o -MD -MP -MF $(DEPDIR)/mutt_md5-md5.Tpo -c -o mutt_md5-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mutt_md5-md5.Tpo $(DEPDIR)/mutt_md5-md5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='mutt_md5-md5.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mutt_md5_CFLAGS) $(CFLAGS) -c -o mutt_md5-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c - -mutt_md5-md5.obj: md5.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mutt_md5_CFLAGS) $(CFLAGS) -MT mutt_md5-md5.obj -MD -MP -MF $(DEPDIR)/mutt_md5-md5.Tpo -c -o mutt_md5-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mutt_md5-md5.Tpo $(DEPDIR)/mutt_md5-md5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='mutt_md5-md5.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mutt_md5_CFLAGS) $(CFLAGS) -c -o mutt_md5-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(PROGRAMS) $(SCRIPTS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -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-binPROGRAMS clean-generic clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile 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-data-local - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-binPROGRAMS install-binSCRIPTS - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-exec-hook -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ - uninstall-local - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ - ctags-recursive install install-am install-exec-am \ - install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-binPROGRAMS \ - clean-generic clean-noinstPROGRAMS ctags ctags-recursive dist \ - dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-compile \ - distclean-generic distclean-hdr distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-binPROGRAMS \ - install-binSCRIPTS install-data install-data-am \ - install-data-local install-dvi install-dvi-am install-exec \ - install-exec-am install-exec-hook install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-local - - -mutt_dotlock.c: dotlock.c - cp $(srcdir)/dotlock.c mutt_dotlock.c - -flea: muttbug.sh - cp muttbug.sh flea - chmod +x flea - -smime_keys: $(srcdir)/smime_keys.pl - cp $(srcdir)/smime_keys.pl smime_keys - chmod +x smime_keys - -keymap_defs.h: $(OPS) $(srcdir)/gen_defs - $(srcdir)/gen_defs $(OPS) > keymap_defs.h - -keymap_alldefs.h: $(srcdir)/OPS $(srcdir)/OPS.PGP $(srcdir)/OPS.MIX $(srcdir)/OPS.CRYPT $(srcdir)/OPS.SMIME $(srcdir)/gen_defs - rm -f $@ - $(srcdir)/gen_defs $(srcdir)/OPS $(srcdir)/OPS.PGP \ - $(srcdir)/OPS.MIX $(srcdir)/OPS.CRYPT $(srcdir)/OPS.SMIME \ - > keymap_alldefs.h - -reldate.h: $(srcdir)/ChangeLog - echo 'const char *ReleaseDate = "'`head -n 1 $(srcdir)/ChangeLog | LC_ALL=C cut -d ' ' -f 1`'";' > reldate.h.tmp; \ - cmp -s reldate.h.tmp reldate.h || cp reldate.h.tmp reldate.h; \ - rm reldate.h.tmp - -hcversion.h: $(srcdir)/mutt.h $(srcdir)/rfc822.h hcachever.sh $(MUTT_MD5) - ( echo '#include "config.h"'; echo '#include "mutt.h"'; ) \ - | $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - | sh ./hcachever.sh hcversion.h - -patchlist.c: $(srcdir)/PATCHES $(srcdir)/patchlist.sh - $(srcdir)/patchlist.sh < $(srcdir)/PATCHES > patchlist.c - -install-exec-hook: - if test -f $(DESTDIR)$(bindir)/mutt.dotlock && test -f $(DESTDIR)$(bindir)/mutt_dotlock ; then \ - rm -f $(DESTDIR)$(bindir)/mutt.dotlock ; \ - ln -sf $(DESTDIR)$(bindir)/mutt_dotlock $(DESTDIR)$(bindir)/mutt.dotlock ; \ - fi - if test -f $(DESTDIR)$(bindir)/mutt_dotlock && test x@DOTLOCK_GROUP@ != x ; then \ - chgrp @DOTLOCK_GROUP@ $(DESTDIR)$(bindir)/mutt_dotlock && \ - chmod @DOTLOCK_PERMISSION@ $(DESTDIR)$(bindir)/mutt_dotlock || \ - { echo "Can't fix mutt_dotlock's permissions!" >&2 ; exit 1 ; } \ - fi - -install-data-local: - $(srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir)/mime.types.dist - -if [ ! -f $(DESTDIR)$(sysconfdir)/mime.types ]; then \ - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir); \ - fi - -uninstall-local: - for i in mime.types ; do \ - if cmp -s $(DESTDIR)$(sysconfdir)/$$i.dist $(DESTDIR)$(sysconfdir)/$$i ; then \ - rm $(DESTDIR)$(sysconfdir)/$$i ; \ - fi ; \ - rm $(DESTDIR)$(sysconfdir)/$${i}.dist ; \ - done - -pclean: - cat /dev/null > $(top_srcdir)/PATCHES - -check-security: - (cd $(top_srcdir) && ./check_sec.sh) - -commit: - @echo "make commit is obsolete; use hg-commit"; false - -update-changelog: - (cd $(top_srcdir); \ - sh ./mkchangelog.sh | cat - ChangeLog > ChangeLog.$$$$ && mv ChangeLog.$$$$ ChangeLog; \ - $${VISUAL:-vi} ChangeLog) - -mutt-dist: - (cd $(srcdir) && ./build-release ) - -update-doc: - (cd doc && $(MAKE) update-doc) - -.PHONY: commit pclean check-security - -# 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/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index 7433b6c..0000000 --- a/aclocal.m4 +++ /dev/null @@ -1,1111 +0,0 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, -[m4_warning([this file was generated for autoconf 2.65. -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'.])]) - -# longlong.m4 serial 13 -dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert. - -# Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'long long int' exists but is only 32 bits large -# (as on some very old compilers), HAVE_LONG_LONG_INT will not be -# defined. In this case you can treat 'long long int' like 'long int'. - -AC_DEFUN([AC_TYPE_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. - dnl If cross compiling, assume the bug isn't important, since - dnl nobody cross compiles for this platform as far as we know. - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[@%:@include - @%:@ifndef LLONG_MAX - @%:@ define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - @%:@ define LLONG_MAX (HALF - 1 + HALF) - @%:@endif]], - [[long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0;]])], - [ac_cv_type_long_long_int=yes], - [ac_cv_type_long_long_int=no], - [ac_cv_type_long_long_int=yes])], - [ac_cv_type_long_long_int=no])]) - if test $ac_cv_type_long_long_int = yes; then - AC_DEFINE([HAVE_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `long long int'.]) - fi -]) - -# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'unsigned long long int' exists but is only 32 bits -# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT -# will not be defined. In this case you can treat 'unsigned long long int' -# like 'unsigned long int'. - -AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for unsigned long long int], - [ac_cv_type_unsigned_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [ac_cv_type_unsigned_long_long_int=yes], - [ac_cv_type_unsigned_long_long_int=no])]) - if test $ac_cv_type_unsigned_long_long_int = yes; then - AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `unsigned long long int'.]) - fi -]) - -# Expands to a C program that can be used to test for simultaneous support -# of 'long long' and 'unsigned long long'. We don't want to say that -# 'long long' is available if 'unsigned long long' is not, or vice versa, -# because too many programs rely on the symmetry between signed and unsigned -# integer types (excluding 'bool'). -AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], -[ - AC_LANG_PROGRAM( - [[/* Test preprocessor. */ - #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - error in preprocessor; - #endif - #if ! (18446744073709551615ULL <= -1ull) - error in preprocessor; - #endif - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63;]], - [[/* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull));]]) -]) - -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 9 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 10 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 5 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 16 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) - -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 6 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 - -AC_DEFUN([AM_C_PROTOTYPES], -[AC_REQUIRE([AC_C_PROTOTYPES]) -if test "$ac_cv_prog_cc_stdc" != no; then - U= ANSI2KNR= -else - U=_ ANSI2KNR=./ansi2knr -fi -# Ensure some checks needed by ansi2knr itself. -AC_REQUIRE([AC_HEADER_STDC]) -AC_CHECK_HEADERS([string.h]) -AC_SUBST([U])dnl -AC_SUBST([ANSI2KNR])dnl -_AM_SUBST_NOTMAKE([ANSI2KNR])dnl -]) - -AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/codeset.m4]) -m4_include([m4/curslib.m4]) -m4_include([m4/funcdecl.m4]) -m4_include([m4/funcs.m4]) -m4_include([m4/gettext.m4]) -m4_include([m4/glibc21.m4]) -m4_include([m4/gpgme.m4]) -m4_include([m4/gssapi.m4]) -m4_include([m4/iconv.m4]) -m4_include([m4/lcmessage.m4]) -m4_include([m4/progtest.m4]) -m4_include([m4/types.m4]) diff --git a/config.h.in b/config.h.in deleted file mode 100644 index a63dc8d..0000000 --- a/config.h.in +++ /dev/null @@ -1,731 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define if you want classic PGP support. */ -#undef CRYPT_BACKEND_CLASSIC_PGP - -/* Define if you want clasic S/MIME support. */ -#undef CRYPT_BACKEND_CLASSIC_SMIME - -/* Define if you use GPGME to support OpenPGP */ -#undef CRYPT_BACKEND_GPGME - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Define to enable debugging info. */ -#undef DEBUG - -/* Define if you want to use an external dotlocking program. */ -#undef DL_STANDALONE - -/* Define your domain name. */ -#undef DOMAIN - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -#undef ENABLE_NLS - -/* Enable exact regeneration of email addresses as parsed? NOTE: this requires - significant more memory when defined. */ -#undef EXACT_ADDRESS - -/* program to use for shell commands */ -#undef EXECSHELL - -/* Define to 1 if you have `alloca', as a function or macro. */ -#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_ARGZ_H - -/* Define to 1 if you have the `bind_textdomain_codeset' function. */ -#undef HAVE_BIND_TEXTDOMAIN_CODESET - -/* Define if you have bkgdset, as a function or macro. */ -#undef HAVE_BKGDSET - -/* Define if you have the C99 integer types */ -#undef HAVE_C99_INTTYPES - -/* Define if your curses library supports color. */ -#undef HAVE_COLOR - -/* Define if you have curs_set, as a function or macro. */ -#undef HAVE_CURS_SET - -/* Berkeley DB4 Support */ -#undef HAVE_DB4 - -/* Define to 1 if you have the `dcgettext' function. */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the declaration of - `GNUTLS_VERIFY_DISABLE_TIME_CHECKS', and to 0 if you don't. */ -#undef HAVE_DECL_GNUTLS_VERIFY_DISABLE_TIME_CHECKS - -/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you - don't. */ -#undef HAVE_DECL_SYS_SIGLIST - -/* Define to 1 if your system has the dirent::d_ino member */ -#undef HAVE_DIRENT_D_INO - -/* Define to 1 if you have the `fchdir' function. */ -#undef HAVE_FCHDIR - -/* Define to 1 if you have the `feof_unlocked' function. */ -#undef HAVE_FEOF_UNLOCKED - -/* Define to 1 if you have the `fgetpos' function. */ -#undef HAVE_FGETPOS - -/* Define to 1 if you have the `fgets_unlocked' function. */ -#undef HAVE_FGETS_UNLOCKED - -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -#undef HAVE_FSEEKO - -/* Define to 1 if you have the `ftruncate' function. */ -#undef HAVE_FTRUNCATE - -/* GDBM Support */ -#undef HAVE_GDBM - -/* Define to 1 if you have the `getaddrinfo' function. */ -#undef HAVE_GETADDRINFO - -/* Define to 1 if you have the `getcwd' function. */ -#undef HAVE_GETCWD - -/* Define to 1 if you have the `getegid' function. */ -#undef HAVE_GETEGID - -/* Define to 1 if you have the `geteuid' function. */ -#undef HAVE_GETEUID - -/* Define to 1 if you have the `getgid' function. */ -#undef HAVE_GETGID - -/* Define to 1 if you have the header file. */ -#undef HAVE_GETOPT_H - -/* Define to 1 if you have the `getpagesize' function. */ -#undef HAVE_GETPAGESIZE - -/* Define to 1 if you have the `getsid' function. */ -#undef HAVE_GETSID - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define to 1 if you have the `getuid' function. */ -#undef HAVE_GETUID - -/* Define if GPGME supports PKA */ -#undef HAVE_GPGME_PKA_TRUST - -/* Define if your GSSAPI implementation is Heimdal */ -#undef HAVE_HEIMDAL - -/* Define if you have the iconv() function. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the header file. */ -#undef HAVE_ICONV_H - -/* Define if defines iconv_t. */ -#undef HAVE_ICONV_T_DEF - -/* Define to 1 if you have the `idna_to_ascii_8z' function. */ -#undef HAVE_IDNA_TO_ASCII_8Z - -/* Define to 1 if you have the `idna_to_ascii_from_locale' function. */ -#undef HAVE_IDNA_TO_ASCII_FROM_LOCALE - -/* Define to 1 if you have the `idna_to_ascii_from_utf8' function. */ -#undef HAVE_IDNA_TO_ASCII_FROM_UTF8 - -/* Define to 1 if you have the `idna_to_ascii_lz' function. */ -#undef HAVE_IDNA_TO_ASCII_LZ - -/* Define to 1 if you have the `idna_to_unicode_8z8z' function. */ -#undef HAVE_IDNA_TO_UNICODE_8Z8Z - -/* Define to 1 if you have the `idna_to_unicode_utf8_from_utf8' function. */ -#undef HAVE_IDNA_TO_UNICODE_UTF8_FROM_UTF8 - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_IOCTL_H - -/* 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 `iswdigit' function. */ -#undef HAVE_ISWDIGIT - -/* Define to 1 if you have the `iswgraph' function. */ -#undef HAVE_ISWGRAPH - -/* Define to 1 if you have the `iswlower' function. */ -#undef HAVE_ISWLOWER - -/* Define to 1 if you have the `iswprint' function. */ -#undef HAVE_ISWPRINT - -/* Define to 1 if you have the `iswpunct' function. */ -#undef HAVE_ISWPUNCT - -/* Define to 1 if you have the `iswspace' function. */ -#undef HAVE_ISWSPACE - -/* Define to 1 if you have the `iswupper' function. */ -#undef HAVE_ISWUPPER - -/* Define to 1 if you have the `iswxdigit' function. */ -#undef HAVE_ISWXDIGIT - -/* Define if you have and nl_langinfo(CODESET). */ -#undef HAVE_LANGINFO_CODESET - -/* Define if you have and nl_langinfo(YESEXPR). */ -#undef HAVE_LANGINFO_YESEXPR - -/* Define if your file defines LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES - -/* Define to 1 if you have the `idn' library */ -#undef HAVE_LIBIDN - -/* Define to 1 if you have the `intl' library (-lintl). */ -#undef HAVE_LIBINTL - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define to 1 if you have the `socket' library (-lsocket). */ -#undef HAVE_LIBSOCKET - -/* Define to 1 if you have the `ssl' library (-lssl). */ -#undef HAVE_LIBSSL - -/* Define to 1 if you have the `termlib' library (-ltermlib). */ -#undef HAVE_LIBTERMLIB - -/* Define to 1 if you have the `x' library (-lx). */ -#undef HAVE_LIBX - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_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 header file. */ -#undef HAVE_MALLOC_H - -/* Define to 1 if you have the `memmove' function. */ -#undef HAVE_MEMMOVE - -/* 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 if you have meta, as a function or macro. */ -#undef HAVE_META - -/* Define to 1 if you have the `mkdtemp' function. */ -#undef HAVE_MKDTEMP - -/* Define to 1 if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define to 1 if you have the `munmap' function. */ -#undef HAVE_MUNMAP - -/* Define to 1 if you have the header file. */ -#undef HAVE_NCURSESW_NCURSES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NCURSES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NCURSES_NCURSES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NL_TYPES_H - -/* Define to 1 if you have the `putenv' function. */ -#undef HAVE_PUTENV - -/* QDBM Support */ -#undef HAVE_QDBM - -/* Define to 1 if you have the `RAND_egd' function. */ -#undef HAVE_RAND_EGD - -/* Define to 1 if you have the `RAND_status' function. */ -#undef HAVE_RAND_STATUS - -/* Define to 1 if you have the `regcomp' function. */ -#undef HAVE_REGCOMP - -/* Define if you have resizeterm, as a function or macro. */ -#undef HAVE_RESIZETERM - -/* Define to 1 if you have the `setegid' function. */ -#undef HAVE_SETEGID - -/* Define to 1 if you have the `setenv' function. */ -#undef HAVE_SETENV - -/* Define to 1 if you have the `setlocale' function. */ -#undef HAVE_SETLOCALE - -/* Define to 1 if you have the `setrlimit' function. */ -#undef HAVE_SETRLIMIT - -/* Define to 1 if you have a C99 compliant snprintf function. */ -#undef HAVE_SNPRINTF - -/* Define to 1 if you have the `srand48' function. */ -#undef HAVE_SRAND48 - -/* Define if you have start_color, as a function or macro. */ -#undef HAVE_START_COLOR - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDARG_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `stpcpy' function. */ -#undef HAVE_STPCPY - -/* 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 `strchr' function. */ -#undef HAVE_STRCHR - -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - -/* Define to 1 if you have the `strerror' function. */ -#undef HAVE_STRERROR - -/* Define to 1 if you have the `strftime' function. */ -#undef HAVE_STRFTIME - -/* 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 `strsep' function. */ -#undef HAVE_STRSEP - -/* Define to 1 if you have the `strtok_r' function. */ -#undef HAVE_STRTOK_R - -/* Define to 1 if you have the `strtoul' function. */ -#undef HAVE_STRTOUL - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYSEXITS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_IOCTL_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_RESOURCE_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SELECT_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 - -/* Tokyo Cabinet Support */ -#undef HAVE_TC - -/* Define to 1 if you have the `towlower' function. */ -#undef HAVE_TOWLOWER - -/* Define to 1 if you have the `towupper' function. */ -#undef HAVE_TOWUPPER - -/* Define to 1 if you have the `tsearch' function. */ -#undef HAVE_TSEARCH - -/* Define if you have typeahead, as a function or macro. */ -#undef HAVE_TYPEAHEAD - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNIX_H - -/* Define if you have use_default_colors, as a function or macro. */ -#undef HAVE_USE_DEFAULT_COLORS - -/* Define to 1 if you have the header file. */ -#undef HAVE_VILLA_H - -/* Define to 1 if you have a C99 compliant vsnprintf function. */ -#undef HAVE_VSNPRINTF - -/* Define to 1 if you have the header file. */ -#undef HAVE_WCHAR_H - -/* Define to 1 if you have the `wcscasecmp' function. */ -#undef HAVE_WCSCASECMP - -/* Define to 1 if you have the header file. */ -#undef HAVE_WCTYPE_H - -/* Define if you are using the system's wchar_t functions. */ -#undef HAVE_WC_FUNCS - -/* Define to 1 if you have the `__argz_count' function. */ -#undef HAVE___ARGZ_COUNT - -/* Define to 1 if you have the `__argz_next' function. */ -#undef HAVE___ARGZ_NEXT - -/* Define to 1 if you have the `__argz_stringify' function. */ -#undef HAVE___ARGZ_STRINGIFY - -/* Is mail spooled to the user's home directory? If defined, MAILPATH should - be set to the filename of the spool mailbox relative the the home - directory. use: configure --with-homespool=FILE */ -#undef HOMESPOOL - -/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST - -/* Define as 1 if iconv() only converts exactly and we should treat all return - values other than (size_t)(-1) as equivalent. */ -#undef ICONV_NONTRANS - -/* Where to find ispell on your system. */ -#undef ISPELL - -/* Define if the result of isprint() is unreliable. */ -#undef LOCALES_HACK - -/* Where new mail is spooled. */ -#undef MAILPATH - -/* Define if you want complete documentation. */ -#undef MAKEDOC_FULL - -/* Where to find mixmaster on your system. */ -#undef MIXMASTER - -/* Define if you have problems with mutt not detecting new/old mailboxes over - NFS. Some NFS implementations incorrectly cache the attributes of small - files. */ -#undef NFS_ATTRIBUTE_HACK - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if the C compiler supports function prototypes. */ -#undef PROTOTYPES - -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE - -/* Where to find sendmail on your system. */ -#undef SENDMAIL - -/* Some systems declare sig_atomic_t as volatile, some others -- no. This - define will have value `sig_atomic_t' or `volatile sig_atomic_t' - accordingly. */ -#undef SIG_ATOMIC_VOLATILE_T - -/* The size of `int', as computed by sizeof. */ -#undef SIZEOF_INT - -/* The size of `long', as computed by sizeof. */ -#undef SIZEOF_LONG - -/* The size of `long long', as computed by sizeof. */ -#undef SIZEOF_LONG_LONG - -/* The size of `off_t', as computed by sizeof. */ -#undef SIZEOF_OFF_T - -/* The size of `short', as computed by sizeof. */ -#undef SIZEOF_SHORT - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to enable Sun mailtool attachments support. */ -#undef SUN_ATTACHMENT - -/* Define to use dotlocking for mailboxes. */ -#undef USE_DOTLOCK - -/* Define to use fcntl() to lock folders. */ -#undef USE_FCNTL - -/* Define to use flock() to lock mailboxes. */ -#undef USE_FLOCK - -/* Define if you want to use the included regex.c. */ -#undef USE_GNU_REGEX - -/* Define if you have GSSAPI libraries available */ -#undef USE_GSS - -/* Enable header caching */ -#undef USE_HCACHE - -/* Define if you want support for the IMAP protocol. */ -#undef USE_IMAP - -/* Define if you want support for the POP3 protocol. */ -#undef USE_POP - -/* Define if want to use the SASL library for POP/IMAP authentication. */ -#undef USE_SASL - -/* Define if mutt should run setgid "mail". */ -#undef USE_SETGID - -/* Define if you compile with SLang instead of curses/ncurses. */ -#undef USE_SLANG_CURSES - -/* Include internal SMTP relay support */ -#undef USE_SMTP - -/* Include code for socket support. Set automatically if you enable POP3 or - IMAP */ -#undef USE_SOCKET - -/* Define if you want support for SSL. */ -#undef USE_SSL - -/* Define if you want support for SSL via GNUTLS. */ -#undef USE_SSL_GNUTLS - -/* Define if you want support for SSL via OpenSSL. */ -#undef USE_SSL_OPENSSL - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - -/* Version number of package */ -#undef VERSION - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif - -#ifndef HAVE_C99_INTTYPES -# if SIZEOF_SHORT == 4 -typedef unsigned short uint32_t; -# elif SIZEOF_INT == 4 -typedef unsigned int uint32_t; -# elif SIZEOF_LONG == 4 -typedef unsigned long uint32_t; -# endif -# if SIZEOF_INT == 8 -typedef unsigned int uint64_t; -# elif SIZEOF_LONG == 8 -typedef unsigned long uint64_t; -# elif SIZEOF_LONG_LONG == 8 -typedef unsigned long long uint64_t; -# endif -#endif - - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ -#undef _LARGEFILE_SOURCE - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES - -/* Define to 1 if on MINIX. */ -#undef _MINIX - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -#undef _POSIX_SOURCE - -/* Define like PROTOTYPES; this can be used by system headers. */ -#undef __PROTOTYPES - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* 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 'int' if system headers don't define. */ -#undef mbstate_t - -/* Define to `long int' if does not define. */ -#undef off_t - -/* Define to `int' if does not define. */ -#undef pid_t - -/* Define to `int' if does not define. */ -#undef sig_atomic_t - -/* Define to `unsigned int' if does not define. */ -#undef size_t - -/* Define to 'int' if doesn't have it. */ -#undef socklen_t - -/* Define to `int' if does not define. */ -#undef ssize_t - -/* define if va_copy is not available */ -#undef va_copy - -/* Define to 'int' if system headers don't define. */ -#undef wchar_t - -/* Define to 'int' if system headers don't define. */ -#undef wint_t - -/* fseeko portability defines */ -#ifdef HAVE_FSEEKO -# define LOFF_T off_t -# if HAVE_C99_INTTYPES && HAVE_INTTYPES_H -# if SIZEOF_OFF_T == 8 -# define OFF_T_FMT "%" PRId64 -# else -# define OFF_T_FMT "%" PRId32 -# endif -# else -# if (SIZEOF_OFF_T == 8) && (SIZEOF_LONG == 4) -# define OFF_T_FMT "%lld" -# else -# define OFF_T_FMT "%ld" -# endif -# endif -#else -# define LOFF_T long -# define fseeko fseek -# define ftello ftell -# define OFF_T_FMT "%ld" -#endif - diff --git a/configure b/configure deleted file mode 100755 index ff117a1..0000000 --- a/configure +++ /dev/null @@ -1,13729 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65. -# -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error 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=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, 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= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= -PACKAGE_URL= - -ac_unique_file="mutt.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_list= -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -DSLROOT -OSPCAT -INTL_LIBTOOL_SUFFIX_PREFIX -MKINSTALLDIRS -GENCAT -INSTOBJEXT -DATADIRNAME -POSUB -POFILES -INTLOBJS -INTLLIBS -GMOFILES -CATOBJEXT -CATALOGS -USE_INCLUDED_LIBINTL -BUILD_INCLUDED_LIBINTL -INTLBISON -XGETTEXT -GMSGFMT -MSGFMT -USE_NLS -LIBICONV -GLIBC21 -ALLOCA -LIBIMAPDEPS -LIBIMAP -MUTT_LIB_OBJECTS -MUTTLIBS -MUTT_MD5 -BUILD_HCACHE_FALSE -BUILD_HCACHE_TRUE -USE_SASL_FALSE -USE_SASL_TRUE -USE_SSL_FALSE -USE_SSL_TRUE -USE_GSS_FALSE -USE_GSS_TRUE -KRB5CFGPATH -BUILD_IMAP_FALSE -BUILD_IMAP_TRUE -DOTLOCK_PERMISSION -DOTLOCK_GROUP -DOTLOCK_TARGET -LIBOBJS -ISPELL -SMIMEAUX_TARGET -PGPAUX_TARGET -OPS -GPGME_LIBS -GPGME_CFLAGS -GPGME_CONFIG -SENDMAIL -DEBUGGER -SDB -GDB -DBX -AR -RANLIB -ANSI2KNR -U -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -CONFIG_STATUS_DEPENDENCIES -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_dependency_tracking -enable_largefile -enable_gpgme -with_gpgme_prefix -enable_pgp -enable_smime -with_mixmaster -with_slang -with_curses -with_regex -with_homespool -with_mailpath -enable_external_dotlock -with_docdir -with_domain -enable_pop -enable_imap -enable_smtp -with_gss -with_ssl -with_gnutls -with_sasl -enable_debug -enable_flock -enable_fcntl -enable_warnings -enable_nfs_fix -enable_mailtool -enable_locales_fix -with_exec_shell -enable_exact_address -enable_hcache -with_tokyocabinet -with_qdbm -with_gdbm -with_bdb -enable_iconv -with_libiconv_prefix -enable_nls -with_included_gettext -with_idn -with_wc_funcs -enable_full_doc -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -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 - - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-largefile omit support for large files - --enable-gpgme Enable GPGME support - --disable-pgp Disable PGP support - --disable-smime Disable SMIME support - --enable-external-dotlock - Force use of an external dotlock program - --enable-pop Enable POP3 support - --enable-imap Enable IMAP support - --enable-smtp include internal SMTP relay support - --enable-debug Enable debugging support - --enable-flock Use flock() to lock files - --disable-fcntl Do NOT use fcntl() to lock files - --disable-warnings Turn off compiler warnings (not recommended) - --enable-nfs-fix Work around an NFS with broken attributes caching - --enable-mailtool Enable Sun mailtool attachments support - --enable-locales-fix The result of isprint() is unreliable - --enable-exact-address Enable regeneration of email addresses - --enable-hcache Enable header caching - --disable-iconv Disable iconv support - --disable-nls Do not use Native Language Support - --disable-full-doc Omit disabled variables - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gpgme-prefix=PFX prefix where GPGME is installed (optional) - --with-mixmaster[=PATH] Include Mixmaster support - --with-slang[=DIR] Use S-Lang instead of ncurses - --with-curses=DIR Where ncurses is installed - --with-regex Use the GNU regex library - --with-homespool[=FILE] File in user's directory where new mail is spooled - --with-mailpath=DIR Directory where spool mailboxes are located - --with-docdir=PATH Specify where to put the documentation - --with-domain=DOMAIN Specify your DNS domain name - --with-gss[=PFX] Compile in GSSAPI authentication for IMAP - --with-ssl[=PFX] Enable TLS support using OpenSSL - --with-gnutls[=PFX] enable TLS support using gnutls - --with-sasl[=PFX] Use SASL network security library - --with-exec-shell=SHELL Specify alternate shell (ONLY if /bin/sh is broken) - --without-tokyocabinet Don't use tokyocabinet even if it is available - --without-qdbm Don't use qdbm even if it is available - --without-gdbm Don't use gdbm even if it is available - --with-bdb[=DIR] Use BerkeleyDB4 if gdbm is not available - --with-libiconv-prefix[=DIR] - Search for libiconv in DIR/include and DIR/lib - --with-included-gettext Use the GNU gettext library included here - --with-idn=[PFX] Use GNU libidn for domain names - --without-wc-funcs Do not use the system's wchar_t functions - -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 - -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 the package provider. -_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 -configure -generated by GNU Autoconf 2.65 - -Copyright (C) 2009 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_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; } >/dev/null && { - 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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.$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;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_mongrel - -# 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# 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 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 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 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 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 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... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_type - -# 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_func - -# ac_fn_c_check_decl LINENO SYMBOL VAR -# ------------------------------------ -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 -$as_echo_n "checking whether $2 is declared... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $2 - (void) $2; -#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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_decl -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.65. 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 - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $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 - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $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 - ac_site_file1=$CONFIG_SITE -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" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_header_list " sys/param.h" -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -ac_config_headers="$ac_config_headers config.h" - - -mutt_cv_version=`cat $srcdir/VERSION` -am__api_version='1.11' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done -done -if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE=mutt - VERSION=$mutt_cv_version - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - -CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/VERSION' - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "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 test "${ac_cv_objext+set}" = set; 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 test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -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 test "${ac_cv_prog_CPP+set}" = set; 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.$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.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $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.$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.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $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 test "${ac_cv_path_GREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; 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 -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "#define _MINIX 1" >>confdefs.h - - fi - - - { $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 test "${ac_cv_safe_to_define___extensions__+set}" = set; 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; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - - - -ALL_LINGUAS="de eu ru it es uk fr pl nl cs id sk ko el zh_TW zh_CN pt_BR eo gl sv da lt tr ja hu et ca bg ga" - -# 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 test "${ac_cv_build+set}" = set; 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 test "${ac_cv_host+set}" = set; 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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prefix" >&5 -$as_echo_n "checking for prefix... " >&6; } -if test x$prefix = xNONE; then - mutt_cv_prefix=$ac_default_prefix -else - mutt_cv_prefix=$prefix -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_prefix" >&5 -$as_echo "$mutt_cv_prefix" >&6; } - -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 test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 -$as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; 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 test "${ac_cv_search_strerror+set}" = set; then : - break -fi -done -if test "${ac_cv_search_strerror+set}" = set; then : - -else - ac_cv_search_strerror=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5 -$as_echo_n "checking for function prototypes... " >&6; } -if test "$ac_cv_prog_cc_c89" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define PROTOTYPES 1" >>confdefs.h - - -$as_echo "#define __PROTOTYPES 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test "$ac_cv_prog_cc_stdc" != no; then - U= ANSI2KNR= -else - U=_ ANSI2KNR=./ansi2knr -fi -# Ensure some checks needed by ansi2knr itself. - -for ac_header in string.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" -if test "x$ac_cv_header_string_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STRING_H 1 -_ACEOF - -fi - -done - - -if test "x$U" != "x"; then - as_fn_error "Compiler not ANSI compliant" "$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 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 test "${ac_cv_prog_CPP+set}" = set; 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.$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.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $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.$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.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $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 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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; 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 - - -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 test "${ac_cv_prog_RANLIB+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_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 - -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 test "${ac_cv_prog_AR+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_AR+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; 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 - - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - 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 << 62) - 1 + ((off_t) 1 << 62)) - 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 : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test "${ac_cv_sys_file_offset_bits+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - 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 << 62) - 1 + ((off_t) 1 << 62)) - 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_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#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 << 62) - 1 + ((off_t) 1 << 62)) - 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_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if test "${ac_cv_sys_large_files+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - 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 << 62) - 1 + ((off_t) 1 << 62)) - 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_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#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 << 62) - 1 + ((off_t) 1 << 62)) - 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_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_source+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include /* for off_t */ - #include -int -main () -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_sys_largefile_source=no; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 -#include /* for off_t */ - #include -int -main () -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_sys_largefile_source=1; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_cv_sys_largefile_source=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 -$as_echo "$ac_cv_sys_largefile_source" >&6; } -case $ac_cv_sys_largefile_source in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source -_ACEOF -;; -esac -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then - -$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h - -fi - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (off_t) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_off_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_ACEOF - - - -# Extract the first word of "dbx", so it can be a program name with args. -set dummy dbx; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_DBX+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $DBX in - [\\/]* | ?:[\\/]*) - ac_cv_path_DBX="$DBX" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_DBX="$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_DBX" && ac_cv_path_DBX="no" - ;; -esac -fi -DBX=$ac_cv_path_DBX -if test -n "$DBX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBX" >&5 -$as_echo "$DBX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "gdb", so it can be a program name with args. -set dummy gdb; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GDB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GDB in - [\\/]* | ?:[\\/]*) - ac_cv_path_GDB="$GDB" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GDB="$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_GDB" && ac_cv_path_GDB="no" - ;; -esac -fi -GDB=$ac_cv_path_GDB -if test -n "$GDB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDB" >&5 -$as_echo "$GDB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "sdb", so it can be a program name with args. -set dummy sdb; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_SDB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $SDB in - [\\/]* | ?:[\\/]*) - ac_cv_path_SDB="$SDB" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_SDB="$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_SDB" && ac_cv_path_SDB="no" - ;; -esac -fi -SDB=$ac_cv_path_SDB -if test -n "$SDB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDB" >&5 -$as_echo "$SDB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -if test $GDB != no ; then - DEBUGGER=$GDB -elif test $DBX != no ; then - DEBUGGER=$DBX -elif test $SDB != no ; then - DEBUGGER=$SDB -else - DEBUGGER=no -fi - - - - - - - - - - - - - - - -for ac_header in inttypes.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INTTYPES_H 1 -_ACEOF - -fi - -done - -ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" -if test "x$ac_cv_type_uint32_t" = x""yes; then : - -$as_echo "#define HAVE_C99_INTTYPES 1" >>confdefs.h - -fi - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if test "${ac_cv_sizeof_short+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (short) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (int) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long long) -See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 -$as_echo_n "checking for long long int... " >&6; } -if test "${ac_cv_type_long_long_int+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - /* Test preprocessor. */ - #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - error in preprocessor; - #endif - #if ! (18446744073709551615ULL <= -1ull) - error in preprocessor; - #endif - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63; -int -main () -{ -/* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if test "$cross_compiling" = yes; then : - ac_cv_type_long_long_int=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifndef LLONG_MAX - # define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - # define LLONG_MAX (HALF - 1 + HALF) - #endif -int -main () -{ -long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_type_long_long_int=yes -else - ac_cv_type_long_long_int=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 - ac_cv_type_long_long_int=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_type_long_long_int" >&5 -$as_echo "$ac_cv_type_long_long_int" >&6; } - if test $ac_cv_type_long_long_int = yes; then - -$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h - - fi - - -ac_aux_path_sendmail=/usr/sbin:/usr/lib -# Extract the first word of "sendmail", so it can be a program name with args. -set dummy sendmail; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_SENDMAIL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $SENDMAIL in - [\\/]* | ?:[\\/]*) - ac_cv_path_SENDMAIL="$SENDMAIL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:$ac_aux_path_sendmail" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_SENDMAIL="$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_SENDMAIL" && ac_cv_path_SENDMAIL="/usr/sbin/sendmail" - ;; -esac -fi -SENDMAIL=$ac_cv_path_SENDMAIL -if test -n "$SENDMAIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 -$as_echo "$SENDMAIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -cat >>confdefs.h <<_ACEOF -#define SENDMAIL "$ac_cv_path_SENDMAIL" -_ACEOF - - -OPS='$(srcdir)/OPS' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with GPGME support" >&5 -$as_echo_n "checking whether to build with GPGME support... " >&6; } -# Check whether --enable-gpgme was given. -if test "${enable_gpgme+set}" = set; then : - enableval=$enable_gpgme; if test x$enableval = xyes; then - enable_gpgme=yes - fi - -fi - - -if test x"$enable_gpgme" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -# Check whether --with-gpgme-prefix was given. -if test "${with_gpgme_prefix+set}" = set; then : - withval=$with_gpgme_prefix; gpgme_config_prefix="$withval" -else - gpgme_config_prefix="" -fi - - if test "x$gpgme_config_prefix" != x ; then - GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config" - fi - # Extract the first word of "gpgme-config", so it can be a program name with args. -set dummy gpgme-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 test "${ac_cv_path_GPGME_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GPGME_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_GPGME_CONFIG="$GPGME_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GPGME_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 - - test -z "$ac_cv_path_GPGME_CONFIG" && ac_cv_path_GPGME_CONFIG="no" - ;; -esac -fi -GPGME_CONFIG=$ac_cv_path_GPGME_CONFIG -if test -n "$GPGME_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPGME_CONFIG" >&5 -$as_echo "$GPGME_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - if test "$GPGME_CONFIG" != "no" ; then - gpgme_version=`$GPGME_CONFIG --version` - fi - gpgme_version_major=`echo $gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'` - gpgme_version_minor=`echo $gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'` - gpgme_version_micro=`echo $gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'` - - tmp=1.0.0 - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` - min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` - else - req_gpgme_api=0 - min_gpgme_version="$tmp" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPGME - version >= $min_gpgme_version" >&5 -$as_echo_n "checking for GPGME - version >= $min_gpgme_version... " >&6; } - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi - if test $ok = yes; then - # If we have a recent GPGME, we should also check that the - # API is compatible. - if test "$req_gpgme_api" -gt 0 ; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` - if test "$tmp" -gt 0 ; then - if test "$req_gpgme_api" -ne "$tmp" ; then - ok=no - fi - fi - fi - fi - if test $ok = yes; then - GPGME_CFLAGS=`$GPGME_CONFIG --cflags` - GPGME_LIBS=`$GPGME_CONFIG --libs` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define CRYPT_BACKEND_GPGME 1" >>confdefs.h - - else - GPGME_CFLAGS="" - GPGME_LIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - gpgme_found=no - fi - - - - if test x"$gpgme_found" = xno; then - as_fn_error "*** GPGME not found ***" "$LINENO" 5 - else - tmp=1.1.1 - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` - min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` - else - req_gpgme_api=0 - min_gpgme_version="$tmp" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPGME - version >= $min_gpgme_version" >&5 -$as_echo_n "checking for GPGME - version >= $min_gpgme_version... " >&6; } - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi - if test $ok = yes; then - # If we have a recent GPGME, we should also check that the - # API is compatible. - if test "$req_gpgme_api" -gt 0 ; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` - if test "$tmp" -gt 0 ; then - if test "$req_gpgme_api" -ne "$tmp" ; then - ok=no - fi - fi - fi - fi - if test $ok = yes; then - GPGME_CFLAGS=`$GPGME_CONFIG --cflags` - GPGME_LIBS=`$GPGME_CONFIG --libs` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_GPGME_PKA_TRUST 1" >>confdefs.h - - else - GPGME_CFLAGS="" - GPGME_LIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : - fi - - - - #needed to get GPGME_LIBS and al correctly - tmp=1.0.0 - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` - min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` - else - req_gpgme_api=0 - min_gpgme_version="$tmp" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPGME - version >= $min_gpgme_version" >&5 -$as_echo_n "checking for GPGME - version >= $min_gpgme_version... " >&6; } - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi - if test $ok = yes; then - # If we have a recent GPGME, we should also check that the - # API is compatible. - if test "$req_gpgme_api" -gt 0 ; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` - if test "$tmp" -gt 0 ; then - if test "$req_gpgme_api" -ne "$tmp" ; then - ok=no - fi - fi - fi - fi - if test $ok = yes; then - GPGME_CFLAGS=`$GPGME_CONFIG --cflags` - GPGME_LIBS=`$GPGME_CONFIG --libs` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define CRYPT_BACKEND_GPGME 1" >>confdefs.h - - else - GPGME_CFLAGS="" - GPGME_LIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : - fi - - - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS crypt-gpgme.o crypt-mod-pgp-gpgme.o crypt-mod-smime-gpgme.o" - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -# Check whether --enable-pgp was given. -if test "${enable_pgp+set}" = set; then : - enableval=$enable_pgp; if test x$enableval = xno ; then - have_pgp=no - fi - -fi - - -if test x$have_pgp != xno ; then - -$as_echo "#define CRYPT_BACKEND_CLASSIC_PGP 1" >>confdefs.h - - PGPAUX_TARGET="pgpring\$(EXEEXT) pgpewrap\$(EXEEXT)" - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS pgp.o pgpinvoke.o pgpkey.o pgplib.o gnupgparse.o pgpmicalg.o pgppacket.o crypt-mod-pgp-classic.o" -fi - -# Check whether --enable-smime was given. -if test "${enable_smime+set}" = set; then : - enableval=$enable_smime; if test x$enableval = xno ; then - have_smime=no - fi - -fi - - -if test x$have_smime != xno ; then - -$as_echo "#define CRYPT_BACKEND_CLASSIC_SMIME 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS smime.o crypt-mod-smime-classic.o" - SMIMEAUX_TARGET="smime_keys" -fi - - -# Check whether --with-mixmaster was given. -if test "${with_mixmaster+set}" = set; then : - withval=$with_mixmaster; if test "$withval" != no - then - if test -x "$withval" - then - MIXMASTER="$withval" - else - MIXMASTER="mixmaster" - fi - OPS="$OPS \$(srcdir)/OPS.MIX" - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS remailer.o" - -cat >>confdefs.h <<_ACEOF -#define MIXMASTER "$MIXMASTER" -_ACEOF - - fi -fi - - -# We now require all OPS -OPS="$OPS \$(srcdir)/OPS.PGP \$(srcdir)/OPS.SMIME \$(srcdir)/OPS.CRYPT " - - - - - -# Extract the first word of "ispell", so it can be a program name with args. -set dummy ispell; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ISPELL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $ISPELL in - [\\/]* | ?:[\\/]*) - ac_cv_path_ISPELL="$ISPELL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ISPELL="$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_ISPELL" && ac_cv_path_ISPELL="no" - ;; -esac -fi -ISPELL=$ac_cv_path_ISPELL -if test -n "$ISPELL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISPELL" >&5 -$as_echo "$ISPELL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test $ISPELL != no; then - -cat >>confdefs.h <<_ACEOF -#define ISPELL "$ISPELL" -_ACEOF - -fi - - -# Check whether --with-slang was given. -if test "${with_slang+set}" = set; then : - withval=$with_slang; { $as_echo "$as_me:${as_lineno-$LINENO}: checking if this is a BSD system" >&5 -$as_echo_n "checking if this is a BSD system... " >&6; } -if test "${mutt_cv_bsdish+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_bsdish=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -main () -{ -#ifdef BSD - exit (0); -#else - exit (1); -#endif -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_bsdish=yes -else - mutt_cv_bsdish=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: $mutt_cv_bsdish" >&5 -$as_echo "$mutt_cv_bsdish" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for S-Lang" >&5 -$as_echo_n "checking for S-Lang... " >&6; } - if test $withval = yes; then - if test -d $srcdir/../slang; then - mutt_cv_slang=$srcdir/../slang/src - CPPFLAGS="$CPPFLAGS -I${mutt_cv_slang}" - LDFLAGS="$LDFLAGS -L${mutt_cv_slang}/objs" - else - if test -d $mutt_cv_prefix/include/slang; then - CPPFLAGS="$CPPFLAGS -I$mutt_cv_prefix/include/slang" - elif test -d /usr/include/slang; then - CPPFLAGS="$CPPFLAGS -I/usr/include/slang" - fi - mutt_cv_slang=yes - fi - else - if test -f $withval/src/slang.h; then - mutt_cv_slang=$withval/src - CPPFLAGS="$CPPFLAGS -I${mutt_cv_slang}" - LDFLAGS="$LDFLAGS -L${mutt_cv_slang}/objs" - else - mutt_cv_slang=$withval - if test -d $withval/include/slang; then - CPPFLAGS="$CPPFLAGS -I${withval}/include/slang" - elif test -d $withval/include; then - CPPFLAGS="$CPPFLAGS -I${withval}/include" - fi - LDFLAGS="$LDFLAGS -L${withval}/lib" - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_slang" >&5 -$as_echo "$mutt_cv_slang" >&6; } - if test $mutt_cv_bsdish = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ltermlib" >&5 -$as_echo_n "checking for main in -ltermlib... " >&6; } -if test "${ac_cv_lib_termlib_main+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermlib $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int -main () -{ -return main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termlib_main=yes -else - ac_cv_lib_termlib_main=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_termlib_main" >&5 -$as_echo "$ac_cv_lib_termlib_main" >&6; } -if test "x$ac_cv_lib_termlib_main" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTERMLIB 1 -_ACEOF - - LIBS="-ltermlib $LIBS" - -fi - - fi - -$as_echo "#define USE_SLANG_CURSES 1" >>confdefs.h - - -$as_echo "#define HAVE_COLOR 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS resize.o" - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLtt_get_terminfo in -lslang" >&5 -$as_echo_n "checking for SLtt_get_terminfo in -lslang... " >&6; } -if test "${ac_cv_lib_slang_SLtt_get_terminfo+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lslang -lm $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 SLtt_get_terminfo (); -int -main () -{ -return SLtt_get_terminfo (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_slang_SLtt_get_terminfo=yes -else - ac_cv_lib_slang_SLtt_get_terminfo=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_slang_SLtt_get_terminfo" >&5 -$as_echo "$ac_cv_lib_slang_SLtt_get_terminfo" >&6; } -if test "x$ac_cv_lib_slang_SLtt_get_terminfo" = x""yes; then : - MUTTLIBS="$MUTTLIBS -lslang -lm" -else - as_fn_error "unable to compile. check config.log" "$LINENO" 5 -fi - - - -else - mutt_cv_curses=/usr - -# Check whether --with-curses was given. -if test "${with_curses+set}" = set; then : - withval=$with_curses; if test $withval != yes; then - mutt_cv_curses=$withval - fi - if test x$mutt_cv_curses != x/usr; then - LDFLAGS="$LDFLAGS -L${mutt_cv_curses}/lib" - CPPFLAGS="$CPPFLAGS -I${mutt_cv_curses}/include" - fi -fi - - - ac_fn_c_check_func "$LINENO" "initscr" "ac_cv_func_initscr" -if test "x$ac_cv_func_initscr" = x""yes; then : - -else - - cf_ncurses="ncurses" - for lib in ncurses ncursesw - do - as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_waddnwstr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for waddnwstr in -l$lib" >&5 -$as_echo_n "checking for waddnwstr in -l$lib... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$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 waddnwstr (); -int -main () -{ -return waddnwstr (); - ; - 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; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - cf_ncurses="$lib"; break -fi - - done - as_ac_Lib=`$as_echo "ac_cv_lib_$cf_ncurses''_initscr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -l$cf_ncurses" >&5 -$as_echo_n "checking for initscr in -l$cf_ncurses... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$cf_ncurses $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 : - 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; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - MUTTLIBS="$MUTTLIBS -l$cf_ncurses" - - if test "$cf_ncurses" = ncursesw; then - for ac_header in ncursesw/ncurses.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ncursesw/ncurses.h" "ac_cv_header_ncursesw_ncurses_h" "$ac_includes_default" -if test "x$ac_cv_header_ncursesw_ncurses_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NCURSESW_NCURSES_H 1 -_ACEOF - cf_cv_ncurses_header="ncursesw/ncurses.h" -fi - -done - - else - for ac_header in ncurses/ncurses.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ncurses/ncurses.h" "ac_cv_header_ncurses_ncurses_h" "$ac_includes_default" -if test "x$ac_cv_header_ncurses_ncurses_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NCURSES_NCURSES_H 1 -_ACEOF - cf_cv_ncurses_header="ncurses/ncurses.h" -else - 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" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NCURSES_H 1 -_ACEOF - cf_cv_ncurses_header="ncurses.h" -fi - -done - -fi - -done - - fi -else - -ac_fn_c_check_func "$LINENO" "initscr" "ac_cv_func_initscr" -if test "x$ac_cv_func_initscr" = x""yes; then : - -else - -case $host_os in #(vi -freebsd*) #(vi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgoto in -lmytinfo" >&5 -$as_echo_n "checking for tgoto in -lmytinfo... " >&6; } -if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmytinfo $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 tgoto (); -int -main () -{ -return tgoto (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mytinfo_tgoto=yes -else - ac_cv_lib_mytinfo_tgoto=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_mytinfo_tgoto" >&5 -$as_echo "$ac_cv_lib_mytinfo_tgoto" >&6; } -if test "x$ac_cv_lib_mytinfo_tgoto" = x""yes; then : - LIBS="-lmytinfo $LIBS" -fi - - ;; -hpux10.*|hpux11.*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lcur_colr" >&5 -$as_echo_n "checking for initscr in -lcur_colr... " >&6; } -if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcur_colr $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_cur_colr_initscr=yes -else - ac_cv_lib_cur_colr_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_cur_colr_initscr" >&5 -$as_echo "$ac_cv_lib_cur_colr_initscr" >&6; } -if test "x$ac_cv_lib_cur_colr_initscr" = x""yes; then : - - LIBS="-lcur_colr $LIBS" - CFLAGS="-I/usr/include/curses_colr $CFLAGS" - ac_cv_func_initscr=yes - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lHcurses" >&5 -$as_echo_n "checking for initscr in -lHcurses... " >&6; } -if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lHcurses $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_Hcurses_initscr=yes -else - ac_cv_lib_Hcurses_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_Hcurses_initscr" >&5 -$as_echo "$ac_cv_lib_Hcurses_initscr" >&6; } -if test "x$ac_cv_lib_Hcurses_initscr" = x""yes; then : - - # HP's header uses __HP_CURSES, but user claims _HP_CURSES. - LIBS="-lHcurses $LIBS" - CFLAGS="-D__HP_CURSES -D_HP_CURSES $CFLAGS" - ac_cv_func_initscr=yes - -fi - -fi - - ;; -linux*) # Suse Linux does not follow /usr/lib convention - LIBS="$LIBS -L/lib" - ;; -esac - -if test ".$With5lib" != ".no" ; then -if test -d /usr/5lib ; then - # SunOS 3.x or 4.x - CPPFLAGS="$CPPFLAGS -I/usr/5include" - LIBS="$LIBS -L/usr/5lib" -fi -fi - -if test ".$ac_cv_func_initscr" != .yes ; then - cf_save_LIBS="$LIBS" - cf_term_lib="" - cf_curs_lib="" - - # Check for library containing tgoto. Do this before curses library - # because it may be needed to link the test-case for initscr. - ac_fn_c_check_func "$LINENO" "tgoto" "ac_cv_func_tgoto" -if test "x$ac_cv_func_tgoto" = x""yes; then : - cf_term_lib=predefined -else - - for cf_term_lib in termcap termlib unknown - do - as_ac_Lib=`$as_echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgoto in -l$cf_term_lib" >&5 -$as_echo_n "checking for tgoto in -l$cf_term_lib... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$cf_term_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 tgoto (); -int -main () -{ -return tgoto (); - ; - 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; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - break -fi - - done - -fi - - - # Check for library containing initscr - test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" - for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown - do - as_ac_Lib=`$as_echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -l$cf_curs_lib" >&5 -$as_echo_n "checking for initscr in -l$cf_curs_lib... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$cf_curs_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 initscr (); -int -main () -{ -return initscr (); - ; - 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; } -eval as_val=\$$as_ac_Lib - if test "x$as_val" = x""yes; then : - break -fi - - done - test $cf_curs_lib = unknown && as_fn_error "no curses library found" "$LINENO" 5 - - LIBS="-l$cf_curs_lib $cf_save_LIBS" - if test "$cf_term_lib" = unknown ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can link with $cf_curs_lib library" >&5 -$as_echo_n "checking if we can link with $cf_curs_lib library... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <${cf_cv_ncurses_header-curses.h}> -int -main () -{ -initscr() - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - cf_result=yes -else - cf_result=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_result" >&5 -$as_echo "$cf_result" >&6; } - test $cf_result = no && as_fn_error "Cannot link curses library" "$LINENO" 5 - elif test "$cf_term_lib" != predefined ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 -$as_echo_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <${cf_cv_ncurses_header-curses.h}> -int -main () -{ -initscr(); tgoto((char *)0, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - cf_result=no -else - - LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <${cf_cv_ncurses_header-curses.h}> -int -main () -{ -initscr() - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - cf_result=yes -else - cf_result=error -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_result" >&5 -$as_echo "$cf_result" >&6; } - fi -fi - - -fi - -fi - - -fi - - - old_LIBS="$LIBS" - LIBS="$LIBS $MUTTLIBS" - for ac_func in start_color typeahead bkgdset curs_set meta use_default_colors resizeterm -do - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_func declaration" >&5 -$as_echo_n "checking for $ac_func declaration... " >&6; } -if { as_var=ac_cv_func_decl_$ac_func; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <${cf_cv_ncurses_header-curses.h}> -int -main () -{ -#ifndef ${ac_func} -extern int ${ac_func}(); -#endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <${cf_cv_ncurses_header-curses.h}> -int -main () -{ -#ifndef ${ac_func} -int (*p)() = ${ac_func}; -#endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -eval "ac_cv_func_decl_$ac_func=yes" -else - -eval "ac_cv_func_decl_$ac_func=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - -eval "ac_cv_func_decl_$ac_func=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$ac_cv_func_'decl_$ac_func`\" = yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - -ac_tr_func=`echo HAVE_$ac_func | tr '[a-z]' '[A-Z]'` - - cat >>confdefs.h <<_ACEOF -#define $ac_tr_func 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -done - - if test "$ac_cv_func_decl_start_color" = yes; then - -$as_echo "#define HAVE_COLOR 1" >>confdefs.h - - fi - if test "$ac_cv_func_decl_resizeterm" = yes; then - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS resize.o" - fi - LIBS="$old_LIBS" - -fi - - -{ $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 test "${ac_cv_header_stdc+set}" = set; 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 - - -for ac_header in stdarg.h sys/ioctl.h ioctl.h sysexits.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" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -for ac_header in sys/time.h sys/resource.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" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -for ac_header in unix.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "unix.h" "ac_cv_header_unix_h" "$ac_includes_default" -if test "x$ac_cv_header_unix_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UNIX_H 1 -_ACEOF - -fi - -done - - -for ac_func in setrlimit getsid -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = 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 return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in signal.h" >&5 -$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sig_atomic_t" >/dev/null 2>&1; then : - - ac_cv_type_sig_atomic_t=yes; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "volatile.*sig_atomic_t" >/dev/null 2>&1; then : - - is_sig_atomic_t_volatile=yes; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, volatile" >&5 -$as_echo "yes, volatile" >&6; } - -else - - is_sig_atomic_t_volatile=no; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, non volatile" >&5 -$as_echo "yes, non volatile" >&6; } - -fi -rm -f conftest* - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "$ac_includes_default" -if test "x$ac_cv_type_sig_atomic_t" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define sig_atomic_t int -_ACEOF - -fi - - is_sig_atomic_t_volatile=no - -fi -rm -f conftest* - -if test $is_sig_atomic_t_volatile = 'yes' -then - $as_echo "#define SIG_ATOMIC_VOLATILE_T sig_atomic_t" >>confdefs.h - -else - $as_echo "#define SIG_ATOMIC_VOLATILE_T volatile sig_atomic_t" >>confdefs.h - -fi - -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include -/* NetBSD declares sys_siglist in unistd.h. */ -#ifdef HAVE_UNISTD_H -# include -#endif - -" -if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_SIGLIST $ac_have_decl -_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" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define ssize_t int -_ACEOF - -fi - - -for ac_func in fgetpos memmove setegid srand48 strerror -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -for ac_func in setenv strcasecmp strdup strsep strtok_r wcscasecmp -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - case " $LIBOBJS " in - *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" - ;; -esac - -fi -done - - -for ac_func in strcasestr mkdtemp -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - case " $LIBOBJS " in - *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" - ;; -esac - -fi -done - - - -ac_fn_c_check_func "$LINENO" "getopt" "ac_cv_func_getopt" -if test "x$ac_cv_func_getopt" = x""yes; then : - -fi - -if test $ac_cv_func_getopt = yes; 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" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETOPT_H 1 -_ACEOF - -fi - -done - -fi - -SNPRINTFOBJS="" -ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" -if test "x$ac_cv_func_snprintf" = x""yes; then : - mutt_cv_func_snprintf=yes -else - mutt_cv_func_snprintf=no -fi - -ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" -if test "x$ac_cv_func_vsnprintf" = x""yes; then : - mutt_cv_func_vsnprintf=yes -else - mutt_cv_func_vsnprintf=no -fi - -if test $mutt_cv_func_snprintf = yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system's snprintf is C99 compliant" >&5 -$as_echo_n "checking whether your system's snprintf is C99 compliant... " >&6; } -if test "${mutt_cv_c99_snprintf+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_c99_snprintf=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int main() -{ - char buf[8]; - int len = snprintf(buf, 4, "1234567"); - return (len != 7 || buf[3] != '\0'); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_c99_snprintf=yes -else - mutt_cv_c99_snprintf=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: $mutt_cv_c99_snprintf" >&5 -$as_echo "$mutt_cv_c99_snprintf" >&6; } -else - mutt_cv_c99_snprintf=no -fi -if test $mutt_cv_func_vsnprintf = yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system's vsnprintf is C99 compliant" >&5 -$as_echo_n "checking whether your system's vsnprintf is C99 compliant... " >&6; } -if test "${mutt_cv_c99_vsnprintf+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_c99_vsnprintf=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int foo(const char *fmt, ...) -{ - char buf[8]; - int len; - va_list ap; - va_start(ap, fmt); - len = vsnprintf(buf, 4, fmt, ap); - va_end(ap); - return (len != 7 || buf[3] != '\0'); -} - -int main() -{ - return foo("%s", "1234567"); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_c99_vsnprintf=yes -else - mutt_cv_c99_vsnprintf=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: $mutt_cv_c99_vsnprintf" >&5 -$as_echo "$mutt_cv_c99_vsnprintf" >&6; } -else - mutt_cv_c99_vsnprintf=no -fi -if test $mutt_cv_c99_snprintf = yes; then - -$as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h - -fi -if test $mutt_cv_c99_vsnprintf = yes; then - -$as_echo "#define HAVE_VSNPRINTF 1" >>confdefs.h - -fi -if test $mutt_cv_c99_snprintf = no -o $mutt_cv_c99_vsnprintf = no; then - case " $LIBOBJS " in - *" snprintf.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" - ;; -esac - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 -$as_echo_n "checking for va_copy... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -va_list ap1, ap2; va_copy(ap1, ap2); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: va_copy" >&5 -$as_echo "va_copy" >&6; } -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -va_list ap1, ap2; __va_copy(ap1, ap2); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - $as_echo "#define va_copy __va_copy" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: __va_copy" >&5 -$as_echo "__va_copy" >&6; } -else - $as_echo "#define va_copy(dest,src) memcpy(&dest,&src,sizeof(va_list))" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: memcpy" >&5 -$as_echo "memcpy" >&6; } - -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 - - -for ac_func in ftruncate -do : - ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" -if test "x$ac_cv_func_ftruncate" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FTRUNCATE 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chsize in -lx" >&5 -$as_echo_n "checking for chsize in -lx... " >&6; } -if test "${ac_cv_lib_x_chsize+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lx $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 chsize (); -int -main () -{ -return chsize (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_x_chsize=yes -else - ac_cv_lib_x_chsize=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_x_chsize" >&5 -$as_echo "$ac_cv_lib_x_chsize" >&6; } -if test "x$ac_cv_lib_x_chsize" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBX 1 -_ACEOF - - LIBS="-lx $LIBS" - -fi - -fi -done - - -for ac_func in strftime -do : - ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STRFTIME 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 -$as_echo_n "checking for strftime in -lintl... " >&6; } -if test "${ac_cv_lib_intl_strftime+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strftime (); -int -main () -{ -return strftime (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_strftime=yes -else - ac_cv_lib_intl_strftime=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 -$as_echo "$ac_cv_lib_intl_strftime" >&6; } -if test "x$ac_cv_lib_intl_strftime" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBINTL 1 -_ACEOF - - LIBS="-lintl $LIBS" - -fi - -fi -done - - -for ac_func in fchdir -do : - ac_fn_c_check_func "$LINENO" "fchdir" "ac_cv_func_fchdir" -if test "x$ac_cv_func_fchdir" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FCHDIR 1 -_ACEOF - -else - mutt_cv_fchdir=no -fi -done - - - -# Check whether --with-regex was given. -if test "${with_regex+set}" = set; then : - withval=$with_regex; mutt_cv_regex=yes -else - for ac_func in regcomp -do : - ac_fn_c_check_func "$LINENO" "regcomp" "ac_cv_func_regcomp" -if test "x$ac_cv_func_regcomp" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_REGCOMP 1 -_ACEOF - mutt_cv_regex=no -else - mutt_cv_regex=yes -fi -done - -fi - - -if test $mutt_cv_regex = no ; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system's regexp library is completely broken" >&5 -$as_echo_n "checking whether your system's regexp library is completely broken... " >&6; } -if test "${mutt_cv_regex_broken+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_regex_broken=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -main() { regex_t blah ; regmatch_t p; p.rm_eo = p.rm_eo; return regcomp(&blah, "foo.*bar", REG_NOSUB) || regexec (&blah, "foobar", 0, NULL, 0); } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_regex_broken=no -else - mutt_cv_regex_broken=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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_regex_broken" >&5 -$as_echo "$mutt_cv_regex_broken" >&6; } - if test $mutt_cv_regex_broken = yes ; then - echo "Using the included GNU regex instead." >&6 - mutt_cv_regex=yes - fi -fi - -if test $mutt_cv_regex = yes; then - -$as_echo "#define USE_GNU_REGEX 1" >>confdefs.h - - case " $LIBOBJS " in - *" regex.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS regex.$ac_objext" - ;; -esac - -fi - - - -# Check whether --with-homespool was given. -if test "${with_homespool+set}" = set; then : - withval=$with_homespool; with_homespool=${withval} -fi - -if test x$with_homespool != x; then - if test $with_homespool = yes; then - with_homespool=mailbox - fi - -cat >>confdefs.h <<_ACEOF -#define MAILPATH "$with_homespool" -_ACEOF - - -$as_echo "#define HOMESPOOL 1" >>confdefs.h - - -$as_echo "#define USE_DOTLOCK 1" >>confdefs.h - - mutt_cv_setgid=no -else - -# Check whether --with-mailpath was given. -if test "${with_mailpath+set}" = set; then : - withval=$with_mailpath; mutt_cv_mailpath=$withval -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where new mail is stored" >&5 -$as_echo_n "checking where new mail is stored... " >&6; } -if test "${mutt_cv_mailpath+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - mutt_cv_mailpath=no - if test -d /var/mail; then - mutt_cv_mailpath=/var/mail - elif test -d /var/spool/mail; then - mutt_cv_mailpath=/var/spool/mail - elif test -d /usr/spool/mail; then - mutt_cv_mailpath=/usr/spool/mail - elif test -d /usr/mail; then - mutt_cv_mailpath=/usr/mail - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_mailpath" >&5 -$as_echo "$mutt_cv_mailpath" >&6; } - -fi - - if test "$mutt_cv_mailpath" = no; then - as_fn_error "\"Could not determine where new mail is stored.\"" "$LINENO" 5 - fi - -cat >>confdefs.h <<_ACEOF -#define MAILPATH "$mutt_cv_mailpath" -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $mutt_cv_mailpath is world writable" >&5 -$as_echo_n "checking if $mutt_cv_mailpath is world writable... " >&6; } -if test "${mutt_cv_worldwrite+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_worldwrite=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (int argc, char **argv) -{ - struct stat s; - - stat ("$mutt_cv_mailpath", &s); - if (s.st_mode & S_IWOTH) exit (0); - exit (1); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_worldwrite=yes -else - mutt_cv_worldwrite=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: $mutt_cv_worldwrite" >&5 -$as_echo "$mutt_cv_worldwrite" >&6; } - - mutt_cv_setgid=no - if test $mutt_cv_worldwrite = yes; then - -$as_echo "#define USE_DOTLOCK 1" >>confdefs.h - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $mutt_cv_mailpath is group writable" >&5 -$as_echo_n "checking if $mutt_cv_mailpath is group writable... " >&6; } -if test "${mutt_cv_groupwrite+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - mutt_cv_groupwrite=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (int argc, char **argv) -{ - struct stat s; - - stat ("$mutt_cv_mailpath", &s); - if (s.st_mode & S_IWGRP) exit (0); - exit (1); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_groupwrite=yes -else - mutt_cv_groupwrite=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: $mutt_cv_groupwrite" >&5 -$as_echo "$mutt_cv_groupwrite" >&6; } - - if test $mutt_cv_groupwrite = yes; then - -$as_echo "#define USE_DOTLOCK 1" >>confdefs.h - - -$as_echo "#define USE_SETGID 1" >>confdefs.h - - mutt_cv_setgid=yes - fi - fi -fi - -# Check whether --enable-external_dotlock was given. -if test "${enable_external_dotlock+set}" = set; then : - enableval=$enable_external_dotlock; mutt_cv_external_dotlock="$enableval" -fi - - -if test "x$mutt_cv_setgid" = "xyes" || test "x$mutt_cv_fchdir" = "xno" \ - || test "x$mutt_cv_external_dotlock" = "xyes" -then - -$as_echo "#define DL_STANDALONE 1" >>confdefs.h - - DOTLOCK_TARGET="mutt_dotlock\$(EXEEXT)" -else - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS dotlock.o" -fi - - - -if test -z "$datarootdir"; then - datarootdir='${prefix}/share' -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to put the documentation" >&5 -$as_echo_n "checking where to put the documentation... " >&6; } - -# Check whether --with-docdir was given. -if test "${with_docdir+set}" = set; then : - withval=$with_docdir; mutt_cv_docdir=$withval -else - mutt_cv_docdir='${datarootdir}/doc/mutt' -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_docdir" >&5 -$as_echo "$mutt_cv_docdir" >&6; } -if test -z "$docdir" -o -n "$with_docdir" -then - docdir=$mutt_cv_docdir -fi - - -if test x$mutt_cv_setgid = xyes; then - DOTLOCK_GROUP='mail' - DOTLOCK_PERMISSION=2755 -else - DOTLOCK_GROUP='' - DOTLOCK_PERMISSION=755 -fi - - - - -# Check whether --with-domain was given. -if test "${with_domain+set}" = set; then : - withval=$with_domain; if test $withval != yes; then - if test $withval != no; then - -cat >>confdefs.h <<_ACEOF -#define DOMAIN "$withval" -_ACEOF - - fi - fi -fi - - -need_socket="no" - - -# Check whether --enable-pop was given. -if test "${enable_pop+set}" = set; then : - enableval=$enable_pop; if test x$enableval = xyes ; then - -$as_echo "#define USE_POP 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS pop.o pop_lib.o pop_auth.o" - need_pop="yes" - need_socket="yes" - need_md5="yes" - fi - -fi - - -# Check whether --enable-imap was given. -if test "${enable_imap+set}" = set; then : - enableval=$enable_imap; if test x$enableval = xyes ; then - -$as_echo "#define USE_IMAP 1" >>confdefs.h - - LIBIMAP="-Limap -limap" - LIBIMAPDEPS="\$(top_srcdir)/imap/imap.h imap/libimap.a" - need_imap="yes" - need_socket="yes" - need_md5="yes" - fi - -fi - - if test x$need_imap = xyes; then - BUILD_IMAP_TRUE= - BUILD_IMAP_FALSE='#' -else - BUILD_IMAP_TRUE='#' - BUILD_IMAP_FALSE= -fi - - -# Check whether --enable-smtp was given. -if test "${enable_smtp+set}" = set; then : - enableval=$enable_smtp; if test $enableval = yes; then - -$as_echo "#define USE_SMTP 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS smtp.o" - need_socket="yes" - fi -fi - - -if test x"$need_imap" = xyes -o x"$need_pop" = xyes ; then - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS bcache.o" -fi - - -if test "$need_socket" = "yes" -then - for ac_header in sys/select.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_select_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_SELECT_H 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -$as_echo_n "checking for socklen_t... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "socklen_t" >/dev/null 2>&1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define socklen_t int" >>confdefs.h - -fi -rm -f conftest* - - ac_fn_c_check_func "$LINENO" "gethostent" "ac_cv_func_gethostent" -if test "x$ac_cv_func_gethostent" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostent in -lnsl" >&5 -$as_echo_n "checking for gethostent in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostent+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $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 gethostent (); -int -main () -{ -return gethostent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_gethostent=yes -else - ac_cv_lib_nsl_gethostent=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_nsl_gethostent" >&5 -$as_echo "$ac_cv_lib_nsl_gethostent" >&6; } -if test "x$ac_cv_lib_nsl_gethostent" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -fi - -fi - - ac_fn_c_check_func "$LINENO" "setsockopt" "ac_cv_func_setsockopt" -if test "x$ac_cv_func_setsockopt" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setsockopt in -lsocket" >&5 -$as_echo_n "checking for setsockopt in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_setsockopt+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $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 setsockopt (); -int -main () -{ -return setsockopt (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_setsockopt=yes -else - ac_cv_lib_socket_setsockopt=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_socket_setsockopt" >&5 -$as_echo "$ac_cv_lib_socket_setsockopt" >&6; } -if test "x$ac_cv_lib_socket_setsockopt" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -fi - -fi - - for ac_func in getaddrinfo -do : - ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - -fi -done - - -$as_echo "#define USE_SOCKET 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS account.o mutt_socket.o mutt_tunnel.o" -fi - - - -# Check whether --with-gss was given. -if test "${with_gss+set}" = set; then : - withval=$with_gss; gss_prefix="$withval" -else - gss_prefix="no" -fi - -if test "$gss_prefix" != "no" -then - if test "$need_imap" = "yes" - then - - GSSAPI_PREFIX=$gss_prefix - GSSAPI_IMPL="none" - saved_CPPFLAGS="$CPPFLAGS" - saved_LDFLAGS="$LDFLAGS" - saved_LIBS="$LIBS" - if test "$GSSAPI_PREFIX" != "yes" - then - krb5_path="$GSSAPI_PREFIX/bin" - else - krb5_path="$PATH" - fi - # Extract the first word of "krb5-config", so it can be a program name with args. -set dummy krb5-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 test "${ac_cv_path_KRB5CFGPATH+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $KRB5CFGPATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_KRB5CFGPATH="$KRB5CFGPATH" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $krb5_path -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_KRB5CFGPATH="$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_KRB5CFGPATH" && ac_cv_path_KRB5CFGPATH="none" - ;; -esac -fi -KRB5CFGPATH=$ac_cv_path_KRB5CFGPATH -if test -n "$KRB5CFGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KRB5CFGPATH" >&5 -$as_echo "$KRB5CFGPATH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$KRB5CFGPATH" != "none" - then - GSSAPI_CFLAGS="$CPPFLAGS `$KRB5CFGPATH --cflags gssapi`" - GSSAPI_LIBS="$MUTTLIBS `$KRB5CFGPATH --libs gssapi`" - case "`$KRB5CFGPATH --version`" in - "Kerberos 5 "*) GSSAPI_IMPL="MIT";; - ?eimdal*) GSSAPI_IMPL="Heimdal";; - *) GSSAPI_IMPL="Unknown";; - esac - else - if test "$GSSAPI_PREFIX" != "yes" - then - GSSAPI_CFLAGS="-I$GSSAPI_PREFIX/include" - GSSAPI_LDFLAGS="-L$GSSAPI_PREFIX/lib" - CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" - LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_init_sec_context in -lgssapi_krb5" >&5 -$as_echo_n "checking for gss_init_sec_context in -lgssapi_krb5... " >&6; } -if test "${ac_cv_lib_gssapi_krb5_gss_init_sec_context+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err $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 gss_init_sec_context (); -int -main () -{ -return gss_init_sec_context (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gssapi_krb5_gss_init_sec_context=yes -else - ac_cv_lib_gssapi_krb5_gss_init_sec_context=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_gssapi_krb5_gss_init_sec_context" >&5 -$as_echo "$ac_cv_lib_gssapi_krb5_gss_init_sec_context" >&6; } -if test "x$ac_cv_lib_gssapi_krb5_gss_init_sec_context" = x""yes; then : - - GSSAPI_IMPL="MIT", - GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" - -fi - - - if test "$GSSAPI_IMPL" = "none" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gss_init_sec_context in -lgssapi" >&5 -$as_echo_n "checking for gss_init_sec_context in -lgssapi... " >&6; } -if test "${ac_cv_lib_gssapi_gss_init_sec_context+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgssapi -lkrb5 -ldes -lasn1 -lroken -lcrypt -lcom_err $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 gss_init_sec_context (); -int -main () -{ -return gss_init_sec_context (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gssapi_gss_init_sec_context=yes -else - ac_cv_lib_gssapi_gss_init_sec_context=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_gssapi_gss_init_sec_context" >&5 -$as_echo "$ac_cv_lib_gssapi_gss_init_sec_context" >&6; } -if test "x$ac_cv_lib_gssapi_gss_init_sec_context" = x""yes; then : - - GSSAPI_IMPL="Heimdal" - GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi -lkrb5 -ldes -lasn1 -lroken" - GSSAPI_LIBS="$GSSAPI_LIBS -lcrypt -lcom_err" - -fi - - fi - - if test "$GSSAPI_IMPL" = "none" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for g_order_init in -lgssapi_krb5" >&5 -$as_echo_n "checking for g_order_init in -lgssapi_krb5... " >&6; } -if test "${ac_cv_lib_gssapi_krb5_g_order_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgssapi_krb5 -lkrb5 -lcrypto -lcom_err $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 g_order_init (); -int -main () -{ -return g_order_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gssapi_krb5_g_order_init=yes -else - ac_cv_lib_gssapi_krb5_g_order_init=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_gssapi_krb5_g_order_init" >&5 -$as_echo "$ac_cv_lib_gssapi_krb5_g_order_init" >&6; } -if test "x$ac_cv_lib_gssapi_krb5_g_order_init" = x""yes; then : - - GSSAPI_IMPL="OldMIT", - GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err" - -fi - - fi - fi - - CPPFLAGS="$saved_CPPFLAGS" - LDFLAGS="$saved_LDFLAGS" - LIBS="$saved_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GSSAPI implementation" >&5 -$as_echo_n "checking GSSAPI implementation... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSSAPI_IMPL" >&5 -$as_echo "$GSSAPI_IMPL" >&6; } - if test "$GSSAPI_IMPL" = "none" - then - 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 - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: GSSAPI libraries not found" >&5 -$as_echo "GSSAPI libraries not found" >&6; } - fi - if test "$GSSAPI_IMPL" = "Heimdal" - then - -$as_echo "#define HAVE_HEIMDAL 1" >>confdefs.h - - fi - CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" - MUTTLIBS="$MUTTLIBS $GSSAPI_LIBS" - -$as_echo "#define USE_GSS 1" >>confdefs.h - - need_gss="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GSS was requested but IMAP is not enabled" >&5 -$as_echo "$as_me: WARNING: GSS was requested but IMAP is not enabled" >&2;} - fi -fi - if test x$need_gss = xyes; then - USE_GSS_TRUE= - USE_GSS_FALSE='#' -else - USE_GSS_TRUE='#' - USE_GSS_FALSE= -fi - - - - -# Check whether --with-ssl was given. -if test "${with_ssl+set}" = set; then : - withval=$with_ssl; if test "$with_ssl" != "no" - then - if test "$need_socket" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL support is only useful with POP, IMAP or SMTP support" >&5 -$as_echo "$as_me: WARNING: SSL support is only useful with POP, IMAP or SMTP support" >&2;} - else - if test "$with_ssl" != "yes" - then - LDFLAGS="$LDFLAGS -L$withval/lib" - CPPFLAGS="$CPPFLAGS -I$withval/include" - fi - saved_LIBS="$LIBS" - - crypto_libs="" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5 -$as_echo_n "checking for deflate in -lz... " >&6; } -if test "${ac_cv_lib_z_deflate+set}" = set; 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 deflate (); -int -main () -{ -return deflate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_deflate=yes -else - ac_cv_lib_z_deflate=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_deflate" >&5 -$as_echo "$ac_cv_lib_z_deflate" >&6; } -if test "x$ac_cv_lib_z_deflate" = x""yes; then : - crypto_libs=-lz -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X509_new in -lcrypto" >&5 -$as_echo_n "checking for X509_new in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_X509_new+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $crypto_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 X509_new (); -int -main () -{ -return X509_new (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_X509_new=yes -else - ac_cv_lib_crypto_X509_new=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_crypto_X509_new" >&5 -$as_echo "$ac_cv_lib_crypto_X509_new" >&6; } -if test "x$ac_cv_lib_crypto_X509_new" = x""yes; then : - crypto_libs="-lcrypto $crypto_libs" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 -$as_echo_n "checking for SSL_new in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $crypto_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 SSL_new (); -int -main () -{ -return SSL_new (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_new=yes -else - ac_cv_lib_ssl_SSL_new=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_ssl_SSL_new" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } -if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -else - as_fn_error "Unable to find SSL library" "$LINENO" 5 -fi - - - LIBS="$LIBS $crypto_libs" - for ac_func in RAND_status RAND_egd -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - -$as_echo "#define USE_SSL 1" >>confdefs.h - - -$as_echo "#define USE_SSL_OPENSSL 1" >>confdefs.h - - LIBS="$saved_LIBS" - MUTTLIBS="$MUTTLIBS -lssl $crypto_libs" - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_ssl.o" - need_ssl=yes - fi - fi - -fi - - - -# Check whether --with-gnutls was given. -if test "${with_gnutls+set}" = set; then : - withval=$with_gnutls; gnutls_prefix="$withval" -else - gnutls_prefix="no" -fi - -if test "$gnutls_prefix" != "no" && test x"$need_ssl" != xyes -then - if test "$need_socket" != "yes" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL support is only useful with POP, IMAP or SMTP support" >&5 -$as_echo "$as_me: WARNING: SSL support is only useful with POP, IMAP or SMTP support" >&2;} - else - if test "$gnutls_prefix" != "yes" - then - LDFLAGS="$LDFLAGS -L$gnutls_prefix/lib" - CPPFLAGS="$CPPFLAGS -I$gnutls_prefix/include" - fi - saved_LIBS="$LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_check_version in -lgnutls" >&5 -$as_echo_n "checking for gnutls_check_version in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_gnutls_check_version+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $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 gnutls_check_version (); -int -main () -{ -return gnutls_check_version (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_gnutls_check_version=yes -else - ac_cv_lib_gnutls_gnutls_check_version=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_gnutls_gnutls_check_version" >&5 -$as_echo "$ac_cv_lib_gnutls_gnutls_check_version" >&6; } -if test "x$ac_cv_lib_gnutls_gnutls_check_version" = x""yes; then : - ac_fn_c_check_decl "$LINENO" "GNUTLS_VERIFY_DISABLE_TIME_CHECKS" "ac_cv_have_decl_GNUTLS_VERIFY_DISABLE_TIME_CHECKS" "#include -" -if test "x$ac_cv_have_decl_GNUTLS_VERIFY_DISABLE_TIME_CHECKS" = x""yes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GNUTLS_VERIFY_DISABLE_TIME_CHECKS $ac_have_decl -_ACEOF - - - LIBS="$saved_LIBS" - MUTTLIBS="$MUTTLIBS -lgnutls" - - -$as_echo "#define USE_SSL 1" >>confdefs.h - - -$as_echo "#define USE_SSL_GNUTLS 1" >>confdefs.h - - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_ssl_gnutls.o" - need_ssl=yes -else - as_fn_error "could not find libgnutls" "$LINENO" 5 -fi - - fi -fi - - if test x$need_ssl = xyes; then - USE_SSL_TRUE= - USE_SSL_FALSE='#' -else - USE_SSL_TRUE='#' - USE_SSL_FALSE= -fi - - - -# Check whether --with-sasl was given. -if test "${with_sasl+set}" = set; then : - withval=$with_sasl; - if test "$with_sasl" != "no" - then - if test "$need_socket" != "yes" - then - as_fn_error "SASL support is only useful with POP or IMAP support" "$LINENO" 5 - fi - - if test "$with_sasl" != "yes" - then - CPPFLAGS="$CPPFLAGS -I$with_sasl/include" - LDFLAGS="$LDFLAGS -L$with_sasl/lib" - fi - - saved_LIBS="$LIBS" - LIBS= - - # OpenSolaris provides a SASL2 interface in libsasl - sasl_libs="sasl2 sasl" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sasl_encode64" >&5 -$as_echo_n "checking for library containing sasl_encode64... " >&6; } -if test "${ac_cv_search_sasl_encode64+set}" = set; 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 sasl_encode64 (); -int -main () -{ -return sasl_encode64 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' $sasl_libs; 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_sasl_encode64=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if test "${ac_cv_search_sasl_encode64+set}" = set; then : - break -fi -done -if test "${ac_cv_search_sasl_encode64+set}" = set; then : - -else - ac_cv_search_sasl_encode64=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sasl_encode64" >&5 -$as_echo "$ac_cv_search_sasl_encode64" >&6; } -ac_res=$ac_cv_search_sasl_encode64 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -else - as_fn_error "could not find sasl lib" "$LINENO" 5 -fi - - - MUTTLIBS="$MUTTLIBS $LIBS" - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_sasl.o" - LIBS="$saved_LIBS" - - -$as_echo "#define USE_SASL 1" >>confdefs.h - - need_sasl=yes - fi - -fi - - if test x$need_sasl = xyes; then - USE_SASL_TRUE= - USE_SASL_FALSE='#' -else - USE_SASL_TRUE='#' - USE_SASL_FALSE= -fi - - - -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; if test x$enableval = xyes ; then - -$as_echo "#define DEBUG 1" >>confdefs.h - - fi - -fi - - -# Check whether --enable-flock was given. -if test "${enable_flock+set}" = set; then : - enableval=$enable_flock; if test $enableval = yes; then - -$as_echo "#define USE_FLOCK 1" >>confdefs.h - - fi -fi - - -mutt_cv_fcntl=yes -# Check whether --enable-fcntl was given. -if test "${enable_fcntl+set}" = set; then : - enableval=$enable_fcntl; if test $enableval = no; then mutt_cv_fcntl=no; fi -fi - - -if test $mutt_cv_fcntl = yes; then - -$as_echo "#define USE_FCNTL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct dirent defines d_ino" >&5 -$as_echo_n "checking whether struct dirent defines d_ino... " >&6; } -ac_cv_dirent_d_ino=no -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct dirent dp; (void)dp.d_ino - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_dirent_d_ino=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test x$ac_cv_dirent_d_ino = xyes ; then - -$as_echo "#define HAVE_DIRENT_D_INO 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dirent_d_ino" >&5 -$as_echo "$ac_cv_dirent_d_ino" >&6; } - -mutt_cv_warnings=yes -# Check whether --enable-warnings was given. -if test "${enable_warnings+set}" = set; then : - enableval=$enable_warnings; if test $enableval = no; then - mutt_cv_warnings=no -fi -fi - - -if test x$GCC = xyes && test $mutt_cv_warnings = yes; then - CFLAGS="-Wall -pedantic -Wno-long-long $CFLAGS" -fi - -# Check whether --enable-nfs-fix was given. -if test "${enable_nfs_fix+set}" = set; then : - enableval=$enable_nfs_fix; if test x$enableval = xyes; then - -$as_echo "#define NFS_ATTRIBUTE_HACK 1" >>confdefs.h - - fi -fi - - -# Check whether --enable-mailtool was given. -if test "${enable_mailtool+set}" = set; then : - enableval=$enable_mailtool; if test x$enableval = xyes; then - -$as_echo "#define SUN_ATTACHMENT 1" >>confdefs.h - - fi -fi - - -# Check whether --enable-locales-fix was given. -if test "${enable_locales_fix+set}" = set; then : - enableval=$enable_locales_fix; if test x$enableval = xyes; then - -$as_echo "#define LOCALES_HACK 1" >>confdefs.h - - fi -fi - - - -# Check whether --with-exec-shell was given. -if test "${with_exec_shell+set}" = set; then : - withval=$with_exec_shell; if test $withval != yes; then - -cat >>confdefs.h <<_ACEOF -#define EXECSHELL "$withval" -_ACEOF - - else - cat >>confdefs.h <<_ACEOF -#define EXECSHELL "/bin/sh" -_ACEOF - - fi -else - cat >>confdefs.h <<_ACEOF -#define EXECSHELL "/bin/sh" -_ACEOF - -fi - - -# Check whether --enable-exact-address was given. -if test "${enable_exact_address+set}" = set; then : - enableval=$enable_exact_address; if test $enableval = yes; then - -$as_echo "#define EXACT_ADDRESS 1" >>confdefs.h - - - fi -fi - - -db_found=no -db_requested=auto -# Check whether --enable-hcache was given. -if test "${enable_hcache+set}" = set; then : - enableval=$enable_hcache; -fi - - -# Check whether --with-tokyocabinet was given. -if test "${with_tokyocabinet+set}" = set; then : - withval=$with_tokyocabinet; -fi - - -# Check whether --with-qdbm was given. -if test "${with_qdbm+set}" = set; then : - withval=$with_qdbm; -fi - - -# Check whether --with-gdbm was given. -if test "${with_gdbm+set}" = set; then : - withval=$with_gdbm; -fi - - -# Check whether --with-bdb was given. -if test "${with_bdb+set}" = set; then : - withval=$with_bdb; -fi - - -db_found=no -if test x$enable_hcache = xyes -then - -$as_echo "#define USE_HCACHE 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS hcache.o" - - OLDCPPFLAGS="$CPPFLAGS" - OLDLDFLAGS="$LDFLAGS" - OLDLIBS="$LIBS" - - need_md5="yes" - - if test -n "$with_tokyocabinet" && test "$with_tokyocabinet" != "no" - then - db_requested=tc - fi - if test -n "$with_qdbm" && test "$with_qdbm" != "no" - then - if test "$db_requested" != "auto" - then - as_fn_error "more than one header cache engine requested." "$LINENO" 5 - else - db_requested=qdbm - fi - fi - if test -n "$with_gdbm" && test "$with_gdbm" != "no" - then - if test "$db_requested" != "auto" - then - as_fn_error "more than one header cache engine requested." "$LINENO" 5 - else - db_requested=gdbm - fi - fi - if test -n "$with_bdb" && test "$with_bdb" != "no" - then - if test "$db_requested" != "auto" - then - as_fn_error "more than one header cache engine requested." "$LINENO" 5 - else - db_requested=bdb - fi - fi - - if test "$with_tokyocabinet" != "no" \ - && test "$db_requested" = auto -o "$db_requested" = tc - then - if test -n "$with_tokyocabinet" && test "$with_tokyocabinet" != "yes" - then - CPPFLAGS="$CPPFLAGS -I$with_tokyocabinet/include" - LDFLAGS="$LDFLAGS -L$with_tokyocabinet/lib" - fi - - ac_fn_c_check_header_mongrel "$LINENO" "tcbdb.h" "ac_cv_header_tcbdb_h" "$ac_includes_default" -if test "x$ac_cv_header_tcbdb_h" = x""yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcbdbopen in -ltokyocabinet" >&5 -$as_echo_n "checking for tcbdbopen in -ltokyocabinet... " >&6; } -if test "${ac_cv_lib_tokyocabinet_tcbdbopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltokyocabinet $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 tcbdbopen (); -int -main () -{ -return tcbdbopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tokyocabinet_tcbdbopen=yes -else - ac_cv_lib_tokyocabinet_tcbdbopen=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_tokyocabinet_tcbdbopen" >&5 -$as_echo "$ac_cv_lib_tokyocabinet_tcbdbopen" >&6; } -if test "x$ac_cv_lib_tokyocabinet_tcbdbopen" = x""yes; then : - MUTTLIBS="$MUTTLIBS -ltokyocabinet" - -$as_echo "#define HAVE_TC 1" >>confdefs.h - - db_found=tc -else - CPPFLAGS="$OLDCPPFLAGS" - LDFLAGS="$OLDLDFLAGS" -fi - -fi - - - if test "$db_requested" != auto && test "$db_found" != "$db_requested" - then - as_fn_error "Tokyo Cabinet could not be used. Check config.log for details." "$LINENO" 5 - fi - fi - - if test "$with_qdbm" != "no" && test $db_found = no \ - && test "$db_requested" = auto -o "$db_requested" = qdbm - then - if test -n "$with_qdbm" && test "$with_qdbm" != "yes" - then - if test -d $with_qdbm/include/qdbm; then - CPPFLAGS="$CPPFLAGS -I$with_qdbm/include/qdbm" - else - CPPFLAGS="$CPPFLAGS -I$with_qdbm/include" - fi - LDFLAGS="$LDFLAGS -L$with_qdbm/lib" - else - if test -d /usr/include/qdbm; then - CPPFLAGS="$CPPFLAGS -I/usr/include/qdbm" - fi - fi - - saved_LIBS="$LIBS" - for ac_header in villa.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "villa.h" "ac_cv_header_villa_h" "$ac_includes_default" -if test "x$ac_cv_header_villa_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VILLA_H 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vlopen in -lqdbm" >&5 -$as_echo_n "checking for vlopen in -lqdbm... " >&6; } -if test "${ac_cv_lib_qdbm_vlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lqdbm $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 vlopen (); -int -main () -{ -return vlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_qdbm_vlopen=yes -else - ac_cv_lib_qdbm_vlopen=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_qdbm_vlopen" >&5 -$as_echo "$ac_cv_lib_qdbm_vlopen" >&6; } -if test "x$ac_cv_lib_qdbm_vlopen" = x""yes; then : - MUTTLIBS="$MUTTLIBS -lqdbm" - -$as_echo "#define HAVE_QDBM 1" >>confdefs.h - - db_found=qdbm -else - CPPFLAGS="$OLDCPPFLAGS" - LDFLAGS="$OLDLDFLAGS" -fi - - LIBS="$saved_LIBS" - if test "$db_requested" != auto && test "$db_found" != "$db_requested" - then - as_fn_error "QDBM could not be used. Check config.log for details." "$LINENO" 5 - fi - fi - - if test x$with_gdbm != xno && test $db_found = no \ - && test "$db_requested" = auto -o "$db_requested" = gdbm - then - if test "$with_gdbm" != "yes" - then - CPPFLAGS="$CPPFLAGS -I$with_gdbm/include" - LDFLAGS="$LDFLAGS -L$with_gdbm/lib" - fi - saved_LIBS="$LIBS" - LIBS="$LIBS -lgdbm" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbm_open" >&5 -$as_echo_n "checking for gdbm_open... " >&6; } -if test "${ac_cv_gdbmopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - ac_cv_gdbmopen=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -gdbm_open(0,0,0,0,0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_gdbmopen=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: $ac_cv_gdbmopen" >&5 -$as_echo "$ac_cv_gdbmopen" >&6; } - LIBS="$saved_LIBS" - if test "$ac_cv_gdbmopen" = yes - then - -$as_echo "#define HAVE_GDBM 1" >>confdefs.h - - MUTTLIBS="$MUTTLIBS -lgdbm" - db_found=gdbm - fi - if test "$db_requested" != auto && test "$db_found" != "$db_requested" - then - as_fn_error "GDBM could not be used. Check config.log for details." "$LINENO" 5 - fi - fi - - ac_bdb_prefix="$with_bdb" - if test x$ac_bdb_prefix != xno && test $db_found = no - then - if test x$ac_bdb_prefix = xyes || test x$ac_bdb_prefix = x - then - ac_bdb_prefix="$mutt_cv_prefix /opt/csw/bdb4 /opt /usr/local /usr" - fi - for d in $ac_bdb_prefix; do - bdbpfx="$bdbpfx $d" - for v in BerkeleyDB.4.3 BerkeleyDB.4.2 BerkeleyDB.4.1; do - bdbpfx="$bdbpfx $d/$v" - done - done - BDB_VERSIONS="db-4 db4 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db ''" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BerkeleyDB > 4.0" >&5 -$as_echo_n "checking for BerkeleyDB > 4.0... " >&6; } - for d in $bdbpfx; do - BDB_INCLUDE_DIR="" - BDB_LIB_DIR="" - for v in / $BDB_VERSIONS; do - if test -r "$d/include/$v/db.h"; then - BDB_INCLUDE_DIR="$d/include/$v" - for bdblibdir in "$d/lib/$v" "$d/lib"; do - test -d "$bdblibdir" || continue - BDB_LIB_DIR="$bdblibdir" - for l in `echo $BDB_VERSIONS`; do - CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR" - LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$l" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - -int -main () -{ - - DB *db = NULL; - db->open(db,NULL,NULL,NULL,0,0,0); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - ac_cv_dbcreate=yes - BDB_LIB="$l" - break - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - test x$ac_cv_dbcreate = xyes && break 2 - done - fi - done - test x$BDB_LIB != x && break - done - if test x$ac_cv_dbcreate = xyes - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR" - LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB" - -$as_echo "#define HAVE_DB4 1" >>confdefs.h - - db_found=bdb - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - - if test $db_found = no - then - as_fn_error "You need Tokyo Cabinet, QDBM, GDBM or Berkeley DB4 for hcache" "$LINENO" 5 - fi -fi - - if test x$db_found != xno; then - BUILD_HCACHE_TRUE= - BUILD_HCACHE_FALSE='#' -else - BUILD_HCACHE_TRUE='#' - BUILD_HCACHE_FALSE= -fi - - -if test "$need_md5" = "yes" -then - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS md5.o" -fi - -if test x$db_found != xno ; then - MUTT_MD5="mutt_md5$EXEEXT" -fi - - - - - - - - -# Check whether --enable-iconv was given. -if test "${enable_iconv+set}" = set; then : - enableval=$enable_iconv; if test x$enableval = xno ; then - am_cv_func_iconv=no - fi - -fi - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; 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 test "${ac_cv_working_alloca_h+set}" = set; 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 test "${ac_cv_func_alloca_works+set}" = set; 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 */ -char *alloca (); -# 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 whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if test "${ac_cv_os_cray+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if test "${ac_cv_c_stack_direction+set}" = set; 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 () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - return find_stack_direction () < 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 - - - - - 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 -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main () -{ - char *data, *data2, *data3; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "#define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 -$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } -if test "${ac_cv_gnu_library_2_1+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1; then : - ac_cv_gnu_library_2_1=yes -else - ac_cv_gnu_library_2_1=no -fi -rm -f conftest* - - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - - GLIBC21="$ac_cv_gnu_library_2_1" - - - - for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.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" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \ -getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ -strdup strtoul tsearch __argz_count __argz_stringify __argz_next -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -# Check whether --with-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then : - withval=$with_libiconv_prefix; - for dir in `echo "$withval" | tr : ' '`; do - if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi - if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi - done - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if test "${am_cv_func_iconv+set}" = set; 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 -liconv" - 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 "#define HAVE_ICONV 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if test "${am_cv_proto_iconv+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" -fi - - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } - -cat >>confdefs.h <<_ACEOF -#define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - LIBICONV= - if test "$am_cv_lib_iconv" = yes; then - LIBICONV="-liconv" - fi - - - - { $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 test "${am_cv_langinfo_codeset+set}" = set; 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 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 - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if test "${am_cv_val_LC_MESSAGES+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h - - fi - fi - { $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; } - - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - INTLLIBS= - - if test "$USE_NLS" = "yes"; then - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 -$as_echo_n "checking whether included gettext is requested... " >&6; } - -# Check whether --with-included-gettext was given. -if test "${with_included_gettext+set}" = set; then : - withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval -else - nls_cv_force_use_gnu_gettext=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 -$as_echo "$nls_cv_force_use_gnu_gettext" >&6; } - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - CATOBJEXT=NONE - - - - - 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" = x""yes; then : - { $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 test "${gt_cv_func_gnugettext1_libc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -extern int _nl_msg_cat_cntr; -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext1_libc=yes -else - gt_cv_func_gnugettext1_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5 -$as_echo "$gt_cv_func_gnugettext1_libc" >&6; } - - if test "$gt_cv_func_gnugettext1_libc" != "yes"; then - { $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 test "${gt_cv_func_gnugettext1_libintl+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -extern int _nl_msg_cat_cntr; -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext1_libintl=yes -else - gt_cv_func_gnugettext1_libintl=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_gnugettext1_libintl" >&5 -$as_echo "$gt_cv_func_gnugettext1_libintl" >&6; } - fi - - if test "$gt_cv_func_gnugettext1_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - - - if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then - INTLLIBS="-lintl $LIBICONV" - fi - - gt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DCGETTEXT 1 -_ACEOF - -fi -done - - LIBS="$gt_save_LIBS" - - # 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 test "${ac_cv_path_MSGFMT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -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 test "${ac_cv_path_GMSGFMT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - CATOBJEXT=.gmo - fi - -fi - - - - if test "$CATOBJEXT" = "NONE"; then - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - INTLOBJS="\$(GETTOBJS)" - # 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 test "${ac_cv_path_MSGFMT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -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 test "${ac_cv_path_GMSGFMT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found msgfmt program is not GNU msgfmt; ignore it" >&5 -$as_echo "found msgfmt program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - POSUB=po - fi - ac_config_commands="$ac_config_commands default-1" - - - - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - for ac_prog in bison -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 test "${ac_cv_prog_INTLBISON+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$INTLBISON"; then - ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_INTLBISON="$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 -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 -$as_echo "$INTLBISON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 -$as_echo_n "checking version of bison... " >&6; } - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 -$as_echo "$ac_prog_version" >&6; } - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - - - - - - - nls_cv_header_intl= - nls_cv_header_libgt= - - DATADIRNAME=share - - - INSTOBJEXT=.mo - - - GENCAT=gencat - - - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - INTL_LIBTOOL_SUFFIX_PREFIX= - - - -if test "$am_cv_func_iconv" != "yes" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Configuring without iconv support. See INSTALL for details" >&5 -$as_echo "$as_me: WARNING: Configuring without iconv support. See INSTALL for details" >&2;} -else - -for ac_header in iconv.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" -if test "x$ac_cv_header_iconv_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ICONV_H 1 -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv.h defines iconv_t" >&5 -$as_echo_n "checking whether iconv.h defines iconv_t... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "typedef.*iconv_t" >/dev/null 2>&1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_ICONV_T_DEF 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f conftest* - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this iconv is good enough" >&5 -$as_echo_n "checking whether this iconv is good enough... " >&6; } -if test "${mutt_cv_iconv_good+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - mutt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - if test "$cross_compiling" = yes; then : - mutt_cv_iconv_good=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int main() -{ - iconv_t cd; - char buf[4]; - char *ob; - size_t obl; - ob = buf, obl = sizeof(buf); - return ((cd = iconv_open("UTF-8", "UTF-8")) != (iconv_t)(-1) && - (iconv(cd, 0, 0, &ob, &obl) || - !(ob == buf && obl == sizeof(buf)) || - iconv_close(cd))); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_iconv_good=yes -else - mutt_cv_iconv_good=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="$mutt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_iconv_good" >&5 -$as_echo "$mutt_cv_iconv_good" >&6; } -if test "$mutt_cv_iconv_good" = no; then - as_fn_error "Try using libiconv instead" "$LINENO" 5 -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv is non-transcribing" >&5 -$as_echo_n "checking whether iconv is non-transcribing... " >&6; } -if test "${mutt_cv_iconv_nontrans+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - mutt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - if test "$cross_compiling" = yes; then : - mutt_cv_iconv_nontrans=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main() -{ - iconv_t cd; - const char *ib; - char *ob; - size_t ibl, obl; - const char *s = "\304\211"; - char t[3]; - ib = s, ibl = 2, ob = t, obl = 3; - return ((cd = iconv_open("UTF-8", "UTF-8")) == (iconv_t)(-1) || - iconv(cd, &ib, &ibl, &ob, &obl)); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mutt_cv_iconv_nontrans=no -else - mutt_cv_iconv_nontrans=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - LIBS="$mutt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_iconv_nontrans" >&5 -$as_echo "$mutt_cv_iconv_nontrans" >&6; } -if test "$mutt_cv_iconv_nontrans" = yes; then - $as_echo "#define ICONV_NONTRANS 1" >>confdefs.h - -else - $as_echo "#define ICONV_NONTRANS 0" >>confdefs.h - -fi - -CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/intl" - -if test "$BUILD_INCLUDED_LIBINTL" = "yes"; then - -$as_echo "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h - -else - mutt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - LIBS="$mutt_save_LIBS" -fi - -fi # libiconv - - - -# Check whether --with-idn was given. -if test "${with_idn+set}" = set; then : - withval=$with_idn; - if test "$with_idn" != "no" ; then - if test "$with_idn" != "yes" ; then - CPPFLAGS="$CPPFLAGS -I$with_idn/include" - LDFLAGS="$LDFLAGS -L$with_idn/lib" - fi - fi - - -fi - - -if test "x$with_idn" != "xno"; then - if test "$am_cv_func_iconv" != "yes" - then - if test "x$with_idn" != "x" - then - as_fn_error "IDN requested but iconv is disabled or unavailable" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing stringprep_check_version" >&5 -$as_echo_n "checking for library containing stringprep_check_version... " >&6; } -if test "${ac_cv_search_stringprep_check_version+set}" = set; 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 stringprep_check_version (); -int -main () -{ -return stringprep_check_version (); - ; - return 0; -} -_ACEOF -for ac_lib in '' idn; 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_stringprep_check_version=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if test "${ac_cv_search_stringprep_check_version+set}" = set; then : - break -fi -done -if test "${ac_cv_search_stringprep_check_version+set}" = set; then : - -else - ac_cv_search_stringprep_check_version=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_stringprep_check_version" >&5 -$as_echo "$ac_cv_search_stringprep_check_version" >&6; } -ac_res=$ac_cv_search_stringprep_check_version -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - - -$as_echo "#define HAVE_LIBIDN 1" >>confdefs.h - - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_idna.o" - -fi - - for ac_func in idna_to_unicode_utf8_from_utf8 idna_to_unicode_8z8z -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - for ac_func in idna_to_ascii_from_utf8 idna_to_ascii_8z -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - for ac_func in idna_to_ascii_lz idna_to_ascii_from_locale -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - fi -fi - - -for ac_header in wchar.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_WCHAR_H 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 -$as_echo_n "checking for wchar_t... " >&6; } -if test "${mutt_cv_wchar_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_WCHAR_H -#include -#endif - -int -main () -{ - wchar_t wc; return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - mutt_cv_wchar_t=yes -else - mutt_cv_wchar_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_wchar_t" >&5 -$as_echo "$mutt_cv_wchar_t" >&6; } - -if test "$mutt_cv_wchar_t" = no; then - -$as_echo "#define wchar_t int" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 -$as_echo_n "checking for wint_t... " >&6; } -if test "${mutt_cv_wint_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_WCHAR_H -#include -#endif - -int -main () -{ - wint_t wc; return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - mutt_cv_wint_t=yes -else - mutt_cv_wint_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_wint_t" >&5 -$as_echo "$mutt_cv_wint_t" >&6; } - -if test "$mutt_cv_wint_t" = no; then - -$as_echo "#define wint_t int" >>confdefs.h - -fi - -for ac_header in wctype.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default" -if test "x$ac_cv_header_wctype_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_WCTYPE_H 1 -_ACEOF - -fi - -done - -for ac_func in iswalnum iswalpha iswblank iswcntrl iswdigit -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in iswgraph iswlower iswprint iswpunct iswspace iswupper -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in iswxdigit towupper towlower -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" -eval as_val=\$$as_ac_var - if test "x$as_val" = 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 mbstate_t" >&5 -$as_echo_n "checking for mbstate_t... " >&6; } -if test "${mutt_cv_mbstate_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_WCHAR_H -#include -#endif - -int -main () -{ - mbstate_t s; return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - mutt_cv_mbstate_t=yes -else - mutt_cv_mbstate_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mutt_cv_mbstate_t" >&5 -$as_echo "$mutt_cv_mbstate_t" >&6; } - -if test "$mutt_cv_mbstate_t" = no; then - -$as_echo "#define mbstate_t int" >>confdefs.h - -fi - -wc_funcs=maybe - -# Check whether --with-wc-funcs was given. -if test "${with_wc_funcs+set}" = set; then : - withval=$with_wc_funcs; wc_funcs=$withval -fi - - -if test "$wc_funcs" != yes && test "$wc_funcs" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t functions" >&5 -$as_echo_n "checking for wchar_t functions... " >&6; } -if test "${mutt_cv_wc_funcs+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - mutt_cv_wc_funcs=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _XOPEN_SOURCE 600 -#include -#include -#ifdef HAVE_WCHAR_H -#include -#endif -#ifdef HAVE_WCTYPE_H -#include -#endif -int -main () -{ -mbrtowc(0, 0, 0, 0); wctomb(0, 0); wcwidth(0); - iswprint(0); iswspace(0); towlower(0); towupper(0); iswalnum(0) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - mutt_cv_wc_funcs=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: $mutt_cv_wc_funcs" >&5 -$as_echo "$mutt_cv_wc_funcs" >&6; } - wc_funcs=$mutt_cv_wc_funcs -fi - -if test $wc_funcs = yes; then - -$as_echo "#define HAVE_WC_FUNCS 1" >>confdefs.h - -else - MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS utf8.o wcwidth.o" -fi - -{ $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 test "${mutt_cv_langinfo_codeset+set}" = set; 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 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - mutt_cv_langinfo_codeset=yes -else - mutt_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: $mutt_cv_langinfo_codeset" >&5 -$as_echo "$mutt_cv_langinfo_codeset" >&6; } -if test $mutt_cv_langinfo_codeset = yes; then - -$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and YESEXPR" >&5 -$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; } -if test "${mutt_cv_langinfo_yesexpr+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(YESEXPR); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - mutt_cv_langinfo_yesexpr=yes -else - mutt_cv_langinfo_yesexpr=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: $mutt_cv_langinfo_yesexpr" >&5 -$as_echo "$mutt_cv_langinfo_yesexpr" >&6; } -if test $mutt_cv_langinfo_yesexpr = yes; then - -$as_echo "#define HAVE_LANGINFO_YESEXPR 1" >>confdefs.h - -fi - -have_openjade="no" -# Extract the first word of "ospcat", so it can be a program name with args. -set dummy ospcat; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_OSPCAT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $OSPCAT in - [\\/]* | ?:[\\/]*) - ac_cv_path_OSPCAT="$OSPCAT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_OSPCAT="$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_OSPCAT" && ac_cv_path_OSPCAT="none" - ;; -esac -fi -OSPCAT=$ac_cv_path_OSPCAT -if test -n "$OSPCAT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OSPCAT" >&5 -$as_echo "$OSPCAT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test "$OSPCAT" != "none" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openjade docbook stylesheets" >&5 -$as_echo_n "checking for openjade docbook stylesheets... " >&6; } - dslosfile=`ospcat --public-id="-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"` - DSLROOT=`echo $dslosfile | sed -n -e "s/.*SOIBASE='\([^']*\)\/catalog'.*/\1/p"` - # ospcat may spit out an absolute path without an SOIBASE - if test -z "$DSLROOT" - then - DSLROOT=`echo $dslosfile | sed -e 's|\(.*\)/print/docbook.dsl|\1|'` - fi - if test -f $DSLROOT/print/docbook.dsl - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: in $DSLROOT" >&5 -$as_echo "in $DSLROOT" >&6; } - have_openjade="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found: PDF documentation will not be built." >&5 -$as_echo "not found: PDF documentation will not be built." >&6; } - fi -fi - - -# Check whether --enable-full_doc was given. -if test "${enable_full_doc+set}" = set; then : - enableval=$enable_full_doc; if test x$enableval = xno ; then - full_doc=no - fi - -fi - -if test x$full_doc != xno ; then - -$as_echo "#define MAKEDOC_FULL 1" >>confdefs.h - -fi - -ac_config_files="$ac_config_files Makefile contrib/Makefile doc/Makefile imap/Makefile intl/Makefile m4/Makefile po/Makefile.in hcachever.sh muttbug.sh doc/instdoc.sh" - -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 - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - 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= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -if test -z "${BUILD_IMAP_TRUE}" && test -z "${BUILD_IMAP_FALSE}"; then - as_fn_error "conditional \"BUILD_IMAP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_GSS_TRUE}" && test -z "${USE_GSS_FALSE}"; then - as_fn_error "conditional \"USE_GSS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_SSL_TRUE}" && test -z "${USE_SSL_FALSE}"; then - as_fn_error "conditional \"USE_SSL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_SASL_TRUE}" && test -z "${USE_SASL_FALSE}"; then - as_fn_error "conditional \"USE_SASL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_HCACHE_TRUE}" && test -z "${BUILD_HCACHE_FALSE}"; then - as_fn_error "conditional \"BUILD_HCACHE\" 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. -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 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=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.65. 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 the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.65, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2009 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=$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"` ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; - "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "imap/Makefile") CONFIG_FILES="$CONFIG_FILES imap/Makefile" ;; - "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; - "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "hcachever.sh") CONFIG_FILES="$CONFIG_FILES hcachever.sh" ;; - "muttbug.sh") CONFIG_FILES="$CONFIG_FILES muttbug.sh" ;; - "doc/instdoc.sh") CONFIG_FILES="$CONFIG_FILES doc/instdoc.sh" ;; - - *) 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= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 - -# 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 {' >"$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 >>"\$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 >>"\$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 < "$tmp/subs1.awk" > "$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 $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || 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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; 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="$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 "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 >"$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 "$tmp/subs.awk" >$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' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$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 "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$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 "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$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 "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "default-1":C) 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 - 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" - sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - 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 $? -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/contrib/Makefile.in b/contrib/Makefile.in deleted file mode 100644 index 13ee307..0000000 --- a/contrib/Makefile.in +++ /dev/null @@ -1,419 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# $Id$ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/curslib.m4 $(top_srcdir)/m4/funcdecl.m4 \ - $(top_srcdir)/m4/funcs.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gpgme.m4 \ - $(top_srcdir)/m4/gssapi.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/types.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBX = @DBX@ -DEBUGGER = @DEBUGGER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DOTLOCK_GROUP = @DOTLOCK_GROUP@ -DOTLOCK_PERMISSION = @DOTLOCK_PERMISSION@ -DOTLOCK_TARGET = @DOTLOCK_TARGET@ -DSLROOT = @DSLROOT@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GDB = @GDB@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GPGME_CFLAGS = @GPGME_CFLAGS@ -GPGME_CONFIG = @GPGME_CONFIG@ -GPGME_LIBS = @GPGME_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -ISPELL = @ISPELL@ -KRB5CFGPATH = @KRB5CFGPATH@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBIMAP = @LIBIMAP@ -LIBIMAPDEPS = @LIBIMAPDEPS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MUTTLIBS = @MUTTLIBS@ -MUTT_LIB_OBJECTS = @MUTT_LIB_OBJECTS@ -MUTT_MD5 = @MUTT_MD5@ -OBJEXT = @OBJEXT@ -OPS = @OPS@ -OSPCAT = @OSPCAT@ -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@ -PGPAUX_TARGET = @PGPAUX_TARGET@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SDB = @SDB@ -SENDMAIL = @SENDMAIL@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SMIMEAUX_TARGET = @SMIMEAUX_TARGET@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -subdir = contrib -SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \ - sample.muttrc sample.mailcap sample.muttrc-tlr \ - colors.default colors.linux smime.rc \ - ca-bundle.crt smime_keys_test.pl mutt_xtitle - -EXTRA_DIST = language.txt language50.txt \ - patch.slang-1.2.2.keypad.1 \ - $(SAMPLES) \ - iconv/README \ - iconv/make.sh - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign contrib/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic dist-hook \ - distclean distclean-generic distdir dvi dvi-am html html-am \ - info info-am install install-am install-data install-data-am \ - install-data-local install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am uninstall-local - - -install-data-local: - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir)/samples $(DESTDIR)$(docdir)/samples/iconv - for f in $(SAMPLES) ; do \ - $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir)/samples ; \ - done - for f in $(srcdir)/iconv/*.rc ; do \ - $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir)/samples/iconv ; \ - done - -uninstall-local: - for f in $(SAMPLES) ; do \ - rm -f $(DESTDIR)$(docdir)/samples/$$f ; \ - done - -rm -rf $(DESTDIR)$(docdir)/samples/iconv - -rmdir $(DESTDIR)$(docdir)/samples - -rmdir $(DESTDIR)$(docdir) -dist-hook: Makefile $(DISTFILES) - mkdir -p $(distdir)/iconv - for file in $(srcdir)/iconv/*.rc ; do \ - ln $$file $(distdir)/iconv 2> /dev/null \ - || cp -p $$file $(distdir)/iconv ; \ - done - -# 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/debian/MY-TODO b/debian/MY-TODO new file mode 100644 index 0000000..e9494c7 --- /dev/null +++ b/debian/MY-TODO @@ -0,0 +1,7 @@ +Only in ../m/debian/mutt/usr/share/doc/mutt: BUGS.IMAP +Only in ../m/debian/mutt/usr/share/doc/mutt: README.IMAP +Only in ../m/debian/mutt/usr/share/doc/mutt: TODO.IMAP + +Only in debian/mutt/usr/share/doc/mutt/examples: ca-bundle.crt +Only in debian/mutt/usr/share/doc/mutt/examples: iconv +Only in debian/mutt/usr/share/doc/mutt/examples: smime_keys_test.pl diff --git a/debian/NEWS b/debian/NEWS new file mode 100644 index 0000000..6e2aaac --- /dev/null +++ b/debian/NEWS @@ -0,0 +1,65 @@ +mutt (1.5.20-6) unstable; urgency=low + The behavior of the write_bcc option has changed, now write_bcc is only + used to decide if an Fcc message should have its Bcc header written; + if the message is sent outside using SMTP the Bcc header will never be + written, see the description of debian-specific/467432-write_bcc.patch + for details + + -- Antonio Radici Tue, 19 Jan 2010 21:57:48 +0000 + +mutt (1.5.20-1) unstable; urgency=low + + As result of http://bugs.mutt.org/3097 getopt() is now used in a way that + behaves consistently on all POSIX systems, unfortunately this has broken + the way attachments are added from the command line. + Now "--" is mandatory *before* any address if a file is attached from CLI, + the mutt manpage correctly documents this behavior. + + -- Antonio Radici Sun, 14 Jun 2009 20:53:18 +0100 + +mutt (1.5.17-2) unstable; urgency=low + + There is now a "mutt-patched" package that will contain some more + experimental patches. For now that is the "sidebar" patch. See + README.Patches for details. + + -- Christoph Berg Tue, 01 Jan 2008 20:03:16 +0100 + +mutt (1.5.16-2) unstable; urgency=low + + User-visible changes in this version: + * The gpgme crypt backend is not yet stable enough, disabled again. + * The imap_home_namespace variable was removed upstream. + + -- Christoph Berg Thu, 28 Jun 2007 20:58:49 +0200 + +mutt (1.5.14+cvs20070301-1) experimental; urgency=low + + We no longer unset write_bcc in /etc/Muttrc. If your MTA does not strip Bcc: + headers, edit /etc/Muttrc. (exim4 and postfix strip them, exim(3) does not.) + We also no longer unset use_from and use_domain. Mutt will use the contents + of /etc/mailname to determine the domain part of the From: header. + + This release adds ESMTP support to mutt. To use, set smtp_url to your + smarthost, e.g. smtps://mail.company.com/. + + The gpgme crypt backend is now enabled. + + -- Christoph Berg Thu, 1 Mar 2007 23:56:58 +0100 + +mutt (1.5.6-1) unstable; urgency=low + + In this release the alternates, lists, and subscribe configuration + variables have been turned into regular expression lists. + Additionaly, alternates is now an option, not a variable. + This means that you should change: + + set alternates="foo|bar" + + into + + alternates "foo|bar" + + in your .muttrc file. See muttrc(5) for details. + + -- Artur R. Czechowski Sun, 4 Apr 2004 14:04:03 +0200 diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..9ac18c8 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,81 @@ +l10n support +~~~~~~~~~~~~ +If you want to see non-ASCII characters on a Debian system, there's no +use fiddling with the variable "charset", as described in the manual +page muttrc(5). +Instead, you'll need to have the Debian package "locales" installed on +your system and set the LANG or LC_CTYPE environment variable. +e.g. US users will want to add "export LC_CTYPE=en_US" to their ~/.bashrc. +If you have a /etc/locale.gen file read carefully the comment and do +what it says, or it will not work. +No, linux systems do not need --enable-locales-fix or --without-wc-funcs, +so don't bother me saying these switches cure your problems. + + +PGP support +~~~~~~~~~~~ +GnuPG support works out of the box with the default /etc/Muttrc. +You do not need any of the example files in /usr/share/doc/mutt/ +unless you plan to send signed+encrypted messages to pgp2 users. + + +gpg-2comp +~~~~~~~~~ +/usr/share/doc/mutt/examples/gpg.rc uses a wrapper program called +gpg-2comp which is not available as a debian package. +This program is needed only to sign and encrypt messages with a method +compatible with PGP 2.x. Users who don't need this feature can use the +commands provided in the default /etc/Muttrc. +The pgpewrap and pgpring programs used by some example rc files have +been installed in /usr/lib/mutt. +The files /usr/share/doc/mutt/examples/*.rc are just examples and are not +supposed to be used as is. Actually they are not supposed to be used at +all, PGP support works out of the box if gnupg is installed. + + +GnuPG passphrase +~~~~~~~~~~~~~~~~ +The GnuPG passphrase is not asked if the $GPG_AGENT_INFO environment +variable exists. + + +Scripts +~~~~~~~ +Look at /usr/lib/mutt/{debian-ldap-query,mailspell}. + + +pgp_encryptself +~~~~~~~~~~~~~~~ +This mutt 1.0.x configuration option does not exist anymore and this +will not change. To achieve the same effect you can add something like +--encrypt-to=your@mail.address to the relevant ~/.muttrc configuration +lines (pgp_encrypt_only_command and pgp_encrypt_sign_command) or to +~/.gnupg/options . + + +S/MIME Support +~~~~~~~~~~~~~~ +See README.SMIME for details. + + +About temporary files and security +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +When using mutt to view an encrypted message, the plain text is saved in +a temporary file. If you have reasons to worry an attacker may recover +the deleted file from your hard disk please take appropriate actions to +prevent this (e.g. use a ramdisk or shred(1) or wipe(1)). +Also don't forget about the temporary files created by your editor. +Mutt creates temporary files in a secure way. See #222125 for details. + + +/etc/Muttrc.d/ +~~~~~~~~~~~~~~ +The default /etc/Muttrc will source more configuration directives from +files in the /etc/Muttrc.d/ directory ending in ".rc". +The system administrator may use the directory for local customizations +and packages enhancing mutt may use it to install their configuration +directives. +The directory is processed last in /etc/Muttrc, so that settings there +may override the defaults from the file. + + -- Christoph Berg Sat, 03 Nov 2007 21:02:26 +0100 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..8646078 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,57 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +To configure quilt to use debian/patches instead of patches, you want +either to export QUILT_PATCHES=debian/patches in your environment +or use this snippet in your ~/.quiltrc: + + for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do + if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then + export QUILT_PATCHES=debian/patches + fi + done + +To get the fully patched source after unpacking the source package, cd to +the root level of the source package and run: + + quilt push -a + +The last patch listed in debian/patches/series will become the current +patch. + +To add a new set of changes, first run quilt push -a, and then run: + + quilt new + +where is a descriptive name for the patch, used as the filename in +debian/patches. Then, for every file that will be modified by this patch, +run: + + quilt add + +before editing those files. You must tell quilt with quilt add what files +will be part of the patch before making changes or quilt will not work +properly. After editing the files, run: + + quilt refresh + +to save the results as a patch. + +Alternately, if you already have an external patch and you just want to +add it to the build system, run quilt push -a and then: + + quilt import -P /path/to/patch + quilt push -a + +(add -p 0 to quilt import if needed). as above is the filename to +use in debian/patches. The last quilt push -a will apply the patch to +make sure it works properly. + +To remove an existing patch from the list of patches that will be applied, +run: + + quilt delete + +You may need to run quilt pop -a to unapply patches first before running +this command. diff --git a/debian/bug/control b/debian/bug/control new file mode 100644 index 0000000..1d19eee --- /dev/null +++ b/debian/bug/control @@ -0,0 +1 @@ +package-status: mutt mutt-patched mutt-dbg diff --git a/debian/bug/script b/debian/bug/script new file mode 100755 index 0000000..d5f4c44 --- /dev/null +++ b/debian/bug/script @@ -0,0 +1,5 @@ +#!/bin/sh + +echo "Including output of \`mutt -v'..." + +LC_ALL=C mutt -v >&3 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..c06fbdc --- /dev/null +++ b/debian/changelog @@ -0,0 +1,1773 @@ +mutt (1.5.20-10) experimental; urgency=low + + * debian/patches: features/imap_fast_trash: Make "move to trash folder" use + IMAP COPY, by Paul Miller (jettero). + + -- Christoph Berg Wed, 25 Aug 2010 11:11:43 +0200 + +mutt (1.5.20-9) unstable; urgency=low + + * hurd-i386 fixes: + + Use libgdbm-dev for this arch until libtokyocabinet-dev is available. + + #define PATH_MAX _POSIX_PATH_MAX. (Fixed in upstream hg, though + differently.) + * /usr/bin/mutt is an alternative now, instead of a diversion in + mutt-patched. + + -- Christoph Berg Sat, 12 Jun 2010 10:33:03 +0200 + +mutt (1.5.20-8) unstable; urgency=low + + * debian/control: + + Flip Maintainer and Uploaders. I'm pretty inactive these days. + + Nuke DM-Upload-Allowed. + * Explicitely use source format 1.0 due to the quilt magic we are using to + built mutt-patched. + * Switch to tokyocabinet (Closes: #530670) + * Instead of trying to maintain the PATCHES file, put "quilt applied" output + there. + * debian/patches: + + Update upstream/228671-pipe-mime.patch: Fix segfaults with ssh tunnels. + Thanks Nikolaus Schulz (Closes: #569279) + + Update upstream/528233-readonly-open.patch: Only chmod saved + attachments, not existing files. (Closes: #572203) + + Add upstream/573823-imap_internal_date: Set internaldate of messages + appended to IMAP mailboxes (Closes: #573823) + + Add upstream/542344-dont_fold_From_: Do not wrap From_ header + (Closes: #542344) + + Update: features/compressed-folders: Remove redundant comment in + /etc/Muttrc. (Closes: #578096) + + -- Christoph Berg Tue, 01 Jun 2010 23:22:26 +0200 + +mutt (1.5.20-7) unstable; urgency=low + + * debian/NEWS: backported a note about the new behavior with attachments + on the command line (Closes: 539276) + * debian/patches: + + upstream/548494-swedish-intl.patch: fixes to Swedish translation + (Closes: 548494) + + upstream/553238-german-intl.patch: small fix to the German translation + (Closes: 553238) + + upstream/553321-ansi-escape-segfault.patch: prevent mutt from segfaulting + with large ASCII escape sequences (Closes: 553321) + + upstream/557395-muttrc-crypto.patch: small fix to the muttrc man + (Closes: 557395) + + upstream/545316-header-color.patch: do not store the color in header cache + (Closes: 545316) + + upstream/568295-references.patch: preserve the References header if the + In-Reply-To is not initially present (Closes: 568295) + + upstream/547980-smime_keys-chaining.patch: support certificate chaining in + smime_keys (Closes: 547980, 549006) + + upstream/528233-readonly-open.patch: open attachments in read-only + (Closes: 528233) + + upstream/228671-pipe-mime.patch: don't mess up the terminal while piping + attachments (Closes: 228671) + + upstream/383769-score-match.patch: match full name with ~f, same as + mutt-ng (Closes: 383769) + + upstream/547739-manual-typos.patch: typos in manual.txt (Closes: 547739) + + upstream/311296-rand-mktemp.patch: more random file creation in /tmp, see + CVE CAN-2005-2351 (Closes: 311296) + + debian-specific/Muttrc: set time_inc to be 250ms (Closes: 537746) + * debian/control: + + bumping Standards-Version to 3.8.4, nothing to be done + + adding ${misc:Depends} to make lintian happy + * debian/rules: adding a commented rule to enable tokyocabinet if we want + + -- Antonio Radici Mon, 08 Feb 2010 00:27:55 +0000 + +mutt (1.5.20-6) unstable; urgency=low + + * debian/patches: + + debian-specific/467432-write_bcc.patch: do not write Bcc headers + even if write_bcc is set (Closes: 467432, 546884, 467432) + + -- Antonio Radici Tue, 19 Jan 2010 21:57:48 +0000 + +mutt (1.5.20-5) unstable; urgency=low + + * debian/patches: + + upstream/533370-pgp-inline.patch: fixing the patch from 1.5.20-3, now + pgp.c is correctly included (Closes: 533370, 558813) + + upstream/537694-segv-imap-headers.patch: fixing a segfault when the IMAP + server sends additional headers and mutt segfaults (Closes: 537694) + + upstream/393926-internal-viewer.patch: revert the patch and add the + auto_view of text/x-diff (Closes: 546760, 549158) + + upstream/548577-gpgme-1.2.patch: do not fail to open pgp signed message + with libgpgme >= 1.2 (Closes: 548577) + + -- Antonio Radici Wed, 02 Dec 2009 22:38:00 +0000 + +mutt (1.5.20-4) unstable; urgency=low + + * Backing out the broken mutt-patched/sidebar-newonly patch + (Closes: 546591, 546592) + + -- Antonio Radici Mon, 14 Sep 2009 18:49:29 +0100 + +mutt (1.5.20-3) unstable; urgency=low + + [ Adeodato Simó ] + * Remove myself from Uploaders. + + [ Antonio Radici ] + * debian/patches: + + features/ifdef: fixed a typo (Closes: 539974) + + features/compressed-folders: removed any reference to DefaultMagic + (Closes: 541360) + + debian-specific/Muttrc: correctly state that exim4 does not strip Bcc: + headers (Closes: 474194) + + upstream/544180-italian-yesorno.patch: fixing a problem in the italian + translation of a multichoice string (Closes: 544180) + + upstream/543467-thread-segfault.patch: patch to prevent mutt from + segfaulting when Ctrl+R is hit on malformed messages (Closes: 543467) + + upstream/393926-internal-viewer.patch: display any text/* part with the + internal viewer (Closes: 393926) + + upstream/538128-mh-folder-access.patch: MH dirs are now correctly + parsed (Closes: 538128) + + upstream/537818-emptycharset.patch: handling empty charsets without + segfaulting (Closes: 537818) + + upstream/535096-pop-port.patch: allow a user to specify a port for a pop + connection, as it was before 1.5.20 (Closes: 535096) + + upstream/542910-search-segfault.patch: fixes a bug in search which caused + a segfault (Closes: 542910) + + upstream/533370-pgp-inline.patch: inline pgp messages now displayed + correctly even if pgp_auto_decode is set (Closes: 533370) + + upstream/533520-signature-highlight.patch: fixed a problem in signature + hightlighting if text_flowed was set to 'yes' (Closes: 533520) + + upstream/542817-smimekeys-tmpdir.patch: smime_keys.pl will skip tmpdir + if it contains '=' (Closes: 542817) + + upstream/544794-smtp-batch.patch: mutt won't ask for a password if + smtp_user and smtp_pass are set in .muttrc (Closes: 544794) + + mutt-patched/sidebar-newonly: integrating Steve Kemp's patch to optionally + select folders with new mails only (Closes: 532510) + * debian/control: + + Standards-Version bumped to 3.8.3 + * debian/extra/lib/mailto-mutt: patch from madduck@ to correctly handle the + way mutt is parsing the command line now (Closes: 545876) + + [ Christoph Berg ] + * Recommend default-mta instead of exim4 (Closes: 533442) + * Remove redudant hard-coded libgpgme11 from Recommends. + + -- Antonio Radici Sun, 13 Sep 2009 18:34:48 +0100 + +mutt (1.5.20-2) unstable; urgency=low + + [ Antonio Radici ] + * debian/patches/series: + + upstream/533209-mutt_perror.patch: better error reporting if a mailbox + cannot be opened (Closes: 533209) + + upstream/533459-unmailboxes.patch: fixes a segfault with the unmailboxes + command (Closes: 533459) + + upstream/533439-mbox-time.patch: do not corrupt the atime/mtime of + mboxes when opened (Closes: 533439) + + upstream/531430-imapuser.patch: ask the user for the right information + while logging in on IMAP servers (Closes: 531430) + + upstream/534543-imap-port.patch: correctly parse the port in an IMAP + url (Closes: 534543) + + added the right copyright misc/smime_keys-manpage.patch + + mutt-patched/sidebar: refreshed + + mutt-patched/sidebar-{dotted,sorted} added (Closes: 523774) + * debian/control: + + Debian policy bumped to 3.8.2 + * debian/mutt.install and debian/extra/lib/mailto-mutt: + + added the firefox mailto handler (Closes: 406850) + + [ Christoph Berg ] + * Remove maildir-mtime patch, upstream has a different implementation + (though with different results; Closes: 533471) + * Use elinks-lite (with an alternative Build-Dependency on elinks) for + rendering the manual. Thanks to Ahmed El-Mahmoudy for the suggestion. + (Closes: 533445) + + -- Christoph Berg Sat, 20 Jun 2009 15:00:50 +0200 + +mutt (1.5.20-1) unstable; urgency=low + + * New upstream release, includes the following features: + + Bounced messages contains From: headers (Closes: 93268) + + Attachments displayed based on Content-Disposition (Closes: 199709) + + fcc to a mailbox does not raise the 'new' flag (Closes: 209390) + + '!' supported as suffix in gpg keys (Closes: 277945) + + failed attachment saving shows an error message (Closes: 292350) + + inline signed messages sent honouring $send_charset (Closes: 307819) + + support for and in the pager (Closes: 436007) + + fcc_attach is a quad option (Closes: 478861) + + Content-Description header not included in reply (Closes: 500766) + + imap_sync_mailbox fix for a segfault (Closes: 516364) + + better threading support with particular Message-ID's (Closes: 520735) + + no crash on IMAP folder refresh (Closes: 528465) + + undisclosed-recipients not passed in the envelope (Closes: 529090) + * debian/patches/series: + + commented all references to upstream/*, they should be included in 1.5.20 + + removed debian-specific/529838-gnutls-autoconf.patch, ditto + + removed misc/manpage-typos.patch, ditto + + modified misc/hyphen-as-minus.patch, a big part was integrated upstream + + features/trash-folder: do not reupload messages to $trash if IMAP is used + (Closes: #448241) + + added misc/hg.pmdef.debugtime, see upstream #3263 + * debian/control: added DM-Upload-Allowed: yes + + -- Antonio Radici Sun, 14 Jun 2009 20:53:18 +0100 + +mutt (1.5.19-4) unstable; urgency=low + + * debian/rules: + + disable tokyocabinet as backend so it won't be used (Closes: 530670) + + enable gpgme support (Closes: 263443) + * debian/control: + + added pkg-config to Build-Depends + + add libgpgme11-dev to Build-Depends and libgpgme11 to Depends + * patches/debian-specific/529838-gnutls-autoconf.patch: + + pkg-config to detect gnutls rather than libgnutls-config (Closes: 529838) + * patches/upstream/530661-mandatory-doubledash.patch + + document the mandatory usage of -- with the -a option (Closes: 530661) + * patches/features/sensible_browser_position + + mutt does not segfault when the last mailbox is removed (Closes: 439387) + * patches/upstream/375530-index-weirdness.patch + + fix index weirdness if mailbox is emptied (Closes: 375530) + * patches/upstream/493719-segfault-imap-close.patch + + IMAP: only close socket when not already disconnected (Closes: 493719) + * patches/upstream/514960-certificate-insecure-algorithm.patch + + allow certs generated with insecure algorithms if they are in cache + (Closes: 514960) + * patches/misc/manpage-typos.patch + + fixes some typos in the manpage (Closes: 428017) + * patches/upstream/524420-segfault-reconnect-sasl.patch + + sasl, mutt segfaults on reconnect to IMAPS server (Closes: 524420) + * patches/upstream/350957-postponed-to-bcc.patch + + display bcc for postponed message if there is no To (Closes: 350957) + * patches/upstream/502628-attach_charset-doc.patch + + doc update: clarify what attach_charset does (Closes: 502628) + * patches/upstream/504530-stunnel-account_hook-doc.patch + + doc update: mention account-hook in the docs for $tunnel (Closes: 504530) + * patches/upstream/530887-dovecot-imap.patch + + fixes two problems with subdirs on dovecot (Closes: 530671, 530887) + + -- Antonio Radici Tue, 26 May 2009 23:42:51 +0100 + +mutt (1.5.19-3) unstable; urgency=low + + * debian/control: + + Xs- removed from VCS headers + + removed a duplicate "priority" in the binary package + + Section: debug for mutt-dbg + + debhelper dependency updated to support dh_lintian + + Standards-Version bumped to 3.8.1 + + widened mutt-dbg extended description + * debian/compat: bumped to 7 + * debian/patches + + added a small description to all patches missing it + + the following patches were refreshed against upstream/1.5.19: + * features/{ifdef,maildir-mtime,xtitles,trash-folder,purge-message} + * features-old/patch-1.5.4.vk.pgp_verbose_mime + * debian-specific/{Md.etc_mailname_gethostbyname.diff + debian/specific/{correct_docdir_in_manpage.diff,assumed_charset-compat} + * mutt-patched/* + + mutt-patched/sidebar: added the new sidebar patch for 1.5.19 + + misc/hyphen-as-minus: sub hyphen with minus in the mutt manpages + to make lintian happy + + misc/smime_keys-manpage.patch: add a missing manpage (Closes: 528672) + * debian/rules + + re-enabled building of mutt-patched for 1.5.19 + + replacing the deprecated "dh_clean -k" with dh_prep + * debian/mutt-patched.lintian-overrides: mutt can be w/out manpage + * debian/mutt.lintian-overrides: excluding arch-dep-package-has-big-usr-share + because there are many locales + * debian/mutt.preinst: added "set -e" to abort if there are errors + * debian/clean: remove aclocal.m4 it will not appear in the .diff.gz + + -- Antonio Radici Sun, 24 May 2009 17:24:18 +0100 + +mutt (1.5.19-2) experimental; urgency=low + + * Recommends: libsasl2-modules. Technically, we depend on libsasl2-2 which + already recommends this package, but not having it installed just confuses + too many users. + * Use upstream's smime.rc file, hereby fixing S/MIME encryption. + (Closes: #315319) + * Grab two patches from upstream that should also go into lenny: + + Always sort inode list for accessing header cache. (Closes: #508988) + + Delete partially downloaded files in message cache. (Closes: #500016) + * Add Antonio Radici to Uploaders. Thanks for the BTS triaging! + + -- Christoph Berg Thu, 05 Feb 2009 23:26:41 +0100 + +mutt (1.5.19-1) experimental; urgency=low + + * New upstream version. + + Header weeding changed in default config; now we ignore * and unignore + from: subject to cc date x-mailer x-url user-agent. (Mutt: #286) + + $move now defaults to "no" instead of "ask-no". + * Upstream dropped changelog.old, so do we. + * Temporarily disable building mutt-patched until an updated sidebar patch + is available. + + -- Christoph Berg Thu, 15 Jan 2009 23:47:29 +0100 + +mutt (1.5.18-4) unstable; urgency=low + + * In order to evade a conflict with the sidebar patch, move the set_xterm_* + prototypes from pager.c to mutt_menu.h. No functional change. + * Introduce two new patches that revert the conflicting part of the + maildir-mtime patch before applying the sidebar patch, and afterwards + re-apply the relevant bits. This mitigates the chance of bugs being + introduced when manually resolving conflicts with new versions of the + sidebar patch. This fixes new mail detection in the mutt-patched package. + (Closes: #484537, #484538) + + -- Christoph Berg Sun, 03 Aug 2008 00:51:58 +0200 + +mutt (1.5.18-3) unstable; urgency=low + + * Pull patch from upstream to fix multipart decoding. (Closes: #489283) + * Add example sidebar config, thanks Stefano Zacchiroli. (Closes: #460452) + * (Finally) compile with native Kerberos GSSAPI support. (Closes: #469483) + * Add a switch in debian/rules to make building mutt-patched configurable. + + -- Christoph Berg Sun, 20 Jul 2008 01:35:03 +0200 + +mutt (1.5.18-2) unstable; urgency=low + + * Updated sidebar patch, does not display (NULL) anymore. (Closes: #483151) + * Install reportbug script to inform us about the status of installed + mutt packages. + * Use dh_lintian (prefix with '-' so we do not need to bump the DH level). + * Register mutt as message/rfc822 application in /etc/mailcap. + (Closes: #474539) + * Refresh some patches to get rid of -p0 in series file. + * Bump Standards-Version; add debian/README.source. + * Switch Maintainer and Uploader as suggested by Dato. + + -- Christoph Berg Thu, 12 Jun 2008 23:53:46 +0200 + +mutt (1.5.18-1) unstable; urgency=low + + * New upstream version. + + Query menu format is configurable. (Closes: #66096, Mutt: #170) + + Quote attachment filenames starting with '='. + (Closes: #351890, Mutt: #1719) + + Mention that References: and Date: cannot be changed in editor. + (Closes: #191850, Mutt: #1234). + * Refreshing patches from upstream: + + compressed-folders. + + sidebar. (Closes: #470657) + * Update doc-base section. + + -- Christoph Berg Sat, 24 May 2008 19:36:44 +0200 + +mutt (1.5.17+20080114-1) unstable; urgency=low + + * New upstream snapshot (hg 130aa0517251), and this time build a proper + orig.tar.gz tarball. + + Fixes message corruption/duplication. (Closes: #459739) + + -- Christoph Berg Mon, 14 Jan 2008 23:26:14 +0100 + +mutt (1.5.17-2) unstable; urgency=low + + * Build a mutt-patched package to apply the sidebar patch. Thanks to Dato + who had the right idea for the necessary debian/rules magic during the + recent debian-qa meeting in Extremadura. (Closes: #277637) + * Build a mutt-dbg package, and bump DH level to 5. + * Grab current hg tip from upstream (68a9c3e74f9a). + + Fixes "mailto:" URL parsing. + (Closes: #426148, #426158, #446016, Mutt: #2968, #2980) + + 'set folder= =' won't segfault. (Closes: #448728) + + Improve DSN docs. (Closes: #436228) + * Bump Standards-Version, add Homepage field. + + -- Christoph Berg Tue, 01 Jan 2008 20:00:33 +0100 + +mutt (1.5.17-1) unstable; urgency=low + + [ Adeodato Simó ] + * Move the packaging back to Bazaar, adjust X-VCS-* accordingly. + + [ Christoph Berg ] + * Mention libsasl2-modules-gssapi-mit in README.Debian. (Closes: #433425) + * Call autoreconf at build time, drop the autotools-update patch. + * Update menu file, add lintian override file. + * Refresh patches. + + * New upstream version: + + fix segfaults with single byte 8-bit characters in index_format. + (Closes: #420598, Mutt: #2882) + + properly render subject headers with encoded linefeeds. + (Closes: #264014, Mutt: #1810) + + only calls gnutls_error_is_fatal when gnutls_record_recv returns a + negative value. (Closes: #439775, Mutt: #2954) + + Large file support for mutt_pretty_size(). + (Closes: #352478, #416555, Mutt: #2191) + + Do not consider empty pipes for filtering in format strings. + (Closes: #447340) + + -- Christoph Berg Sat, 03 Nov 2007 23:00:04 +0100 + +mutt (1.5.16-3) unstable; urgency=medium + + * Fix the maildir-mtime patch change in 1.5.14+cvs20070403-1 that broke + new mail message count in IMAP folders. (Closes: #421468, #428734, #433275) + + -- Adeodato Simó Thu, 19 Jul 2007 23:41:02 +0200 + +mutt (1.5.16-2) unstable; urgency=low + + * Finally a new unstable version :) + * Disable gpgme backend again, it needs two "optional" libs we do not want + to pull into "standard" now, and it is still somewhat buggy. + Reopens: #263443. + * Use gdbm instead of bdb for the cache files. + * Enable sensible_browser_position patch. + + -- Christoph Berg Thu, 28 Jun 2007 21:58:47 +0200 + +mutt (1.5.16-1) experimental; urgency=low + + * New upstream version. + * compressed-folders: grab updated patch, thanks Roland. + + -- Christoph Berg Thu, 14 Jun 2007 10:54:56 +0200 + +mutt (1.5.15+20070608-1) experimental; urgency=low + + * Muttrc.head: Temporarily set pipe_decode in the \cb urlview macro. + Closes: #423640. + * Apply patch by pywatson@gmail.com to strdup strings when sorting. + Mutt: #2515, Closes: #196545. + + -- Christoph Berg Fri, 08 Jun 2007 11:19:08 +0200 + +mutt (1.5.15+20070515-1) experimental; urgency=low + + * New snapshot. + + Removed hardcoded pager progress indicator and add %P format code to + $pager_status which contains the same information. + Mutt: #2087, Closes: #259145. + * $smime_verify_opaque_command: fallback to -noverify. + Mutt: #2428, Closes: #420014. + + -- Christoph Berg Thu, 17 May 2007 14:15:48 +0200 + +mutt (1.5.15+20070412-1) experimental; urgency=low + + * New snapshot: + + Avoid altering the argument to mutt_complete() when completion fails. + Mutt: #2871, Closes: #367405 + + Allow reply-hook to use ~h when replying from the index. + Mutt: #2866, Closes: #362919 + + Exit with a nonzero value if sending a message in batch mode fails. + Mutt: #2709, Closes: #273137 + + Make mutt more posixly-correct. Mutt: #1615, Closes: #204904 + + -- Christoph Berg Thu, 12 Apr 2007 17:04:05 +0000 + +mutt (1.5.14+cvs20070403-1) experimental; urgency=low + + * set ssl_ca_certificates_file="/etc/ssl/certs/ca-certificates.crt". + * Use /etc/ssl/certs/ca-certificates.crt as smime_ca_location if there is + none in ~/.smime/ (Closes: #255653). + * New snapshot: + + Make mutt_edit_file display error if editor return is non-zero + (Closes: #209244). + + Use ~/.muttrc as the default alias_file if no user muttrc exists + (Closes: #226500). + + Reset list.name before each list response in folder browser + (Mutt: #2444, Closes: #377783). + + Fix segfault when trying to read header cache if cwd does not exist + (Mutt: #2714, Closes: #387560). + + Make message cache write to temporary location until file is complete + (Closes: #394383). + + Use RECENT for first mailbox check if header cache check fails + (Closes: #372512). + * Patches: + + maildir-mtime: refreshed. + + -- Christoph Berg Tue, 3 Apr 2007 20:54:35 +0200 + +mutt (1.5.14+cvs20070321-1) experimental; urgency=low + + * Move source package to http://hg.debian.org/hg/pkg-mutt/debian-mutt. + * debian/control: Add XS-Vcs fields. + * New snapshot: + + More space for the "help" string (Closes: #415277). + + --buffy-size is a config option, $check_mbox_size (Closes: #379472). + * Patches: + + gpg.rc: upstream ships without absolute paths, our patch is much simpler + now. + + compressed-folders: refreshed. + * Mention /etc/Muttrc defaults in documentation (Closes: #388667). + * debian-ldap-query: Support middle names (Closes: #415653). + + -- Christoph Berg Wed, 21 Mar 2007 21:54:08 +0100 + +mutt (1.5.14+cvs20070315-1) experimental; urgency=low + + * New upstream snapshot (now from mercurial). + + send_charset supports charset-hook'd charsets (Closes: #152444). + + Regex for color patterns can be > 256 chars long (Closes: #229801). + + Reduces massive strcat use (Closes: #290701). + + Uses realpath of folders in the cache (Closes: #298121). + + Wraps help correctly on utf-8 terminals (Closes: #328921). + + Fixes typos in muttrc.5 (Closes: #366413). + + Requery IMAP capabilities after login (Closes: #384076). + + Various mutt.1 updates (Closes: #332803, #355912, #366413, #394256). + + The key binding documentation is now auto-generated, thereby documenting + some missing functions (Closes: #413144). + + Previously fixed: IMAP hangs (Closes: #413715). + * Split up Muttrc into separate files in /etc/Muttrc.d/. + * charset.rc: iconv-hooks for some commonly misused charsets + (Closes: #402027). + * Add compatibility alias file_charset for attach_charset (got renamed when + the assumed-charset patch went upstream). + * Patches: + + compressed-folders: synced with upstream. + + compressed-folders.ranty-fix: removed, went upstream. + * Packaging: + + Use quilt.make. + + Move patchlist sorting into patchlist.sh. + + -- Christoph Berg Thu, 15 Mar 2007 14:11:31 +0100 + +mutt (1.5.14+cvs20070301-1) experimental; urgency=low + + * New upstream snapshot. Hilights: + + Now features ESMTP support, yay! + + PKA support via gpgme. + + Ability to save history. + * Enable gpgme backend (Closes: #263443). + * Move mail-transport-agent from Depends to Recommends (Closes: #356297). + * /etc/Muttrc: + + Do not unset write_bcc (Closes: #304718). + + Do not unset use_from and use_domain (Closes: #283311, #398699). + + Add quotes for compressed folder hooks (Closes: #238034), + + mime_lookup application/octet-stream. + * Patches: + + assumed-charset: removed, applied upstream. + + xtitles: Removed a comment on the default of xterm_set_titles (mentioned + in #366413). + * colors.angdraug: Fix spelling (Closes: #295241). + * gpg.rc: add full path for pgpewrap (Closes: #396207). + * Update copyright holders. + + -- Christoph Berg Thu, 1 Mar 2007 22:48:53 +0100 + +mutt (1.5.13+cvs20070215-1) experimental; urgency=low + + * Update to a CVS snapshot: + Closes: #47284: newlines/spaces are removed from custom multiple header + lines + Closes: #397858: /usr/bin/mutt_dotlock: off-by-one error in mutt_dotlock.c + Closes: #400831: logic error in mutt-1.5.13/account.c + Closes: #404916: sort-mailbox by spam tag score sorting strangeness + Closes: #410678: crash when IMAP server skips messages during a FETCH + without a cast. + + * Patches: + + Reshuffle patches to move autotools-needing/updating to front. + + compressed-folders: refreshed. + + autotools-update: updated. + + tempfile-race, thread_pattern_in_UPDATING: removed, included upstream. + + New patches: + + ifdef: test for presence of features, patch by Cedric Duval. + + trash-folder, purge-message: trash folder support, also by Cedric Duval + (Closes: #263204). + + Patches shipped but not applied by default: + + chdir: change working directory. + + indexcolor: color index colums. + + w3mface: display X-Face headers using w3mimgdisplay. + + * Create /etc/Muttrc.d/ (Closes: #391961). + * Make sure reldate.h is found while building the docs. + + -- Christoph Berg Fri, 16 Feb 2007 02:04:35 +0100 + +mutt (1.5.13-2) experimental; urgency=low + + * Adding myself as uploader, thanks Dato. + * debian/rules: + + Actually support DEB_BUILD_OPTIONS=noopt. + + Do not touch stamp-h.in, touch PATCHES in clean. + * Patches: + + Moved xtitles to features/ and fixed a segfault (Closes: #365683). + + -- Christoph Berg Mon, 12 Feb 2007 18:37:44 +0100 + +mutt (1.5.13-1.1etch1) stable; urgency=low + + * Stable update. + * Grab patch from upstream: + Add imap_close_connection to fully reset IMAP state (Closes: #413715). + * Add myself to Uploaders, thanks Dato. + + -- Christoph Berg Tue, 15 May 2007 09:59:24 +0200 + +mutt (1.5.13-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Add upstream patch to fix insecure temp file generation + (Closes: #396104, CVE-2006-5297, CVE-2006-5298). + + -- Christoph Berg Tue, 12 Dec 2006 14:49:24 +0100 + +mutt (1.5.13-1) unstable; urgency=low + + * New upstream release, with a new pattern to match full threads (see + NEWS.gz). + + -- Adeodato Simó Wed, 16 Aug 2006 15:22:53 +0200 + +mutt (1.5.12-1) unstable; urgency=low + + * New upstream release. Ship upstream's UPDATING file as NEWS.gz in + /usr/share/doc/mutt. + + -- Adeodato Simó Sat, 15 Jul 2006 02:49:50 +0200 + +mutt (1.5.11+cvs20060403-2) unstable; urgency=high + + * Fix CVE-2006-3242, stack-based buffer overflow when processing an overly + long namespace from the IMAP server. (Closes: #375828) + + -- Adeodato Simó Fri, 7 Jul 2006 15:01:28 +0200 + +mutt (1.5.11+cvs20060403-1) unstable; urgency=low + + * Update to CVS 2006-04-03, which finally: + + fixes segfault when changing to an IMAP folder and the mailbox name + is implicitly INBOX. (Closes: #351337, #353550) + + -- Adeodato Simó Tue, 4 Apr 2006 06:10:12 +0200 + +mutt (1.5.11+cvs20060330-1) unstable; urgency=low + + * Update to CVS 2006-03-30, which fixes the following bugs: + + IMAP cache works again with Courier. (Closes: #351220) + + does not segfault if external query command output contains spaces. + (Closes: #351258) + + does not segfault when replying from the view-attachments menu when a + reply-hook is in use. (Closes: #352357) + + default save location for attachments which specify a path in their name + is not `dirname $attachment` anymore, but $CWD. (Closes: #301236) + + * Switch to libdb4.4. (Closes: #355433) + + -- Adeodato Simó Mon, 3 Apr 2006 02:41:15 +0200 + +mutt (1.5.11+cvs20060126-2) unstable; urgency=medium + + * Make imap_idle default to off, since it does not work with dovecot from + stable, which a lot of people use; upstream will make this change before + 1.5.12. (Closes: #351263, #354902) + + * Ignore DKIM-Signature by default in /etc/Muttrc. (Closes: #354907) + + -- Adeodato Simó Thu, 2 Mar 2006 22:42:34 +0100 + +mutt (1.5.11+cvs20060126-1) unstable; urgency=low + + * Update to CVS 2006-01-26; since this includes a huge diff between + ChangeLog and ChangeLog.old (moved entries), prepare a new tarball. + Some worth-mentioning changes: + + + Mutt can now expand its own variables as it does with envvars; for + example, it's now possible to put something like this into a hook: + set sendmail="mysmtp -f $from". + + + Support for user-defined variables starting with my_; environment + variables take precedence, and expansion does not occur in shell-escape. + + + Pattern group support, as explained (only!) in: + + + + Loooots of improvments in the IMAP code, including sync speed-ups + (through pipelining), hcache stuff (eg. $imap_cachedir), and things + like $imap_idle and support for the "old" flag in IMAP folders. + + * Rework the package build system to fit personal preference: + + debhelperize debian/rules a bit more. + + drop dbs in favor of quilt; reorganize patches a bit. + + (NOTE: quilt means that dropping patches into debian/patches is + no longer enough to get them applied; they must be listed in the + debian/patches/series file.) + + * Adjustments to debian/control: + + use '*' for the bulleted list, instead of 'o'. + + build-depend on gawk instead of mawk, to have "nextfile". + + drop conflicts and replaces on packages that are not in woody. + + * Updated debian/copyright. + + * Added debian/watch. + + -- Adeodato Simó Thu, 2 Feb 2006 05:12:18 +0100 + +mutt (1.5.11-5) unstable; urgency=medium + + * Unbreak Mutt in Turkish locales (tr_TR): include patch from CVS to use the + proper strcmp function in several places. Upstream bug #2144, reported in + both BTS by Recai Oktas. (Closes: #343655) + + * Apply patch from Nik A. Melchior to fix formatting problem in muttrc(5). + (Closes: #343030) + + -- Adeodato Simó Fri, 23 Dec 2005 23:18:44 +0100 + +mutt (1.5.11-4) unstable; urgency=low + + * Update to CVS 2005-11-24 to fix the following bug (yay): + + + does not fail to open messages that contain base64-encoded inline PGP + bits (signature, encrypted hunk, or a key). (Closes: #340116) + + Also, do not report success to decrypt an inline PGP message when + decryption actually failed. + + * Again, update my e-mail address in debian/control, yada yada. + + -- Adeodato Simó Fri, 25 Nov 2005 02:50:20 +0100 + +mutt (1.5.11-3) unstable; urgency=low + + * Update to CVS 2005-11-01, with the following worth-of-mentioning goodies + (among others): + + + full read/write >2 GB mbox support. + + attachment counting patch merged upstream (%X in index_format); check + the "Attachment Searching and Counting" section in the manual for more + information. + + And the following bugs are fixed as well: + + + S/MIME keys can be selected from the menu. (Closes: #318470) + + clarified description of pop_checkinterval. (Closes: #320642) + + * Update my e-mail address in debian/control. + + -- Adeodato Simó Fri, 11 Nov 2005 02:16:11 +0100 + +mutt (1.5.11-2) unstable; urgency=low (but fixes critical bug not in testing) + + * The fix for coping with mboxes bigger than 2 GB introduced a bug affecting + at least powerpc (but not i386) which made mutt write Content-Length: 0 in + mboxes due to a un-updated %ld format specifier. This caused for mail to + be lost in the next mbox write. + + Apply a patch quickly provided by upstream (thanks, Brendan Cully!) that + makes mutt use the right format specifier. (Closes: #330474) + + * Update the compressed folders to the 1.5.11, which includes documentation + in XML format. + + -- Adeodato Simó Fri, 30 Sep 2005 01:15:28 +0200 + +mutt (1.5.11-1) unstable; urgency=low + + * New upstream release, fixing the following bugs: + + + ~h can match folded headers. (Closes: #319654) + + implements progress indication when uploading messages to an imap + folder. (Closes: #228713) + + limit pattern is properly displayed when zero messages matched. + (Closes: #242398) + + A further CVS pull (2005-09-24) fixes the following bugs: + + + can open mboxes bigger than 2 GB. (Closes: #296940) + + does not require GPG_TTY to be set in order to accept using the GnuPG + agent: it'll set the variable itself if not present. (Closes: #316388) + + does not segfault when replying to a message if content_type is unset. + (Closes: #329306) + + does not segfault with IMAP folder completion. (Closes: #329442) + + Packaging changes needed: + + + Upstream documentation now comes in XML, so changed Build-Dependency on + linuxdoc-tools-text and groff to xsltproc, docbook-xml, docbook-xsl and + links. Added patch debian/patches/doc_build_adjustments.diff to force + the use of links instead of lynx for generating the text version of the + manual, and to not ignore errors from links and xsltproc. + + + Changed --with-sasl2 to its new name --with-sasl in debian/rules; + removed extra hunk on debian/patches/patch-1.5.4.Md.sasl2-1arc. + + + Rediffed 080_Md.Muttrc, removed patch.asp.fix-bug-266493.1 (applied + upstream). + + + Temporarily removed documentation from the compressed-folders patch, + until upstream reacts to the move to XML. + + * Build against libgnutls12 (build-depend on libgnutls-dev instead of + libgnutls11-dev). (Closes: #323279) + + * Remove spurious dash in argument to -encrypt in smime_encrypt_command. + (Closes: #315319) + + -- Adeodato Simó Sun, 25 Sep 2005 23:11:59 +0200 + +mutt (1.5.10-1) unstable; urgency=low + + * New upstream release, fixing the following bugs: + + does not store gpg passphrase when signing or decrypting has failed, + since that probably means it was wrong. (Closes: #132548) + + does not fail to delete attachments in unencrypted mails. (Closes: + #302500) + + * New functionality overview or otherwise noticeable news: + + $imap_check_subscribed variable to add the list of subscribed folders to + the buffy list. + + $braille_friendly variable to make Mutt more usable for blind users. + + $imap_login variable in case the login name on the IMAP server is + different to the name of the account ($imap_user). + + -D command line option to dump current configuration, after all + initialization files have been read. + + $imap_force_ssl gone. + + an empty limit is now interpreted as a request to cancel the current + limit. + + * Patches: + + 080_Md.paths_mutt.man: adjusted; upstream build system puts now the + right paths in mutt.1 using @bindir@. Install mutt.1 instead of mutt.man + in debian/rules. + + 080_Md.Muttrc: don't set menu_move_off in /etc/Muttrc since the + compile-time default is now what we want (pre-1.5.7 compatible). + + edit-threads, current-shortcut, incomplete-mbyte: removed, integrated + upstream. + + maildir-mtime: s/if/ifdef/ to get it to apply. + + compressed-folders: updated to 1.5.10. + + * Upstream now builds "complete" documentation, i.e., for all features + whether enabled or not. Disable that for Debian. [patch.docs-match-config.h] + + * Build-Depend on autotools-dev and use updated config.{guess,sub} at build + time to fix FTBFS on GNU/kFreeBSD. (Closes: #302735) + + * Update Standards-Version to 3.6.2 (no changes required). + + * Set myself as the maintainer, and remove Marco from Uploaders as agreed + with him. + + -- Adeodato Simó Mon, 15 Aug 2005 15:51:55 +0200 + +mutt (1.5.9-2sarge2) stable-security; urgency=high + + * Fix buffer overflow in IMAP parsing code + + -- Moritz Muehlenhoff Wed, 28 Jun 2006 17:12:05 +0000 + +mutt (1.5.9-2sarge1) stable; urgency=low + + * For attachments marked for deletion after the message is sent, don't + remove them if the message is finally cancelled, or if the attachments + are dropped from the message prior to sending. (Closes: #332972) + + -- Adeodato Simó Tue, 31 Jan 2006 01:23:28 +0100 + +mutt (1.5.9-2) unstable; urgency=high + + * Added a missing Build-Depend on mawk. (Closes: #310039) + * Updated the Swedish translation. + + -- Adeodato Simó Sun, 22 May 2005 17:29:25 +0200 + +mutt (1.5.9-1) unstable; urgency=medium + + * New upstream release, though the previous upload already included most of + it because of the CVS pull. Do another one now (2005-04-03), including the + following bits from 1.5.10: + + several translation updates (de, id, nl, pl, ru). + + a patch by Daniel Jacobowitz to synchronise message flags before moving + messages. (Closes: #163616) + + * Also, the header cache patch is now fully integrated upstream, so drop it. + + * Don't set pipe_default in debian/patches/080_Md.Muttrc, and stick to + upstream's default (unset). (Closes: #300830) + + * Updated the compressed folders patch to version 1.5.9. + + * Updated patch 080_Md.Muttrc to restore the old behaviour of the index. + + -- Adeodato Simó Sun, 03 Apr 2005 20:08:39 +0200 + +mutt (1.5.8-1) unstable; urgency=low + + * New upstream release, with a CVS pull to get all the translation updates + that happen right after a release. New features worth mentioning: + + the PGP auto decode patch by Derek Martin has been accepted upstream, + so inline PGP messages are automatically verified/decrypted now if + $pgp_auto_decode is set. (Closes: #269699) + + IDN decoding can be disabled by unseting $use_idn (set by default). + + new hook 'send2-hook', which gets executed each time there is a change + in a message being composed. This permits, for example, to match against + recipients added manually after writing the mail, which wasn't possible + with 'send-hook' alone. + + Christoph Berg's menu_context patch is also included. Check the + $menu_context and $menu_move_off variables. + + * This version also includes the following fixes: + + message flags are not lost after editing a message. (Closes: #275060) + + IMAP folder paths ending with the delimiter are trimmed so that they + don't fail to open with some servers, e.g. Courier. (Closes: #277665) + + the correct charset is used when signing a forwarded message. + (Closes: #295528) + + correctly forget the S/MIME passphrase. (Closes: #300516) + + * Explicitly pass --enable-inodesort to ./configure, since upstream has + disabled it by default in this version. + + * Updated the compressed folders patch to version 1.5.8. + + * Dropped the adjust_line and adjust_edited_file patches from + extra-patches/mutt-ja-compat, incorporated upstream. Renamed + mutt-ja-compat to assumed-charset, since that's the only patch that + remains. + + * Lots of patches in the Debian package have been applied upstream, drop + them (16 in total). Worth mentioning is the gnutls patch. The + maildir_inode_sort patch has been adopted too, with the static functions + no longer being nested, which closes: #287744 (FTBFS with gcc-4.0). + + * Implemented a conf.d style directory for mutt: other packages or local + admins may now drop configuration snippets in /etc/Muttrc.d/*.rc and have + them sourced at the end of the default Muttrc. (Closes: #285574) + + * Updated the header cache patch to version 28. The size of this patch has + been drastically reduced, since the generic code and the IMAP support has + been incorporated upstream. + + * Updated the compressed folders patch to version 1.5.8. + + * Use mixmaster-filter by default. (Closes: #299060) + + -- Adeodato Simó Fri, 25 Mar 2005 21:55:52 +0100 + +mutt (1.5.6-20040907+3) unstable; urgency=high + + * Upload targeted at sarge to include some must-have fixes. + + * Include small patch to fix imap-related segfaults in ia64, due to a buffer + length being declared as int instead of size_t in the gnutls patch. Thanks + to David Mosberger for spotting the problem. (Closes: #234783, #285001) + [New file: upstream/extra-patches/gnutls.59.size_t-fix] + + * Include (finally!) a patch that really prevents decrypt-save from deleting + the message if the supplied password was wrong. (Closes: #275188) + [New file: upstream/patches/decrypt-save_non-empty-output] + + * Updated the header-cache patch to version 25, which includes a fix to make + it possible for hcache to talk to broken Lotus IMAP servers. (Closes: #282451) + [Modified file: upstream/extra-patches/header-cache] + + * The mutt BTS has been closed due to excessive spam in their debbugs + installation. Included the patch that substitutes flea and flea.1 by a + note that states so. + [New file: upstream/patches/empty-muttbug, + removed file: debian/patches/080_Md.muttbug] + + * Removed /usr/share/bug/mutt/presubj, now useless. + + * Added Domainkey-Signature to the list of ignored headers. + [Modified file: debian/patches/080_Md.Muttrc] + + -- Adeodato Simó Fri, 28 Jan 2005 19:02:58 +0100 + +mutt (1.5.6-20040907+2) unstable; urgency=medium + + * A "Let's procrastinate some important stuff and fix a bunch of mutt bugs + instead" release. + + * Include small patch to fix the Swedish translation, which was making + impossible to turn off pgp signing and/or encrypting. (Closes: #281265) + [New file: upstream/patches/i18n-sv-fix.diff] + + * Make the default Muttrc work out the box for people using gnupg-agent. + Wrote and applied a one-line patch to make the %?p? conditional escape + work correctly, patch forwarded upstream. (Closes: #277646) + [New file: debian/patches/patch.asp.%p-escape-agent-compatible.1] + + * Relocate the definition of the USE_GNUTLS macro, so that it gets passed to + the documentation build process too. Otherwise, options that end up in the + manual wouldn't match those that are really compiled in. (Closes: #278124) + [Modified files: debian/rules, upstream/extra-patches/gnutls.debian] + + * Honour /etc/alternatives/pager in the muttbug script. (Closes: #275448) + [Modified file: debian/patches/080_Md.muttbug] + + * Include patch by Nicolas François to + fix typo in muttrc.5. (Closes: #272579) + [New file: debian/patches/patch.nf.fix-bug-272579.1] + + * Updated the (formerly unmaintained) current-shortcut patch with a new + version by Christoph Berg . Now the actual used Fcc will be + shown instead of '^' when you folder-hook . 'set record="^"'. + [Modified file: upstream/extra-patches/current-shortcut] + + * Updated the header-cache patch to version 24. + + -- Adeodato Simó Wed, 17 Nov 2004 15:17:14 +0100 + +mutt (1.5.6-20040907+1) unstable; urgency=low + + * Updated to CVS snapshot 20040907 (includes updated ja translation). + + * The maildir-mtime patch is now NOT enabled by default, you need to set the + maildir_mtime variable in your ~/.muttrc. This variable has been necessary + since people with large maildirs over NFS experienced a large performance + impact with the mtime patch enabled. (Closes: #253261) + + * Updated the header cache patch to version 21. This fixes a file descriptor + leak which could cause problems for people who keep their mutt open for a + long time. Also includes support for per-folder cache: setting $header_cache + to a directory will enable it, and you should experience some performance + gains. + + * Included the current shortcut patch. It's completely unintrusive and + allows you to specify ^ as a shortcut for the current folder (e.g., in a + Fcc). (Closes: #253104) + + * Updated the autotools stuff. Include in it also stuff from patches, so + that --enable-foo options can be used in debian/rules. Put files directly + in extra/autotools and cp from there in debian/rules instead of using a + patch file (which was too big due to automake1.4/autoconf2.13 => 1.8/2.50 + migration). + + * debian/rules: + + use --enable-compresed --enable-hcache --without-gdbm in configure. + + copy autotools files from extra/autotools when unpacking, and emulate + the 000_Md.config.h.in patch. + + * debian/patches/: + + removed 000_Md.config.h.in, no longer needed since config.h.in is now + overwritten from extra/autotools. + + added patch.asp.fix-bug-266493.1, which makes mutt not wait for a + keypress to handle SIGWINCH in certain situations. (Closes: #123943, + #266493) + + -- Adeodato Simó Tue, 21 Sep 2004 01:39:22 +0200 + +mutt (1.5.6-20040818+1) unstable; urgency=low + + * The post-Sarge era officially begins for mutt. This mostly means + that patch inclusion policy will untighten a bit. + + * Added the maildir/imap header caching patch by Thomas Glanzmann, see: + . For a quick + start, read documentation for the $header_cache variable. + (Closes: #242762, #255475) + + * Added the maildir-mtime patch by Dale Woolridge, see + . This patch should make happy + users that use maildir and have $sort_browser=reverse-date. + (Closes: #253261) + + * Reorganized patches location: + + patches not written by the mutt maintainers are now in the + upstream/extra-patches directory. + + each patch in that directory now contains a preamble listing: + - the patch author + - the patch home page + - last time patch was updated + - exact URL to the patch file + - applied changes, if any + + all preambles are available in the doc/README.Patches file, and + debian/copyright now points to this file too. + + * Other changes in upstream/extra-patches/: + + updated the edit-threads patch. + + updated the compressed-folders patch. + + * Updated to CVS snapshot 20040818: + + various memory leaks spotted and fixed. + + several translations updated: pl, sv, fr, id, nl, de, ca, cs. + The Czech translation addresses a bad chosen shorcut in the crypt menu, + and thus closes: #140639. Updated German translation closes: #265120. + + fix some UI flaws in the new PGP and S/MIME menus which could easily + make the user send in clear mail which was meant to be signed and/or + encrypted (the (e)ncrypt, (s)ign and (b)oth commands were toggles). + Also renamed the (f)orget action to (c)lear for newbie's benefit; accept + the (f) key for long time users' benefit. + + make mutt not hang if STARTTLS fails to complete the SSL handshake. + + try all methods in $imap_authenticators when one of them fails; + previously mutt would give up upon the first of them failing. + + * debian/: + + scripts/vars: add upstream/extra-patches to SRC_PATCH_DIR. + + control: Build-Depend on libdb4.2-dev for the header-cache patch. + + rules: call scripts/patch-preamble to create the README.Patches file. + + copyright: add pointer to README.Patches, where patch authors are listed. + + * debian/patches/: + + updated 000_VERSION to reflect new snapshot date. + + removed obsolete #defines from 000_Md.config.h.in. Added #include + "debian-config.h" there, which is used by upstream/extra-patches/*.debian. + + removed patch.asp.fix-bug-260578.1, included upstream. + + * debian/rules: sort the PATCHES file, which is printed by `mutt -v`. + + -- Adeodato Simó Sat, 21 Aug 2004 20:53:39 +0200 + +mutt (1.5.6-20040803+1) unstable; urgency=low + + * Updated to CVS snapshot 20040803: + + fixes the code that closed #213412. + * debian/control: + + Rebuilt against gnutls11. (Closes: #263067, #263625) + + List myself in Uploaders field. + * debian/patches/: + + updated 000_VERSION to reflect new snapshot date. + + removed patch-1.5.6.tt.compat.1.asp.fix.1, which was not meant to be + included in the last upload. (Closes: #261951) + + update the gnutls patch to include TLS support for POP3 as well. Patch + provided by Alexander Neumann . (Closes: #260638) + + -- Adeodato Simó Thu, 5 Aug 2004 18:13:33 +0200 + +mutt (1.5.6-20040722+1) unstable; urgency=high + + * Updated to CVS snapshot 20040722: + + bugfixes: + - does not segfault when chdir'ing to a directory without read + permission. (Closes: #237426) + - does not segfault when applying check-traditional-pgp to multiple + messages. (Closes: #257277) + - uses the right From address when composing a new message from the + pager and $reverse_name is set. (Closes: #249870) + - initial IMAP header download does not take quadratic time on the + number of messages. (Closes: #213412) + + new functionality: + - support for spam-scoring filters (see §3.24 of the fine manual). + - $include_onlyfirst: controls whether or not Mutt includes only the + first attachment of the message you are replying. + - $hide_thread_subject: when unset, mutt will show the subject for all + messages in a thread. + - uses List-Post header when doing list-reply. (Initial RFC 2369 support, + closes: #49048) + * debian/patches/: + + updated 000_VERSION to reflect new snapshot date. + + updated the following patches to apply cleanly: + - 001_patch-1.5.4.rr.compressed.1 [Makefile.in] + - 002_patch-1.5.5.1.admcd.gnutls.59 [globals.h] + - patch-1.5.3.cd.edit_threads.9.2-1arc [mutt.h] + + updated patch-1.5.6.tt.compat.1 (does not close #259145). + + removed patch-1.5.3.Md.gpg-agent, issue fixed upstream. + + added patch-1.5.6.helmersson.incomplete-mbyte.2 by Anders Helmersson + to avoid passing incomplete multibyte sequences to regexec(), which can + cause segfaults due to libc6 Bug#261135. (Closes: #254314, #260623) + [Yes, this is a sequel, not a dejà-vu.] + + added patch.asp.fix-bug-{210679,254294,258621,260578}.1, which fix + several minor issues unaddressed by upstream for some time. All patches + submitted upstream. (Closes: #210679, #254294, #258621, #260578). + * debian/rules: + + be robust to any locale by exporting LC_ALL=C. (Closes: #253048) + + touch some autotools files to prevent having them to be built again. + * Using "urgency=high" at maintainer's discretion + + -- Adeodato Simó Wed, 21 Jul 2004 19:31:55 +0200 + +mutt (1.5.6-20040523+2) unstable; urgency=low + + * Renamed patch-1.5.5.1.tt.compat-fix to patch-1.5.5.1.tt.compat.2-fix. + (Closes: #253048) + + -- Marco d'Itri Mon, 7 Jun 2004 00:45:40 +0200 + +mutt (1.5.6-20040523+1) unstable; urgency=low + + * This release is based on the work of Adeodato Simó . + * Updated to CVS snapshot 20040523: + + now mutt includes better support for inline/traditional signing and + encrypting. See http://www.woolridge.ca/mutt/pgp-menu-traditional.html + for details. (Closes: #190204) + + sourcing output of a command works again. (Closes: #247007) + + corrected .PP usage in flea.1 and mbox.5. (Closes: #237827) + + do not eat chars on rfc822-valid From:address lines (i.e., when there + is no space between the colon and address; fixes the already archived + #226759). + * debian/patches/: + + added 000_VERSION: reflect CVS snapshot date. + + removed 081_nbrown.auth_imap_plain: included upstream. + + added patch-1.5.5.1.tt.compat-fix: introduces a fix for the compat + patch which prevents mutt from segfaulting when there is binary junk + in headers. (Closes: #233315, #247366, #249588) + + removed patch-1.5.4.Md.gpg_by_keyid-1arc: no longer needed. + (Closes: #250108, #248994) + + added 004_ranty.fix-compressed: written some time ago by Manuel Estrada + to prevent mutt from deleting a message if saving to a compressed folder + fails. In memoriam. (Closes: #210429) + + added patch-1.5.6.asp.pgp_getkeys: set pgp_getkeys_command in Muttrc. + Currently commented out because of #172960. (Closes: #237691) + + 080_Md.Muttrc: make colors respect terminal scheme. (Closes: #86393) + * debian/rules: pass --enable-debug to configure. (Closes: #198073) + + -- Marco d'Itri Sun, 6 Jun 2004 01:17:14 +0200 + +mutt (1.5.6-1) unstable; urgency=low + + * New upstream release. Old configuration files may become incompatible, + see NEWS.Debian.gz for details. + * Added debian/NEWS. + * debian/patches/: + - updated patch-1.5.4.Md.gpg_by_keyid-1arc - pgp_export_command uses %r + instead %k. (Closes: #223960) + - updated 002_patch-1.5.5.1.admcd.gnutls.59 - mutt can save server's + certificate. (Closes: #228607, #234623, #236886) + - removed 000_VERSION (not needed in this release). + - removed 004_patch-1.5.5.1.Md.libgnutls10 - included in + 002_patch-1.5.5.1.admcd.gnutls.59. + - added 081_nbrown.auth_imap_plain - mutt can authenthicate itself to imap + server via sasl2 using PLAIN method, thanks to Neil Brown. + (Closes: #206078, #214758) + - removed patch-1.5.4.helmersson.incomplete_multibyte because it's broken. + (Closes: #244549) + - removed 003_patch-1.4.admcd.gnutlsdlopen.53, now the mutt binary will + be linked with libgnutls. (Closes: #228279, #228323, #230287) + - updated patch-1.3.27.bse.xtitles.1 with patch-1.5.5.1.nt.xtitles.3.ab.1. + * Update the default MTA: Depend on exim4 | mail-transport-agent. + (Closes: #228560) + * This release is the work of Artur R. Czechowski. + + -- Marco d'Itri Sun, 2 May 2004 18:02:10 +0200 + +mutt (1.5.5.1-20040112+1) unstable; urgency=medium + + * Build-Depend on libidn11-dev instead of libidn9-dev + and libgnutls10-dev instead of libgnutls7-dev. (Closes: #226910, #227426) + * Updated to CVS snapshot 20040112: + + fixed manual (Closes: #226936) + + fixed pgp_retainable_sigs (Closes: #226424) + * New patch patch-1.4.1.tt.compat.1-ter, a part of mutt-ja which allows + configuring a default character set to be used for non-MIME messages. + (Closes: #222191) + * Added a note about temporary files to README.Debian. + (Closes: #141143, #222125) + * New patch 100_arc.smime_descripitive_messages which adds some + error messages to smime_keys.pl. (Closes: #226696) + * Conflicts/Replaces mutt-utf8. + * New patch 004_patch-1.5.5.1.Md.libgnutls10. + * This release is the work of Artur R. Czechowski. + + -- Marco d'Itri Sat, 17 Jan 2004 17:50:16 +0100 + +mutt (1.5.5.1-20040105+1) unstable; urgency=low + + * New upstream release: + + fixed infinite loop during attachment saving. (Closes: #219314, #224654) + * Updated to CVS snapshot 20040105: + + fixed a lot of crashes/coredumps. + (Closes: #141214, #141468, #192341, #197322, #219499, #223663) + + honor Reply-To while generating Mail-Followup-To headers. + (Closes: #182526) + + improved colouring of thread tree. (Closes: #219594) + + fixed retrieving mail via preauth imap over ssh. (Closes: #209025) + * debian/rules: added extra-clean target to delete *.orig and *.rej files + when debian/sys-build.mk make-diff is called. + * Modified patches to apply without conflicts: + + 001_patch-1.5.4.rr.compressed.1 + + 003_patch-1.4.admcd.gnutlsbuild.53 + * Suggests libgnutls7 instead libgnutls5 (Closes: #217716), updated + README.Debian. + * Added README.SMIME. (Closes: #222903) + * smime_keys moved to /usr/bin. (Closes: #222905) + * Suggests ca-certificates and openssl. + * Killed mutt-utf8. + * This release is the work of Artur R. Czechowski. + + -- Marco d'Itri Tue, 6 Jan 2004 15:38:58 +0100 + +mutt (1.5.4+20031024-1) unstable; urgency=medium + + * New CVS snapshot. (Closes: #133021, #207242, #208430, #213007, #213917) + * Fix FTBFS bug in debian/control. (Closes: #216508) + * Compiled with libgnutls7. (Closes: #209722) + * New patch patch-1.5.4.fw.maildir_inode_sort. (Closes: #212664) + * New patch patch-1.5.4.helmersson.incomplete_multibyte. + (Closes: #187991, #188605) + * New patch patch-1.5.4.Md.gpg_by_keyid. (Closes: #210668) + * Removed README.NFS, as it talks about 2.0 and 2.2 kernels. + * Removed reference to $AGENT_SOCKET from README.Debian. (Closes: #215412) + + -- Marco d'Itri Fri, 24 Oct 2003 15:06:01 +0200 + +mutt (1.5.4+20030913-1) unstable; urgency=medium + + * New CVS snapshot. (Closes: #210354, #210423) + * Added patch-1.5.3.vk.pgp_verbose_mime. (Closes: #201306) + + -- Marco d'Itri Sat, 13 Sep 2003 15:59:49 +0200 + +mutt (1.5.4+20030817-1) unstable; urgency=medium + + * New CVS snapshot, packaged with the great help of arturcz@hell.pl + (co-maintainer). (Closes: #138966) + * Switched to libsasl2. (Closes: #201210) + * Removed hcache patch. + (Closes: #189999, #194843, #196832, #196978, #197182, #199052) + * Updated gnutls patch to 002_patch-1.5.4.admcd.gnutls.56. (Closes: #196117) + * Removed libdb4.0-dev from Build-Depends (Closes: #204015) + * /etc/Muttrc: call gpg without a path. (Closes: #193756) + * locales upgraded to Recommended status. + * Added an icon. (Closes: #188726) + * Make pgp_import_command nonverbose. (Closes: #195310) + + -- Marco d'Itri Sun, 17 Aug 2003 15:56:55 +0200 + +mutt (1.5.4-1) unstable; urgency=high + + * New upstream release. (Closes: #142266, #148858, #169740, #178563) + * Fixes remotely exploitable buffer overflow in the IMAP code. + (Core Security Technologies Advisory CORE-2003-03-04-02.) + * Removed again BUFFY_SIZE support, too many people complained. + Added a note to README.Debian. + * Provides: imap-client. (Closes: #183351) + * Always include the whole certificates chain in S/MIME mail to comply + with RFC 2315 spirit. (Closes: #182477) + * Applied ME's headers caching patch (provided by Nicolas Bougues). + * Fixed pgpewrap core dump. (Closes: #170666) + + -- Marco d'Itri Thu, 20 Mar 2003 15:06:13 +0100 + +mutt (1.5.3-3) unstable; urgency=medium + + * Recompiled to fix missing dependencies information. (Closes: #181167) + + -- Marco d'Itri Sun, 16 Feb 2003 11:46:46 +0100 + +mutt (1.5.3-2) unstable; urgency=medium + + * Compiled with BUFFY_SIZE. (Closes: #179970) + * Stop generating escape codes in the manual. (Closes: #167006) + * Set the default editor as specified by policy. (Closes: #177245) + + -- Marco d'Itri Fri, 14 Feb 2003 19:13:15 +0100 + +mutt (1.5.3-1) unstable; urgency=low + + * New upstream release (Closes: #112865, #165397, #168907, #169018). + * Suggests ispell | aspell (Closes: #175324). + * Add & and = to the URL coloring regex (Closes: #169646). + * Removed message-hook for clearsigned PGP messages (Closes: #168275). + * Removed obsolete patch-1.4.0.dw.pgp-traditional.2. + * By popular (?) demand, use /etc/mailname and only if it fails fall + back to gethostbyname(3) and then to uname(2) (Closes: #167549). + + -- Marco d'Itri Tue, 14 Jan 2003 18:31:01 +0100 + +mutt (1.4.0-5) unstable; urgency=medium + + * Try a different strategy to find the FQDN. Stop using /etc/mailname. + (Closes: #166060). + * Suggests: mixmaster (Closes: #166360). + * Updated copyright file (Closes: #163783). + * *Really* enable --enable-imap-edit-threads (Closes: #162352). + * Ignore Microsoft Thread-* header (Closes: #161473). + * Do not ask the password if gpg-agent or quintuple-agent are active + (Closes: #161508). + * Applied patch-1.5-me_editor.1 (Closes: #72318). + * Applied patch-1.5.1.tlr.mailboxes-overflow.1 (Closes: #153751). + * Applied patch-1.4-me.regex_doc.1 (Closes: #162550). + * Removed patch-1.3.15.sw.pgp-outlook.1 in favour of + patch-1.4.0.dw.pgp-traditional.2. All "traditional" PGP messages now + use text/plain. + + -- Marco d'Itri Tue, 29 Oct 2002 14:38:52 +0100 + +mutt (1.4.0-4) unstable; urgency=medium + + * Recompile with newer libgnutls5 (Closes: #160114). + * Updated contrib/colors.angdraug. + * Updated 010_patch-1.4.admcd.gnutls.55. + + -- Marco d'Itri Tue, 17 Sep 2002 16:07:50 +0200 + +mutt (1.4.0-3) unstable; urgency=medium + + * *Really* compile mutt with --enable-imap-edit-threads (Closes: #154864). + * *Really* merge the Maildirs new messages patch (Closes: #151582). + * Recompile with libgnutls5 (Closes: #152787, #157120). + + -- Marco d'Itri Sun, 18 Aug 2002 16:59:06 +0200 + +mutt (1.4.0-2) unstable; urgency=low + + * Update GNUTLS patch and link against gnutls4. (Closes: #152141). + * Link mutt-utf8 against libncursesw5 instead of slang1a-utf8. + * set pipe_decode=yes in /etc/Muttrc (Closes: #151460). + * Compile mutt with --enable-imap-edit-threads (Closes: #150274). + * Make debian/scripts/lib work even if $CDPATH is set (Closes: #152678). + * Merged patch to fix spurious new message notifications with Maildirs + (Closes: #151582). + + -- Marco d'Itri Fri, 12 Jul 2002 03:34:48 +0200 + +mutt (1.4.0-1) unstable; urgency=medium + + * New upstream release (Closes: #146889, #149348, #148558). + * Updated patch edit_threads.9.2 (Closes: #146451). + * Priority of mutt-utf8 changed from optional to extra. + + -- Marco d'Itri Mon, 10 Jun 2002 21:26:08 +0200 + +mutt (1.3.28-2) unstable; urgency=medium + + * Moved into main. + * Suggests: libgcrypt1, gnutls3 (Closes: #140970). + * Added patch from CVS to fix crash with UTF-8 locales (Closes: #126336). + + -- Marco d'Itri Sat, 6 Apr 2002 18:35:01 +0200 + +mutt (1.3.28-1) unstable; urgency=medium + + * New upstream release (Closes: #138200). + * Updated GNUTLS patch. + * Make flea(1) work even if bug(1) is not installed (Closes: #138273). + * Added /usr/share/bug/mutt/presubj file (Closes: #138274). + + -- Marco d'Itri Tue, 19 Mar 2002 14:42:39 +0100 + +mutt (1.3.27-5) unstable; urgency=medium + + * Added build dependancy on linuxdoc-tools-text (Closes: #137890). + * Use sensible-pager instead of zless to read the manual (Closes: #136206). + * Added example colors scheme contributed by Dmitry Borodaenko. + + -- Marco d'Itri Mon, 11 Mar 2002 19:40:20 +0100 + +mutt (1.3.27-4) unstable; urgency=high + + * Recompiled against new slang packages (Closes: #133255, #134115). + * Added patch-1.3.27.me.aliasdups.1 (Closes: #133559). + * Updated GNUTLS patch. + * Added missing flea(1) symlink (Closes: #133646). + + -- Marco d'Itri Sun, 17 Feb 2002 03:27:50 +0100 + +mutt (1.3.27-3) unstable; urgency=high + + * Recompiled against new slang and packages (Closes: #132644). + * Title bar is changed on more xterm variants (Closes: #131178). + * Removed obsolete advice about shred from README.Debian (Closes: #132786). + + -- Marco d'Itri Sun, 10 Feb 2002 13:26:20 +0100 + +mutt (1.3.27-2) unstable; urgency=high + + * Updated GNUTLS patch (Closes: #131386, #131424). + * Added patch-1.3.27.me.listfrom_doc.1 (Closes: #45706). + * Added missing -fPIC (Closes: #131209). + * Added missing commas in charset.c (Closes: #130481). + + -- Marco d'Itri Thu, 31 Jan 2002 15:23:34 +0100 + +mutt (1.3.27-1) unstable; urgency=medium + + * New upstream release. + * Small fix to pt_BR translation (Closes: #130416). + * Hide gpg status messages (Closes: #127519). + + -- Marco d'Itri Tue, 22 Jan 2002 20:18:21 +0100 + +mutt (1.3.26-1) unstable; urgency=medium + + * New upstream release. + * Removed patch-1.3.25.chip.fast-limited-threads because the patched + code has changed. + + -- Marco d'Itri Sat, 19 Jan 2002 19:30:13 +0100 + +mutt (1.3.25-5) unstable; urgency=high + + * Added build dependancy on groff (Closes: #129605, #129698). + + -- Marco d'Itri Thu, 17 Jan 2002 19:03:29 +0100 + +mutt (1.3.25-4) unstable; urgency=high + + * Forced build dependancy on newer gnutls-dev (Closes: #129283). + * Updated GNUTLS patch (Closes: #129291). + + -- Marco d'Itri Wed, 16 Jan 2002 19:47:45 +0100 + +mutt (1.3.25-3) unstable; urgency=medium + + * Force documentation rebuilding (Closes: #128758, #129045). + * TLS patch update from Andrew McDonald (Closes: #125924, #128718, #129039). + * Suggests gnutls0. + * Fixed typo in manual (Closes: #128836). + * Added patch-1.3.25.chip.fast-limited-threads, which is supposed to + speed up limited threaded display (Closes: #128174). + * Added patch-1.3.25.tlr.attach_overwrite.1 (Closes: #126122). + + -- Marco d'Itri Sun, 13 Jan 2002 17:18:21 +0100 + +mutt (1.3.25-2) unstable; urgency=low + + * Force dependancy on slang1-utf8 (Closes: #127938). + * Enable again optimization (Closes: #127653, #127682). + * Enable {open,close,append}-hook by default again (Closes: #127894). + + -- Marco d'Itri Sun, 6 Jan 2002 19:35:57 +0100 + +mutt (1.3.25-1) unstable; urgency=high + + * New upstream release, fixes remotely exploitable buffer overflow. + * Fixed mutt_dotlock permissions + (Closes: #127264, #127265, #127278, #127308, #127312, #127357). + + -- Marco d'Itri Wed, 2 Jan 2002 18:49:54 +0100 + +mutt (1.3.24-3) unstable; urgency=medium + + * A new mutt-utf8 package is generated (Closes: #99898). + * Added patch-1.3.24.de.new_threads.3 to fix segfaults while sorting + thread (Closes: #123658). + * Added --status-fd option to gpg command line and working $pgp_good_sign + variable to default /etc/Muttrc (see #110414 and #123273 for details). + * Updated thread editing patch to patch-1.3.24.cd.edit_threads.8. + * Added patch-1.3.24.appoct.2 to lookup application/octet-stream files + extensions in mime.types. + * Fixed coredump processing in flea(1) (Closes: #123081). + * Removed obsolete contrib/pgp-macros. + + -- Marco d'Itri Thu, 27 Dec 2001 03:32:16 +0100 + +mutt (1.3.24-2) unstable; urgency=medium + + * Added better GNUTLS code from Andrew McDonald. + * Added again threads editing patch. + * Enable {open,close,append}-hook by default again (Closes: #115473). + * Removed default $pgp_good_sign from Muttrc (related to #110414). + + -- Marco d'Itri Wed, 5 Dec 2001 02:26:13 +0100 + +mutt (1.3.24-1) unstable; urgency=high + + * New upstream release (Closes: #74484, #98630, #114938). + * Added conflict with gnutls < 0.2.9 (Closes: #121645). + * Fixed mailspell script (Closes: #120446). + * Removed 000_patch-1.3.22.1.cd.edit_threads-5.1. + * Added 000_patch-1.3.23.1.ametzler.pgp_good_sign (Closes: #110414). + + -- Marco d'Itri Fri, 30 Nov 2001 22:52:42 +0100 + +mutt (1.3.23-4) unstable; urgency=high + + * Added Build Dependandcies on libgcrypt-dev and zlib1g-dev + (Closes: #119309). + * Added a comment to README.Debian about stunnel (Closes: #115421). + * Removed safefilter script (Closes: #118630). + * Added the broken-outlook-pgp-clearsigning patch (Closes: #120090). + + -- Marco d'Itri Fri, 30 Nov 2001 20:49:02 +0100 + +mutt (1.3.23-3) unstable; urgency=high + + * Moved to non-US (Closes: #118294). + + -- Marco d'Itri Mon, 5 Nov 2001 12:06:43 +0100 + +mutt (1.3.23-2) unstable; urgency=medium + + * Added SSL support using GNUTLS. WARNING: requires the CVS library! + * Added unpack target to debian/rules (Closes: #115765). + * Fixed account-hook (Closes: #117125). + * Added default compression hooks to /etc/Muttrc (Closes: #115473). + + -- Marco d'Itri Sun, 4 Nov 2001 13:59:25 +0100 + +mutt (1.3.23-1) unstable; urgency=medium + + * New upstream release (Closes: #106864, #106229, #110414) + (Closes: #69135, #89195, #92651, #97319, #98627). + * Added README.NFS note from the liblockfile maintainer (Closes: #96788). + * Fixed gpg operations (Closes: #113458, #114163, #114938). + * Fixed compressed folder patch (Closes: #114199). + * Highlight https URLs too (Closes: #113791). + + -- Marco d'Itri Wed, 10 Oct 2001 02:30:15 +0200 + +mutt (1.3.22-2) unstable; urgency=medium + + * Renamed dotlock.1 (Closes: #112545). + * Fixed the threads editing patch (Closes: #112554). + + -- Marco d'Itri Wed, 19 Sep 2001 12:18:47 +0200 + +mutt (1.3.22-1) unstable; urgency=low + + * New upstream release (Closes: ). + * Old bugs fixed in the last NMU (Closes: #29884, #101075, #101484) + (Closes: #101890, #101890, #102439, #106863, #104469, #105391) + (Closes: #110262). + * Fixed bashism in vars.build (Closes: #104137). + * Updated libssl package name in README.Debian (Closes: #96564). + * Added a note about temporary files in README.Debian (Closes: #89277). + * Added a note about locales in README.Debian (Closes: #105545). + * Included threads editing patch (Closes: #111291). + * Fixed paths in mutt.man (Closes: #110462). + + -- Marco d'Itri Sat, 15 Sep 2001 17:33:51 +0200 + +mutt (1.3.19-1) unstable; urgency=low + + * New upstream release (Closes: #81155, #93830, #95426, #100298, #101075). + (Closes: #101451). + * Suggests locales instead of i18ndata (Closes: #98814). + + -- Marco d'Itri Tue, 22 May 2001 13:42:34 +0200 + +mutt (1.3.18-1) unstable; urgency=low + + * New upstream release (Closes: #81155, #92234, #90400, #92860, #95426) + (Closes: #88358, #92846, #92847, #91979, #97658, #98014). + + -- Marco d'Itri Tue, 22 May 2001 13:42:34 +0200 + +mutt (1.3.17-1) unstable; urgency=high + + * New upstream release (Closes: #89011, #82372, #86228, #83187). + + -- Marco d'Itri Sun, 1 Apr 2001 22:09:27 +0200 + +mutt (1.3.15-2) unstable; urgency=high + + * Built again without linking libiconv. + + -- Marco d'Itri Wed, 14 Feb 2001 23:02:23 +0100 + +mutt (1.3.15-1) unstable; urgency=low + + * New upstream release (Closes: #81873, #81155, #81640, #76922). + * Added more headers to the ignore list. + * Removed dh_suidregister (Closes: #84826). + * Removed US-ASCII charset-hook (Closes: #81240). + * Commented all "color header" lines in the default /etc/Muttrc. + * Fixed default colors on white background xterm. + + -- Marco d'Itri Mon, 12 Feb 2001 23:34:41 +0100 + +mutt (1.3.12-2) unstable; urgency=low + + * Fixed typo in muttbug (Closes: #79230). + * Added menu hints (Closes: #80067). + * Compiled with libsasl (Closes: #78746). + + -- Marco d'Itri Sun, 24 Dec 2000 12:18:23 +0100 + +mutt (1.3.12-1) experimental; urgency=low + + * Packaged the development tree (Closes: #60459, #73050, #75885, #77856). + * Documented the fact that pgp_encryptself is gone and will not be back + (Closes: #47833, #69221). + + -- Marco d'Itri Tue, 28 Nov 2000 02:25:50 +0100 + +mutt (1.2.5-5) unstable; urgency=low + + * Added support for libc6 2.2 compressed charmaps + (Closes: #74975). + * Updated README.Debian about SSL support (Closes: #75895). + * Added the compressed folder patch (Closes: #76224). + * Removed some colorization (Closes: #77976). + + -- Marco d'Itri Mon, 27 Nov 2000 18:46:25 +0100 + +mutt (1.2.5-4) stable unstable; urgency=high + + * Typo in debian-ldap-query prevented it from running (#74575). + + -- Marco d'Itri Sun, 29 Oct 2000 13:09:42 +0100 + +mutt (1.2.5-3) stable unstable; urgency=high + + * ====> Removed non GPL-compatible SHA code (patch-1.3.9.tlr.sha.1). <==== + * ====> Disabled linking with the GPL-incompatible openssl library. <==== + * Update debian-ldap-query for new libnet-ldap-perl package (Closes: #74575). + + -- Marco d'Itri Thu, 12 Oct 2000 10:28:10 +0200 + +mutt (1.2.5-2) unstable; urgency=low + + * Disallow suspend by default if mutt is the session leader (Closes: #64169). + * Fixed the check for optional crypto libraries (Closes: #68518). + * Added build dependency to debhelper (Closes: #68401). + * Added some info to README.NFS (Closes: #71163). + * Added ispell wrapper. + + -- Marco d'Itri Thu, 21 Sep 2000 19:43:57 +0200 + +mutt (1.2.5-1) unstable; urgency=low + + * New upstream release (Closes: #67885, #65999, #67420, #65638, #62580). + (Closes: #67420). + * Fixed charmaps handling for autobuilders (Closes: #67609).\ + * Added debian-ldap-query script. + * mutt_imap_*_.so and pgp* moved to /usr/lib/mutt/. + * Added safefilter contributed script. + + -- Marco d'Itri Tue, 1 Aug 2000 18:22:58 +0200 + +mutt (1.2-1) unstable; urgency=low + + * New upstream release. + * Fixed manual.txt.gz path in F1 macro (Closes: #63384). + + -- Marco d'Itri Sun, 7 May 2000 19:51:09 +0200 + +mutt (1.1.12-1) unstable; urgency=low + + * New upstream release. + * Removed duplicated install-docs commands (Closes: #60788). + + -- Marco d'Itri Mon, 20 Mar 2000 22:14:53 +0100 + +mutt (1.1.9-1) unstable; urgency=low + + * New upstream release (Closes: #60139, #57965, #60139). + * pgp_sign_micalg=pgp-sha1 added to the default Muttrc (Closes: #59765). + + -- Marco d'Itri Wed, 15 Mar 2000 10:57:49 +0100 + +mutt (1.1.5-1) unstable; urgency=low + + * New upstream release (Closes: #56011, #58703). + + -- Marco d'Itri Sat, 26 Feb 2000 15:13:09 +0100 + +mutt (1.1.4-1) unstable; urgency=low + + * New upstream release. + + -- Marco d'Itri Wed, 16 Feb 2000 01:14:31 +0100 + +mutt (1.1.3-1) unstable; urgency=low + + * New upstream release (Closes: #57373, #57155, #57533, #56970). + * Fixed Pine.rc (Closes: #57647). + + -- Marco d'Itri Wed, 16 Feb 2000 01:14:20 +0100 + +mutt (1.1.2-2) unstable; urgency=low + + * README.UPDATE installed in the documentation directory (Closes: 56970). + * Patched for run time loading of SSL and Kerberos libraries. + + -- Marco d'Itri Thu, 10 Feb 2000 23:56:21 +0100 + +mutt (1.1.2-1) unstable; urgency=low + + * New upstream release (Closes: #30639, #28727). + * Fixed color problems in xterms. + + -- Marco d'Itri Tue, 1 Feb 2000 12:31:26 +0100 + +mutt (1.1.1-1) experimental; urgency=low + + * My christmas present: packaged the development tree. + + -- Marco d'Itri Sun, 19 Dec 1999 12:08:53 +0100 + diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..0354034 --- /dev/null +++ b/debian/clean @@ -0,0 +1 @@ +aclocal.m4 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..18060d7 --- /dev/null +++ b/debian/control @@ -0,0 +1,61 @@ +Source: mutt +Section: mail +Priority: standard +Maintainer: Antonio Radici +Uploaders: Christoph Berg +Build-Depends: automake, debhelper (>> 7), docbook-xml, docbook-xsl, + elinks-lite | elinks, gawk, gettext, libgnutls-dev, + libgpgme11-dev, libidn11-dev, libkrb5-dev, libncurses5-dev, libncursesw5-dev, + libsasl2-dev, pkg-config, quilt, xsltproc, zlib1g-dev, + libtokyocabinet-dev [!hurd-i386], libgdbm-dev [hurd-i386] +Standards-Version: 3.8.4 +Vcs-Git: git://git.debian.org/git/pkg-mutt/mutt.git +Vcs-Browser: http://git.debian.org/?p=pkg-mutt/mutt.git +Homepage: http://www.mutt.org/ + +Package: mutt +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: default-mta | mail-transport-agent, locales, mime-support, libsasl2-modules +Suggests: urlview, aspell | ispell, gnupg, mixmaster, openssl, ca-certificates +Provides: mail-reader, imap-client +Conflicts: mutt-utf8 +Replaces: mutt-utf8 +Description: text-based mailreader supporting MIME, GPG, PGP and threading + Mutt is a sophisticated text-based Mail User Agent. Some highlights: + . + * MIME support (including RFC1522 encoding/decoding of 8-bit message + headers and UTF-8 support). + * PGP/MIME support (RFC 2015). + * Advanced IMAP client supporting SSL encryption and SASL authentication. + * POP3 support. + * ESMTP support. + * Message threading (both strict and non-strict). + * Keybindings are configurable, default keybindings are much like ELM; + Mush and PINE-like ones are provided as examples. + * Handles MMDF, MH and Maildir in addition to regular mbox format. + * Messages may be (indefinitely) postponed. + * Colour support. + * Highly configurable through easy but powerful rc file. + +Package: mutt-patched +Architecture: any +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, mutt (= ${binary:Version}) +Description: the Mutt Mail User Agent with extra patches + Mutt is a sophisticated text-based Mail User Agent. + . + This package adds the "sidebar" patch that lists mailboxes with new mail + in a separate column on screen. + +Package: mutt-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, mutt (= ${binary:Version}) +Description: debugging symbols for mutt + Mutt is a sophisticated text-based Mail User Agent. + . + This package contains the debugging symbols for mutt and mutt-patched; this + is supposed to be used when there is a core file which should be analyzed + using gdb. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..2feccaf --- /dev/null +++ b/debian/copyright @@ -0,0 +1,89 @@ +This is Debian's prepackaged version of Mutt, a powerful text-mode mail +user agent. + +The current maintainers for this package are: + Adeodato Simó + Christoph Berg + +Previous maintainers were: + Stephen Pitts + J.H.M. Dassen + Marco d'Itri + +Original source has been downloaded from ftp://ftp.mutt.org/mutt/: + + URL: + +The following copyright notices apply to most of the program. Some +modules are under different licenses, or in the public domain. + +Please note that this is by no means an exhaustive list of all the +persons who have been contributing to this program. Please see the +manual for a (probably still non complete) list of the persons who +have been helpful with the development of this program. + +Copyright (C) 1996-2007 Michael R. Elkins +Copyright (C) 1996-2002 Brandon Long +Copyright (C) 1997-2008 Thomas Roessler +Copyright (C) 1998-2005 Werner Koch +Copyright (C) 1999-2009 Brendan Cully +Copyright (C) 1999-2002 Tommi Komulainen +Copyright (C) 2000-2004 Edmund Grimley Evans +Copyright (C) 2006-2008 Rocco Rutte + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Contributors: + Copyright (C) 2001 Marco d'Itri + Copyright (C) 2001-2002 Oliver Ehli + Copyright (C) 2004 Brian Fundakowski Feldman + Copyright (C) 2004 g10 Code GmbH + Copyright (C) 2004 Thomas Glanzmann + Copyright (C) 2003 Bjoern Jacke + Copyright (C) 2000 Manoj Kasichainula + Copyright (C) 2001-2004 Andrew McDonald + Copyright (C) 2001 Mike Schiraldi + Copyright (C) 2000-2003 Vsevolod Volkov + Copyright (C) 2004 Tobias Werth + Copyright (C) 2005 Andreas Krennmair + Copyright (C) 2005 Peter J. Holzer + +intl subdirectory: + Copyright (C) 1995-2001 Free Software Foundation, Inc. + Contributed by Ulrich Drepper, 1995. + +On Debian systems, the complete text of the GNU General Public License +can be found in `/usr/share/common-licenses/GPL'. + +md5c.c: + Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All + rights reserved. + License to copy and use this software is granted provided that it + is identified as the "RSA Data Security, Inc. MD5 Message-Digest + Algorithm" in all material mentioning or referencing this software + or this function. + License is also granted to make and use derivative works provided + that such works are identified as "derived from the RSA Data + Security, Inc. MD5 Message-Digest Algorithm" in all material + mentioning or referencing the derived work. + RSA Data Security, Inc. makes no representations concerning either + the merchantability of this software or the suitability of this + software for any particular purpose. It is provided "as is" + without express or implied warranty of any kind. + These notices must be retained in any copies of any part of this + documentation and/or software. + +The list of authors of the applied patches to this version of mutt can +be found in `/usr/share/doc/mutt/README.Patches'. diff --git a/debian/extra/README.SMIME b/debian/extra/README.SMIME new file mode 100644 index 0000000..6bd4aa2 --- /dev/null +++ b/debian/extra/README.SMIME @@ -0,0 +1,56 @@ +This file describes how to configure mutt to use S/MIME. + +This file is almost the same as smime-notes.txt available in mutt upstream +sources, but it contains a few modifications about Debian-specific issues. + +Mutt needs some user interaction to get it ready for S/MIME. + +1. Make sure, that openssl (must be) and ca-certificates (recommended) + are installed. If not, ask your administrator to do it. + +2. Run 'smime_keys init'. + +3. If ca-certificates is installed, make a symlink: + ln -s /etc/ssl/certs ~/.smime/ca-bundle.crt + If not, there are some other packages which contain Root CA certificates, + for example: kdelibs-data, libcurl2. + This makes you trust anything that was ultimately signed by one of CA + included in symlinked crt file. + +4. Get yourself a certificate. (You can get one for free from www.thawte.com, + or pay for one from VeriSign or one of its competitors). The way the + process generally works: the certificate will be installed "into" your web + browser. If you are asked what application you wish to use the + certificate with, select Netscape. Strangely enough, "mutt" is usually not + an option. + +5. Assuming you are using Mozilla, follow the instructions at + www.verisignlabs.com/Projects/smime_docs/linux.html to export the + certificate into a file called cert.p12. If you don't use Mozilla, you're on + your own. + +6. Run 'smime_keys add_p12 cert.p12'. + * When the script asks for the "Import password", enter the one you + provided when you exported the certificate + * When it asks for a "PEM pass phrase", make up a new password. Every + time you sign or decrypt a message, mutt will ask for the PEM passphrase + * Finally, when the script asks for a label, enter an easy-to-remember + name for the certificate, such as "me". The script output will include + a line like: + added private key: /home/raldi/.smime/keys/12345678.0 for raldi@verisignlabs.com + The number (including the ".0" at the end) is your keyid. You will + need this number in the next step. + +7. Edit your .muttrc file and add a lines: + set smime_default_key=keyid + set smime_sign_as=keyid + Probably you also want to change default values for smime_timeout + and smime_encrypt_with originally set in global /etc/Muttrc + +8. Optionally, you can add following line to your ~/.mailcap to view certificate + from mutt: + application/x-pkcs7-signature;openssl pkcs7 -in %s -inform der -noout -print_certs -text | pager; needsterminal + +Last updated: Tue, 23 Dec 2003 22:35:40 +0100 +Artur R. Czechowski + diff --git a/debian/extra/lib/debian-ldap-query b/debian/extra/lib/debian-ldap-query new file mode 100755 index 0000000..f4e3ae4 --- /dev/null +++ b/debian/extra/lib/debian-ldap-query @@ -0,0 +1,48 @@ +#!/usr/bin/perl -w +# by Ben Collins , butchered by Marco d'Itri +# to use, add to ~/.muttrc: +# set query_command="/usr/lib/mutt/debian-ldap-query %s" + +use strict; + +my @attrs = qw(sn mn cn ircnick uid); +my $base = 'ou=users, dc=debian, dc=org'; +my $server = 'db.debian.org'; +my $port = 389; + +die "Usage: $0 [...]\n" if not $ARGV[0]; + +eval 'require Net::LDAP;'; +if ($@) { + $@ =~ s/ in \@INC.*/./; + die "Could not load Net::LDAP: $@\n" . + "(Warning: this script depends on the libnet-ldap-perl (>=0.22-1) package.)\n" +} + +my $ldap = Net::LDAP->new($server, port => $port) or + die "Could not contact LDAP server $server:$port"; +$ldap->bind or die 'Could not bind'; + +my @results; + +foreach my $search (@ARGV) { + my $query = join '', map { "($_=*$search*)" } @attrs; + my $mesg = $ldap->search( + base => $base, filter => "(|$query)", attrs => [ @attrs ] + ) or die 'Failed search'; + foreach my $entry ($mesg->entries) { + my $uid = $entry->get_value('uid') || next; + my $fname = $entry->get_value('cn') || ''; + my $mname = $entry->get_value('mn') || ''; + $mname .= ' ' if $mname; + my $lname = $entry->get_value('sn') || ''; + my $nick = $entry->get_value('ircnick')|| ''; + push @results, "<$uid\@debian.org>\t$fname $mname$lname\t($nick)\n"; + } +} + +$ldap->unbind; + +print 'Debian Developer query: found ', scalar @results, "\n", @results; +exit 1 if not @results; +exit 0; diff --git a/debian/extra/lib/mailspell b/debian/extra/lib/mailspell new file mode 100755 index 0000000..79e0e03 --- /dev/null +++ b/debian/extra/lib/mailspell @@ -0,0 +1,77 @@ +#!/usr/bin/perl +# +# Wrapper to call ispell on mail messages, ignoring quoted portions +# and signatures. +# By Brendan O'Dea , public domain. +# Usage: set ispell = /usr/lib/mutt/mailspell +# + +use IO::File; +use POSIX 'tmpnam'; +use File::Copy 'move'; + +$0 =~ s#.*/##; + +my $ISPELL = 'ispell'; +my $DIFF = 'diff'; +my $ED = 'ed'; + +# make sure that we don't inherit SIGCHLD +$SIG{CHLD} = 'DEFAULT'; + +# ignore -x ispell option +shift if $ARGV[0] eq '-x'; +die "Usage: $0 [-x] FILE\n" unless @ARGV == 1; + +my $msg = $ARGV[0]; + +# create temporary files +my (%orig, %ed); + +END { + unlink $ed{path} if $ed{path}; + unlink $orig{path} if $orig{path}; +} + +foreach (\%orig, \%ed) { + $_->{path} = tmpnam; + $_->{fd} = IO::File->new($_->{path}, O_RDWR|O_CREAT|O_EXCL, 0600) + or die "$0: can't create $_->{path} ($!)"; +} + +while (<>) { + # stop at sigdashes + last if /^-- \n/; + + # drop quoted text and attribution + $orig{fd}->print($_) unless /^>/ or /^On \w{3}, \w{3} \d{2}, \d{4} at \d/; +} + +$orig{fd}->close; + +my $pid = fork; +die "$0: can't fork ($!)\n" unless defined $pid; +unless ($pid) { + open STDOUT, '>&=' . $ed{fd}->fileno + or die "$0: can't dup stdout to ed script ($!)\n"; + $ed{fd}->close; + exec $DIFF, '-e', $orig{path}, $msg; + die "$0: can't exec $DIFF ($!)\n"; +} + +die "$0: can't reap child ($!)\n" unless wait == $pid; +system $ISPELL, '-x', $orig{path} + and die "$0: problem with $ISPELL ($?)\n"; + +$ed{fd}->seek(0, SEEK_END); +$ed{fd}->print("w\nq\n"); +$ed{fd}->seek(0, SEEK_SET); + +open STDIN, '<&=' . $ed{fd}->fileno + or die "$0: can't dup stdin from ed script ($!)\n"; + +system $ED, '-s', $orig{path} and die "$0: problem with $ED ($?)\n"; +move $orig{path}, $msg or die "$0: can't replace $msg ($!)\n"; +delete $orig{path}; + +1; diff --git a/debian/extra/lib/mailto-mutt b/debian/extra/lib/mailto-mutt new file mode 100755 index 0000000..730c021 --- /dev/null +++ b/debian/extra/lib/mailto-mutt @@ -0,0 +1,118 @@ +#!/bin/sh +# +# mailto-mutt -- wrapper to be able to use mutt as mailto handler from firefox +# +# To use, surf to Firefox's about:config page and configure the following +# three values: +# network.protocol-handler.external.mailto boolean true +# network.protocol-handler.app.mailto string '/path/to/handler' +# network.protocol-handler.warn-external.mailto boolean false +# +# Copyright © martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Revision: $Id: mailto-mutt 498 2007-05-12 12:02:10Z madduck $ +# +set -eu + +case "${1:-}" in + -d) debug=1; shift;; + '') exit 0;; + *) :;; +esac + +url_unescape() +{ + perl -e 'use URI::Escape; while(<>) { print uri_unescape($_); }' +} + +MAILTO="${@%%\?*}" +ARGS="${@#*\?}" +[ "$ARGS" = "$MAILTO" ] && unset ARGS +MAILTO="$(echo "${MAILTO#mailto:}" | url_unescape)" + +subject= +cc= +bcc= +body= +mutt_commands= + +IFS_store="$IFS" +IFS='&' + +for arg in ${ARGS:-}; do + value="$(echo "${arg#*=}" | url_unescape | sed -e "s,',\',")" + + case "${arg%%=*}" in + subject|Subject|SUBJECT) subject="$value";; + cc|Cc|CC) cc="$value";; + bcc|Bcc|BCC) bcc="$value";; + body|Body|BODY) body="$value";; + *) + mutt_commands="${mutt_commands:+${mutt_commands} + }-e\"my_hdr ${arg%%=*}: $value\"" + ;; + esac +done + +IFS="$IFS_store" + +break_at_commas() +{ + local atom + for i; do + atom="${atom:+$atom }$i" + case "${atom:-}" in + *,) echo "${atom%,}"; unset atom;; + esac + done + [ -n "${atom:-}" ] && echo "${atom%,}" +} + +get_addr_args() +{ + local type + case "$1" in + -*) type="$1"; shift;; + *) unset type;; + esac + + break_at_commas "$@" | while read addr; do + echo -n "${type:-}\"$addr\" " + done +} + +if [ -n "$mutt_commands" ]; then + mutt_args="${mutt_args:+$mutt_args }$mutt_commands" +fi + +if [ -n "$subject" ]; then + mutt_args="${mutt_args:+$mutt_args }-s\"$subject\"" +fi + +mutt_args="${mutt_args:+$mutt_args }$(get_addr_args -c $cc)" +mutt_args="${mutt_args:+$mutt_args }$(get_addr_args -b $bcc)" +mutt_args="${mutt_args:+$mutt_args }-- $(get_addr_args $MAILTO)" + +run() +{ + if [ ${debug:-0} -eq 1 ]; then + echo "$@" + [ -t 0 ] && [ -t 1 ] && [ -t 2 ] && $SHELL + else + eval "$@" + fi +} + +if [ -n "$body" ]; then + TMPFILE="$(tempfile -p mailto -d /tmp)" + trap "rm -f $TMPFILE" 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 + echo "$body" > $TMPFILE + run x-terminal-emulator -e mutt -i $TMPFILE${mutt_args:+ $mutt_args} + ret=$? + rm -f $TMPFILE + trap - 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 + exit $ret +else + run exec x-terminal-emulator -e mutt${mutt_args:+ $mutt_args} +fi diff --git a/debian/extra/lib/source-muttrc.d b/debian/extra/lib/source-muttrc.d new file mode 100755 index 0000000..ee177b9 --- /dev/null +++ b/debian/extra/lib/source-muttrc.d @@ -0,0 +1,7 @@ +#!/bin/sh -e + +for rc in /etc/Muttrc.d/*.rc; do + test -r "$rc" && echo "source \"$rc\"" +done + +# vi: ft=sh diff --git a/debian/extra/mutt-patched.rc/sidebar.rc b/debian/extra/mutt-patched.rc/sidebar.rc new file mode 100644 index 0000000..b8ae716 --- /dev/null +++ b/debian/extra/mutt-patched.rc/sidebar.rc @@ -0,0 +1,5 @@ +# Configuration for the sidebar patch. +# See /usr/share/doc/mutt/README.Patches for documentation. + +ifdef sidebar_visible set sidebar_visible sidebar_width=20 + diff --git a/debian/extra/mutt.xpm b/debian/extra/mutt.xpm new file mode 100644 index 0000000..ff7bd9d --- /dev/null +++ b/debian/extra/mutt.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char * mutt_xpm[] = { +"32 32 14 1", +" c None", +". c #CCCCCC", +"+ c #000000", +"@ c #7F7F7F", +"# c #B2B2B2", +"$ c #666667", +"% c #FF0000", +"& c #7F0000", +"* c #999999", +"= c #333333", +"- c #FF00FF", +"; c #FFFFFF", +"> c #7F007F", +", c #7F7F00", +" ", +" == ", +" ++ ", +" +..@@ ", +" +.,.+ ", +" + +.,.+ +++ ", +" + @+.,.+ +@@ ", +" @+ +....+++.@ ", +" +.@ @+.......+ ", +" +.+ +@....+.+ ", +" +.+ @+.....+.+ ", +" +.+@ +@........++++ ", +" +.@+ @+.........+;;> ", +" +..+++++++%@$#.......+.-- ", +" @@.@+&%&+@%%@@.......+>-> ", +" +..@+++@.@%%@$@......+++ ", +" +.........@%%+@$$....+ ", +" @@$.........@%%++@$..$+ ", +" +@@..........*%%++@@$+ ", +" +@@...........@%%++++ ", +" +@$............@+ ", +" +@@...#.......@+ ", +" @+@.#$+@@@...$++ ", +" +..$+@*@+..$+@+ ", +" @@.@++++++$.+@*+ ", +" @+..+*@@+=+@.+@.+ ", +" +@..+++@+++@..++@@+@ ", +" +@.....+@@+@.....+@.@ ", +" +$.....+@*+$.....+@.+ ", +" +@@.$..+@@+@@.$..+@.+ ", +" @++++++@++@++++++@++@ ", +" "}; diff --git a/debian/extra/rc/Muttrc.foot b/debian/extra/rc/Muttrc.foot new file mode 100644 index 0000000..0c0b8d7 --- /dev/null +++ b/debian/extra/rc/Muttrc.foot @@ -0,0 +1,2 @@ +# See /usr/share/doc/mutt/README.Debian for details. +source /usr/lib/mutt/source-muttrc.d| diff --git a/debian/extra/rc/charset.rc b/debian/extra/rc/charset.rc new file mode 100644 index 0000000..ebbeb3e --- /dev/null +++ b/debian/extra/rc/charset.rc @@ -0,0 +1,9 @@ +# Some GB18030 traditional Chinese mails are wrongly labelled GB2312. +# The first charset is a superset of the second. Let's alias it, so +# that Mutt displays such mails as if they were correctly labelled. +charset-hook ^gb2312$ gb18030 + +# Some mailers send EUC-JP-MS Japanese mails wrongly labelled EUC-JP. +# The first charset is a superset of the second. Let's also alias it. +charset-hook ^euc-jp$ euc-jp-ms + diff --git a/debian/extra/rc/colors.rc b/debian/extra/rc/colors.rc new file mode 100644 index 0000000..5eae80a --- /dev/null +++ b/debian/extra/rc/colors.rc @@ -0,0 +1,19 @@ +# colors +color normal white black +color attachment brightyellow black +color hdrdefault cyan black +color indicator black cyan +color markers brightred black +color quoted green black +color signature cyan black +color status brightgreen blue +color tilde blue black +color tree red black +#color header brightgreen black ^From: +#color header brightcyan black ^To: +#color header brightcyan black ^Reply-To: +#color header brightcyan black ^Cc: +#color header brightblue black ^Subject: +#color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ +#color body brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ + diff --git a/debian/extra/rc/compressed-folders.rc b/debian/extra/rc/compressed-folders.rc new file mode 100644 index 0000000..d21b725 --- /dev/null +++ b/debian/extra/rc/compressed-folders.rc @@ -0,0 +1,8 @@ +# Use folders which match on \\.gz$ or \\.bz2$ as [gb]zipped folders: +open-hook \\.gz$ "gzip -cd '%f' > '%t'" +close-hook \\.gz$ "gzip -c '%t' > '%f'" +append-hook \\.gz$ "gzip -c '%t' >> '%f'" +open-hook \\.bz2$ "bzip2 -cd '%f' > '%t'" +close-hook \\.bz2$ "bzip2 -c '%t' > '%f'" +append-hook \\.bz2$ "bzip2 -c '%t' >> '%f'" + diff --git a/debian/extra/samples/colors.angdraug b/debian/extra/samples/colors.angdraug new file mode 100644 index 0000000..efba1cb --- /dev/null +++ b/debian/extra/samples/colors.angdraug @@ -0,0 +1,91 @@ +# This color scheme aims to highlight as much useful information as +# possible without spoiling user's visual experience by irritating +# contrasts. Optimized for dark or transparent background. +# --Dmitry Borodaenko + +# override defaults, make transparency work +color normal white default +color attachment green default # +color hdrdefault cyan default +color indicator black cyan +color markers brightred default +color quoted green default +color signature brightblue default # +color status brightgreen blue +color tilde brightblue default # +color tree red default + +# paint different quote levels +color quoted green default +color quoted1 cyan default +color quoted2 yellow default +color quoted3 red default + +color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # email +color body brightblue default "(http|ftp)://[\-\.\,/+=&%~_:?\#a-zA-Z0-9]+" # URL +color body brightgreen default "(^| |[-.[:alnum:]]+:+)~?\(/[-_.'[:alnum:]]+\)+/?" # Unix file path +color body brightgreen default "(^| +)[[:alpha:]]:[-_.[:alnum:]\]+" # DOS file path +color body brightmagenta default "(^|[ '\"]+)\\$[[:alpha:]][-_[:alpha:]]+" # variable +color body brightred default "(^| )[*_]+[-&[:alnum:]]+[*_]( |$)" # bold/underline +color body yellow default "(^| )[;:8ö][-^o]?[)>(|/\\]+" # smiley +color body red default "[!?]{3,}" # exclamation +color body green default "^ *[-+*o] +" # list item + +# date formats +color body cyan default "[0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?" +color body cyan default "(\(19|20\)?[0-9]{2}/[01]?[0-9]/[0123]?[0-9]|[0123]?[0-9][/.][01]?[0-9][/.]\(19|20\)?[0-9]{2})(( at)? +[0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?" +color body cyan default "((Sun(day)?|Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(sday)?|Fri(day)?|Sat(urday)?),? +)?(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)[ .]+[0-9]{1,2}(st|nd|rd|th)?,?( +(19|20)[0-9]{2}(,?( at)? [0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?)?" +color body cyan default "((Sun(day)?|Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(sday)?|Fri(day)?|Sat(urday)?),? +)?[0-9]{1,2}(st|nd|rd|th)?[ .]+(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?),?( +(19|20)?[0-9]{2})?(( at)? [0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?" + +color header brightgreen default ^From: +color header brightcyan default ^To: +color header brightcyan default ^Reply-To: +color header brightcyan default ^Cc: +color header brightblue default ^Subject: + +color header brightcyan default "^newsgroups: " +color header yellow default "^Delivered-To: " +color header green default "^sender: " +color header green default "^organi[sz]ation: " +color header green default "x-editor: " +color header green default "(x-mailer|user-agent): " +color header green default "X-Operating-System: " +color header green default "X-MimeOLE: " +color header green default "X-Accept-Language: " +color header red default "^message-id:" +color header red default "^in-reply-to: " +color header red default "^references: " +color header cyan default "^followup-to: " +color header cyan default "^mail-followup-to: " +color header cyan default "^reply-to: " +color header magenta default "MIME-Version: " +color header magenta default "Content-Type: " +color header magenta default "Content-Transfer-Encoding: " +color header magenta default "Content-Disposition: " +color header magenta default "Content-Encoding: " +color header magenta default "Content-Language: " + +color status brightwhite blue + +color index brightblue default '~P' # from me +color index cyan default '~p' # personal +color index brightcyan default '~G' # PGP +color index brightred default '~F' # flagged +color index green default '~Q' # replied +color index brightwhite default '~N' # new +color index red default '~D' # deleted + +# threads +#color index brightyellow default "~h 'References: +<.+>'" +#color index yellow default "~h 'References: +<.+> +<.+>'" +#color index brightred default "~h 'References: +<.+> +<.+> +<.+>'" +#color index red default "~h 'References: +<.+> +<.+> +<.+> +<.+>'" +#color index blue default "~h 'References: +<.+> +<.+> +<.+> +<.+> +<.+>'" +#color index green default "~h 'References: +<.+> +<.+> +<.+> +<.+> +<.+> +<.+>'" + +# spam +color index magenta default "\(Resent-\)?Message-Id: <>" +color index magenta default "\(Resent-\)?Message-Id: '<.* .*>'" +color index magenta default "\(Resent-\)?Message-Id: localhost" +color index magenta default "! \(Resent-\)?Message-Id: @" +color index magenta default '~C Undisclosed.*Recipients' diff --git a/debian/extra/samples/ray.muttrc b/debian/extra/samples/ray.muttrc new file mode 100644 index 0000000..e05c22e --- /dev/null +++ b/debian/extra/samples/ray.muttrc @@ -0,0 +1,48 @@ +# This configuration file contains the default settings used by old debian +# packages (< 0.94). + +set quote_regexp="^[ \t]*[a-zA-Z\.]*>" # Default: "^([ \t]*[>|#:}])+" + +# +# More header weeding +# +ignore Resent- Precedence In-Reply-To Return-Receipt-To Mailer X400 +ignore Originator X-Loop X-Mailing-List X-Listprocessor X-Face +ignore X-Received X-Mailer X-Envelope-To X-Sender X-Attribution +# Usenet headers can occur for Cc-ed messages; they can still be +# recognized by the Newsgroups header. +ignore Path Lines NNTP-Posting-Host X-Newsreader X-Submitted-Via + +# +# Key bindings +# + +bind editor delete-char + +# Color / video attribute definitions. Not too flashy. +# + +color hdrdefault green black +color header brightyellow black "^from:" +mono header bold "^from:" +color header brightyellow black "^subject:" +mono header bold "^subject:" +color quoted green black +color signature brightred black +color indicator brightyellow red +color error brightred black +mono error bold +color status brightwhite blue +color tree brightmagenta black +color tilde brightmagenta black +# URL highlighting with the same regexp as urlview. +color body brightyellow black (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">] +mono body bold (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">] +color body brightmagenta black "[-a-z_0-9.]+@[-a-z_0-9.]+" +mono body bold "[-a-z_0-9.]+@[-a-z_0-9.]+" +color body brightyellow black "^Good signature" +mono body bold "^Good signature" +color body brightwhite red "^Bad signature from.*" +mono body bold "^Bad signature from.*" + + diff --git a/debian/extra/samples/sidebar.muttrc b/debian/extra/samples/sidebar.muttrc new file mode 100644 index 0000000..8bb1574 --- /dev/null +++ b/debian/extra/samples/sidebar.muttrc @@ -0,0 +1,74 @@ +# shamelessly copied from +# http://www.lunar-linux.org/index.php?option=com_content&task=view&id=44 + +# set up the sidebar, default not visible +set sidebar_width=12 +set sidebar_visible=no +set sidebar_delim='|' + +# which mailboxes to list in the sidebar +mailboxes =inbox =ml + +# color of folders with new mail +color sidebar_new yellow default + +# ctrl-n, ctrl-p to select next, prev folder +# ctrl-o to open selected folder +bind index \CP sidebar-prev +bind index \CN sidebar-next +bind index \CO sidebar-open +bind pager \CP sidebar-prev +bind pager \CN sidebar-next +bind pager \CO sidebar-open + +# I don't need these. just for documentation purposes. See below. +# sidebar-scroll-up +# sidebar-scroll-down + +# b toggles sidebar visibility +macro index b 'toggle sidebar_visible' +macro pager b 'toggle sidebar_visible' + +# Remap bounce-message function to "B" +bind index B bounce-message + +# +# Mario Holbe suggests: +# macro index b 'toggle sidebar_visible' +# macro pager b 'toggle sidebar_visible' +# + + +# Documentation +# ============= +# +# sidebar_width (number) +# Width of the sidebar. +# +# sidebar_visible (boolean) +# Whether or not the sidebar is visible. +# +# sidebar_delim (string) +# Specifies the delimiter between the sidebar and other screens +# +# color sidebar_new [fg] [bg] +# The foreground (fg) and background (bg) color of folders that contain new +# mail. +# +# sidebar-prev +# Mutt's name for the operation that selects the previous folder. +# +# sidebar-next +# Mutt's name for the operation that selects the next folder. +# +# sidebar-open +# Mutt's name for the operation that opens the currently selected folder. +# +# sidebar-scroll-up +# Only useful if you have more folders than lines in your terminal: scrolls one +# page up through the list of folders. +# +# sidebar-scroll-down +# Only useful if you have more folders than lines in your terminal: scrolls one +# page down through the list of folders. +# diff --git a/debian/header.awk b/debian/header.awk new file mode 100755 index 0000000..82cf656 --- /dev/null +++ b/debian/header.awk @@ -0,0 +1,23 @@ +#! /usr/bin/gawk -f + +BEGIN { + sep = "=============================================================================" +} + +FILENAME ~ /debian$/ { + nextfile +} + +/^== END PATCH$/ { + print "" + nextfile +} + +FNR == 1 { + print FILENAME "\n" substr(sep, 0, length(FILENAME)) "\n" + next +} + +{ + print +} diff --git a/debian/mutt-dbg.links b/debian/mutt-dbg.links new file mode 100644 index 0000000..c803d03 --- /dev/null +++ b/debian/mutt-dbg.links @@ -0,0 +1 @@ +usr/share/doc/mutt usr/share/doc/mutt-dbg diff --git a/debian/mutt-patched.install b/debian/mutt-patched.install new file mode 100644 index 0000000..00d4950 --- /dev/null +++ b/debian/mutt-patched.install @@ -0,0 +1 @@ +debian/extra/mutt-patched.rc/*.rc etc/Muttrc.d diff --git a/debian/mutt-patched.links b/debian/mutt-patched.links new file mode 100644 index 0000000..d15e658 --- /dev/null +++ b/debian/mutt-patched.links @@ -0,0 +1 @@ +usr/share/doc/mutt usr/share/doc/mutt-patched diff --git a/debian/mutt-patched.lintian-overrides b/debian/mutt-patched.lintian-overrides new file mode 100644 index 0000000..6f4ac64 --- /dev/null +++ b/debian/mutt-patched.lintian-overrides @@ -0,0 +1 @@ +mutt-patched: binary-without-manpage usr/bin/mutt diff --git a/debian/mutt-patched.postinst b/debian/mutt-patched.postinst new file mode 100644 index 0000000..90ebb1a --- /dev/null +++ b/debian/mutt-patched.postinst @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] ; then + # versions prior to 1.5.20-9 used dpkg-divert instead of update-alternatives + if [ "$2" ] && dpkg --compare-versions "$2" lt "1.5.20-9" ; then + dpkg-divert --remove --package mutt-patched --rename \ + --divert /usr/bin/mutt.org /usr/bin/mutt + fi + + update-alternatives --install /usr/bin/mutt mutt /usr/bin/mutt-patched 60 +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/mutt-patched.prerm b/debian/mutt-patched.prerm new file mode 100644 index 0000000..7117be4 --- /dev/null +++ b/debian/mutt-patched.prerm @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|deconfigure) + update-alternatives --remove mutt /usr/bin/mutt-patched + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/mutt.dirs b/debian/mutt.dirs new file mode 100644 index 0000000..60d4e9a --- /dev/null +++ b/debian/mutt.dirs @@ -0,0 +1,2 @@ +etc/Muttrc.d +usr/share/bug/mutt diff --git a/debian/mutt.doc-base b/debian/mutt.doc-base new file mode 100644 index 0000000..76036a2 --- /dev/null +++ b/debian/mutt.doc-base @@ -0,0 +1,14 @@ +Document: mutt +Title: The Mutt E-Mail Client Manual +Author: Various +Abstract: The documentation for Mutt, a sophisticated text oriented mail + user agent ("mail reader"). +Section: Network/Communication + +Format: text +Files: /usr/share/doc/mutt/manual.txt.gz + +Format: HTML +Index: /usr/share/doc/mutt/html/manual.html +Files: /usr/share/doc/mutt/html/* + diff --git a/debian/mutt.docs b/debian/mutt.docs new file mode 100644 index 0000000..670b635 --- /dev/null +++ b/debian/mutt.docs @@ -0,0 +1,10 @@ +debian/extra/README.SMIME +debian/tmp/README.Patches +debian/tmp/usr/share/doc/NEWS +debian/tmp/usr/share/doc/NEWS.old +debian/tmp/usr/share/doc/TODO +debian/tmp/usr/share/doc/README +debian/tmp/usr/share/doc/README.SSL +debian/tmp/usr/share/doc/README.SECURITY +debian/tmp/usr/share/doc/PGP-Notes.txt +debian/tmp/usr/share/doc/manual.txt diff --git a/debian/mutt.examples b/debian/mutt.examples new file mode 100644 index 0000000..b20617c --- /dev/null +++ b/debian/mutt.examples @@ -0,0 +1,3 @@ +debian/extra/samples/* +debian/tmp/etc/Muttrc +debian/tmp/usr/share/doc/samples/* diff --git a/debian/mutt.install b/debian/mutt.install new file mode 100644 index 0000000..6986c81 --- /dev/null +++ b/debian/mutt.install @@ -0,0 +1,18 @@ +debian/tmp/usr/bin/mutt +debian/tmp/usr/bin/smime_keys +debian/tmp/usr/bin/mutt_dotlock +debian/tmp/usr/share/locale/* + +debian/extra/lib/mailspell usr/lib/mutt +debian/tmp/usr/bin/pgpring usr/lib/mutt +debian/tmp/usr/bin/pgpewrap usr/lib/mutt +debian/extra/lib/source-muttrc.d usr/lib/mutt +debian/extra/lib/debian-ldap-query usr/lib/mutt +debian/extra/lib/mailto-mutt usr/lib/mutt + +debian/tmp/Muttrc etc +debian/tmp/gpg.rc etc/Muttrc.d +contrib/smime.rc etc/Muttrc.d +debian/extra/rc/*.rc etc/Muttrc.d +debian/extra/mutt.xpm usr/share/pixmaps +debian/tmp/usr/share/doc/*.html usr/share/doc/mutt/html diff --git a/debian/mutt.lintian-overrides b/debian/mutt.lintian-overrides new file mode 100644 index 0000000..1131afe --- /dev/null +++ b/debian/mutt.lintian-overrides @@ -0,0 +1,2 @@ +mutt: setgid-binary usr/bin/mutt_dotlock 2755 root/mail +mutt: arch-dep-package-has-big-usr-share diff --git a/debian/mutt.manpages b/debian/mutt.manpages new file mode 100644 index 0000000..a1cb131 --- /dev/null +++ b/debian/mutt.manpages @@ -0,0 +1,6 @@ +debian/tmp/usr/share/man/man1/mutt.1 +debian/tmp/usr/share/man/man1/mutt_dotlock.1 +debian/tmp/usr/share/man/man1/smime_keys.1 +debian/tmp/usr/share/man/man5/muttrc.5 +debian/tmp/usr/share/man/man5/mbox.5 +debian/tmp/usr/share/man/man5/mmdf.5 diff --git a/debian/mutt.menu b/debian/mutt.menu new file mode 100644 index 0000000..a82236f --- /dev/null +++ b/debian/mutt.menu @@ -0,0 +1,5 @@ +?package(mutt): title="Mutt" \ + section="Applications/Network/Communication" hints="Mail" \ + needs="text" \ + icon="/usr/share/pixmaps/mutt.xpm" \ + command="/usr/bin/mutt" diff --git a/debian/mutt.mime b/debian/mutt.mime new file mode 100644 index 0000000..79f40a4 --- /dev/null +++ b/debian/mutt.mime @@ -0,0 +1 @@ +message/rfc822; mutt -Rf '%s'; edit=mutt -f '%s'; needsterminal diff --git a/debian/mutt.postinst b/debian/mutt.postinst new file mode 100644 index 0000000..f185315 --- /dev/null +++ b/debian/mutt.postinst @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] ; then + update-alternatives --install /usr/bin/mutt mutt /usr/bin/mutt-org 50 +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/mutt.preinst b/debian/mutt.preinst new file mode 100644 index 0000000..91a69a6 --- /dev/null +++ b/debian/mutt.preinst @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt "1.5.19-2" ; then + MD5SUM=$(md5sum /etc/Muttrc.d/smime-paths.rc | cut -d ' ' -f 1) + if [ "$MD5SUM" = "185414b78b332a662500719a179778c5" ] ; then + echo "Removing obsolete config file /etc/Muttrc.d/smime-paths.rc" + rm /etc/Muttrc.d/smime-paths.rc + else + echo "Not removing modified obsolete config file /etc/Muttrc.d/smime-paths.rc" + fi +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/mutt.prerm b/debian/mutt.prerm new file mode 100644 index 0000000..61b0c85 --- /dev/null +++ b/debian/mutt.prerm @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|deconfigure) + update-alternatives --remove mutt /usr/bin/mutt-org + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/patches/debian-specific/467432-write_bcc.patch b/debian/patches/debian-specific/467432-write_bcc.patch new file mode 100644 index 0000000..c075cdc --- /dev/null +++ b/debian/patches/debian-specific/467432-write_bcc.patch @@ -0,0 +1,101 @@ +The purpose of this patch is to alter the behavior of the write_bcc option +because exim4, the default SMTP in Debian, does not strip the Bcc headers; by +default write_bcc is set so this could cause a privacy leak. + +The behavior that this patch introduces is: never write the Bcc header when the +message is sent, otherwise, if the message is sent to Fcc, then this optin +will be evaluated and the Bcc header will be written based on that. + +Background discussion on this is in the following bugs: +http://bugs.debian.org/304718 +http://bugs.debian.org/467432 + +This patch is a slightly modified version of the patch provided by +Stefan Völkel in the second bug + +--- a/headers.c ++++ b/headers.c +@@ -52,7 +52,7 @@ + } + + mutt_env_to_local (msg->env); +- mutt_write_rfc822_header (ofp, msg->env, NULL, 1, 0); ++ mutt_write_rfc822_header (ofp, msg->env, NULL, 1, 0, 1); + fputc ('\n', ofp); /* tie off the header. */ + + /* now copy the body of the message. */ +--- a/init.h ++++ b/init.h +@@ -3365,14 +3365,9 @@ + { "write_bcc", DT_BOOL, R_NONE, OPTWRITEBCC, 1}, + /* + ** .pp +- ** Controls whether mutt writes out the ``Bcc:'' header when preparing +- ** messages to be sent. Exim users may wish to unset this. If mutt +- ** is set to deliver directly via SMTP (see $$smtp_url), this +- ** option does nothing: mutt will never write out the ``Bcc:'' header +- ** in this case. +- ** .pp +- ** \fBNote:\fP On Debian systems, exim4 and postfix strip BCC headers by +- ** default. The above warning applies to exim3 users, see /etc/Muttrc. ++ ** Controls whether mutt writes out the Bcc header when saving ++ ** messages to FCC. Bcc headers will never be written to a message ++ ** when sending it. Note: this behavior is Debian specific. + */ + { "write_inc", DT_NUM, R_NONE, UL &WriteInc, 10 }, + /* +--- a/protos.h ++++ b/protos.h +@@ -372,7 +372,7 @@ + int mutt_write_mime_body (BODY *, FILE *); + int mutt_write_mime_header (BODY *, FILE *); + int mutt_write_one_header (FILE *fp, const char *tag, const char *value, const char *pfx, int wraplen, int flags); +-int mutt_write_rfc822_header (FILE *, ENVELOPE *, BODY *, int, int); ++int mutt_write_rfc822_header (FILE *, ENVELOPE *, BODY *, int, int, int); + void mutt_write_references (LIST *, FILE *, int); + int mutt_yesorno (const char *, int); + void mutt_set_header_color(CONTEXT *, HEADER *); +--- a/send.c ++++ b/send.c +@@ -994,10 +994,10 @@ + unset_option (OPTWRITEBCC); + #endif + #ifdef MIXMASTER +- mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, msg->chain ? 1 : 0); ++ mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, msg->chain ? 1 : 0, 0); + #endif + #ifndef MIXMASTER +- mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, 0); ++ mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, 0, 0); + #endif + #ifdef USE_SMTP + if (old_write_bcc) +--- a/sendlib.c ++++ b/sendlib.c +@@ -1835,7 +1835,7 @@ + + + int mutt_write_rfc822_header (FILE *fp, ENVELOPE *env, BODY *attach, +- int mode, int privacy) ++ int mode, int privacy, int should_write_bcc) + { + char buffer[LONG_STRING]; + char *p, *q; +@@ -1878,7 +1878,7 @@ + else if (mode > 0) + fputs ("Cc: \n", fp); + +- if (env->bcc) ++ if (env->bcc && should_write_bcc) + { + if(mode != 0 || option(OPTWRITEBCC)) + { +@@ -2616,7 +2616,7 @@ + /* post == 1 => postpone message. Set mode = -1 in mutt_write_rfc822_header() + * post == 0 => Normal mode. Set mode = 0 in mutt_write_rfc822_header() + * */ +- mutt_write_rfc822_header (msg->fp, hdr->env, hdr->content, post ? -post : 0, 0); ++ mutt_write_rfc822_header (msg->fp, hdr->env, hdr->content, post ? -post : 0, 0, 1); + + /* (postponment) if this was a reply of some sort, contians the + * Message-ID: of message replied to. Save it using a special X-Mutt- diff --git a/debian/patches/debian-specific/529838-gnutls-autoconf.patch b/debian/patches/debian-specific/529838-gnutls-autoconf.patch new file mode 100644 index 0000000..75d23b6 --- /dev/null +++ b/debian/patches/debian-specific/529838-gnutls-autoconf.patch @@ -0,0 +1,20 @@ +More details about this patch are on http://bugs.debian.org/529838 +The bug and the patch were forwarded to upstream, please see +http://bugs.mutt.org/3239 + +--- a/configure.ac ++++ b/configure.ac +@@ -690,10 +690,10 @@ + then + AC_MSG_WARN([SSL support is only useful with POP, IMAP or SMTP support]) + else +- MUTT_AM_PATH_GNUTLS([$gnutls_prefix], ++ PKG_CHECK_MODULES(GNUTLS, gnutls, + [dnl GNUTLS found +- CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS" +- MUTTLIBS="$MUTTLIBS $LIBGNUTLS_LIBS" ++ CPPFLAGS="$CPPFLAGS $GNUTLS_CFLAGS" ++ MUTTLIBS="$MUTTLIBS $GNUTLS_LIBS" + + AC_DEFINE(USE_SSL,1,[ Define if you want support for SSL. ]) + AC_DEFINE(USE_SSL_GNUTLS,1,[ Define if you want support for SSL via GNUTLS. ]) diff --git a/debian/patches/debian-specific/Md.etc_mailname_gethostbyname.diff b/debian/patches/debian-specific/Md.etc_mailname_gethostbyname.diff new file mode 100644 index 0000000..61d04ce --- /dev/null +++ b/debian/patches/debian-specific/Md.etc_mailname_gethostbyname.diff @@ -0,0 +1,71 @@ +If /etc/mailname is present, the hostname inside the file will be +used, rather than calling gethostbyname() on the actual hostname + +--- a/init.c ++++ b/init.c +@@ -47,6 +47,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -2953,6 +2954,31 @@ + return 0; + } + ++int getmailname(char *s, size_t l) ++{ ++ FILE *f; ++ char tmp[512]; ++ char *p = tmp; ++ ++ if ((f = fopen ("/etc/mailname", "r")) == NULL) ++ return (-1); ++ ++ if (fgets (tmp, 510, f) != NULL) { ++ while (*p && !ISSPACE(*p) && l > 0) { ++ *s++ = *p++; ++ l--; ++ } ++ if (*(s-1) == '.') ++ s--; ++ *s = 0; ++ ++ fclose (f); ++ return 0; ++ } ++ fclose (f); ++ return (-1); ++} ++ + void mutt_init (int skip_sys_rc, LIST *commands) + { + struct passwd *pw; +@@ -3027,10 +3053,25 @@ + Hostname = mutt_substrdup (utsname.nodename, p); + p++; + strfcpy (buffer, p, sizeof (buffer)); /* save the domain for below */ ++ Fqdn = safe_strdup (utsname.nodename); + } + else + Hostname = safe_strdup (utsname.nodename); + ++ /* if /etc/mailname exists use it and ignore everything else */ ++ if (getmailname(buffer, sizeof (buffer)) != -1) ++ Fqdn = safe_strdup(buffer); ++ ++ /* try gethostbyname(3) if /etc/mailname does not exists */ ++ if (!Fqdn) { ++ struct hostent *hp; ++ ++ if ((hp = gethostbyname(Hostname))) ++ Fqdn = safe_strdup(hp->h_name); ++ } ++ ++ if (Fqdn) { ++ } else + #ifndef DOMAIN + #define DOMAIN buffer + if (!p && getdnsdomainname (buffer, sizeof (buffer)) == -1) diff --git a/debian/patches/debian-specific/Muttrc b/debian/patches/debian-specific/Muttrc new file mode 100644 index 0000000..fd0a798 --- /dev/null +++ b/debian/patches/debian-specific/Muttrc @@ -0,0 +1,81 @@ +# vim:ft=diff + + * 2009-01-15 myon: refreshed for mutt-1.5.19; drop our list of ignored headers + in favor of upstream's new unignore list + +--- a/doc/Muttrc.head ++++ b/doc/Muttrc.head +@@ -12,6 +12,34 @@ + # Display the fields in this order + hdr_order date from to cc subject + ++# emacs-like bindings ++bind editor "\e" kill-word ++bind editor "\e" kill-word ++ ++# map delete-char to a sane value ++bind editor delete-char ++ ++# some people actually like these settings ++#set pager_stop ++#bind pager previous-line ++#bind pager next-line ++ ++# Specifies how to sort messages in the index menu. ++set sort=threads ++ ++# The behavior of this option on the Debian mutt package is ++# not the original one because exim4, the default SMTP on Debian ++# does not strip bcc headers so this can cause privacy problems; ++# see man muttrc for more info ++#unset write_bcc ++# Postfix and qmail use Delivered-To for detecting loops ++unset bounce_delivered ++ ++set mixmaster="mixmaster-filter" ++ ++# System-wide CA file managed by the ca-certificates package ++set ssl_ca_certificates_file="/etc/ssl/certs/ca-certificates.crt" ++ + # imitate the old search-body function + macro index \eb "~b " "search in message bodies" + +@@ -23,7 +51,7 @@ + "call urlview to extract URLs out of a message" + + # Show documentation when pressing F1 +-macro generic,pager " less @docdir@/manual.txt" "show Mutt documentation" ++macro generic,pager " zcat @docdir@/mutt/manual.txt.gz | sensible-pager" "show Mutt documentation" + + # show the incoming mailboxes list (just like "mutt -y") and back when pressing "y" + macro index,pager y "?" "show incoming mailboxes list" +@@ -35,7 +63,7 @@ + # append-hook \\.gz$ "gzip -c %t >> %f" + + # If Mutt is unable to determine your site's domain name correctly, you can +-# set the default here. ++# set the default here. (better: fix /etc/mailname) + # + # set hostname=cs.hmc.edu + +@@ -47,6 +75,10 @@ + # be undone with unmime_lookup. + mime_lookup application/octet-stream + ++# Upgrade the progress counter every 250ms, good for mutt over SSH ++# see http://bugs.debian.org/537746 ++set time_inc=250 ++ + ## + ## *** DEFAULT SETTINGS FOR THE ATTACHMENTS PATCH *** + ## +@@ -101,6 +133,9 @@ + attachments -A message/external-body + attachments -I message/external-body + ++# enable mime lookup by extension ++mime_lookup application/octet-stream ++ + ## + ## More settings + ## diff --git a/debian/patches/debian-specific/assumed_charset-compat b/debian/patches/debian-specific/assumed_charset-compat new file mode 100644 index 0000000..da2e0c8 --- /dev/null +++ b/debian/patches/debian-specific/assumed_charset-compat @@ -0,0 +1,15 @@ +On upstream inclusion of the assumed_charset patch (past 1.5.14), file_charset +got renamed to attach_charset. We add it back for compatibility. + +--- a/init.h ++++ b/init.h +@@ -211,6 +211,9 @@ + ** Note: for Japanese users, ``iso-2022-*'' must be put at the head + ** of the value as shown above if included. + */ ++ { "file_charset", DT_SYN, R_NONE, UL "attach_charset", 0 }, ++ /* ++ */ + { "attach_format", DT_STR, R_NONE, UL &AttachFormat, UL "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " }, + /* + ** .pp diff --git a/debian/patches/debian-specific/build_doc_adjustments.diff b/debian/patches/debian-specific/build_doc_adjustments.diff new file mode 100644 index 0000000..6bd1b54 --- /dev/null +++ b/debian/patches/debian-specific/build_doc_adjustments.diff @@ -0,0 +1,28 @@ +Use elinks(1) to generate the HTML manual page + +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -100,9 +100,7 @@ uninstall-local: + + check: + manual.txt: manual.html +- -LC_ALL=C lynx -dump -nolist -with_backspaces manual.html > $@ || \ +- LC_ALL=C w3m -dump manual.html > $@ || \ +- LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@ ++ LC_ALL=C elinks -dump -dump-charset utf8 -no-numbering -no-references $< > $@ + + Muttrc: stamp-doc-rc + +@@ -114,10 +112,10 @@ stamp-doc-rc: $(top_srcdir)/init.h maked + touch stamp-doc-rc + + manual.html: $(srcdir)/html.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css +- -xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml ++ xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml + + stamp-doc-chunked: $(srcdir)/chunk.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css +- -xsltproc --nonet $(srcdir)/chunk.xsl manual.xml ++ xsltproc --nonet $(srcdir)/chunk.xsl manual.xml + touch stamp-doc-chunked + + $(CHUNKED_DOCFILES): stamp-doc-chunked diff --git a/debian/patches/debian-specific/correct_docdir_in_man_page.diff b/debian/patches/debian-specific/correct_docdir_in_man_page.diff new file mode 100644 index 0000000..0021a8d --- /dev/null +++ b/debian/patches/debian-specific/correct_docdir_in_man_page.diff @@ -0,0 +1,13 @@ +Fix the link so it points to the correct docdir and gzipped manuall + +--- a/doc/mutt.man ++++ b/doc/mutt.man +@@ -185,7 +185,7 @@ + System mapping between MIME types and file extensions. + .IP "@bindir@/mutt_dotlock" + The privileged dotlocking program. +-.IP "@docdir@/manual.txt" ++.IP "/usr/share/doc/mutt/manual.txt.gz" + The Mutt manual. + .SH BUGS + .PP diff --git a/debian/patches/debian-specific/document_debian_defaults b/debian/patches/debian-specific/document_debian_defaults new file mode 100644 index 0000000..7240bef --- /dev/null +++ b/debian/patches/debian-specific/document_debian_defaults @@ -0,0 +1,78 @@ +Some customization of the option which are straying from the default +only on Debian systems + +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:36:35.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:36:36.000000000 +0200 +@@ -312,6 +312,9 @@ + ** .pp + ** When this variable is \fIset\fP, mutt will include Delivered-To headers when + ** bouncing messages. Postfix users may wish to \fIunset\fP this variable. ++ ** .pp ++ ** \fBNote:\fP On Debian systems, this option is unset by default in ++ ** /etc/Muttrc. + */ + { "braille_friendly", DT_BOOL, R_NONE, OPTBRAILLEFRIENDLY, 0 }, + /* +@@ -1032,6 +1035,9 @@ + ** one is not used. + ** .pp + ** Also see $$use_domain and $$hidden_host. ++ ** .pp ++ ** \fBNote:\fP On Debian systems, the default for this variable is obtained ++ ** from /etc/mailname when Mutt starts. + */ + { "ignore_linear_white_space", DT_BOOL, R_NONE, OPTIGNORELWS, 0 }, + /* +@@ -1554,6 +1560,9 @@ + ** system. It is used with various sets of parameters to gather the + ** list of known remailers, and to finally send a message through the + ** mixmaster chain. ++ ** .pp ++ ** \fBNote:\fP On Debian systems, this option is set by default to ++ ** ``mixmaster-filter'' in /etc/Muttrc. + */ + #endif + { "move", DT_QUAD, R_NONE, OPT_MOVE, M_NO }, +@@ -2570,6 +2579,10 @@ + ** This variable contains the name of either a directory, or a file which + ** contains trusted certificates for use with OpenSSL. + ** (S/MIME only) ++ ** .pp ++ ** \fBNote:\fP On Debian systems, this defaults to the first existing file in ++ ** the following list: ~/.smime/ca-certificates.crt ~/.smime/ca-bundle.crt ++ ** /etc/ssl/certs/ca-certificates.crt. + */ + { "smime_certificates", DT_PATH, R_NONE, UL &SmimeCertificates, 0 }, + /* +@@ -2776,6 +2789,9 @@ + ** .ts + ** set smtp_authenticators="digest-md5:cram-md5" + ** .te ++ ** .pp ++ ** \fBNote:\fP On Debian systems, this variable defaults to the example ++ ** mentioned. This file is managed by the ``ca-certificates'' package. + */ + # endif /* USE_SASL */ + { "smtp_pass", DT_STR, R_NONE, UL &SmtpPass, UL 0 }, +@@ -2823,6 +2839,9 @@ + ** .pp + ** You may optionally use the ``reverse-'' prefix to specify reverse sorting + ** order (example: ``\fCset sort=reverse-date-sent\fP''). ++ ** .pp ++ ** \fBNote:\fP On Debian systems, this option is set by default to ++ ** ``threads'' in /etc/Muttrc. + */ + { "sort_alias", DT_SORT|DT_SORT_ALIAS, R_NONE, UL &SortAlias, SORT_ALIAS }, + /* +@@ -3348,6 +3367,9 @@ + ** is set to deliver directly via SMTP (see $$smtp_url), this + ** option does nothing: mutt will never write out the ``Bcc:'' header + ** in this case. ++ ** .pp ++ ** \fBNote:\fP On Debian systems, exim4 and postfix strip BCC headers by ++ ** default. The above warning applies to exim3 users, see /etc/Muttrc. + */ + { "write_inc", DT_NUM, R_NONE, UL &WriteInc, 10 }, + /* diff --git a/debian/patches/debian-specific/dont_document_not_present_features.diff b/debian/patches/debian-specific/dont_document_not_present_features.diff new file mode 100644 index 0000000..a453ec3 --- /dev/null +++ b/debian/patches/debian-specific/dont_document_not_present_features.diff @@ -0,0 +1,25 @@ +As the patch says, this will add an include so only documented options +for Debian will be used + +--- a/init.h ++++ b/init.h +@@ -19,7 +19,7 @@ + + #ifdef _MAKEDOC + # include "config.h" +-# include "doc/makedoc-defs.h" ++/* # include "makedoc-defs.h" include only documented options for Debian */ + #else + # include "sort.h" + #endif +--- a/functions.h ++++ b/functions.h +@@ -35,7 +35,7 @@ + + #ifdef _MAKEDOC + # include "config.h" +-# include "doc/makedoc-defs.h" ++/* # include "doc/makedoc-defs.h" include only documented options for Debian */ + #endif + + struct binding_t OpGeneric[] = { /* map: generic */ diff --git a/debian/patches/debian-specific/use_usr_bin_editor.diff b/debian/patches/debian-specific/use_usr_bin_editor.diff new file mode 100644 index 0000000..5c51a58 --- /dev/null +++ b/debian/patches/debian-specific/use_usr_bin_editor.diff @@ -0,0 +1,25 @@ +Even if EDITOR is not set, mutt will always use /usr/bin/editor (which +is set by update-alternatives), rather than falling back to vi + +--- a/init.c ++++ b/init.c +@@ -3115,7 +3115,7 @@ + { + p = getenv ("EDITOR"); + if (!p) +- p = "vi"; ++ p = "/usr/bin/editor"; + } + Editor = safe_strdup (p); + Visual = safe_strdup (p); +--- a/init.h ++++ b/init.h +@@ -686,7 +686,7 @@ + ** .pp + ** This variable specifies which editor is used by mutt. + ** It defaults to the value of the \fC$$$VISUAL\fP, or \fC$$$EDITOR\fP, environment +- ** variable, or to the string ``vi'' if neither of those are set. ++ ** variable, or to the string ``/usr/bin/editor'' if neither of those are set. + */ + { "encode_from", DT_BOOL, R_NONE, OPTENCODEFROM, 0 }, + /* diff --git a/debian/patches/features-old/patch-1.5.4.vk.pgp_verbose_mime b/debian/patches/features-old/patch-1.5.4.vk.pgp_verbose_mime new file mode 100644 index 0000000..cb91b5f --- /dev/null +++ b/debian/patches/features-old/patch-1.5.4.vk.pgp_verbose_mime @@ -0,0 +1,51 @@ +Enable pgp_mime_signature_filename and pgp_mime_signature_description + +Index: mutt/globals.h +=================================================================== +--- mutt.orig/globals.h 2009-06-25 12:35:48.000000000 +0200 ++++ mutt/globals.h 2009-06-25 12:36:22.000000000 +0200 +@@ -242,6 +242,8 @@ + WHERE char *PgpListSecringCommand; + WHERE char *PgpListPubringCommand; + WHERE char *PgpGetkeysCommand; ++WHERE char *PgpMimeSignatureFilename; ++WHERE char *PgpMimeSignatureDescription; + + /*-- formerly in smime.h --*/ + WHERE char *SmimeDefaultKey; +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:35:48.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:36:22.000000000 +0200 +@@ -2541,6 +2541,18 @@ + ** a line quoted text if it also matches $$smileys. This mostly + ** happens at the beginning of a line. + */ ++ { "pgp_mime_signature_filename", DT_STR, R_NONE, UL &PgpMimeSignatureFilename, UL "signature.asc"}, ++ /* ++ ** .pp ++ ** This option sets the filename used for signature parts in PGP/MIME ++ ** signed messages. ++ */ ++ { "pgp_mime_signature_description", DT_STR, R_NONE, UL &PgpMimeSignatureDescription, UL "Digital signature"}, ++ /* ++ ** .pp ++ ** This option sets the Content-Description used for signature parts in ++ ** PGP/MIME signed messages. ++ */ + + + +Index: mutt/pgp.c +=================================================================== +--- mutt.orig/pgp.c 2009-06-25 12:35:36.000000000 +0200 ++++ mutt/pgp.c 2009-06-25 12:36:22.000000000 +0200 +@@ -1131,6 +1131,8 @@ + t->disposition = DISPINLINE; + t->encoding = ENC7BIT; + t->unlink = 1; /* ok to remove this file after sending. */ ++ mutt_set_parameter ("name", PgpMimeSignatureFilename, &t->parameter); ++ t->description = safe_strdup (PgpMimeSignatureDescription); + + return (a); + } diff --git a/debian/patches/features/compressed-folders b/debian/patches/features/compressed-folders new file mode 100644 index 0000000..274aec2 --- /dev/null +++ b/debian/patches/features/compressed-folders @@ -0,0 +1,1152 @@ +# vi: ft=diff +This is the compressed folders patch by Roland Rosenfeld +. + +The home page for this patch is: + + http://www.spinnaker.de/mutt/compressed/ + +* Patch last synced with upstream: + - Date: 2008-05-20 + - File: http://www.spinnaker.de/mutt/compressed/patch-1.5.18.rr.compressed.1.gz + +* Changes made: + - 2008-05-20 myon: refreshed to remove hunks in auto* files + - 2009-09-15 myon: refreshed for mutt-1.5.19 + status.c:103: add sizeof (tmp) to mutt_pretty_mailbox + - 2009-09-15 scotton: removed doc/Muttrc for mutt-1.5.19 (only patch doc/Muttrc.head) + - 2009-09-11 antonio: removed DefaultMagic, see 541360 + - 2010-05-31 myon: remove commented paragraph "Use folders..." in + doc/Muttrc.head, see #578096 + +== END PATCH +--- /dev/null ++++ b/compress.c +@@ -0,0 +1,496 @@ ++/* ++ * Copyright (C) 1997 Alain Penders ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "mutt.h" ++ ++#ifdef USE_COMPRESSED ++ ++#include "mx.h" ++#include "mailbox.h" ++#include "mutt_curses.h" ++ ++#include ++#include ++#include ++#include ++ ++typedef struct ++{ ++ const char *close; /* close-hook command */ ++ const char *open; /* open-hook command */ ++ const char *append; /* append-hook command */ ++ off_t size; /* size of real folder */ ++} COMPRESS_INFO; ++ ++ ++/* ++ * ctx - context to lock ++ * excl - exclusive lock? ++ * retry - should retry if unable to lock? ++ */ ++int mbox_lock_compressed (CONTEXT *ctx, FILE *fp, int excl, int retry) ++{ ++ int r; ++ ++ if ((r = mx_lock_file (ctx->realpath, fileno (fp), excl, 1, retry)) == 0) ++ ctx->locked = 1; ++ else if (retry && !excl) ++ { ++ ctx->readonly = 1; ++ return 0; ++ } ++ ++ return (r); ++} ++ ++void mbox_unlock_compressed (CONTEXT *ctx, FILE *fp) ++{ ++ if (ctx->locked) ++ { ++ fflush (fp); ++ ++ mx_unlock_file (ctx->realpath, fileno (fp), 1); ++ ctx->locked = 0; ++ } ++} ++ ++static int is_new (const char *path) ++{ ++ return (access (path, W_OK) != 0 && errno == ENOENT) ? 1 : 0; ++} ++ ++static const char* find_compress_hook (int type, const char *path) ++{ ++ const char* c = mutt_find_hook (type, path); ++ return (!c || !*c) ? NULL : c; ++} ++ ++int mutt_can_read_compressed (const char *path) ++{ ++ return find_compress_hook (M_OPENHOOK, path) ? 1 : 0; ++} ++ ++/* ++ * if the file is new, we really do not append, but create, and so use ++ * close-hook, and not append-hook ++ */ ++static const char* get_append_command (const char *path, const CONTEXT* ctx) ++{ ++ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo; ++ return (is_new (path)) ? ci->close : ci->append; ++} ++ ++int mutt_can_append_compressed (const char *path) ++{ ++ int magic; ++ ++ if (is_new (path)) ++ { ++ char *dir_path = safe_strdup(path); ++ char *aux = strrchr(dir_path, '/'); ++ int dir_valid = 1; ++ if (aux) ++ { ++ *aux='\0'; ++ if (access(dir_path, W_OK|X_OK)) ++ dir_valid = 0; ++ } ++ safe_free((void**)&dir_path); ++ return dir_valid && (find_compress_hook (M_CLOSEHOOK, path) ? 1 : 0); ++ } ++ ++ magic = mx_get_magic (path); ++ ++ if (magic != 0 && magic != M_COMPRESSED) ++ return 0; ++ ++ return (find_compress_hook (M_APPENDHOOK, path) ++ || (find_compress_hook (M_OPENHOOK, path) ++ && find_compress_hook (M_CLOSEHOOK, path))) ? 1 : 0; ++} ++ ++/* open a compressed mailbox */ ++static COMPRESS_INFO *set_compress_info (CONTEXT *ctx) ++{ ++ COMPRESS_INFO *ci; ++ ++ /* Now lets uncompress this thing */ ++ ci = safe_malloc (sizeof (COMPRESS_INFO)); ++ ctx->compressinfo = (void*) ci; ++ ci->append = find_compress_hook (M_APPENDHOOK, ctx->path); ++ ci->open = find_compress_hook (M_OPENHOOK, ctx->path); ++ ci->close = find_compress_hook (M_CLOSEHOOK, ctx->path); ++ return ci; ++} ++ ++static void set_path (CONTEXT* ctx) ++{ ++ char tmppath[_POSIX_PATH_MAX]; ++ ++ /* Setup the right paths */ ++ ctx->realpath = ctx->path; ++ ++ /* Uncompress to /tmp */ ++ mutt_mktemp (tmppath); ++ ctx->path = safe_malloc (strlen (tmppath) + 1); ++ strcpy (ctx->path, tmppath); ++} ++ ++static int get_size (const char* path) ++{ ++ struct stat sb; ++ if (stat (path, &sb) != 0) ++ return 0; ++ return (sb.st_size); ++} ++ ++static void store_size (CONTEXT* ctx) ++{ ++ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo; ++ ci->size = get_size (ctx->realpath); ++} ++ ++static const char * ++compresshook_format_str (char *dest, size_t destlen, size_t col, char op, ++ const char *src, const char *fmt, ++ const char *ifstring, const char *elsestring, ++ unsigned long data, format_flag flags) ++{ ++ char tmp[SHORT_STRING]; ++ ++ CONTEXT *ctx = (CONTEXT *) data; ++ switch (op) ++ { ++ case 'f': ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, ctx->realpath); ++ break; ++ case 't': ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, ctx->path); ++ break; ++ } ++ return (src); ++} ++ ++/* ++ * check that the command has both %f and %t ++ * 0 means OK, -1 means error ++ */ ++int mutt_test_compress_command (const char* cmd) ++{ ++ return (strstr (cmd, "%f") && strstr (cmd, "%t")) ? 0 : -1; ++} ++ ++static char *get_compression_cmd (const char* cmd, const CONTEXT* ctx) ++{ ++ char expanded[_POSIX_PATH_MAX]; ++ mutt_FormatString (expanded, sizeof (expanded), 0, cmd, ++ compresshook_format_str, (unsigned long) ctx, 0); ++ return safe_strdup (expanded); ++} ++ ++int mutt_check_mailbox_compressed (CONTEXT* ctx) ++{ ++ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo; ++ if (ci->size != get_size (ctx->realpath)) ++ { ++ FREE (&ctx->compressinfo); ++ FREE (&ctx->realpath); ++ mutt_error _("Mailbox was corrupted!"); ++ return (-1); ++ } ++ return (0); ++} ++ ++int mutt_open_read_compressed (CONTEXT *ctx) ++{ ++ char *cmd; ++ FILE *fp; ++ int rc; ++ ++ COMPRESS_INFO *ci = set_compress_info (ctx); ++ if (!ci->open) { ++ ctx->magic = 0; ++ FREE (&ctx->compressinfo); ++ return (-1); ++ } ++ if (!ci->close || access (ctx->path, W_OK) != 0) ++ ctx->readonly = 1; ++ ++ set_path (ctx); ++ store_size (ctx); ++ ++ if (!ctx->quiet) ++ mutt_message (_("Decompressing %s..."), ctx->realpath); ++ ++ cmd = get_compression_cmd (ci->open, ctx); ++ if (cmd == NULL) ++ return (-1); ++ dprint (2, (debugfile, "DecompressCmd: '%s'\n", cmd)); ++ ++ if ((fp = fopen (ctx->realpath, "r")) == NULL) ++ { ++ mutt_perror (ctx->realpath); ++ FREE (&cmd); ++ return (-1); ++ } ++ mutt_block_signals (); ++ if (mbox_lock_compressed (ctx, fp, 0, 1) == -1) ++ { ++ fclose (fp); ++ mutt_unblock_signals (); ++ mutt_error _("Unable to lock mailbox!"); ++ FREE (&cmd); ++ return (-1); ++ } ++ ++ endwin (); ++ fflush (stdout); ++ fprintf (stderr, _("Decompressing %s...\n"),ctx->realpath); ++ rc = mutt_system (cmd); ++ mbox_unlock_compressed (ctx, fp); ++ mutt_unblock_signals (); ++ fclose (fp); ++ ++ if (rc) ++ { ++ mutt_any_key_to_continue (NULL); ++ ctx->magic = 0; ++ FREE (&ctx->compressinfo); ++ mutt_error (_("Error executing: %s : unable to open the mailbox!\n"), cmd); ++ } ++ FREE (&cmd); ++ if (rc) ++ return (-1); ++ ++ if (mutt_check_mailbox_compressed (ctx)) ++ return (-1); ++ ++ ctx->magic = mx_get_magic (ctx->path); ++ ++ return (0); ++} ++ ++void restore_path (CONTEXT* ctx) ++{ ++ FREE (&ctx->path); ++ ctx->path = ctx->realpath; ++} ++ ++/* remove the temporary mailbox */ ++void remove_file (CONTEXT* ctx) ++{ ++ if (ctx->magic == M_MBOX || ctx->magic == M_MMDF) ++ remove (ctx->path); ++} ++ ++int mutt_open_append_compressed (CONTEXT *ctx) ++{ ++ FILE *fh; ++ COMPRESS_INFO *ci = set_compress_info (ctx); ++ ++ if (!get_append_command (ctx->path, ctx)) ++ { ++ if (ci->open && ci->close) ++ return (mutt_open_read_compressed (ctx)); ++ ++ ctx->magic = 0; ++ FREE (&ctx->compressinfo); ++ return (-1); ++ } ++ ++ set_path (ctx); ++ ++ if (!is_new (ctx->realpath)) ++ if ((fh = fopen (ctx->path, "w"))) ++ fclose (fh); ++ /* No error checking - the parent function will catch it */ ++ ++ return (0); ++} ++ ++/* close a compressed mailbox */ ++void mutt_fast_close_compressed (CONTEXT *ctx) ++{ ++ dprint (2, (debugfile, "mutt_fast_close_compressed called on '%s'\n", ++ ctx->path)); ++ ++ if (ctx->compressinfo) ++ { ++ if (ctx->fp) ++ fclose (ctx->fp); ++ ctx->fp = NULL; ++ /* if the folder was removed, remove the gzipped folder too */ ++ if ((ctx->magic > 0) ++ && (access (ctx->path, F_OK) != 0) ++ && ! option (OPTSAVEEMPTY)) ++ remove (ctx->realpath); ++ else ++ remove_file (ctx); ++ ++ restore_path (ctx); ++ FREE (&ctx->compressinfo); ++ } ++} ++ ++/* return 0 on success, -1 on failure */ ++int mutt_sync_compressed (CONTEXT* ctx) ++{ ++ char *cmd; ++ int rc = 0; ++ FILE *fp; ++ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo; ++ ++ if (!ctx->quiet) ++ mutt_message (_("Compressing %s..."), ctx->realpath); ++ ++ cmd = get_compression_cmd (ci->close, ctx); ++ if (cmd == NULL) ++ return (-1); ++ ++ if ((fp = fopen (ctx->realpath, "a")) == NULL) ++ { ++ mutt_perror (ctx->realpath); ++ FREE (&cmd); ++ return (-1); ++ } ++ mutt_block_signals (); ++ if (mbox_lock_compressed (ctx, fp, 1, 1) == -1) ++ { ++ fclose (fp); ++ mutt_unblock_signals (); ++ mutt_error _("Unable to lock mailbox!"); ++ store_size (ctx); ++ FREE (&cmd); ++ return (-1); ++ } ++ ++ dprint (2, (debugfile, "CompressCommand: '%s'\n", cmd)); ++ ++ endwin (); ++ fflush (stdout); ++ fprintf (stderr, _("Compressing %s...\n"), ctx->realpath); ++ if (mutt_system (cmd)) ++ { ++ mutt_any_key_to_continue (NULL); ++ mutt_error (_("%s: Error compressing mailbox! Original mailbox deleted, uncompressed one kept!\n"), ctx->path); ++ rc = -1; ++ } ++ ++ mbox_unlock_compressed (ctx, fp); ++ mutt_unblock_signals (); ++ fclose (fp); ++ ++ FREE (&cmd); ++ ++ store_size (ctx); ++ ++ return (rc); ++} ++ ++int mutt_slow_close_compressed (CONTEXT *ctx) ++{ ++ FILE *fp; ++ const char *append; ++ char *cmd; ++ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo; ++ ++ dprint (2, (debugfile, "mutt_slow_close_compressed called on '%s'\n", ++ ctx->path)); ++ ++ if (! (ctx->append ++ && ((append = get_append_command (ctx->realpath, ctx)) ++ || (append = ci->close)))) ++ { ++ /* if we can not or should not append, we only have to remove the */ ++ /* compressed info, because sync was already called */ ++ mutt_fast_close_compressed (ctx); ++ return (0); ++ } ++ ++ if (ctx->fp) ++ fclose (ctx->fp); ++ ctx->fp = NULL; ++ ++ if (!ctx->quiet) ++ { ++ if (append == ci->close) ++ mutt_message (_("Compressing %s..."), ctx->realpath); ++ else ++ mutt_message (_("Compressed-appending to %s..."), ctx->realpath); ++ } ++ ++ cmd = get_compression_cmd (append, ctx); ++ if (cmd == NULL) ++ return (-1); ++ ++ if ((fp = fopen (ctx->realpath, "a")) == NULL) ++ { ++ mutt_perror (ctx->realpath); ++ FREE (&cmd); ++ return (-1); ++ } ++ mutt_block_signals (); ++ if (mbox_lock_compressed (ctx, fp, 1, 1) == -1) ++ { ++ fclose (fp); ++ mutt_unblock_signals (); ++ mutt_error _("Unable to lock mailbox!"); ++ FREE (&cmd); ++ return (-1); ++ } ++ ++ dprint (2, (debugfile, "CompressCmd: '%s'\n", cmd)); ++ ++ endwin (); ++ fflush (stdout); ++ ++ if (append == ci->close) ++ fprintf (stderr, _("Compressing %s...\n"), ctx->realpath); ++ else ++ fprintf (stderr, _("Compressed-appending to %s...\n"), ctx->realpath); ++ ++ if (mutt_system (cmd)) ++ { ++ mutt_any_key_to_continue (NULL); ++ mutt_error (_(" %s: Error compressing mailbox! Uncompressed one kept!\n"), ++ ctx->path); ++ FREE (&cmd); ++ mbox_unlock_compressed (ctx, fp); ++ mutt_unblock_signals (); ++ fclose (fp); ++ return (-1); ++ } ++ ++ mbox_unlock_compressed (ctx, fp); ++ mutt_unblock_signals (); ++ fclose (fp); ++ remove_file (ctx); ++ restore_path (ctx); ++ FREE (&cmd); ++ FREE (&ctx->compressinfo); ++ ++ return (0); ++} ++ ++#endif /* USE_COMPRESSED */ +--- /dev/null ++++ b/compress.h +@@ -0,0 +1,27 @@ ++/* ++ * Copyright (C) 1997 Alain Penders ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++int mutt_can_read_compressed (const char *); ++int mutt_can_append_compressed (const char *); ++int mutt_open_read_compressed (CONTEXT *); ++int mutt_open_append_compressed (CONTEXT *); ++int mutt_slow_close_compressed (CONTEXT *); ++int mutt_sync_compressed (CONTEXT *); ++int mutt_test_compress_command (const char *); ++int mutt_check_mailbox_compressed (CONTEXT *); ++void mutt_fast_close_compressed (CONTEXT *); +--- a/configure.ac ++++ b/configure.ac +@@ -805,6 +805,11 @@ + AC_DEFINE(LOCALES_HACK,1,[ Define if the result of isprint() is unreliable. ]) + fi]) + ++AC_ARG_ENABLE(compressed, AC_HELP_STRING([--enable-compressed], [Enable compressed folders support]), ++ [if test x$enableval = xyes; then ++ AC_DEFINE(USE_COMPRESSED,1, [ Define to support compressed folders. ]) ++ fi]) ++ + AC_ARG_WITH(exec-shell, AC_HELP_STRING([--with-exec-shell=SHELL], [Specify alternate shell (ONLY if /bin/sh is broken)]), + [if test $withval != yes; then + AC_DEFINE_UNQUOTED(EXECSHELL, "$withval", +--- a/curs_main.c ++++ b/curs_main.c +@@ -1135,6 +1135,11 @@ + { + int check; + ++#ifdef USE_COMPRESSED ++ if (Context->compressinfo && Context->realpath) ++ mutt_str_replace (&LastFolder, Context->realpath); ++ else ++#endif + mutt_str_replace (&LastFolder, Context->path); + oldcount = Context ? Context->msgcount : 0; + +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -5678,6 +5678,205 @@ + + + ++ ++Compressed folders Support (OPTIONAL) ++ ++ ++If Mutt was compiled with compressed folders support (by running the ++configure script with the ++--enable-compressed flag), Mutt can open folders ++stored in an arbitrary format, provided that the user has a script to ++convert from/to this format to one of the accepted. ++ ++The most common use is to open compressed archived folders e.g. with ++gzip. ++ ++In addition, the user can provide a script that gets a folder in an ++accepted format and appends its context to the folder in the ++user-defined format, which may be faster than converting the entire ++folder to the accepted format, appending to it and converting back to ++the user-defined format. ++ ++There are three hooks defined (open-hook, close-hook and append-hook) which define commands to ++uncompress and compress a folder and to append messages to an existing ++compressed folder respectively. ++ ++For example: ++ ++ ++open-hook \\.gz$ "gzip -cd %f > %t" ++close-hook \\.gz$ "gzip -c %t > %f" ++append-hook \\.gz$ "gzip -c %t >> %f" ++ ++ ++You do not have to specify all of the commands. If you omit append-hook, the folder will be open and ++closed again each time you will add to it. If you omit close-hook (or give empty command) , the ++folder will be open in the mode. If you specify append-hook though you'll be able to ++append to the folder. ++ ++Note that Mutt will only try to use hooks if the file is not in one of ++the accepted formats. In particular, if the file is empty, mutt ++supposes it is not compressed. This is important because it allows the ++use of programs that do not have well defined extensions. Just use ++"." as a regexp. But this may be surprising if your ++compressing script produces empty files. In this situation, unset ++$save_empty, so that ++the compressed file will be removed if you delete all of the messages. ++ ++ ++ ++Open a compressed mailbox for reading ++ ++ ++Usage: open-hook regexp "command" ++ ++The command is the command that can be used for ++opening the folders whose names match regexp. ++ ++The command string is the printf-like format ++string, and it should accept two parameters: %f, which is ++replaced with the (compressed) folder name, and %t which is ++replaced with the name of the temporary folder to which to write. ++ ++%f and %t can be repeated any number of times in the ++command string, and all of the entries are replaced with the ++appropriate folder name. In addition, %% is replaced by ++%, as in printf, and any other %anything is left as is. ++ ++The command should not remove the original compressed file. The ++command should return non-zero exit status if it ++fails, so mutt knows something's wrong. ++ ++Example: ++ ++ ++open-hook \\.gz$ "gzip -cd %f > %t" ++ ++ ++If the command is empty, this operation is ++disabled for this file type. ++ ++ ++ ++ ++Write a compressed mailbox ++ ++ ++Usage: close-hook regexp "command" ++ ++This is used to close the folder that was open with the open-hook command after some changes were ++made to it. ++ ++The command string is the command that can be ++used for closing the folders whose names match ++regexp. It has the same format as in the open-hook command. Temporary folder in this ++case is the folder previously produced by the open-hook command. ++ ++The command should not remove the decompressed file. The ++command should return non-zero exit status if it ++fails, so mutt knows something's wrong. ++ ++Example: ++ ++ ++close-hook \\.gz$ "gzip -c %t > %f" ++ ++ ++If the command is empty, this operation is ++disabled for this file type, and the file can only be open in the ++read-only mode. ++ ++close-hook is not called when you ++exit from the folder if the folder was not changed. ++ ++ ++ ++ ++Append a message to a compressed mailbox ++ ++ ++Usage: append-hook regexp "command" ++ ++This command is used for saving to an existing compressed folder. The ++command is the command that can be used for ++appending to the folders whose names match ++regexp. It has the same format as in the open-hook command. The temporary folder in ++this case contains the messages that are being appended. ++ ++The command should not remove the decompressed file. The ++command should return non-zero exit status if it ++fails, so mutt knows something's wrong. ++ ++Example: ++ ++ ++append-hook \\.gz$ "gzip -c %t >> %f" ++ ++ ++When append-hook is used, the folder ++is not opened, which saves time, but this means that we can not find ++out what the folder type is. Thus the default ($mbox_type) type is always ++supposed (i.e. this is the format used for the temporary folder). ++ ++If the file does not exist when you save to it, close-hook is called, and not append-hook. append-hook is only for appending to ++existing folders. ++ ++If the command is empty, this operation is ++disabled for this file type. In this case, the folder will be open and ++closed again (using open-hook and ++close-hookrespectively) each time you ++will add to it. ++ ++ ++ ++ ++Encrypted folders ++ ++ ++The compressed folders support can also be used to handle encrypted ++folders. If you want to encrypt a folder with PGP, you may want to use ++the following hooks: ++ ++ ++open-hook \\.pgp$ "pgp -f < %f > %t" ++close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f" ++ ++ ++Please note, that PGP does not support appending to an encrypted ++folder, so there is no append-hook defined. ++ ++If you are using GnuPG instead of PGP, you may use the following hooks ++instead: ++ ++ ++open-hook \\.gpg$ "gpg --decrypt < %f > %t" ++close-hook \\.gpg$ "gpg --encrypt --recipient YourGpgUserIdOrKeyId < %t > %f" ++ ++ ++Note: the folder is temporary stored ++decrypted in the /tmp directory, where it can be read by your system ++administrator. So think about the security aspects of this. ++ ++ ++ ++ + + Mutt's MIME Support + +--- a/doc/muttrc.man.head ++++ b/doc/muttrc.man.head +@@ -345,6 +345,24 @@ + to a certain recipient. The meaning of "key ID" is to be taken + broadly: This can be a different e-mail address, a numerical key ID, + or even just an arbitrary search string. ++.PP ++.nf ++\fBopen-hook\fP \fIregexp\fP "\fIcommand\fP" ++\fBclose-hook\fP \fIregexp\fP "\fIcommand\fP" ++\fBappend-hook\fP \fIregexp\fP "\fIcommand\fP" ++.fi ++.IP ++These commands provide a way to handle compressed folders. The given ++\fBregexp\fP specifies which folders are taken as compressed (e.g. ++"\fI\\\\.gz$\fP"). The commands tell Mutt how to uncompress a folder ++(\fBopen-hook\fP), compress a folder (\fBclose-hook\fP) or append a ++compressed mail to a compressed folder (\fBappend-hook\fP). The ++\fIcommand\fP string is the ++.BR printf (3) ++like format string, and it should accept two parameters: \fB%f\fP, ++which is replaced with the (compressed) folder name, and \fB%t\fP ++which is replaced with the name of the temporary folder to which to ++write. + .TP + \fBpush\fP \fIstring\fP + This command adds the named \fIstring\fP to the keyboard buffer. +--- a/hook.c ++++ b/hook.c +@@ -24,6 +24,10 @@ + #include "mailbox.h" + #include "mutt_crypt.h" + ++#ifdef USE_COMPRESSED ++#include "compress.h" ++#endif ++ + #include + #include + #include +@@ -92,6 +96,16 @@ + memset (&pattern, 0, sizeof (pattern)); + pattern.data = safe_strdup (path); + } ++#ifdef USE_COMPRESSED ++ else if (data & (M_APPENDHOOK | M_OPENHOOK | M_CLOSEHOOK)) ++ { ++ if (mutt_test_compress_command (command.data)) ++ { ++ strfcpy (err->data, _("badly formatted command string"), err->dsize); ++ return (-1); ++ } ++ } ++#endif + else if (DefaultHook && !(data & (M_CHARSETHOOK | M_ICONVHOOK | M_ACCOUNTHOOK)) + && (!WithCrypto || !(data & M_CRYPTHOOK)) + ) +--- a/init.h ++++ b/init.h +@@ -3504,6 +3504,11 @@ + { "fcc-hook", mutt_parse_hook, M_FCCHOOK }, + { "fcc-save-hook", mutt_parse_hook, M_FCCHOOK | M_SAVEHOOK }, + { "folder-hook", mutt_parse_hook, M_FOLDERHOOK }, ++#ifdef USE_COMPRESSED ++ { "open-hook", mutt_parse_hook, M_OPENHOOK }, ++ { "close-hook", mutt_parse_hook, M_CLOSEHOOK }, ++ { "append-hook", mutt_parse_hook, M_APPENDHOOK }, ++#endif + { "group", parse_group, 0 }, + { "ungroup", parse_ungroup, 0 }, + { "hdr_order", parse_list, UL &HeaderOrderList }, +--- a/main.c ++++ b/main.c +@@ -402,6 +402,12 @@ + #else + "-LOCALES_HACK " + #endif ++ ++#ifdef USE_COMPRESSED ++ "+COMPRESSED " ++#else ++ "-COMPRESSED " ++#endif + + #ifdef HAVE_WC_FUNCS + "+HAVE_WC_FUNCS " +--- a/Makefile.am ++++ b/Makefile.am +@@ -18,7 +18,7 @@ + bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@ + mutt_SOURCES = \ + addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c \ +- crypt.c cryptglue.c \ ++ crypt.c cryptglue.c compress.c \ + commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c \ + edit.c enter.c flags.c init.c filter.c from.c \ + getdomain.c group.c \ +@@ -57,7 +57,7 @@ + bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h + + EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \ +- configure account.h \ ++ configure account.h compress.h \ + attach.h buffy.h charset.h copy.h crypthash.h dotlock.h functions.h gen_defs \ + globals.h hash.h history.h init.h keymap.h mutt_crypt.h \ + mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h \ +--- a/mbox.c ++++ b/mbox.c +@@ -29,6 +29,10 @@ + #include "copy.h" + #include "mutt_curses.h" + ++#ifdef USE_COMPRESSED ++#include "compress.h" ++#endif ++ + #include + #include + #include +@@ -1048,6 +1052,12 @@ + int mbox_close_mailbox (CONTEXT *ctx) + { + mx_unlock_file (ctx->path, fileno (ctx->fp), 1); ++ ++#ifdef USE_COMPRESSED ++ if (ctx->compressinfo) ++ mutt_slow_close_compressed (ctx); ++#endif ++ + mutt_unblock_signals (); + mx_fastclose_mailbox (ctx); + return 0; +--- a/mutt.h ++++ b/mutt.h +@@ -146,6 +146,11 @@ + #define M_ACCOUNTHOOK (1<<9) + #define M_REPLYHOOK (1<<10) + #define M_SEND2HOOK (1<<11) ++#ifdef USE_COMPRESSED ++#define M_OPENHOOK (1<<12) ++#define M_APPENDHOOK (1<<13) ++#define M_CLOSEHOOK (1<<14) ++#endif + + /* tree characters for linearize_tree and print_enriched_string */ + #define M_TREE_LLCORNER 1 +@@ -882,6 +887,11 @@ + int flagged; /* how many flagged messages */ + int msgnotreadyet; /* which msg "new" in pager, -1 if none */ + ++#ifdef USE_COMPRESSED ++ void *compressinfo; /* compressed mbox module private data */ ++ char *realpath; /* path to compressed mailbox */ ++#endif /* USE_COMPRESSED */ ++ + short magic; /* mailbox type */ + + unsigned char rights[(RIGHTSMAX + 7)/8]; /* ACL bits */ +--- a/mx.c ++++ b/mx.c +@@ -30,6 +30,10 @@ + #include "keymap.h" + #include "url.h" + ++#ifdef USE_COMPRESSED ++#include "compress.h" ++#endif ++ + #ifdef USE_IMAP + #include "imap.h" + #endif +@@ -415,6 +419,10 @@ + return (-1); + } + ++#ifdef USE_COMPRESSED ++ if (magic == 0 && mutt_can_read_compressed (path)) ++ return M_COMPRESSED; ++#endif + return (magic); + } + +@@ -454,6 +462,13 @@ + { + struct stat sb; + ++#ifdef USE_COMPRESSED ++ /* special case for appending to compressed folders - ++ * even if we can not open them for reading */ ++ if (mutt_can_append_compressed (ctx->path)) ++ mutt_open_append_compressed (ctx); ++#endif ++ + ctx->append = 1; + + #ifdef USE_IMAP +@@ -617,7 +632,12 @@ + } + + ctx->magic = mx_get_magic (path); +- ++ ++#ifdef USE_COMPRESSED ++ if (ctx->magic == M_COMPRESSED) ++ mutt_open_read_compressed (ctx); ++#endif ++ + if(ctx->magic == 0) + mutt_error (_("%s is not a mailbox."), path); + +@@ -718,6 +738,10 @@ + mutt_free_header (&ctx->hdrs[i]); + FREE (&ctx->hdrs); + FREE (&ctx->v2r); ++#ifdef USE_COMPRESSED ++ if (ctx->compressinfo) ++ mutt_fast_close_compressed (ctx); ++#endif + FREE (&ctx->path); + FREE (&ctx->pattern); + if (ctx->limit_pattern) +@@ -770,6 +794,12 @@ + + if (tmp && tmp->new == 0) + mutt_update_mailbox (tmp); ++ ++#ifdef USE_COMPRESSED ++ if (rc == 0 && ctx->compressinfo) ++ return mutt_sync_compressed (ctx); ++#endif ++ + return rc; + } + +@@ -1033,6 +1063,11 @@ + !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) + mx_unlink_empty (ctx->path); + ++#ifdef USE_COMPRESSED ++ if (ctx->compressinfo && mutt_slow_close_compressed (ctx)) ++ return (-1); ++#endif ++ + mx_fastclose_mailbox (ctx); + + return 0; +@@ -1355,6 +1390,11 @@ + { + int rc; + ++#ifdef USE_COMPRESSED ++ if (ctx->compressinfo) ++ return mutt_check_mailbox_compressed (ctx); ++#endif ++ + if (ctx) + { + if (ctx->locked) lock = 0; +--- a/mx.h ++++ b/mx.h +@@ -40,6 +40,9 @@ + #ifdef USE_POP + , M_POP + #endif ++#ifdef USE_COMPRESSED ++ , M_COMPRESSED ++#endif + }; + + WHERE short DefaultMagic INITVAL (M_MBOX); +--- a/po/de.po ++++ b/po/de.po +@@ -2005,6 +2005,10 @@ + msgid "Bad history file format (line %d)" + msgstr "Falsches Format der Datei früherer Eingaben (Zeile %d)" + ++#: hook.c:96 ++msgid "badly formatted command string" ++msgstr "Hook enthält nicht die Muster %f und %t" ++ + #: hook.c:251 + #, c-format + msgid "unhook: Can't do unhook * from within a hook." +@@ -2766,7 +2770,7 @@ + msgid "Mailbox is corrupt!" + msgstr "Mailbox fehlerhaft!" + +-#: mbox.c:678 ++#: mbox.c:678 compress.c:203 mbox.c:661 + msgid "Mailbox was corrupted!" + msgstr "Mailbox wurde zerstört!" + +@@ -2774,10 +2778,11 @@ + msgid "Fatal error! Could not reopen mailbox!" + msgstr "Fataler Fehler, konnte Mailbox nicht erneut öffnen!" + +-#: mbox.c:746 ++#: mbox.c:746 compress.c:264 compress.c:246 compress.c:367 compress.c:443 mbox.c:706 + msgid "Unable to lock mailbox!" + msgstr "Kann Mailbox nicht für exklusiven Zugriff sperren!" + ++ + #. this means ctx->changed or ctx->deleted was set, but no + #. * messages were found to be changed or deleted. This should + #. * never happen, is we presume it is a bug in mutt. +@@ -5378,3 +5383,32 @@ + + #~ msgid "Authentication method is unknown." + #~ msgstr "Authentifizierungsmethode unbekannt." ++ ++#: compress.c:228 compress.c:253 ++#, c-format ++msgid "Decompressing %s...\n" ++msgstr "Entpacke %s...\n" ++ ++#: compress.c:350 compress.c:377 compress.c:423 compress.c:454 ++#, c-format ++msgid "Compressing %s...\n" ++msgstr "Komprimiere %s...\n" ++ ++#: compress.c:381 ++#, c-format ++msgid "" ++"%s: Error compressing mailbox! Original mailbox deleted, uncompressed one " ++"kept!\n" ++msgstr "" ++"%s: Fehler beim Komprimieren der Mailbox! Ursprüngliche Mailbox gelöscht, " ++"entpackte gespeichert!\n" ++ ++#: compress.c:425 compress.c:456 ++#, c-format ++msgid "Compressed-appending to %s...\n" ++msgstr "Hänge komprimiert an %s... an\n" ++ ++#: compress.c:461 ++#, c-format ++msgid " %s: Error compressing mailbox! Uncompressed one kept!\n" ++msgstr " %s: Fehler beim packen der Mailbox! Entpackte Mailbox gespeichert!\n" +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -8,6 +8,7 @@ + color.c + commands.c + compose.c ++compress.c + crypt-gpgme.c + crypt.c + cryptglue.c +--- a/status.c ++++ b/status.c +@@ -96,6 +96,14 @@ + + case 'f': + snprintf (fmt, sizeof(fmt), "%%%ss", prefix); ++#ifdef USE_COMPRESSED ++ if (Context && Context->compressinfo && Context->realpath) ++ { ++ strfcpy (tmp, Context->realpath, sizeof (tmp)); ++ mutt_pretty_mailbox (tmp, sizeof (tmp)); ++ } ++ else ++#endif + if (Context && Context->path) + { + strfcpy (tmp, Context->path, sizeof (tmp)); diff --git a/debian/patches/features/compressed-folders.debian b/debian/patches/features/compressed-folders.debian new file mode 100644 index 0000000..91ce929 --- /dev/null +++ b/debian/patches/features/compressed-folders.debian @@ -0,0 +1,9 @@ +to enable the use of compressed folders + +--- a/config-debian.h ++++ b/config-debian.h +@@ -0,0 +1,4 @@ ++#ifndef USE_COMPRESSED ++#error "You forgot to update debian/patches/autotools-update." ++#error "Run sh debian/update-autotools.sh" ++#endif diff --git a/debian/patches/features/ifdef b/debian/patches/features/ifdef new file mode 100644 index 0000000..28913b5 --- /dev/null +++ b/debian/patches/features/ifdef @@ -0,0 +1,145 @@ +# vim:ft=diff: +This is the ifdef patch by Cedric Duval . + +This command allows to test if a feature has been compiled in before actually +attempting to configure / use it. + +Syntax: + +ifdef + +where can be the name of a variable, function, or command. + +Examples: + +ifdef imap-fetch-mail 'source ~/.mutt/imap_setup' +ifdef trash set trash=~/Mail/trash + +* Patch last synced with upstream: + - Date: 2007-02-15 + - File: + http://cedricduval.free.fr/mutt/patches/download/patch-1.5.4.cd.ifdef.1 + +* Changes made: + - Updated to 1.5.13 + - Also look for commands + - Use mutt_strcmp in favor of ascii_strncasecmp to compare strings. + +== END PATCH +--- a/init.c ++++ b/init.c +@@ -635,6 +635,65 @@ static int remove_from_rx_list (RX_LIST + return (rv); + } + ++static int parse_ifdef (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) ++{ ++ int i, j, res = 0; ++ BUFFER token; ++ ++ memset (&token, 0, sizeof (token)); ++ mutt_extract_token (tmp, s, 0); ++ ++ /* is the item defined as a variable? */ ++ res = (mutt_option_index (tmp->data) != -1); ++ ++ /* a function? */ ++ if (!res) ++ for (i = 0; !res && i < MENU_MAX; i++) ++ { ++ struct binding_t *b = km_get_table (Menus[i].value); ++ ++ if (!b) ++ continue; ++ ++ for (j = 0; b[j].name; j++) ++ if (!mutt_strcmp (tmp->data, b[j].name)) ++ { ++ res = 1; ++ break; ++ } ++ } ++ ++ /* a command? */ ++ if (!res) ++ for (i = 0; Commands[i].name; i++) ++ { ++ if (!mutt_strcmp (tmp->data, Commands[i].name)) ++ { ++ res = 1; ++ break; ++ } ++ } ++ ++ if (!MoreArgs (s)) ++ { ++ snprintf (err->data, err->dsize, _("ifdef: too few arguments")); ++ return (-1); ++ } ++ mutt_extract_token (tmp, s, M_TOKEN_SPACE); ++ ++ if (res) ++ { ++ if (mutt_parse_rc_line (tmp->data, &token, err) == -1) ++ { ++ mutt_error ("Erreur: %s", err->data); ++ FREE (&token.data); ++ return (-1); ++ } ++ FREE (&token.data); ++ } ++ return 0; ++} ++ + static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) + { + do +--- a/init.h ++++ b/init.h +@@ -3413,6 +3413,7 @@ static int parse_lists (BUFFER *, BUFFER + static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *); ++static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *); +@@ -3463,6 +3464,7 @@ struct command_t Commands[] = { + { "group", parse_group, 0 }, + { "ungroup", parse_ungroup, 0 }, + { "hdr_order", parse_list, UL &HeaderOrderList }, ++ { "ifdef", parse_ifdef, 0 }, + #ifdef HAVE_ICONV + { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, + #endif +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -4087,6 +4087,28 @@ considered to be an executable program f + + + ++ ++ ++Configuring features conditionally ++ ++ ++Usage: ifdef item command ++ ++ ++ ++This command allows to test if a feature has been compiled in, before ++actually executing the command. Item can be either the name of a ++function, variable, or command. Example: ++ ++ ++ ++ ++ifdef imap_keepalive 'source ~/.mutt/imap_setup' ++ ++ ++ ++ ++ + + Removing Hooks + diff --git a/debian/patches/features/imap_fast_trash b/debian/patches/features/imap_fast_trash new file mode 100644 index 0000000..def2bc2 --- /dev/null +++ b/debian/patches/features/imap_fast_trash @@ -0,0 +1,93 @@ +http://marc.info/?l=mutt-dev&m=128045511126422 + +Make "move to trash folder" use IMAP COPY. + +by Paul Miller (jettero) + +diff --git a/imap/imap.c b/imap/imap.c +index f08b4ea..47a8035 100644 +--- a/imap/imap.c ++++ b/imap/imap.c +@@ -2028,3 +2028,54 @@ int imap_complete(char* dest, size_t dlen, char* path) { + + return -1; + } ++ ++int imap_fast_trash() { ++ ++ if( Context->magic == M_IMAP && mx_is_imap(TrashPath) ) { ++ IMAP_MBOX mx; ++ IMAP_DATA *idata = (IMAP_DATA *) Context->data; ++ char mbox[LONG_STRING]; ++ char mmbox[LONG_STRING]; ++ int rc; ++ dprint(1, (debugfile, "[itf] trashcan seems to be on imap.\n")); ++ ++ if ( imap_parse_path(TrashPath, &mx) == 0 ) { ++ if( mutt_account_match(&(idata->conn->account), &(mx.account)) ) { ++ dprint(1, (debugfile, "[itf] trashcan seems to be on the same account.\n")); ++ ++ imap_fix_path (idata, mx.mbox, mbox, sizeof (mbox)); ++ if (!*mbox) ++ strfcpy (mbox, "INBOX", sizeof (mbox)); ++ imap_munge_mbox_name (mmbox, sizeof (mmbox), mbox); ++ ++ rc = imap_exec_msgset (idata, "UID COPY", mmbox, M_DELETED, 0, 0); ++ if (!rc) { ++ dprint (1, (debugfile, "imap_copy_messages: No messages del-tagged\n")); ++ rc = -1; ++ goto old_way; ++ ++ } else if (rc < 0) { ++ dprint (1, (debugfile, "could not queue copy\n")); ++ goto old_way; ++ ++ } else { ++ mutt_message (_("Copying %d messages to %s..."), rc, mbox); ++ return 0; ++ } ++ ++ } else { ++ dprint(1, (debugfile, "[itf] trashcan seems to be on a different account.\n")); ++ } ++ ++ old_way: ++ FREE (&mx.mbox); /* we probably only need to free this when the parse works */ ++ ++ } else { ++ dprint(1, (debugfile, "[itf] failed to parse TrashPath.\n" )); ++ } ++ ++ dprint(1, (debugfile, "[itf] giving up and trying old fasioned way.\n" )); ++ } ++ ++ return 1; ++} +diff --git a/imap/imap.h b/imap/imap.h +index 74d7e13..99cd454 100644 +--- a/imap/imap.h ++++ b/imap/imap.h +@@ -72,4 +72,7 @@ void imap_keepalive (void); + + int imap_account_match (const ACCOUNT* a1, const ACCOUNT* a2); + ++/* trash */ ++int imap_fast_trash(); ++ + #endif +diff --git a/mx.c b/mx.c +index 78aafcc..38c4e7f 100644 +--- a/mx.c ++++ b/mx.c +@@ -828,6 +828,11 @@ static int trash_append (CONTEXT *ctx) + && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) + return 0; /* we are in the trash folder: simple sync */ + ++ #ifdef USE_IMAP ++ if( !imap_fast_trash() ) ++ return 0; ++ #endif ++ + if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) + { + for (i = 0 ; i < ctx->msgcount ; i++) diff --git a/debian/patches/features/purge-message b/debian/patches/features/purge-message new file mode 100644 index 0000000..d16c0f2 --- /dev/null +++ b/debian/patches/features/purge-message @@ -0,0 +1,227 @@ +# vim:ft=diff: +This is the purge message patch by Cedric Duval . + +(requires trash folder patch) + +This patch adds the purge-message function, which, unlike delete-message, will +bypass the trash folder and really delete the mail. + +You can bind this function to D, for instance, by adding the following +lines to your muttrc: + +bind index \eD purge-message +bind pager \eD purge-message + +Please be very careful with this function, and try to use it as less as +possible. The risk resides in getting into the habit of always using +purge-message instead of delete-message, which would really defeat the purpose +of having a trash folder feature. + +* Patch last synced with upstream: + - Date: 2007-02-15 + - File: http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.purge_message.3.4 + +* Changes made: + - Updated to 1.5.13 + - Fixed indentation of "purged" in mutt.h. + +== END PATCH +Index: mutt/OPS +=================================================================== +--- mutt.orig/OPS 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/OPS 2009-06-25 12:36:14.000000000 +0200 +@@ -141,6 +141,7 @@ + OP_PREV_LINE "scroll up one line" + OP_PREV_PAGE "move to the previous page" + OP_PRINT "print the current entry" ++OP_PURGE_MESSAGE "really delete the current entry, bypassing the trash folder" + OP_QUERY "query external program for addresses" + OP_QUERY_APPEND "append new query results to current results" + OP_QUIT "save changes to mailbox and quit" +Index: mutt/curs_main.c +=================================================================== +--- mutt.orig/curs_main.c 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/curs_main.c 2009-06-25 12:36:14.000000000 +0200 +@@ -1823,6 +1823,7 @@ + MAYBE_REDRAW (menu->redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + + CHECK_MSGCOUNT; +@@ -1833,6 +1834,7 @@ + if (tag) + { + mutt_tag_set_flag (M_DELETE, 1); ++ mutt_tag_set_flag (M_PURGED, (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_tag_set_flag (M_TAG, 0); + menu->redraw = REDRAW_INDEX; +@@ -1840,6 +1842,8 @@ + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 1); ++ mutt_set_flag (Context, CURHDR, M_PURGED, ++ (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, CURHDR, M_TAG, 0); + if (option (OPTRESOLVE)) +@@ -2136,11 +2140,13 @@ + if (tag) + { + mutt_tag_set_flag (M_DELETE, 0); ++ mutt_tag_set_flag (M_PURGED, 0); + menu->redraw = REDRAW_INDEX; + } + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 0); ++ mutt_set_flag (Context, CURHDR, M_PURGED, 0); + if (option (OPTRESOLVE) && menu->current < Context->vcount - 1) + { + menu->current++; +@@ -2161,9 +2167,11 @@ + CHECK_ACL(M_ACL_DELETE, _("undelete message(s)")); + + rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0, +- op == OP_UNDELETE_THREAD ? 0 : 1); ++ op == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (CURHDR, M_PURGED, 0, ++ op == OP_UNDELETE_THREAD ? 0 : 1); + +- if (rc != -1) ++ if (rc > -1) + { + if (option (OPTRESOLVE)) + { +Index: mutt/flags.c +=================================================================== +--- mutt.orig/flags.c 2009-06-25 12:35:48.000000000 +0200 ++++ mutt/flags.c 2009-06-25 12:36:14.000000000 +0200 +@@ -104,6 +104,16 @@ + } + break; + ++ case M_PURGED: ++ if (bf) ++ { ++ if (!h->purged) ++ h->purged = 1; ++ } ++ else if (h->purged) ++ h->purged = 0; ++ break; ++ + case M_NEW: + + if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN)) +Index: mutt/functions.h +=================================================================== +--- mutt.orig/functions.h 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/functions.h 2009-06-25 12:36:14.000000000 +0200 +@@ -120,6 +120,7 @@ + { "toggle-write", OP_TOGGLE_WRITE, "%" }, + { "next-thread", OP_MAIN_NEXT_THREAD, "\016" }, + { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "query", OP_QUERY, "Q" }, + { "quit", OP_QUIT, "q" }, + { "reply", OP_REPLY, "r" }, +@@ -209,6 +210,7 @@ + { "print-message", OP_PRINT, "p" }, + { "previous-thread", OP_MAIN_PREV_THREAD, "\020" }, + { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "quit", OP_QUIT, "Q" }, + { "exit", OP_EXIT, "q" }, + { "reply", OP_REPLY, "r" }, +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:35:48.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:36:14.000000000 +0200 +@@ -188,6 +188,7 @@ + M_UNDELETE, + M_DELETED, + M_APPENDED, ++ M_PURGED, + M_FLAG, + M_TAG, + M_UNTAG, +@@ -704,6 +705,7 @@ + unsigned int flagged : 1; /* marked important? */ + unsigned int tagged : 1; + unsigned int appended : 1; /* has been saved */ ++ unsigned int purged : 1; /* bypassing the trash folder */ + unsigned int deleted : 1; + unsigned int changed : 1; + unsigned int attach_del : 1; /* has an attachment marked for deletion */ +Index: mutt/mx.c +=================================================================== +--- mutt.orig/mx.c 2009-06-25 12:36:10.000000000 +0200 ++++ mutt/mx.c 2009-06-25 12:36:14.000000000 +0200 +@@ -803,6 +803,7 @@ + { + for (i = 0 ; i < ctx->msgcount ; i++) + if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended ++ && !ctx->hdrs[i]->purged + && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) + { + mx_close_mailbox (ctx_trash, NULL); +Index: mutt/pager.c +=================================================================== +--- mutt.orig/pager.c 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/pager.c 2009-06-25 12:36:14.000000000 +0200 +@@ -2316,12 +2316,15 @@ + MAYBE_REDRAW (redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + CHECK_MODE(IsHeader (extra)); + CHECK_READONLY; + CHECK_ACL(M_ACL_DELETE, _("delete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 1); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, ++ ch != OP_PURGE_MESSAGE ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, extra->hdr, M_TAG, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; +@@ -2648,6 +2651,7 @@ + CHECK_ACL(M_ACL_DELETE, _("undelete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 0); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; + if (option (OPTRESOLVE)) + { +@@ -2663,9 +2667,11 @@ + CHECK_ACL(M_ACL_DELETE, _("undelete message(s)")); + + r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0, ++ ch == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (extra->hdr, M_PURGED, 0, + ch == OP_UNDELETE_THREAD ? 0 : 1); + +- if (r != -1) ++ if (r > -1) + { + if (option (OPTRESOLVE)) + { +Index: mutt/pattern.c +=================================================================== +--- mutt.orig/pattern.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/pattern.c 2009-06-25 12:36:14.000000000 +0200 +@@ -1347,8 +1347,10 @@ + { + switch (op) + { +- case M_DELETE: + case M_UNDELETE: ++ mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_PURGED, ++ 0); ++ case M_DELETE: + mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, + (op == M_DELETE)); + break; diff --git a/debian/patches/features/sensible_browser_position b/debian/patches/features/sensible_browser_position new file mode 100644 index 0000000..744353a --- /dev/null +++ b/debian/patches/features/sensible_browser_position @@ -0,0 +1,109 @@ +# vi: ft=diff +This is the sensible browser position patch by Haakon Riiser. + + * Found in: <20050309162127.GA5656@s> + http://lists.df7cb.de/mutt/message/20050309.162127.a244a894.en.html + +== END PATCH +Index: mutt/menu.c +=================================================================== +--- mutt.orig/menu.c 2009-06-25 12:35:36.000000000 +0200 ++++ mutt/menu.c 2009-06-25 12:36:19.000000000 +0200 +@@ -853,8 +853,17 @@ + + int mutt_menuLoop (MUTTMENU *menu) + { ++ static int last_position = -1; + int i = OP_NULL; + ++ if ( menu->max && menu->is_mailbox_list ) { ++ if ( last_position > (menu->max-1) ) { ++ last_position = -1; ++ } else if (last_position >= 0) { ++ menu->current = last_position; ++ } ++ } ++ + FOREVER + { + if (option (OPTMENUCALLER)) +@@ -1082,6 +1091,8 @@ + break; + + default: ++ if (menu->is_mailbox_list) ++ last_position = menu->current; + return (i); + } + } +Index: mutt/browser.c +=================================================================== +--- mutt.orig/browser.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/browser.c 2009-06-25 12:36:19.000000000 +0200 +@@ -55,6 +55,7 @@ + int num; + } FOLDER; + ++static char OldLastDir[_POSIX_PATH_MAX] = ""; + static char LastDir[_POSIX_PATH_MAX] = ""; + static char LastDirBackup[_POSIX_PATH_MAX] = ""; + +@@ -519,9 +520,13 @@ + menu->tagged = 0; + + if (buffy) ++ { ++ menu->is_mailbox_list = 1; + snprintf (title, titlelen, _("Mailboxes [%d]"), mutt_buffy_check (0)); ++ } + else + { ++ menu->is_mailbox_list = 0; + strfcpy (path, LastDir, sizeof (path)); + mutt_pretty_mailbox (path, sizeof (path)); + #ifdef USE_IMAP +@@ -530,8 +535,22 @@ + path, NONULL (Mask.pattern)); + else + #endif +- snprintf (title, titlelen, _("Directory [%s], File mask: %s"), +- path, NONULL(Mask.pattern)); ++ { ++ char *p = strrchr (OldLastDir, '/'); ++ if (p && p - OldLastDir == mutt_strlen (LastDir) && ++ mutt_strncmp (LastDir, OldLastDir, p - OldLastDir) == 0) ++ { ++ /* If we get here, it means that LastDir is the parent directory of ++ * OldLastDir. I.e., we're returning from a subdirectory, and we want ++ * to position the cursor on the directory we're returning from. */ ++ int i; ++ for (i = 0; i < state->entrymax; i++) ++ if (mutt_strcmp (state->entry[i].name, p + 1) == 0) ++ menu->current = i; ++ } ++ snprintf (title, titlelen, _("Directory [%s], File mask: %s"), ++ path, NONULL(Mask.pattern)); ++ } + } + menu->redraw = REDRAW_FULL; + } +@@ -714,7 +733,6 @@ + #endif + ) + { +- char OldLastDir[_POSIX_PATH_MAX]; + + /* save the old directory */ + strfcpy (OldLastDir, LastDir, sizeof (OldLastDir)); +Index: mutt/mutt_menu.h +=================================================================== +--- mutt.orig/mutt_menu.h 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/mutt_menu.h 2009-06-25 12:36:19.000000000 +0200 +@@ -49,6 +49,7 @@ + int offset; /* which screen row to start the index */ + int pagelen; /* number of entries per screen */ + int tagprefix; ++ int is_mailbox_list; + + /* Setting dialog != NULL overrides normal menu behaviour. + * In dialog mode menubar is hidden and prompt keys are checked before diff --git a/debian/patches/features/trash-folder b/debian/patches/features/trash-folder new file mode 100644 index 0000000..b871175 --- /dev/null +++ b/debian/patches/features/trash-folder @@ -0,0 +1,301 @@ +# vim:ft=diff: +This is the trash folder patch by Cedric Duval . + +With this patch, if the trash variable is set to a path (unset by default), the +deleted mails will be moved to a trash folder instead of being irremediably +purged when syncing the mailbox. + +For instance, set trash="~/Mail/trash" will cause every deleted mail to go to +this folder. + +Note that the append to the trash folder doesn't occur until the resync is +done. This allows you to change your mind and undo deletes, and thus the moves +to the trash folder are unnecessary. + +Notes + + * You might also want to have a look at the purge message feature below + which is related to this patch. + * IMAP is now supported. To retain the previous behavior, add this to your + muttrc: + folder-hook ^imap:// 'unset trash' + +FAQ + +Every once in a while, someone asks what are the advantages of this patch over +a macro based solution. Here's an attempt to answer this question: + + * The folder history doesn't clutter up with unwanted trash entries. + * Delayed move to the trash allows to change one's mind. + * No need to treat the case of "normal folders" and trash folders + separately with folder-hooks, and to create two sets of macros (one for + the index, one for the pager). + * Works not only with delete-message, but also with every deletion + functions like delete-pattern, delete-thread or delete-subthread. + +To sum up, it's more integrated and transparent to the user. + +* Patch last synced with upstream: + - Date: 2007-02-15 + - File: http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.trash_folder.3.4 + +* Changes made: + - Updated to 1.5.13: + - structure of _mutt_save_message changed (commands.c) + - context of option (OPTCONFIRMAPPEND) changed (muttlib.c) + - Fixed indentation of "appended" in mutt.h. + +== END PATCH +Index: mutt/commands.c +=================================================================== +--- mutt.orig/commands.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/commands.c 2009-06-25 12:35:48.000000000 +0200 +@@ -716,6 +716,7 @@ + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, h, M_TAG, 0); + } ++ mutt_set_flag (Context, h, M_APPENDED, 1); + + return 0; + } +Index: mutt/flags.c +=================================================================== +--- mutt.orig/flags.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/flags.c 2009-06-25 12:35:48.000000000 +0200 +@@ -65,7 +65,13 @@ + { + h->deleted = 0; + update = 1; +- if (upd_ctx) ctx->deleted--; ++ if (upd_ctx) ++ { ++ ctx->deleted--; ++ if (h->appended) ++ ctx->appended--; ++ } ++ h->appended = 0; /* when undeleting, also reset the appended flag */ + #ifdef USE_IMAP + /* see my comment above */ + if (ctx->magic == M_IMAP) +@@ -87,6 +93,17 @@ + } + break; + ++ case M_APPENDED: ++ if (bf) ++ { ++ if (!h->appended) ++ { ++ h->appended = 1; ++ if (upd_ctx) ctx->appended++; ++ } ++ } ++ break; ++ + case M_NEW: + + if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN)) +Index: mutt/globals.h +=================================================================== +--- mutt.orig/globals.h 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/globals.h 2009-06-25 12:35:48.000000000 +0200 +@@ -139,6 +139,7 @@ + WHERE char *Status; + WHERE char *Tempdir; + WHERE char *Tochars; ++WHERE char *TrashPath; + WHERE char *Username; + WHERE char *Visual; + WHERE char *XtermTitle; +Index: mutt/imap/message.c +=================================================================== +--- mutt.orig/imap/message.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/imap/message.c 2009-06-25 12:35:48.000000000 +0200 +@@ -867,6 +867,7 @@ + if (ctx->hdrs[n]->tagged) + { + mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0); + } +@@ -874,6 +875,7 @@ + else + { + mutt_set_flag (ctx, h, M_DELETE, 1); ++ mutt_set_flag (ctx, h, M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, h, M_TAG, 0); + } +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:35:48.000000000 +0200 +@@ -3180,6 +3180,16 @@ + ** by \fIyou\fP. The sixth character is used to indicate when a mail + ** was sent to a mailing-list you subscribe to. + */ ++ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 }, ++ /* ++ ** .pp ++ ** If set, this variable specifies the path of the trash folder where the ++ ** mails marked for deletion will be moved, instead of being irremediably ++ ** purged. ++ ** .pp ++ ** NOTE: When you delete a message in the trash folder, it is really ++ ** deleted, so that you have a way to clean the trash. ++ */ + #ifdef USE_SOCKET + { "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 }, + /* +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:35:44.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:35:48.000000000 +0200 +@@ -187,6 +187,7 @@ + M_DELETE, + M_UNDELETE, + M_DELETED, ++ M_APPENDED, + M_FLAG, + M_TAG, + M_UNTAG, +@@ -702,6 +703,7 @@ + unsigned int mime : 1; /* has a MIME-Version header? */ + unsigned int flagged : 1; /* marked important? */ + unsigned int tagged : 1; ++ unsigned int appended : 1; /* has been saved */ + unsigned int deleted : 1; + unsigned int changed : 1; + unsigned int attach_del : 1; /* has an attachment marked for deletion */ +@@ -874,6 +876,7 @@ + int new; /* how many new messages? */ + int unread; /* how many unread messages? */ + int deleted; /* how many deleted messages */ ++ int appended; /* how many saved messages? */ + int flagged; /* how many flagged messages */ + int msgnotreadyet; /* which msg "new" in pager, -1 if none */ + +Index: mutt/muttlib.c +=================================================================== +--- mutt.orig/muttlib.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/muttlib.c 2009-06-25 12:35:48.000000000 +0200 +@@ -1460,7 +1460,9 @@ + + if (magic > 0 && !mx_access (s, W_OK)) + { +- if (option (OPTCONFIRMAPPEND)) ++ if (option (OPTCONFIRMAPPEND) && ++ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0))) ++ /* if we're appending to the trash, there's no point in asking */ + { + snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s); + if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO) +Index: mutt/mx.c +=================================================================== +--- mutt.orig/mx.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/mx.c 2009-06-25 12:35:48.000000000 +0200 +@@ -773,6 +773,53 @@ + return rc; + } + ++/* move deleted mails to the trash folder */ ++static int trash_append (CONTEXT *ctx) ++{ ++ CONTEXT *ctx_trash; ++ int i = 0; ++ struct stat st, stc; ++ ++ if (!TrashPath || !ctx->deleted || ++ (ctx->magic == M_MAILDIR && option (OPTMAILDIRTRASH))) ++ return 0; ++ ++ for (;i < ctx->msgcount && (!ctx->hdrs[i]->deleted || ++ ctx->hdrs[i]->appended); i++); ++ if (i == ctx->msgcount) ++ return 0; /* nothing to be done */ ++ ++ if (mutt_save_confirm (TrashPath, &st) != 0) ++ { ++ mutt_error _("message(s) not deleted"); ++ return -1; ++ } ++ ++ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino ++ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) ++ return 0; /* we are in the trash folder: simple sync */ ++ ++ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) ++ { ++ for (i = 0 ; i < ctx->msgcount ; i++) ++ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended ++ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) ++ { ++ mx_close_mailbox (ctx_trash, NULL); ++ return -1; ++ } ++ ++ mx_close_mailbox (ctx_trash, NULL); ++ } ++ else ++ { ++ mutt_error _("Can't open trash folder"); ++ return -1; ++ } ++ ++ return 0; ++} ++ + /* save changes and close mailbox */ + int mx_close_mailbox (CONTEXT *ctx, int *index_hint) + { +@@ -909,6 +956,7 @@ + if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0) + { + mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1); + } + else + { +@@ -931,6 +979,14 @@ + return 0; + } + ++ /* copy mails to the trash before expunging */ ++ if (purge && ctx->deleted && mutt_strcmp(ctx->path, TrashPath)) ++ if (trash_append (ctx) != 0) ++ { ++ ctx->closing = 0; ++ return -1; ++ } ++ + #ifdef USE_IMAP + /* allow IMAP to preserve the deleted flag across sessions */ + if (ctx->magic == M_IMAP) +@@ -1130,6 +1186,12 @@ + msgcount = ctx->msgcount; + deleted = ctx->deleted; + ++ if (purge && ctx->deleted && mutt_strcmp(ctx->path, TrashPath)) ++ { ++ if (trash_append (ctx) == -1) ++ return -1; ++ } ++ + #ifdef USE_IMAP + if (ctx->magic == M_IMAP) + rc = imap_sync_mailbox (ctx, purge, index_hint); +Index: mutt/postpone.c +=================================================================== +--- mutt.orig/postpone.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/postpone.c 2009-06-25 12:35:48.000000000 +0200 +@@ -276,6 +276,9 @@ + /* finished with this message, so delete it. */ + mutt_set_flag (PostContext, h, M_DELETE, 1); + ++ /* and consider it saved, so that it won't be moved to the trash folder */ ++ mutt_set_flag (PostContext, h, M_APPENDED, 1); ++ + /* update the count for the status display */ + PostCount = PostContext->msgcount - PostContext->deleted; + diff --git a/debian/patches/features/xtitles b/debian/patches/features/xtitles new file mode 100644 index 0000000..b42acc1 --- /dev/null +++ b/debian/patches/features/xtitles @@ -0,0 +1,182 @@ +# vi: ft=diff +This is the xterm title patch as found on the mutt mailing lists. + +* Changes made: + - 2007-01-27 myon: using %P caused a segfault, updated status.c to catch + menu==NULL. + - 2007-02-20 myon: make the note about the xterm_set_titles defaults a + comment. + - 2008-08-02 myon: move set_xterm_* prototypes into the proper header file + (cleaner code, no functional change, evades conflict with sidebar patch) + +== END PATCH +Index: mutt/curs_main.c +=================================================================== +--- mutt.orig/curs_main.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/curs_main.c 2009-06-25 12:35:44.000000000 +0200 +@@ -110,6 +110,19 @@ + + extern size_t UngetCount; + ++#define ASCII_CTRL_G 0x07 ++#define ASCII_CTRL_OPEN_SQUARE_BRAKET 0x1b ++ ++void set_xterm_title_bar(char *title) ++{ ++ fprintf(stderr ,"%c]2;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, title, ASCII_CTRL_G); ++} ++ ++void set_xterm_icon_name(char *name) ++{ ++ fprintf(stderr, "%c]1;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, name, ASCII_CTRL_G); ++} ++ + void index_make_entry (char *s, size_t l, MUTTMENU *menu, int num) + { + format_flag flag = M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX; +@@ -566,6 +579,13 @@ + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + menu->redraw &= ~REDRAW_STATUS; ++ if (option(OPTXTERMSETTITLES)) ++ { ++ menu_status_line (buf, sizeof (buf), menu, NONULL (XtermTitle)); ++ set_xterm_title_bar(buf); ++ menu_status_line (buf, sizeof (buf), menu, NONULL (XtermIcon)); ++ set_xterm_icon_name(buf); ++ } + } + + menu->redraw = 0; +Index: mutt/globals.h +=================================================================== +--- mutt.orig/globals.h 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/globals.h 2009-06-25 12:35:44.000000000 +0200 +@@ -141,6 +141,8 @@ + WHERE char *Tochars; + WHERE char *Username; + WHERE char *Visual; ++WHERE char *XtermTitle; ++WHERE char *XtermIcon; + + WHERE char *CurrentFolder; + WHERE char *LastFolder; +Index: mutt/init.c +=================================================================== +--- mutt.orig/init.c 2009-06-25 12:35:42.000000000 +0200 ++++ mutt/init.c 2009-06-25 12:35:44.000000000 +0200 +@@ -1892,6 +1892,26 @@ + toggle_option (MuttVars[idx].data); + else + set_option (MuttVars[idx].data); ++ ++ /* sanity check for xterm */ ++ if ((mutt_strcmp (MuttVars[idx].option, "xterm_set_titles") == 0) ++ && option (OPTXTERMSETTITLES)) ++ { ++ char *ep = getenv ("TERM"); ++ /* Make sure that the terminal can take the control codes */ ++ if (ep == NULL) unset_option (MuttVars[idx].data); ++ else if (mutt_strncasecmp (ep, "xterm", 5) && ++ mutt_strncasecmp (ep, "color-xterm", 11) && ++ mutt_strncasecmp (ep, "eterm", 5) && ++ mutt_strncasecmp (ep, "kterm", 5) && ++ mutt_strncasecmp (ep, "nxterm", 6) && ++ mutt_strncasecmp (ep, "putty", 5) && ++ mutt_strncasecmp (ep, "screen", 6) && ++ mutt_strncasecmp (ep, "cygwin", 6) && ++ mutt_strncasecmp (ep, "rxvt", 4) ) ++ unset_option (MuttVars[idx]. data); ++ ++ } + } + else if (myvar || DTYPE (MuttVars[idx].type) == DT_STR || + DTYPE (MuttVars[idx].type) == DT_PATH || +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:35:42.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:35:44.000000000 +0200 +@@ -3337,6 +3337,27 @@ + ** Also see the $$read_inc, $$net_inc and $$time_inc variables and the + ** ``$tuning'' section of the manual for performance considerations. + */ ++ {"xterm_icon", DT_STR, R_BOTH, UL &XtermIcon, UL "M%?n?AIL&ail?"}, ++ /* ++ ** .pp ++ ** Controls the format of the icon title, as long as xterm_set_titles ++ ** is enabled. This string is identical in formatting to the one used by ++ ** ``$$status_format''. ++ */ ++ {"xterm_set_titles", DT_BOOL, R_BOTH, OPTXTERMSETTITLES, 0}, ++ /* The default must be off to force in the validity checking. */ ++ /* ++ ** .pp ++ ** Controls whether mutt sets the xterm title bar and icon name ++ ** (as long as you are in an appropriate terminal). ++ */ ++ {"xterm_title", DT_STR, R_BOTH, UL &XtermTitle, UL "Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?"}, ++ /* ++ ** .pp ++ ** Controls the format of the title bar of the xterm provided that ++ ** xterm_set_titles has been set. This string is identical in formatting ++ ** to the one used by ``$$status_format''. ++ */ + /*--*/ + { NULL, 0, 0, 0, 0 } + }; +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:35:44.000000000 +0200 +@@ -446,6 +446,7 @@ + OPTWRAPSEARCH, + OPTWRITEBCC, /* write out a bcc header? */ + OPTXMAILER, ++ OPTXTERMSETTITLES, + + OPTCRYPTUSEGPGME, + OPTCRYPTUSEPKA, +Index: mutt/pager.c +=================================================================== +--- mutt.orig/pager.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/pager.c 2009-06-25 12:35:44.000000000 +0200 +@@ -1784,6 +1784,13 @@ + } + BKGDSET (MT_COLOR_NORMAL); + SETCOLOR (MT_COLOR_NORMAL); ++ if (option(OPTXTERMSETTITLES)) ++ { ++ menu_status_line (buffer, sizeof (buffer), index, NONULL (XtermTitle)); ++ set_xterm_title_bar(buffer); ++ menu_status_line (buffer, sizeof (buffer), index, NONULL (XtermIcon)); ++ set_xterm_icon_name(buffer); ++ } + } + + if ((redraw & REDRAW_INDEX) && index) +Index: mutt/status.c +=================================================================== +--- mutt.orig/status.c 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/status.c 2009-06-25 12:35:44.000000000 +0200 +@@ -195,6 +195,8 @@ + break; + + case 'P': ++ if (!menu) ++ break; + if (menu->top + menu->pagelen >= menu->max) + cp = menu->top ? "end" : "all"; + else +Index: mutt/mutt_menu.h +=================================================================== +--- mutt.orig/mutt_menu.h 2009-06-25 12:35:37.000000000 +0200 ++++ mutt/mutt_menu.h 2009-06-25 12:35:44.000000000 +0200 +@@ -103,6 +103,8 @@ + void menu_current_bottom (MUTTMENU *); + void menu_check_recenter (MUTTMENU *); + void menu_status_line (char *, size_t, MUTTMENU *, const char *); ++void set_xterm_title_bar (char *title); ++void set_xterm_icon_name (char *name); + + MUTTMENU *mutt_new_menu (int); + void mutt_menuDestroy (MUTTMENU **); diff --git a/debian/patches/misc/am-maintainer-mode b/debian/patches/misc/am-maintainer-mode new file mode 100644 index 0000000..7a6024d --- /dev/null +++ b/debian/patches/misc/am-maintainer-mode @@ -0,0 +1,15 @@ +Adds AM_MAINTAINER_MODE to configure.ac so the timestamp of the +automake files won't be updated + +Index: debian-mutt-sidebar/configure.ac +=================================================================== +--- debian-mutt-sidebar.orig/configure.ac 2007-08-11 16:42:36.000000000 +0200 ++++ debian-mutt-sidebar/configure.ac 2007-08-11 16:42:49.000000000 +0200 +@@ -9,6 +9,7 @@ AM_CONFIG_HEADER([config.h]) + + mutt_cv_version=`cat $srcdir/VERSION` + AM_INIT_AUTOMAKE(mutt, $mutt_cv_version) ++AM_MAINTAINER_MODE + AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/VERSION']) + + AC_GNU_SOURCE diff --git a/debian/patches/misc/define-pgp_getkeys_command.diff b/debian/patches/misc/define-pgp_getkeys_command.diff new file mode 100644 index 0000000..17f503c --- /dev/null +++ b/debian/patches/misc/define-pgp_getkeys_command.diff @@ -0,0 +1,13 @@ +disabling pgp_getkeys_command until upstream fixes it + +--- a/contrib/gpg.rc ++++ b/contrib/gpg.rc +@@ -72,6 +72,8 @@ set pgp_list_secring_command="gpg --no-v + + # fetch keys + # set pgp_getkeys_command="pkspxycwrap %r" ++# This will work when #172960 will be fixed upstream ++# set pgp_getkeys_command="gpg --recv-keys %r" + + # pattern for good signature - may need to be adapted to locale! + diff --git a/debian/patches/misc/gpg.rc-paths b/debian/patches/misc/gpg.rc-paths new file mode 100644 index 0000000..b27b7a6 --- /dev/null +++ b/debian/patches/misc/gpg.rc-paths @@ -0,0 +1,20 @@ +use the correct path of pgpewrap + +Index: debian-mutt/contrib/gpg.rc +=================================================================== +--- debian-mutt.orig/contrib/gpg.rc 2007-03-20 22:20:31.000000000 +0100 ++++ debian-mutt/contrib/gpg.rc 2007-03-20 22:25:55.000000000 +0100 +@@ -49,11 +49,11 @@ set pgp_clearsign_command="gpg --no-verb + + # create a pgp/mime encrypted attachment + # set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" +-set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" ++set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" + + # create a pgp/mime encrypted and signed attachment + # set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" +-set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" ++set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" + + # import a key into the public key ring + set pgp_import_command="gpg --no-verbose --import %f" diff --git a/debian/patches/misc/hg.pmdef.debugtime b/debian/patches/misc/hg.pmdef.debugtime new file mode 100644 index 0000000..a5b3ae9 --- /dev/null +++ b/debian/patches/misc/hg.pmdef.debugtime @@ -0,0 +1,57 @@ +see http://bugs.mutt.org/3263, this patch adds time/date to +the entries in .muttdebug so it will be easier to correlate them +to external events logged in tcpdump streams or logfiles + +--- a/init.c ++++ b/init.c +@@ -2846,8 +2846,8 @@ + { + t = time (0); + setbuf (debugfile, NULL); /* don't buffer the debugging output! */ +- fprintf (debugfile, "Mutt %s started at %s.\nDebugging at level %d.\n\n", +- MUTT_VERSION, asctime (localtime (&t)), debuglevel); ++ dprint(1,(debugfile,"Mutt/%s (%s) debugging at level %d\n", ++ MUTT_VERSION, ReleaseDate, debuglevel)); + } + } + #endif +--- a/lib.c ++++ b/lib.c +@@ -1007,6 +1007,24 @@ + return sysexits_h[i].str; + } + ++void mutt_debug (FILE *fp, const char *fmt, ...) ++{ ++ va_list ap; ++ time_t now = time (NULL); ++ static char buf[23] = ""; ++ static time_t last = 0; ++ ++ if (now > last) ++ { ++ strftime (buf, sizeof (buf), "%Y-%m-%d %H:%M:%S", localtime (&now)); ++ last = now; ++ } ++ fprintf (fp, "[%s] ", buf); ++ va_start (ap, fmt); ++ vfprintf (fp, fmt, ap); ++ va_end (ap); ++} ++ + int mutt_atos (const char *str, short *dst) + { + int rc; +--- a/lib.h ++++ b/lib.h +@@ -126,7 +126,9 @@ + MUTT_LIB_WHERE FILE *debugfile MUTT_LIB_INITVAL(0); + MUTT_LIB_WHERE int debuglevel MUTT_LIB_INITVAL(0); + +-# define dprint(N,X) do { if(debuglevel>=N && debugfile) fprintf X; } while (0) ++void mutt_debug (FILE *, const char *, ...); ++ ++# define dprint(N,X) do { if(debuglevel>=N && debugfile) mutt_debug X; } while (0) + + # else + diff --git a/debian/patches/misc/hyphen-as-minus.patch b/debian/patches/misc/hyphen-as-minus.patch new file mode 100644 index 0000000..2b87530 --- /dev/null +++ b/debian/patches/misc/hyphen-as-minus.patch @@ -0,0 +1,36 @@ +patch to escape all hyphen so they will be interpreted as minus +signs and lintian will not complain + +--- a/doc/mutt.man ++++ b/doc/mutt.man +@@ -23,7 +23,7 @@ + .SH SYNOPSIS + .PP + .B mutt +-[-nRyzZ] ++[\-nRyzZ] + [\-e \fIcmd\fP] [\-F \fIfile\fP] [\-m \fItype\fP] [\-f \fIfile\fP] + .PP + .B mutt +@@ -59,10 +59,10 @@ + [\-n] [\-e \fIcmd\fP] [\-F \fIfile\fP] \-Q \fIquery\fP + .PP + .B mutt +--v[v] ++\-v[v] + .PP + .B mutt +--D ++\-D + .SH DESCRIPTION + .PP + Mutt is a small but very powerful text based program for reading and sending electronic +@@ -81,7 +81,7 @@ + .IP "-a \fIfile\fP [...]" + Attach a file to your message using MIME. + When attaching single or multiple files, separating filenames and recipient addresses with +-"\-\-" is mandatory, e.g. \fBmutt -a image.jpg \-\- addr1\fP or ++"\-\-" is mandatory, e.g. \fBmutt \-a image.jpg \-\- addr1\fP or + \fBmutt \-a img.jpg *.png \-\- addr1 addr2\fP. + The \-a option must be placed at the end of command line options. + .IP "-b \fIaddress\fP" diff --git a/debian/patches/misc/manpage-typos.patch b/debian/patches/misc/manpage-typos.patch new file mode 100644 index 0000000..38ccade --- /dev/null +++ b/debian/patches/misc/manpage-typos.patch @@ -0,0 +1,46 @@ +Fixes some errors in the manpage, see http://bugs.debian.org/428017 + +--- a/init.h ++++ b/init.h +@@ -760,7 +760,7 @@ + ** If the GECOS field contains a string like ``lastname, firstname'' then you + ** should set it to ``\fC.*\fP''. + ** .pp +- ** This can be useful if you see the following behavior: you address a e-mail ++ ** This can be useful if you see the following behavior: you address an e-mail + ** to user ID ``stevef'' whose full name is ``Steve Franklin''. If mutt expands + ** ``stevef'' to ``"Franklin" stevef@foo.bar'' then you should set the $$gecos_mask to + ** a regular expression that will match the whole name so mutt will expand +@@ -1869,7 +1869,7 @@ + { "pgp_clearsign_command", DT_STR, R_NONE, UL &PgpClearSignCommand, 0 }, + /* + ** .pp +- ** This format is used to create a old-style ``clearsigned'' PGP ++ ** This format is used to create an old-style ``clearsigned'' PGP + ** message. Note that the use of this format is \fBstrongly\fP + ** \fBdeprecated\fP. + ** .pp +@@ -2218,20 +2218,20 @@ + { "ssl_use_sslv2", DT_BOOL, R_NONE, OPTSSLV2, 1 }, + /* + ** .pp +- ** This variables specifies whether to attempt to use SSLv2 in the ++ ** This variable specifies whether to attempt to use SSLv2 in the + ** SSL authentication process. + */ + # endif /* defined USE_SSL_OPENSSL */ + { "ssl_use_sslv3", DT_BOOL, R_NONE, OPTSSLV3, 1 }, + /* + ** .pp +- ** This variables specifies whether to attempt to use SSLv3 in the ++ ** This variable specifies whether to attempt to use SSLv3 in the + ** SSL authentication process. + */ + { "ssl_use_tlsv1", DT_BOOL, R_NONE, OPTTLSV1, 1 }, + /* + ** .pp +- ** This variables specifies whether to attempt to use TLSv1 in the ++ ** This variable specifies whether to attempt to use TLSv1 in the + ** SSL authentication process. + */ + # ifdef USE_SSL_GNUTLS diff --git a/debian/patches/misc/smime.rc b/debian/patches/misc/smime.rc new file mode 100644 index 0000000..f22c872 --- /dev/null +++ b/debian/patches/misc/smime.rc @@ -0,0 +1,49 @@ +add CA's provided by ca-certificates to the ones distributed by +the default installation of mutt + +--- a/contrib/smime.rc ++++ b/contrib/smime.rc +@@ -4,33 +4,34 @@ + + # If you compiled mutt with support for both PGP and S/MIME, PGP + # will be the default method unless the following option is set +-set smime_is_default ++#set smime_is_default + + # Uncoment this if you don't want to set labels for certificates you add. + # unset smime_ask_cert_label + + # Passphrase expiration +-set smime_timeout=300 ++#set smime_timeout=300 + + # Global crypto options -- these affect PGP operations as well. +-set crypt_autosign = yes +-set crypt_replyencrypt = yes +-set crypt_replysign = yes +-set crypt_replysignencrypted = yes +-set crypt_verify_sig = yes ++#set crypt_autosign = yes ++#set crypt_replyencrypt = yes ++#set crypt_replysign = yes ++#set crypt_replysignencrypted = yes ++#set crypt_verify_sig = yes + + # Section A: Key Management. + + # The (default) keyfile for signing/decrypting. Uncomment the following + # line and replace the keyid with your own. +-set smime_default_key="12345678.0" ++#set smime_default_key="12345678.0" + + # Uncommen to make mutt ask what key to use when trying to decrypt a message. + # It will use the default key above (if that was set) else. + # unset smime_decrypt_use_default_key + + # Path to a file or directory with trusted certificates +-set smime_ca_location="~/.smime/ca-bundle.crt" ++#set smime_ca_location="~/.smime/ca-bundle.crt" ++set smime_ca_location=`for f in $HOME/.smime/ca-certificates.crt $HOME/.smime/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt ; do if [ -e $f ] ; then echo $f ; exit ; fi ; done` + + # Path to where all known certificates go. (must exist!) + set smime_certificates="~/.smime/certificates" diff --git a/debian/patches/misc/smime_keys-manpage.patch b/debian/patches/misc/smime_keys-manpage.patch new file mode 100644 index 0000000..e159d44 --- /dev/null +++ b/debian/patches/misc/smime_keys-manpage.patch @@ -0,0 +1,133 @@ +add a missing manpage for smime_keys +see upstream CR #3272 + +Index: mutt/doc/Makefile.am +=================================================================== +--- mutt.orig/doc/Makefile.am 2009-06-25 12:35:40.000000000 +0200 ++++ mutt/doc/Makefile.am 2009-06-25 12:36:48.000000000 +0200 +@@ -10,6 +10,7 @@ + noinst_PROGRAMS = makedoc + + EXTRA_DIST = dotlock.man \ ++ smime_keys.man \ + muttbug.man \ + mutt.man \ + PGP-Notes.txt \ +@@ -45,13 +46,14 @@ + + all: makedoc-all + +-makedoc-all: mutt.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt ++makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt + + install-data-local: makedoc-all instdoc + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man5 + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) + ./instdoc mutt.1 $(DESTDIR)$(mandir)/man1/mutt.1 ++ ./instdoc smime_keys.1 $(DESTDIR)$(mandir)/man1/smime_keys.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/muttbug.1 + test x@DOTLOCK_TARGET@ = x || ./instdoc $(srcdir)/dotlock.man \ +@@ -80,7 +82,7 @@ + fi + + uninstall-local: +- for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 ; do \ ++ for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1; do \ + rm -f $(DESTDIR)$(mandir)/man1/$$f ; \ + done + for f in muttrc.5 mbox.5 mmdf.5 ; do \ +@@ -142,7 +144,7 @@ + rm -rf vars.tmp.1 vars.tmp.2 + + clean-local: +- rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 muttrc.man ++ rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man + rm -f *.aux *.log *.tex *.out + + DISTCLEANFILES=manual.txt manual.html manual.xml manual.pdf html \ +@@ -166,6 +168,9 @@ + mutt.1: $(srcdir)/mutt.man + $(EDIT) $(srcdir)/mutt.man > $@ + ++smime_keys.1: $(srcdir)/smime_keys.man ++ $(EDIT) $(srcdir)/smime_keys.man > $@ ++ + stamp-doc-xml: makedoc$(EXEEXT) $(top_srcdir)/init.h \ + manual.xml.head $(top_srcdir)/functions.h $(top_srcdir)/OPS* manual.xml.tail \ + $(srcdir)/gen-map-doc $(top_srcdir)/VERSION $(top_srcdir)/ChangeLog +Index: mutt/doc/smime_keys.man +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ mutt/doc/smime_keys.man 2009-06-25 12:36:48.000000000 +0200 +@@ -0,0 +1,69 @@ ++.\" -*-nroff-*- ++.\" ++.\" ++.\" Copyright (C) 2001,2002 Oliver Ehli ++.\" Copyright (C) 2001 Mike Schiraldi ++.\" Copyright (C) 2003 Bjoern Jacke ++.\" ++.\" This program is free software; you can redistribute it and/or modify ++.\" it under the terms of the GNU General Public License as published by ++.\" the Free Software Foundation; either version 2 of the License, or ++.\" (at your option) any later version. ++.\" ++.\" This program is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public License ++.\" along with this program; if not, write to the Free Software ++.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++.\" ++.TH smime_keys 1 "May 2009" Unix "User Manuals" ++.SH "NAME" ++smime_keys \- Utility to add S/MIME certificate to the internal database used by mutt ++.SH SYNOPSIS ++.PP ++.B smime_keys ++ [file(s) | keyID [file(s)]] ++.SH "DESCRIPTION" ++The purpose of this tool is to manipulate the internal database of S/MIME certificates ++used by mutt to sign mail messages which will be sent or to verify mail messages received ++and signed with S/MIME ++.SH OPTIONS ++.PP ++.IP \fBinit\fP ++no files needed, inits directory structure. ++.IP \fBlist\fP ++lists the certificates stored in database. ++.IP \fBlabel\fP ++keyID required. changes/removes/adds label. ++.IP \fBremove\fP ++keyID required. ++.IP \fBverify\fP ++1=keyID and optionally 2=CRL ++Verifies the certificate chain, and optionally wether ++this certificate is included in supplied CRL (PEM format). ++Note: to verify all certificates at the same time, ++replace keyID with "all" ++.IP \fBadd_cert\fP ++certificate required. ++.IP \fBadd_chain\fP ++three files reqd: 1=Key, 2=certificate ++plus 3=intermediate certificate(s). ++.IP \fBadd_p12\fP ++one file reqd. Adds keypair to database. ++file is PKCS12 (e.g. export from netscape). ++.IP \fBadd_pem\fP ++one file reqd. Adds keypair to database. ++(file was converted from e.g. PKCS12). ++.IP \fBadd_root\fP ++one file reqd. Adds PEM root certificate to the location ++specified within muttrc (smime_verify_* command) ++.SH NO WARRANTIES ++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. ++.PP ++Mutt Home Page: http://www.mutt.org/ diff --git a/debian/patches/mutt-patched/nntp b/debian/patches/mutt-patched/nntp new file mode 100644 index 0000000..0f8c62e --- /dev/null +++ b/debian/patches/mutt-patched/nntp @@ -0,0 +1,7607 @@ +WARNING: Run the following script before configure: + +aclocal -I m4 +autoheader +automake --foreign +autoconf + +-- +Vsevolod Volkov + + +diff -udprP mutt-1.5.20.orig/ChangeLog.nntp mutt-1.5.20/ChangeLog.nntp +--- mutt-1.5.20.orig/ChangeLog.nntp 1970-01-01 03:00:00.000000000 +0300 ++++ mutt-1.5.20/ChangeLog.nntp 2009-06-15 21:56:06.000000000 +0300 +@@ -0,0 +1,369 @@ ++* Tue Jun 15 2009 Vsevolod Volkov ++- update to 1.5.20 ++ ++* Tue Mar 20 2009 Vsevolod Volkov ++- save Date: header of recorded outgoing articles ++ ++* Tue Jan 6 2009 Vsevolod Volkov ++- update to 1.5.19 ++ ++* Mon May 19 2008 Vsevolod Volkov ++- update to 1.5.18 ++- fixed SIGSEGV when followup or forward to newsgroup ++ ++* Sun Nov 4 2007 Vsevolod Volkov ++- update to 1.5.17 ++ ++* Tue Jul 3 2007 Vsevolod Volkov ++- fixed arguments of nntp_format_str() ++ ++* Fri Jun 15 2007 Vsevolod Volkov ++- fixed error selecting news group ++ ++* Tue Jun 12 2007 Vsevolod Volkov ++- update to 1.5.16 ++ ++* Wed Apr 11 2007 Vsevolod Volkov ++- fixed posting error if $smtp_url is set ++- added support of print-style sequence %R (x-comment-to) ++ ++* Sun Apr 8 2007 Vsevolod Volkov ++- update to 1.5.15 ++- nntp://... url changed to news://... ++- added indicator of fetching descriptions progress ++ ++* Tue Feb 28 2007 Vsevolod Volkov ++- update to 1.5.14 ++ ++* Tue Aug 15 2006 Vsevolod Volkov ++- update to 1.5.13 ++ ++* Mon Jul 17 2006 Vsevolod Volkov ++- update to 1.5.12 ++- fixed reading empty .newsrc ++ ++* Sat Sep 17 2005 Vsevolod Volkov ++- update to 1.5.11 ++ ++* Sat Aug 13 2005 Vsevolod Volkov ++- update to 1.5.10 ++ ++* Sun Mar 13 2005 Vsevolod Volkov ++- update to 1.5.9 ++ ++* Sun Feb 13 2005 Vsevolod Volkov ++- update to 1.5.8 ++ ++* Sat Feb 5 2005 Vsevolod Volkov ++- update to 1.5.7 ++- function mutt_update_list_file() moved to newsrc.c and changed algorithm ++ ++* Thu Jul 8 2004 Vsevolod Volkov ++- fixed error in nntp_logout_all() ++ ++* Sat Apr 3 2004 Vsevolod Volkov ++- fixed debug output in mutt_newsrc_update() ++- added optional support of LISTGROUP command ++- fixed typo in nntp_parse_xref() ++ ++* Tue Feb 3 2004 Vsevolod Volkov ++- update to 1.5.6 ++ ++* Thu Dec 18 2003 Vsevolod Volkov ++- fixed compose menu ++ ++* Thu Nov 6 2003 Vsevolod Volkov ++- update to 1.5.5.1 ++ ++* Wed Nov 5 2003 Vsevolod Volkov ++- update to 1.5.5 ++- added space after newsgroup name in .newsrc file ++ ++* Sun May 18 2003 Vsevolod Volkov ++- nntp patch: fixed SIGSEGV when posting article ++ ++* Sat Mar 22 2003 Vsevolod Volkov ++- update to 1.5.4 ++ ++* Sat Dec 21 2002 Vsevolod Volkov ++- update to 1.5.3 ++- replace safe_free calls by the FREE macro ++ ++* Fri Dec 6 2002 Vsevolod Volkov ++- update to 1.5.2 ++- nntp authentication can be passed after any command ++ ++* Sat May 4 2002 Vsevolod Volkov ++- update to 1.5.1 ++ ++* Thu May 2 2002 Vsevolod Volkov ++- update to 1.3.99 ++ ++* Wed Mar 13 2002 Vsevolod Volkov ++- update to 1.3.28 ++- fixed SIGSEGV in , , , ++ functions ++- fixed message about nntp reconnect ++- fixed function using browser ++- added support of Followup-To: poster ++- added %n (new articles) in group_index_format ++- posting articles without inews by default ++ ++* Wed Jan 23 2002 Vsevolod Volkov ++- update to 1.3.27 ++ ++* Fri Jan 18 2002 Vsevolod Volkov ++- update to 1.3.26 ++ ++* Thu Jan 3 2002 Vsevolod Volkov ++- update to 1.3.25 ++- accelerated speed of access to news->newsgroups hash (by ) ++- added default content disposition ++ ++* Mon Dec 3 2001 Vsevolod Volkov ++- update to 1.3.24 ++ ++* Fri Nov 9 2001 Vsevolod Volkov ++- update to 1.3.23.2 ++- fixed segfault if mutt_conn_find() returns null ++ ++* Wed Oct 31 2001 Vsevolod Volkov ++- update to 1.3.23.1 ++- added support of LISTGROUP command ++- added support for servers with broken overview ++- disabled function on news server ++- fixed error storing bad authentication information ++ ++* Wed Oct 10 2001 Vsevolod Volkov ++- update to 1.3.23 ++- fixed typo in buffy.c ++- added substitution of %s parameter in $inews variable ++ ++* Fri Aug 31 2001 Vsevolod Volkov ++- update to 1.3.22.1 ++- update to 1.3.22 ++ ++* Thu Aug 23 2001 Vsevolod Volkov ++- update to 1.3.21 ++ ++* Wed Jul 25 2001 Vsevolod Volkov ++- update to 1.3.20 ++- removed 'server-hook', use 'account-hook' instead ++- fixed error opening NNTP server without newsgroup using -f option ++ ++* Fri Jun 8 2001 Vsevolod Volkov ++- update to 1.3.19 ++ ++* Sat May 5 2001 Vsevolod Volkov ++- update to 1.3.18 ++- fixed typo in nntp_attempt_features() ++- changed algorithm of XGTITLE command testing ++- disabled writing of NNTP password in debug file ++- fixed reading and writing of long newsrc lines ++- changed checking of last line while reading lines from server ++- fixed possible buffer overrun in nntp_parse_newsrc_line() ++- removed checking of XHDR command ++- compare NNTP return codes without trailing space ++ ++* Thu Mar 29 2001 Vsevolod Volkov ++- update to 1.3.17 ++- support for 'LIST NEWSGROUPS' command to read descriptions ++ ++* Fri Mar 2 2001 Vsevolod Volkov ++- update to 1.3.16 ++ ++* Wed Feb 14 2001 Vsevolod Volkov ++- update to 1.3.15 ++ ++* Sun Jan 28 2001 Vsevolod Volkov ++- update to 1.3.14 ++- show number of tagged messages patch from Felix von Leitner ++ ++* Sun Dec 31 2000 Vsevolod Volkov ++- update to 1.3.13 ++ ++* Sat Dec 30 2000 Vsevolod Volkov ++- Fixed problem if last article in group is deleted ++ ++* Fri Dec 22 2000 Vsevolod Volkov ++- Fixed checking of XGTITLE command on some servers ++ ++* Mon Dec 18 2000 Vsevolod Volkov ++- Added \r in AUTHINFO commands ++ ++* Mon Nov 27 2000 Vsevolod Volkov ++- update to 1.3.12 ++ ++* Wed Nov 1 2000 Vsevolod Volkov ++- update to 1.3.11 ++- fixed error opening newsgroup from mutt started with -g or -G ++ ++* Thu Oct 12 2000 Vsevolod Volkov ++- update to 1.3.10 ++- hotkey 'G' (get-message) replaced with '^G' ++ ++* Thu Sep 21 2000 Vsevolod Volkov ++- update to 1.3.9 ++- changed delay displaying error messages from 1 to 2 seconds ++- fixed error compiling with nntp and without imap ++ ++* Wed Sep 6 2000 Vsevolod Volkov ++- fixed catchup in index ++- fixed nntp_open_mailbox() ++ ++* Sat Sep 2 2000 Vsevolod Volkov ++- functions and disabled ++- format of news mailbox names changed to url form ++- option nntp_attempts removed ++- option reconnect_news renamed to nntp_reconnect ++- default value of nntp_poll changed from 30 to 60 ++- error handling improved ++ ++* Wed Aug 30 2000 Vsevolod Volkov ++- update to 1.3.8 ++- new option show_only_unread ++- add newsgroup completion ++ ++* Fri Aug 4 2000 Vsevolod Volkov ++- update to 1.3.7 ++ ++* Sat Jul 29 2000 Vsevolod Volkov ++- update to 1.3.6 ++ ++* Sun Jul 9 2000 Vsevolod Volkov ++- update to 1.3.5 ++- authentication code update ++- fix for changing to newsgroup from mailbox with read messages ++- socket code optimization ++ ++* Wed Jun 21 2000 Vsevolod Volkov ++- update to 1.3.4 ++ ++* Wed Jun 14 2000 Vsevolod Volkov ++- don't substitute current newsgroup with deleted new messages ++ ++* Mon Jun 12 2000 Vsevolod Volkov ++- update to 1.3.3 ++- fix for substitution of newsgroup after reconnection ++- fix for loading newsgroups with very long names ++- fix for loading more than 32768 newsgroups ++ ++* Wed May 24 2000 Vsevolod Volkov ++- update to 1.3.2 ++ ++* Sat May 20 2000 Vsevolod Volkov ++- update to 1.3.1 ++ ++* Fri May 12 2000 Vsevolod Volkov ++- update to 1.3 ++ ++* Thu May 11 2000 Vsevolod Volkov ++- update to 1.2 ++ ++* Thu May 4 2000 Vsevolod Volkov ++- update to 1.1.14 ++ ++* Sun Apr 23 2000 Vsevolod Volkov ++- update to 1.1.12 ++ ++* Fri Apr 7 2000 Vsevolod Volkov ++- add substitution of newsgroup with new messages by default ++ ++* Wed Apr 5 2000 Vsevolod Volkov ++- add attach message from newsgroup ++- add one-line help in newsreader mode ++- disable 'change-dir' command in newsgroups browser ++- add -G option ++ ++* Tue Apr 4 2000 Vsevolod Volkov ++- get default newsserver name from file /etc/nntpserver ++- use case insensitive server names ++- add print-style sequence %s to $newsrc ++- add -g option ++ ++* Sat Apr 1 2000 Vsevolod Volkov ++- remove 'X-FTN-Origin' header processing ++ ++* Thu Mar 30 2000 Vsevolod Volkov ++- update to 1.1.11 ++- update to 1.1.10 ++ ++* Thu Mar 23 2000 Vsevolod Volkov ++- fix mutt_select_newsserver() ++- remove 'toggle-mode' function ++- add 'change-newsgroup' function ++ ++* Wed Mar 22 2000 Vsevolod Volkov ++- fix server-hook ++ ++* Tue Mar 21 2000 Vsevolod Volkov ++- fix error 'bounce' function after 'post' ++- add 'forward to newsgroup' function ++ ++* Mon Mar 20 2000 Vsevolod Volkov ++- 'forward' function works in newsreader mode ++- add 'post' and 'followup' functions to pager and attachment menu ++- fix active descriptions and allowed flag reload ++ ++* Tue Mar 14 2000 Vsevolod Volkov ++- update to 1.1.9 ++- remove deleted newsgroups from list ++ ++* Mon Mar 13 2000 Vsevolod Volkov ++- update .newsrc in browser ++ ++* Sun Mar 12 2000 Vsevolod Volkov ++- reload .newsrc if externally modified ++- fix active cache update ++ ++* Sun Mar 5 2000 Vsevolod Volkov ++- update to 1.1.8 ++ ++* Sat Mar 4 2000 Vsevolod Volkov ++- patch *.update_list_file is not required ++- count lines when loading descriptions ++- remove cache of unsubscribed newsgroups ++ ++* Thu Mar 2 2000 Vsevolod Volkov ++- load list of newsgroups from cache faster ++ ++* Wed Mar 1 2000 Vsevolod Volkov ++- update to 1.1.7 ++ ++* Tue Feb 29 2000 Vsevolod Volkov ++- fix unread messages in browser ++- fix newsrc_gen_entries() ++ ++* Mon Feb 28 2000 Vsevolod Volkov ++- fix mutt_newsgroup_stat() ++- fix nntp_delete_cache() ++- fix nntp_get_status() ++- fix check_children() ++- fix nntp_fetch_headers() ++ ++* Fri Feb 25 2000 Vsevolod Volkov ++- update to 1.1.5 ++ ++* Thu Feb 24 2000 Vsevolod Volkov ++- fix updating new messages in cache ++ ++* Mon Feb 21 2000 Vsevolod Volkov ++- change default cache filenames ++- fix updating new messages in cache ++ ++* Fri Feb 18 2000 Vsevolod Volkov ++- fix segmentation fault in news groups browser ++ ++* Tue Feb 15 2000 Vsevolod Volkov ++- update to 1.1.4 ++ ++* Thu Feb 10 2000 Vsevolod Volkov ++- update to 1.1.3 ++ ++* Sun Jan 30 2000 Vsevolod Volkov ++- add X-Comment-To editing ++- add my_hdr support for Newsgroups:, Followup-To: and X-Comment-To: headers ++- add variables $ask_followup_to and $ask_x_comment_to ++ ++* Fri Jan 28 2000 Vsevolod Volkov ++- update to 1.1.2 +diff -udprP mutt-1.5.20.orig/OPS mutt-1.5.20/OPS +--- mutt-1.5.20.orig/OPS 2009-05-13 08:01:13.000000000 +0300 ++++ mutt-1.5.20/OPS 2009-06-15 21:05:24.000000000 +0300 +@@ -8,14 +8,16 @@ OP_BOUNCE_MESSAGE "remail a message to a + OP_BROWSER_NEW_FILE "select a new file in this directory" + OP_BROWSER_VIEW_FILE "view file" + OP_BROWSER_TELL "display the currently selected file's name" +-OP_BROWSER_SUBSCRIBE "subscribe to current mailbox (IMAP only)" +-OP_BROWSER_UNSUBSCRIBE "unsubscribe from current mailbox (IMAP only)" ++OP_BROWSER_SUBSCRIBE "subscribe to current mbox (IMAP/NNTP only)" ++OP_BROWSER_UNSUBSCRIBE "unsubscribe from current mbox (IMAP/NNTP only)" + OP_BROWSER_TOGGLE_LSUB "toggle view all/subscribed mailboxes (IMAP only)" + OP_BUFFY_LIST "list mailboxes with new mail" ++OP_CATCHUP "mark all articles in newsgroup as read" + OP_CHANGE_DIRECTORY "change directories" + OP_CHECK_NEW "check mailboxes for new mail" + OP_COMPOSE_ATTACH_FILE "attach file(s) to this message" + OP_COMPOSE_ATTACH_MESSAGE "attach message(s) to this message" ++OP_COMPOSE_ATTACH_NEWS_MESSAGE "attach newsmessage(s) to this message" + OP_COMPOSE_EDIT_BCC "edit the BCC list" + OP_COMPOSE_EDIT_CC "edit the CC list" + OP_COMPOSE_EDIT_DESCRIPTION "edit attachment description" +@@ -26,7 +28,10 @@ OP_COMPOSE_EDIT_FROM "edit the from fiel + OP_COMPOSE_EDIT_HEADERS "edit the message with headers" + OP_COMPOSE_EDIT_MESSAGE "edit the message" + OP_COMPOSE_EDIT_MIME "edit attachment using mailcap entry" ++OP_COMPOSE_EDIT_NEWSGROUPS "edit the newsgroups list" + OP_COMPOSE_EDIT_REPLY_TO "edit the Reply-To field" ++OP_COMPOSE_EDIT_FOLLOWUP_TO "edit the Followup-To field" ++OP_COMPOSE_EDIT_X_COMMENT_TO "edit the X-Comment-To field" + OP_COMPOSE_EDIT_SUBJECT "edit the subject of this message" + OP_COMPOSE_EDIT_TO "edit the TO list" + OP_CREATE_MAILBOX "create a new mailbox (IMAP only)" +@@ -85,8 +90,13 @@ OP_EXIT "exit this menu" + OP_FILTER "filter attachment through a shell command" + OP_FIRST_ENTRY "move to the first entry" + OP_FLAG_MESSAGE "toggle a message's 'important' flag" ++OP_FOLLOWUP "followup to newsgroup" ++OP_FORWARD_TO_GROUP "forward to newsgroup" + OP_FORWARD_MESSAGE "forward a message with comments" + OP_GENERIC_SELECT_ENTRY "select the current entry" ++OP_GET_CHILDREN "get all children of the current message" ++OP_GET_MESSAGE "get message with Message-Id" ++OP_GET_PARENT "get parent of the current message" + OP_GROUP_REPLY "reply to all recipients" + OP_HALF_DOWN "scroll down 1/2 page" + OP_HALF_UP "scroll up 1/2 page" +@@ -94,11 +104,14 @@ OP_HELP "this screen" + OP_JUMP "jump to an index number" + OP_LAST_ENTRY "move to the last entry" + OP_LIST_REPLY "reply to specified mailing list" ++OP_LOAD_ACTIVE "load active file from NNTP server" + OP_MACRO "execute a macro" + OP_MAIL "compose a new mail message" + OP_MAIN_BREAK_THREAD "break the thread in two" + OP_MAIN_CHANGE_FOLDER "open a different folder" + OP_MAIN_CHANGE_FOLDER_READONLY "open a different folder in read only mode" ++OP_MAIN_CHANGE_GROUP "open a different newsgroup" ++OP_MAIN_CHANGE_GROUP_READONLY "open a different newsgroup in read only mode" + OP_MAIN_CLEAR_FLAG "clear a status flag from a message" + OP_MAIN_DELETE_PATTERN "delete messages matching a pattern" + OP_MAIN_IMAP_FETCH "force retrieval of mail from IMAP server" +@@ -137,6 +150,7 @@ OP_PAGER_HIDE_QUOTED "toggle display of + OP_PAGER_SKIP_QUOTED "skip beyond quoted text" + OP_PAGER_TOP "jump to the top of the message" + OP_PIPE "pipe message/attachment to a shell command" ++OP_POST "post message to newsgroup" + OP_PREV_ENTRY "move to the previous entry" + OP_PREV_LINE "scroll up one line" + OP_PREV_PAGE "move to the previous page" +@@ -145,6 +159,7 @@ OP_QUERY "query external program for add + OP_QUERY_APPEND "append new query results to current results" + OP_QUIT "save changes to mailbox and quit" + OP_RECALL_MESSAGE "recall a postponed message" ++OP_RECONSTRUCT_THREAD "reconstruct thread containing current message" + OP_REDRAW "clear and redraw the screen" + OP_REFORMAT_WINCH "{internal}" + OP_RENAME_MAILBOX "rename the current mailbox (IMAP only)" +@@ -159,18 +174,22 @@ OP_SEARCH_TOGGLE "toggle search pattern + OP_SHELL_ESCAPE "invoke a command in a subshell" + OP_SORT "sort messages" + OP_SORT_REVERSE "sort messages in reverse order" ++OP_SUBSCRIBE_PATTERN "subscribe to newsgroups matching a pattern" + OP_TAG "tag the current entry" + OP_TAG_PREFIX "apply next function to tagged messages" + OP_TAG_PREFIX_COND "apply next function ONLY to tagged messages" + OP_TAG_SUBTHREAD "tag the current subthread" + OP_TAG_THREAD "tag the current thread" + OP_TOGGLE_NEW "toggle a message's 'new' flag" ++OP_TOGGLE_READ "toggle view of read messages" + OP_TOGGLE_WRITE "toggle whether the mailbox will be rewritten" + OP_TOGGLE_MAILBOXES "toggle whether to browse mailboxes or all files" + OP_TOP_PAGE "move to the top of the page" ++OP_UNCATCHUP "mark all articles in newsgroup as unread" + OP_UNDELETE "undelete the current entry" + OP_UNDELETE_THREAD "undelete all messages in thread" + OP_UNDELETE_SUBTHREAD "undelete all messages in subthread" ++OP_UNSUBSCRIBE_PATTERN "unsubscribe from newsgroups matching a pattern" + OP_VERSION "show the Mutt version number and date" + OP_VIEW_ATTACH "view attachment using mailcap entry if necessary" + OP_VIEW_ATTACHMENTS "show MIME attachments" +diff -udprP mutt-1.5.20.orig/account.c mutt-1.5.20/account.c +--- mutt-1.5.20.orig/account.c 2008-11-11 21:55:46.000000000 +0200 ++++ mutt-1.5.20/account.c 2009-06-15 21:05:24.000000000 +0300 +@@ -51,6 +51,11 @@ int mutt_account_match (const ACCOUNT* a + user = PopUser; + #endif + ++#ifdef USE_NNTP ++ if (a1->type == M_ACCT_TYPE_NNTP && NntpUser) ++ user = NntpUser; ++#endif ++ + if (a1->flags & a2->flags & M_ACCT_USER) + return (!strcmp (a1->user, a2->user)); + if (a1->flags & M_ACCT_USER) +@@ -130,6 +135,16 @@ void mutt_account_tourl (ACCOUNT* accoun + } + #endif + ++#ifdef USE_NNTP ++ if (account->type == M_ACCT_TYPE_NNTP) ++ { ++ if (account->flags & M_ACCT_SSL) ++ url->scheme = U_NNTPS; ++ else ++ url->scheme = U_NNTP; ++ } ++#endif ++ + url->host = account->host; + if (account->flags & M_ACCT_PORT) + url->port = account->port; +@@ -155,6 +170,10 @@ int mutt_account_getuser (ACCOUNT* accou + else if ((account->type == M_ACCT_TYPE_POP) && PopUser) + strfcpy (account->user, PopUser, sizeof (account->user)); + #endif ++#ifdef USE_NNTP ++ else if ((account->type == M_ACCT_TYPE_NNTP) && NntpUser) ++ strfcpy (account->user, NntpUser, sizeof (account->user)); ++#endif + /* prompt (defaults to unix username), copy into account->user */ + else + { +@@ -215,6 +234,10 @@ int mutt_account_getpass (ACCOUNT* accou + else if ((account->type == M_ACCT_TYPE_SMTP) && SmtpPass) + strfcpy (account->pass, SmtpPass, sizeof (account->pass)); + #endif ++#ifdef USE_NNTP ++ else if ((account->type == M_ACCT_TYPE_NNTP) && NntpPass) ++ strfcpy (account->pass, NntpPass, sizeof (account->pass)); ++#endif + else + { + snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "), +diff -udprP mutt-1.5.20.orig/account.h mutt-1.5.20/account.h +--- mutt-1.5.20.orig/account.h 2008-11-11 21:55:46.000000000 +0200 ++++ mutt-1.5.20/account.h 2009-06-15 21:05:24.000000000 +0300 +@@ -29,7 +29,8 @@ enum + M_ACCT_TYPE_NONE = 0, + M_ACCT_TYPE_IMAP, + M_ACCT_TYPE_POP, +- M_ACCT_TYPE_SMTP ++ M_ACCT_TYPE_SMTP, ++ M_ACCT_TYPE_NNTP + }; + + /* account flags */ +diff -udprP mutt-1.5.20.orig/attach.h mutt-1.5.20/attach.h +--- mutt-1.5.20.orig/attach.h 2008-11-11 21:55:46.000000000 +0200 ++++ mutt-1.5.20/attach.h 2009-06-15 21:05:24.000000000 +0300 +@@ -50,7 +50,7 @@ void mutt_print_attachment_list (FILE *f + + void mutt_attach_bounce (FILE *, HEADER *, ATTACHPTR **, short, BODY *); + void mutt_attach_resend (FILE *, HEADER *, ATTACHPTR **, short, BODY *); +-void mutt_attach_forward (FILE *, HEADER *, ATTACHPTR **, short, BODY *); ++void mutt_attach_forward (FILE *, HEADER *, ATTACHPTR **, short, BODY *, int); + void mutt_attach_reply (FILE *, HEADER *, ATTACHPTR **, short, BODY *, int); + + #endif /* _ATTACH_H_ */ +diff -udprP mutt-1.5.20.orig/browser.c mutt-1.5.20/browser.c +--- mutt-1.5.20.orig/browser.c 2009-06-11 20:52:54.000000000 +0300 ++++ mutt-1.5.20/browser.c 2009-06-15 21:05:24.000000000 +0300 +@@ -32,6 +32,9 @@ + #ifdef USE_IMAP + #include "imap.h" + #endif ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif + + #include + #include +@@ -49,6 +52,19 @@ static struct mapping_t FolderHelp[] = { + { NULL, 0 } + }; + ++#ifdef USE_NNTP ++static struct mapping_t FolderNewsHelp[] = { ++ { N_("Exit"), OP_EXIT }, ++ { N_("List"), OP_TOGGLE_MAILBOXES }, ++ { N_("Subscribe"), OP_BROWSER_SUBSCRIBE }, ++ { N_("Unsubscribe"), OP_BROWSER_UNSUBSCRIBE }, ++ { N_("Catchup"), OP_CATCHUP }, ++ { N_("Mask"), OP_ENTER_MASK }, ++ { N_("Help"), OP_HELP }, ++ { NULL } ++}; ++#endif ++ + typedef struct folder_t + { + struct folder_file *ff; +@@ -114,9 +130,17 @@ static void browser_sort (struct browser + case SORT_ORDER: + return; + case SORT_DATE: ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ return; ++#endif + f = browser_compare_date; + break; + case SORT_SIZE: ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ return; ++#endif + f = browser_compare_size; + break; + case SORT_SUBJECT: +@@ -307,8 +331,106 @@ folder_format_str (char *dest, size_t de + return (src); + } + ++#ifdef USE_NNTP ++static const char * ++newsgroup_format_str (char *dest, size_t destlen, size_t col, char op, const char *src, ++ const char *fmt, const char *ifstring, const char *elsestring, ++ unsigned long data, format_flag flags) ++{ ++ char fn[SHORT_STRING], tmp[SHORT_STRING]; ++ FOLDER *folder = (FOLDER *) data; ++ ++ switch (op) ++ { ++ case 'C': ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, folder->num + 1); ++ break; ++ ++ case 'f': ++ strncpy (fn, folder->ff->name, sizeof(fn) - 1); ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, fn); ++ break; ++ ++ case 'N': ++ snprintf (tmp, sizeof (tmp), "%%%sc", fmt); ++ if (folder->ff->nd->subscribed) ++ snprintf (dest, destlen, tmp, ' '); ++ else ++ snprintf (dest, destlen, tmp, folder->ff->new ? 'N' : 'u'); ++ break; ++ ++ case 'M': ++ snprintf (tmp, sizeof (tmp), "%%%sc", fmt); ++ if (folder->ff->nd->deleted) ++ snprintf (dest, destlen, tmp, 'D'); ++ else ++ snprintf (dest, destlen, tmp, folder->ff->nd->allowed ? ' ' : '-'); ++ break; ++ ++ case 's': ++ if (flags & M_FORMAT_OPTIONAL) ++ { ++ if (folder->ff->nd->unread != 0) ++ mutt_FormatString (dest, destlen, col, ifstring, newsgroup_format_str, ++ data, flags); ++ else ++ mutt_FormatString (dest, destlen, col, elsestring, newsgroup_format_str, ++ data, flags); ++ } ++ else if (Context && Context->data == folder->ff->nd) ++ { ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, Context->unread); ++ } ++ else ++ { ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, folder->ff->nd->unread); ++ } ++ break; ++ ++ case 'n': ++ if (Context && Context->data == folder->ff->nd) ++ { ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, Context->new); ++ } ++ else if (option (OPTMARKOLD) && ++ folder->ff->nd->lastCached >= folder->ff->nd->firstMessage && ++ folder->ff->nd->lastCached <= folder->ff->nd->lastMessage) ++ { ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, folder->ff->nd->lastMessage - folder->ff->nd->lastCached); ++ } ++ else ++ { ++ snprintf (tmp, sizeof (tmp), "%%%sd", fmt); ++ snprintf (dest, destlen, tmp, folder->ff->nd->unread); ++ } ++ break; ++ ++ case 'd': ++ if (folder->ff->nd->desc != NULL) ++ { ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, folder->ff->nd->desc); ++ } ++ else ++ { ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, ""); ++ } ++ break; ++ } ++ return (src); ++} ++#endif /* USE_NNTP */ ++ + static void add_folder (MUTTMENU *m, struct browser_state *state, +- const char *name, const struct stat *s, int new) ++ const char *name, const struct stat *s, ++ void *data, int new) + { + if (state->entrylen == state->entrymax) + { +@@ -337,6 +459,10 @@ static void add_folder (MUTTMENU *m, str + #ifdef USE_IMAP + (state->entry)[state->entrylen].imap = 0; + #endif ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ (state->entry)[state->entrylen].nd = (NNTP_DATA *) data; ++#endif + (state->entrylen)++; + } + +@@ -352,9 +478,35 @@ static void init_state (struct browser_s + menu->data = state->entry; + } + ++/* get list of all files/newsgroups with mask */ + static int examine_directory (MUTTMENU *menu, struct browser_state *state, + char *d, const char *prefix) + { ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ LIST *tmp; ++ NNTP_DATA *data; ++ NNTP_SERVER *news = CurrentNewsSrv; ++ ++/* mutt_buffy_check (0); */ ++ init_state (state, menu); ++ ++ for (tmp = news->list; tmp; tmp = tmp->next) ++ { ++ if (!(data = (NNTP_DATA *)tmp->data)) ++ continue; ++ if (prefix && *prefix && strncmp (prefix, data->group, ++ strlen (prefix)) != 0) ++ continue; ++ if (!((regexec (Mask.rx, data->group, 0, NULL, 0) == 0) ^ Mask.not)) ++ continue; ++ add_folder (menu, state, data->group, NULL, data, data->new); ++ } ++ } ++ else ++#endif /* USE_NNTP */ ++ { + struct stat s; + DIR *dp; + struct dirent *de; +@@ -415,17 +567,40 @@ static int examine_directory (MUTTMENU * + tmp = Incoming; + while (tmp && mutt_strcmp (buffer, tmp->path)) + tmp = tmp->next; +- add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0); ++ add_folder (menu, state, de->d_name, &s, NULL, (tmp) ? tmp->new : 0); ++ } ++ closedir (dp); + } +- closedir (dp); + browser_sort (state); + return 0; + } + ++/* get list of mailboxes/subscribed newsgroups */ + static int examine_mailboxes (MUTTMENU *menu, struct browser_state *state) + { + struct stat s; + char buffer[LONG_STRING]; ++ ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ LIST *tmp; ++ NNTP_DATA *data; ++ NNTP_SERVER *news = CurrentNewsSrv; ++ ++/* mutt_buffy_check (0); */ ++ init_state (state, menu); ++ ++ for (tmp = news->list; tmp; tmp = tmp->next) ++ { ++ if ((data = (NNTP_DATA *) tmp->data) != NULL && (data->new || ++ (data->subscribed && (!option (OPTSHOWONLYUNREAD) || data->unread)))) ++ add_folder (menu, state, data->group, NULL, data, data->new); ++ } ++ } ++ else ++#endif ++ { + BUFFY *tmp = Incoming; + #ifdef USE_IMAP + struct mailbox_state mbox; +@@ -443,14 +618,21 @@ static int examine_mailboxes (MUTTMENU * + if (mx_is_imap (tmp->path)) + { + imap_mailbox_state (tmp->path, &mbox); +- add_folder (menu, state, tmp->path, NULL, mbox.new); ++ add_folder (menu, state, tmp->path, NULL, NULL, mbox.new); + continue; + } + #endif + #ifdef USE_POP + if (mx_is_pop (tmp->path)) + { +- add_folder (menu, state, tmp->path, NULL, tmp->new); ++ add_folder (menu, state, tmp->path, NULL, NULL, tmp->new); ++ continue; ++ } ++#endif ++#ifdef USE_NNTP ++ if (mx_is_nntp (tmp->path)) ++ { ++ add_folder (menu, state, tmp->path, NULL, NULL, tmp->new); + continue; + } + #endif +@@ -479,15 +661,20 @@ static int examine_mailboxes (MUTTMENU * + strfcpy (buffer, NONULL(tmp->path), sizeof (buffer)); + mutt_pretty_mailbox (buffer, sizeof (buffer)); + +- add_folder (menu, state, buffer, &s, tmp->new); ++ add_folder (menu, state, buffer, &s, NULL, tmp->new); + } + while ((tmp = tmp->next)); ++ } + browser_sort (state); + return 0; + } + + static int select_file_search (MUTTMENU *menu, regex_t *re, int n) + { ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ return (regexec (re, ((struct folder_file *) menu->data)[n].desc, 0, NULL, 0)); ++#endif + return (regexec (re, ((struct folder_file *) menu->data)[n].name, 0, NULL, 0)); + } + +@@ -498,6 +685,12 @@ static void folder_entry (char *s, size_ + folder.ff = &((struct folder_file *) menu->data)[num]; + folder.num = num; + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ mutt_FormatString (s, slen, 0, NONULL(GroupFormat), newsgroup_format_str, ++ (unsigned long) &folder, M_FORMAT_ARROWCURSOR); ++ else ++#endif + mutt_FormatString (s, slen, 0, NONULL(FolderFormat), folder_format_str, + (unsigned long) &folder, M_FORMAT_ARROWCURSOR); + } +@@ -518,6 +711,17 @@ static void init_menu (struct browser_st + + menu->tagged = 0; + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ if (buffy) ++ snprintf (title, titlelen, _("Subscribed newsgroups")); ++ else ++ snprintf (title, titlelen, _("Newsgroups on server [%s]"), ++ CurrentNewsSrv->conn->account.host); ++ } ++ else ++#endif + if (buffy) + snprintf (title, titlelen, _("Mailboxes [%d]"), mutt_buffy_check (0)); + else +@@ -573,6 +777,31 @@ void _mutt_select_file (char *f, size_t + if (!folder) + strfcpy (LastDirBackup, LastDir, sizeof (LastDirBackup)); + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ if (*f) ++ strfcpy (prefix, f, sizeof (prefix)); ++ else ++ { ++ LIST *list; ++ ++ /* default state for news reader mode is browse subscribed newsgroups */ ++ buffy = 0; ++ for (list = CurrentNewsSrv->list; list; list = list->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *) list->data; ++ ++ if (data && data->subscribed) ++ { ++ buffy = 1; ++ break; ++ } ++ } ++ } ++ } ++ else ++#endif + if (*f) + { + mutt_expand_path (f, flen); +@@ -669,6 +898,9 @@ void _mutt_select_file (char *f, size_t + menu->tag = file_tag; + + menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_FOLDER, ++#ifdef USE_NNTP ++ (option (OPTNEWS)) ? FolderNewsHelp : ++#endif + FolderHelp); + + init_menu (&state, menu, title, sizeof (title), buffy); +@@ -807,7 +1039,11 @@ void _mutt_select_file (char *f, size_t + } + } + ++#ifdef USE_NNTP ++ if (buffy || option (OPTNEWS)) /* news have not path */ ++#else + if (buffy) ++#endif + { + strfcpy (f, state.entry[menu->current].name, flen); + mutt_expand_path (f, flen); +@@ -865,14 +1101,6 @@ void _mutt_select_file (char *f, size_t + break; + + #ifdef USE_IMAP +- case OP_BROWSER_SUBSCRIBE: +- imap_subscribe (state.entry[menu->current].name, 1); +- break; +- +- case OP_BROWSER_UNSUBSCRIBE: +- imap_subscribe (state.entry[menu->current].name, 0); +- break; +- + case OP_BROWSER_TOGGLE_LSUB: + if (option (OPTIMAPLSUB)) + unset_option (OPTIMAPLSUB); +@@ -973,6 +1201,11 @@ void _mutt_select_file (char *f, size_t + + case OP_CHANGE_DIRECTORY: + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ break; ++#endif ++ + strfcpy (buf, LastDir, sizeof (buf)); + #ifdef USE_IMAP + if (!state.imap_browse) +@@ -1239,6 +1472,190 @@ void _mutt_select_file (char *f, size_t + else + mutt_error _("Error trying to view file"); + } ++ break; ++ ++#ifdef USE_NNTP ++ case OP_CATCHUP: ++ case OP_UNCATCHUP: ++ if (option (OPTNEWS)) ++ { ++ struct folder_file *f = &state.entry[menu->current]; ++ NNTP_DATA *nd; ++ ++ if (i == OP_CATCHUP) ++ nd = mutt_newsgroup_catchup (CurrentNewsSrv, f->name); ++ else ++ nd = mutt_newsgroup_uncatchup (CurrentNewsSrv, f->name); ++ ++ if (nd) ++ { ++/* FOLDER folder; ++ struct folder_file ff; ++ char buffer[_POSIX_PATH_MAX + SHORT_STRING]; ++ ++ folder.ff = &ff; ++ folder.ff->name = f->name; ++ folder.ff->st = NULL; ++ folder.ff->is_new = nd->new; ++ folder.ff->nd = nd; ++ FREE (&f->desc); ++ mutt_FormatString (buffer, sizeof (buffer), 0, NONULL(GroupFormat), ++ newsgroup_format_str, (unsigned long) &folder, ++ M_FORMAT_ARROWCURSOR); ++ f->desc = safe_strdup (buffer); */ ++ if (menu->current + 1 < menu->max) ++ menu->current++; ++ menu->redraw = REDRAW_MOTION_RESYNCH; ++ } ++ } ++ break; ++ ++ case OP_LOAD_ACTIVE: ++ if (!option (OPTNEWS)) ++ break; ++ ++ { ++ LIST *tmp; ++ NNTP_DATA *data; ++ ++ for (tmp = CurrentNewsSrv->list; tmp; tmp = tmp->next) ++ { ++ if ((data = (NNTP_DATA *)tmp->data)) ++ data->deleted = 1; ++ } ++ } ++ nntp_get_active (CurrentNewsSrv); ++ ++ destroy_state (&state); ++ if (buffy) ++ examine_mailboxes (menu, &state); ++ else ++ examine_directory (menu, &state, NULL, NULL); ++ init_menu (&state, menu, title, sizeof (title), buffy); ++ break; ++#endif /* USE_NNTP */ ++ ++#if defined USE_IMAP || defined USE_NNTP ++ case OP_BROWSER_SUBSCRIBE: ++ case OP_BROWSER_UNSUBSCRIBE: ++#endif ++#ifdef USE_NNTP ++ case OP_SUBSCRIBE_PATTERN: ++ case OP_UNSUBSCRIBE_PATTERN: ++ if (option (OPTNEWS)) ++ { ++ regex_t *rx = (regex_t *) safe_malloc (sizeof (regex_t)); ++ char *s = buf; ++ int j = menu->current; ++ NNTP_DATA *nd; ++ NNTP_SERVER *news = CurrentNewsSrv; ++ ++ if (i == OP_SUBSCRIBE_PATTERN || i == OP_UNSUBSCRIBE_PATTERN) ++ { ++ char tmp[STRING]; ++ int err; ++ ++ buf[0] = 0; ++ if (i == OP_SUBSCRIBE_PATTERN) ++ snprintf (tmp, sizeof (tmp), _("Subscribe pattern: ")); ++ else ++ snprintf (tmp, sizeof (tmp), _("Unsubscribe pattern: ")); ++ if (mutt_get_field (tmp, buf, sizeof (buf), 0) != 0 || !buf[0]) ++ { ++ FREE (&rx); ++ break; ++ } ++ ++ if ((err = REGCOMP (rx, s, REG_NOSUB)) != 0) ++ { ++ regerror (err, rx, buf, sizeof (buf)); ++ regfree (rx); ++ FREE (&rx); ++ mutt_error ("%s", buf); ++ break; ++ } ++ menu->redraw = REDRAW_FULL; ++ j = 0; ++ } ++ else if (!state.entrylen) ++ { ++ mutt_error _("No newsgroups match the mask"); ++ break; ++ } ++ ++ for ( ; j < state.entrylen; j++) ++ { ++ struct folder_file *f = &state.entry[j]; ++ ++ if (i == OP_BROWSER_SUBSCRIBE || i == OP_BROWSER_UNSUBSCRIBE || ++ regexec (rx, f->name, 0, NULL, 0) == 0) ++ { ++ if (i == OP_BROWSER_SUBSCRIBE || i == OP_SUBSCRIBE_PATTERN) ++ nd = mutt_newsgroup_subscribe (news, f->name); ++ else ++ nd = mutt_newsgroup_unsubscribe (news, f->name); ++/* if (nd) ++ { ++ FOLDER folder; ++ char buffer[_POSIX_PATH_MAX + SHORT_STRING]; ++ ++ folder.name = f->name; ++ folder.f = NULL; ++ folder.new = nd->new; ++ folder.nd = nd; ++ FREE (&f->desc); ++ mutt_FormatString (buffer, sizeof (buffer), 0, NONULL(GroupFormat), ++ newsgroup_format_str, (unsigned long) &folder, ++ M_FORMAT_ARROWCURSOR); ++ f->desc = safe_strdup (buffer); ++ } */ ++ } ++ if (i == OP_BROWSER_SUBSCRIBE || i == OP_BROWSER_UNSUBSCRIBE) ++ { ++ if (menu->current + 1 < menu->max) ++ menu->current++; ++ menu->redraw = REDRAW_MOTION_RESYNCH; ++ break; ++ } ++ } ++ if (i == OP_SUBSCRIBE_PATTERN) ++ { ++ LIST *grouplist = NULL; ++ ++ if (news) ++ grouplist = news->list; ++ for (; grouplist; grouplist = grouplist->next) ++ { ++ nd = (NNTP_DATA *) grouplist->data; ++ if (nd && nd->group && !nd->subscribed) ++ { ++ if (regexec (rx, nd->group, 0, NULL, 0) == 0) ++ { ++ mutt_newsgroup_subscribe (news, nd->group); ++ add_folder (menu, &state, nd->group, NULL, nd, nd->new); ++ } ++ } ++ } ++ init_menu (&state, menu, title, sizeof (title), buffy); ++ } ++ mutt_newsrc_update (news); ++ nntp_clear_cacheindex (news); ++ if (i != OP_BROWSER_SUBSCRIBE && i != OP_BROWSER_UNSUBSCRIBE) ++ regfree (rx); ++ FREE (&rx); ++ } ++#ifdef USE_IMAP ++ else ++#endif /* USE_IMAP && USE_NNTP */ ++#endif /* USE_NNTP */ ++#ifdef USE_IMAP ++ { ++ if (i == OP_BROWSER_SUBSCRIBE) ++ imap_subscribe (state.entry[menu->current].name, 1); ++ else ++ imap_subscribe (state.entry[menu->current].name, 0); ++ } ++#endif /* USE_IMAP */ + } + } + +diff -udprP mutt-1.5.20.orig/browser.h mutt-1.5.20/browser.h +--- mutt-1.5.20.orig/browser.h 2009-01-05 00:34:12.000000000 +0200 ++++ mutt-1.5.20/browser.h 2009-06-15 21:05:24.000000000 +0300 +@@ -19,6 +19,10 @@ + #ifndef _BROWSER_H + #define _BROWSER_H 1 + ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif ++ + struct folder_file + { + mode_t mode; +@@ -37,6 +41,9 @@ struct folder_file + unsigned selectable : 1; + unsigned inferiors : 1; + #endif ++#ifdef USE_NNTP ++ NNTP_DATA *nd; ++#endif + unsigned tagged : 1; + }; + +diff -udprP mutt-1.5.20.orig/buffy.c mutt-1.5.20/buffy.c +--- mutt-1.5.20.orig/buffy.c 2009-06-02 20:16:26.000000000 +0300 ++++ mutt-1.5.20/buffy.c 2009-06-15 21:05:24.000000000 +0300 +@@ -320,6 +320,9 @@ int mutt_buffy_check (int force) + #ifdef USE_POP + if (!Context || Context->magic != M_POP) + #endif ++#ifdef USE_NNTP ++ if (!Context || Context->magic != M_NNTP) ++#endif + /* check device ID and serial number instead of comparing paths */ + if (!Context || !Context->path || stat (Context->path, &contex_sb) != 0) + { +@@ -343,6 +346,11 @@ int mutt_buffy_check (int force) + tmp->magic = M_POP; + else + #endif ++#ifdef USE_NNTP ++ if ((tmp->magic == M_NNTP) || mx_is_nntp (tmp->path)) ++ tmp->magic = M_NNTP; ++ else ++#endif + if (stat (tmp->path, &sb) != 0 || (S_ISREG(sb.st_mode) && sb.st_size == 0) || + (!tmp->magic && (tmp->magic = mx_get_magic (tmp->path)) <= 0)) + { +@@ -360,25 +368,21 @@ int mutt_buffy_check (int force) + /* check to see if the folder is the currently selected folder + * before polling */ + if (!Context || !Context->path || +-#if defined USE_IMAP || defined USE_POP +- (( ++ ( ++ (0 + #ifdef USE_IMAP +- tmp->magic == M_IMAP ++ || tmp->magic == M_IMAP + #endif + #ifdef USE_POP +-#ifdef USE_IMAP +- || +-#endif +- tmp->magic == M_POP +-#endif +- ) ? mutt_strcmp (tmp->path, Context->path) : ++ || tmp->magic == M_POP + #endif +- (sb.st_dev != contex_sb.st_dev || sb.st_ino != contex_sb.st_ino) +-#if defined USE_IMAP || defined USE_POP +- ) ++#ifdef USE_NNTP ++ || tmp->magic == M_NNTP + #endif +- ) +- ++ ) ? mutt_strcmp (tmp->path, Context->path) : ++ (sb.st_dev != contex_sb.st_dev || sb.st_ino != contex_sb.st_ino) ++ ) ++ ) + { + switch (tmp->magic) + { +diff -udprP mutt-1.5.20.orig/complete.c mutt-1.5.20/complete.c +--- mutt-1.5.20.orig/complete.c 2009-01-05 00:38:16.000000000 +0200 ++++ mutt-1.5.20/complete.c 2009-06-15 21:05:24.000000000 +0300 +@@ -25,6 +25,9 @@ + #include "mailbox.h" + #include "imap.h" + #endif ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif + + #include + #include +@@ -48,9 +51,71 @@ int mutt_complete (char *s, size_t slen) + char filepart[_POSIX_PATH_MAX]; + #ifdef USE_IMAP + char imap_path[LONG_STRING]; ++#endif + + dprint (2, (debugfile, "mutt_complete: completing %s\n", s)); + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ LIST *l = CurrentNewsSrv->list; ++ ++ strfcpy (filepart, s, sizeof (filepart)); ++ ++ /* ++ * special case to handle when there is no filepart yet. ++ * find the first subscribed newsgroup ++ */ ++ if ((len = mutt_strlen (filepart)) == 0) ++ { ++ for (; l; l = l->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *)l->data; ++ ++ if (data && data->subscribed) ++ { ++ strfcpy (filepart, data->group, sizeof (filepart)); ++ init++; ++ l = l->next; ++ break; ++ } ++ } ++ } ++ ++ for (; l; l = l->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *)l->data; ++ ++ if (data && data->subscribed && ++ mutt_strncmp (data->group, filepart, len) == 0) ++ { ++ if (init) ++ { ++ for (i = 0; filepart[i] && data->group[i]; i++) ++ { ++ if (filepart[i] != data->group[i]) ++ { ++ filepart[i] = 0; ++ break; ++ } ++ } ++ filepart[i] = 0; ++ } ++ else ++ { ++ strfcpy (filepart, data->group, sizeof (filepart)); ++ init = 1; ++ } ++ } ++ } ++ ++ strcpy (s, filepart); ++ ++ return (init ? 0 : -1); ++ } ++#endif ++ ++#ifdef USE_IMAP + /* we can use '/' as a delimiter, imap_complete rewrites it */ + if (*s == '=' || *s == '+' || *s == '!') + { +diff -udprP mutt-1.5.20.orig/compose.c mutt-1.5.20/compose.c +--- mutt-1.5.20.orig/compose.c 2009-03-31 09:52:43.000000000 +0300 ++++ mutt-1.5.20/compose.c 2009-06-15 21:05:24.000000000 +0300 +@@ -32,10 +32,15 @@ + #include "mailbox.h" + #include "sort.h" + #include "charset.h" ++#include "mx.h" + + #ifdef MIXMASTER + #include "remailer.h" + #endif ++ ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif + + #include + #include +@@ -60,18 +65,21 @@ enum + HDR_REPLYTO, + HDR_FCC, + +-#ifdef MIXMASTER +- HDR_MIX, +-#endif + + HDR_CRYPT, + HDR_CRYPTINFO, + ++#ifdef USE_NNTP ++ HDR_NEWSGROUPS, ++ HDR_FOLLOWUPTO, ++ HDR_XCOMMENTTO, ++#endif ++ + HDR_ATTACH = (HDR_FCC + 5) /* where to start printing the attachments */ + }; + +-#define HDR_XOFFSET 10 +-#define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ ++#define HDR_XOFFSET 14 ++#define TITLE_FMT "%14s" /* Used for Prompts, which are ASCII */ + #define W (COLS - HDR_XOFFSET) + + static char *Prompts[] = +@@ -83,6 +91,16 @@ static char *Prompts[] = + "Subject: ", + "Reply-To: ", + "Fcc: " ++#ifdef USE_NNTP ++#ifdef MIXMASTER ++ ,"" ++#endif ++ ,"" ++ ,"" ++ ,"Newsgroups: " ++ ,"Followup-To: " ++ ,"X-Comment-To: " ++#endif + }; + + static struct mapping_t ComposeHelp[] = { +@@ -97,6 +115,19 @@ static struct mapping_t ComposeHelp[] = + { NULL, 0 } + }; + ++#ifdef USE_NNTP ++static struct mapping_t ComposeNewsHelp[] = { ++ { N_("Send"), OP_COMPOSE_SEND_MESSAGE }, ++ { N_("Abort"), OP_EXIT }, ++ { "Newsgroups", OP_COMPOSE_EDIT_NEWSGROUPS }, ++ { "Subj", OP_COMPOSE_EDIT_SUBJECT }, ++ { N_("Attach file"), OP_COMPOSE_ATTACH_FILE }, ++ { N_("Descrip"), OP_COMPOSE_EDIT_DESCRIPTION }, ++ { N_("Help"), OP_HELP }, ++ { NULL } ++}; ++#endif ++ + static void snd_entry (char *b, size_t blen, MUTTMENU *menu, int num) + { + mutt_FormatString (b, blen, 0, NONULL (AttachFormat), mutt_attach_fmt, +@@ -115,16 +146,16 @@ static void redraw_crypt_lines (HEADER * + if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) + { + if (!msg->security) +- mvaddstr (HDR_CRYPT, 0, "Security: "); ++ mvaddstr (HDR_CRYPT, 0, " Security: "); + else if (msg->security & APPLICATION_SMIME) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, 0, " S/MIME: "); + else if (msg->security & APPLICATION_PGP) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, 0, " PGP: "); + } + else if ((WithCrypto & APPLICATION_SMIME)) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, 0, " S/MIME: "); + else if ((WithCrypto & APPLICATION_PGP)) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, 0, " PGP: "); + else + return; + +@@ -252,9 +283,28 @@ static void draw_envelope_addr (int line + static void draw_envelope (HEADER *msg, char *fcc) + { + draw_envelope_addr (HDR_FROM, msg->env->from); ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++ { ++#endif + draw_envelope_addr (HDR_TO, msg->env->to); + draw_envelope_addr (HDR_CC, msg->env->cc); + draw_envelope_addr (HDR_BCC, msg->env->bcc); ++#ifdef USE_NNTP ++ } ++ else ++ { ++ mvprintw (HDR_TO, 0, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]); ++ mutt_paddstr (W, NONULL (msg->env->newsgroups)); ++ mvprintw (HDR_CC, 0, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]); ++ mutt_paddstr (W, NONULL (msg->env->followup_to)); ++ if (option (OPTXCOMMENTTO)) ++ { ++ mvprintw (HDR_BCC, 0, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]); ++ mutt_paddstr (W, NONULL (msg->env->x_comment_to)); ++ } ++ } ++#endif + mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); + mutt_paddstr (W, NONULL (msg->env->subject)); + draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); +@@ -507,6 +557,12 @@ int mutt_compose_menu (HEADER *msg, /* + /* Sort, SortAux could be changed in mutt_index_menu() */ + int oldSort, oldSortAux; + struct stat st; ++#ifdef USE_NNTP ++ int news = 0; /* is it a news article ? */ ++ ++ if (option (OPTNEWSSEND)) ++ news++; ++#endif + + mutt_attach_init (msg->content); + idx = mutt_gen_attach_list (msg->content, -1, idx, &idxlen, &idxmax, 0, 1); +@@ -517,10 +573,18 @@ int mutt_compose_menu (HEADER *msg, /* + menu->make_entry = snd_entry; + menu->tag = mutt_tag_attach; + menu->data = idx; ++#ifdef USE_NNTP ++ if (news) ++ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_COMPOSE, ComposeNewsHelp); ++ else ++#endif + menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_COMPOSE, ComposeHelp); + + while (loop) + { ++#ifdef USE_NNTP ++ unset_option (OPTNEWS); /* for any case */ ++#endif + switch (op = mutt_menuLoop (menu)) + { + case OP_REDRAW: +@@ -533,17 +597,87 @@ int mutt_compose_menu (HEADER *msg, /* + mutt_message_hook (NULL, msg, M_SEND2HOOK); + break; + case OP_COMPOSE_EDIT_TO: ++#ifdef USE_NNTP ++ if (news) ++ break; ++#endif + menu->redraw = edit_address_list (HDR_TO, &msg->env->to); + mutt_message_hook (NULL, msg, M_SEND2HOOK); + break; + case OP_COMPOSE_EDIT_BCC: ++#ifdef USE_NNTP ++ if (news) ++ break; ++#endif + menu->redraw = edit_address_list (HDR_BCC, &msg->env->bcc); + mutt_message_hook (NULL, msg, M_SEND2HOOK); + break; + case OP_COMPOSE_EDIT_CC: ++#ifdef USE_NNTP ++ if (news) ++ break; ++#endif + menu->redraw = edit_address_list (HDR_CC, &msg->env->cc); + mutt_message_hook (NULL, msg, M_SEND2HOOK); + break; ++#ifdef USE_NNTP ++ case OP_COMPOSE_EDIT_NEWSGROUPS: ++ if (news) ++ { ++ if (msg->env->newsgroups) ++ strfcpy (buf, msg->env->newsgroups, sizeof (buf)); ++ else ++ buf[0] = 0; ++ if (mutt_get_field ("Newsgroups: ", buf, sizeof (buf), 0) == 0 && buf[0]) ++ { ++ FREE (&msg->env->newsgroups); ++ mutt_remove_trailing_ws (buf); ++ msg->env->newsgroups = safe_strdup (mutt_skip_whitespace (buf)); ++ move (HDR_TO, HDR_XOFFSET); ++ clrtoeol (); ++ if (msg->env->newsgroups) ++ printw ("%-*.*s", W, W, msg->env->newsgroups); ++ } ++ } ++ break; ++ ++ case OP_COMPOSE_EDIT_FOLLOWUP_TO: ++ if (news) ++ { ++ buf[0] = 0; ++ if (msg->env->followup_to) ++ strfcpy (buf, msg->env->followup_to, sizeof (buf)); ++ if (mutt_get_field ("Followup-To: ", buf, sizeof (buf), 0) == 0 && buf[0]) ++ { ++ FREE (&msg->env->followup_to); ++ mutt_remove_trailing_ws (buf); ++ msg->env->followup_to = safe_strdup (mutt_skip_whitespace (buf)); ++ move (HDR_CC, HDR_XOFFSET); ++ clrtoeol(); ++ if (msg->env->followup_to) ++ printw ("%-*.*s", W, W, msg->env->followup_to); ++ } ++ } ++ break; ++ ++ case OP_COMPOSE_EDIT_X_COMMENT_TO: ++ if (news && option (OPTXCOMMENTTO)) ++ { ++ buf[0] = 0; ++ if (msg->env->x_comment_to) ++ strfcpy (buf, msg->env->x_comment_to, sizeof (buf)); ++ if (mutt_get_field ("X-Comment-To: ", buf, sizeof (buf), 0) == 0 && buf[0]) ++ { ++ FREE (&msg->env->x_comment_to); ++ msg->env->x_comment_to = safe_strdup (buf); ++ move (HDR_BCC, HDR_XOFFSET); ++ clrtoeol(); ++ if (msg->env->x_comment_to) ++ printw ("%-*.*s", W, W, msg->env->x_comment_to); ++ } ++ } ++ break; ++#endif + case OP_COMPOSE_EDIT_SUBJECT: + if (msg->env->subject) + strfcpy (buf, msg->env->subject, sizeof (buf)); +@@ -706,6 +840,9 @@ int mutt_compose_menu (HEADER *msg, /* + break; + + case OP_COMPOSE_ATTACH_MESSAGE: ++#ifdef USE_NNTP ++ case OP_COMPOSE_ATTACH_NEWS_MESSAGE: ++#endif + { + char *prompt; + HEADER *h; +@@ -713,7 +850,22 @@ int mutt_compose_menu (HEADER *msg, /* + fname[0] = 0; + prompt = _("Open mailbox to attach message from"); + ++#ifdef USE_NNTP ++ unset_option (OPTNEWS); ++ if (op == OP_COMPOSE_ATTACH_NEWS_MESSAGE) ++ { ++ if (!(CurrentNewsSrv = mutt_select_newsserver (NewsServer))) ++ break; ++ ++ prompt = _("Open newsgroup to attach message from"); ++ set_option (OPTNEWS); ++ } ++#endif ++ + if (Context) ++#ifdef USE_NNTP ++ if ((op == OP_COMPOSE_ATTACH_MESSAGE) ^ (Context->magic == M_NNTP)) ++#endif + { + strfcpy (fname, NONULL (Context->path), sizeof (fname)); + mutt_pretty_mailbox (fname, sizeof (fname)); +@@ -722,6 +874,11 @@ int mutt_compose_menu (HEADER *msg, /* + if (mutt_enter_fname (prompt, fname, sizeof (fname), &menu->redraw, 1) == -1 || !fname[0]) + break; + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ nntp_expand_path (fname, sizeof (fname), &CurrentNewsSrv->conn->account); ++ else ++#endif + mutt_expand_path (fname, sizeof (fname)); + #ifdef USE_IMAP + if (!mx_is_imap (fname)) +@@ -729,6 +886,9 @@ int mutt_compose_menu (HEADER *msg, /* + #ifdef USE_POP + if (!mx_is_pop (fname)) + #endif ++#ifdef USE_NNTP ++ if (!mx_is_nntp (fname) && !option (OPTNEWS)) ++#endif + /* check to make sure the file exists and is readable */ + if (access (fname, R_OK) == -1) + { +diff -udprP mutt-1.5.20.orig/config.h.in mutt-1.5.20/config.h.in +--- mutt-1.5.20.orig/config.h.in 2009-06-09 09:51:15.000000000 +0300 ++++ mutt-1.5.20/config.h.in 2009-06-15 21:05:24.000000000 +0300 +@@ -37,6 +37,9 @@ + significant more memory when defined. */ + #undef EXACT_ADDRESS + ++/* Compiling with newsreading support with NNTP */ ++#undef USE_NNTP ++ + /* program to use for shell commands */ + #undef EXECSHELL + +diff -udprP mutt-1.5.20.orig/configure.ac mutt-1.5.20/configure.ac +--- mutt-1.5.20.orig/configure.ac 2009-06-09 09:50:33.000000000 +0300 ++++ mutt-1.5.20/configure.ac 2009-06-15 21:05:24.000000000 +0300 +@@ -599,6 +599,14 @@ if test x"$need_imap" = xyes -o x"$need_ + MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS bcache.o" + fi + ++AC_ARG_ENABLE(nntp, [ --enable-nntp Enable NNTP support], ++[ if test x$enableval = xyes ; then ++ AC_DEFINE(USE_NNTP,1,[ Define if you want support for the NNTP protocol. ]) ++ MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS nntp.o newsrc.o" ++ need_socket="yes" ++ fi ++]) ++ + dnl -- end socket dependencies -- + + if test "$need_socket" = "yes" +diff -udprP mutt-1.5.20.orig/curs_main.c mutt-1.5.20/curs_main.c +--- mutt-1.5.20.orig/curs_main.c 2009-06-14 05:48:36.000000000 +0300 ++++ mutt-1.5.20/curs_main.c 2009-06-15 21:47:09.000000000 +0300 +@@ -22,6 +22,7 @@ + + #include "mutt.h" + #include "mutt_curses.h" ++#include "mx.h" + #include "mutt_menu.h" + #include "mailbox.h" + #include "mapping.h" +@@ -38,6 +39,10 @@ + + #include "mutt_crypt.h" + ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif ++ + + #include + #include +@@ -413,12 +418,27 @@ static struct mapping_t IndexHelp[] = { + { NULL, 0 } + }; + ++#ifdef USE_NNTP ++struct mapping_t IndexNewsHelp[] = { ++ { N_("Quit"), OP_QUIT }, ++ { N_("Del"), OP_DELETE }, ++ { N_("Undel"), OP_UNDELETE }, ++ { N_("Save"), OP_SAVE }, ++ { N_("Post"), OP_POST }, ++ { N_("Followup"), OP_FOLLOWUP }, ++ { N_("Catchup"), OP_CATCHUP }, ++ { N_("Help"), OP_HELP }, ++ { NULL } ++}; ++#endif ++ + /* This function handles the message index window as well as commands returned + * from the pager (MENU_PAGER). + */ + int mutt_index_menu (void) + { + char buf[LONG_STRING], helpstr[LONG_STRING]; ++ int flags; + int op = OP_NULL; + int done = 0; /* controls when to exit the "event" loop */ + int i = 0, j; +@@ -439,7 +459,11 @@ int mutt_index_menu (void) + menu->make_entry = index_make_entry; + menu->color = index_color; + menu->current = ci_first_message (); +- menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN, IndexHelp); ++ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN, ++#ifdef USE_NNTP ++ (Context && (Context->magic == M_NNTP)) ? IndexNewsHelp : ++#endif ++ IndexHelp); + + if (!attach_msg) + mutt_buffy_check(1); /* force the buffy check after we enter the folder */ +@@ -690,6 +714,9 @@ int mutt_index_menu (void) + imap_disallow_reopen (Context); + #endif + ++#ifdef USE_NNTP ++ unset_option (OPTNEWS); /* for any case */ ++#endif + switch (op) + { + +@@ -740,6 +767,120 @@ int mutt_index_menu (void) + menu_current_bottom (menu); + break; + ++#ifdef USE_NNTP ++ case OP_GET_MESSAGE: ++ case OP_GET_PARENT: ++ CHECK_MSGCOUNT; ++ if (Context->magic == M_NNTP) ++ { ++ HEADER *h; ++ ++ if (op == OP_GET_MESSAGE) ++ { ++ buf[0] = 0; ++ if (mutt_get_field (_("Enter Message-Id: "), buf, sizeof (buf), 0) != 0 ++ || !buf[0]) ++ break; ++ } ++ else ++ { ++ LIST *ref = CURHDR->env->references; ++ if (!ref) ++ { ++ mutt_error _("Article has no parent reference!"); ++ break; ++ } ++ strfcpy (buf, ref->data, sizeof (buf)); ++ } ++ if (!Context->id_hash) ++ Context->id_hash = mutt_make_id_hash (Context); ++ if ((h = hash_find (Context->id_hash, buf))) ++ { ++ if (h->virtual != -1) ++ { ++ menu->current = h->virtual; ++ menu->redraw = REDRAW_MOTION_RESYNCH; ++ } ++ else if (h->collapsed) ++ { ++ mutt_uncollapse_thread (Context, h); ++ mutt_set_virtual (Context); ++ menu->current = h->virtual; ++ menu->redraw = REDRAW_MOTION_RESYNCH; ++ } ++ else ++ mutt_error _("Message not visible in limited view."); ++ } ++ else ++ { ++ if (nntp_check_msgid (Context, buf) == 0) ++ { ++ h = Context->hdrs[Context->msgcount-1]; ++ mutt_sort_headers (Context, 0); ++ menu->current = h->virtual; ++ menu->redraw = REDRAW_FULL; ++ } ++ else ++ mutt_error (_("Article %s not found on server"), buf); ++ } ++ } ++ break; ++ ++ case OP_GET_CHILDREN: ++ case OP_RECONSTRUCT_THREAD: ++ CHECK_MSGCOUNT; ++ if (Context->magic == M_NNTP) ++ { ++ HEADER *h; ++ int old = CURHDR->index, i; ++ ++ if (!CURHDR->env->message_id) ++ { ++ mutt_error _("No Message-Id. Unable to perform operation"); ++ break; ++ } ++ ++ if (!Context->id_hash) ++ Context->id_hash = mutt_make_id_hash (Context); ++ strfcpy (buf, CURHDR->env->message_id, sizeof (buf)); ++ ++ if (op == OP_RECONSTRUCT_THREAD) ++ { ++ LIST *ref = CURHDR->env->references; ++ while (ref) ++ { ++ nntp_check_msgid (Context, ref->data); ++ /* the last msgid in References is the root message */ ++ if (!ref->next) ++ strfcpy (buf, ref->data, sizeof (buf)); ++ ref = ref->next; ++ } ++ } ++ mutt_message _("Check for children of message..."); ++ if (nntp_check_children (Context, buf) == 0) ++ { ++ mutt_sort_headers (Context, (op == OP_RECONSTRUCT_THREAD)); ++ h = hash_find (Context->id_hash, buf); ++ /* if the root message was retrieved, move to it */ ++ if (h) ++ menu->current = h->virtual; ++ else /* try to restore old position */ ++ for (i = 0; i < Context->msgcount; i++) ++ if (Context->hdrs[i]->index == old) ++ { ++ menu->current = Context->hdrs[i]->virtual; ++ /* As an added courtesy, recenter the menu ++ * with the current entry at the middle of the screen */ ++ menu_check_recenter (menu); ++ menu_current_middle (menu); ++ } ++ } ++ menu->redraw = REDRAW_FULL; ++ mutt_clear_error (); ++ } ++ break; ++#endif ++ + case OP_JUMP: + + CHECK_MSGCOUNT; +@@ -836,11 +977,33 @@ int mutt_index_menu (void) + break; + + case OP_MAIN_LIMIT: ++ case OP_TOGGLE_READ: + + CHECK_IN_MAILBOX; + menu->oldcurrent = (Context->vcount && menu->current >= 0 && menu->current < Context->vcount) ? + CURHDR->index : -1; +- if (mutt_pattern_func (M_LIMIT, _("Limit to messages matching: ")) == 0) ++ if (op == OP_TOGGLE_READ) ++ { ++ char buf[LONG_STRING]; ++ ++ if (!Context->pattern || strncmp (Context->pattern, "!~R!~D~s", 8) != 0) ++ { ++ snprintf (buf, sizeof (buf), "!~R!~D~s%s", ++ Context->pattern ? Context->pattern : ".*"); ++ set_option (OPTHIDEREAD); ++ } ++ else ++ { ++ strfcpy (buf, Context->pattern + 8, sizeof(buf)); ++ if (!*buf || strncmp (buf, ".*", 2) == 0) ++ snprintf (buf, sizeof(buf), "~A"); ++ unset_option (OPTHIDEREAD); ++ } ++ FREE (&Context->pattern); ++ Context->pattern = safe_strdup (buf); ++ } ++ if ((op == OP_TOGGLE_READ && mutt_pattern_func (M_LIMIT, NULL) == 0) || ++ mutt_pattern_func (M_LIMIT, _("Limit to messages matching: ")) == 0) + { + if (menu->oldcurrent >= 0) + { +@@ -1057,15 +1220,22 @@ int mutt_index_menu (void) + + case OP_MAIN_CHANGE_FOLDER: + case OP_MAIN_NEXT_UNREAD_MAILBOX: +- +- if (attach_msg) +- op = OP_MAIN_CHANGE_FOLDER_READONLY; +- +- /* fallback to the readonly case */ +- + case OP_MAIN_CHANGE_FOLDER_READONLY: ++#ifdef USE_NNTP ++ case OP_MAIN_CHANGE_GROUP: ++ case OP_MAIN_CHANGE_GROUP_READONLY: ++ unset_option (OPTNEWS); ++#endif ++ if (attach_msg || option (OPTREADONLY) || ++#ifdef USE_NNTP ++ op == OP_MAIN_CHANGE_GROUP_READONLY || ++#endif ++ op == OP_MAIN_CHANGE_FOLDER_READONLY) ++ flags = M_READONLY; ++ else ++ flags = 0; + +- if ((op == OP_MAIN_CHANGE_FOLDER_READONLY) || option (OPTREADONLY)) ++ if (flags) + cp = _("Open mailbox in read-only mode"); + else + cp = _("Open mailbox"); +@@ -1084,6 +1254,21 @@ int mutt_index_menu (void) + } + else + { ++#ifdef USE_NNTP ++ if (op == OP_MAIN_CHANGE_GROUP || ++ op == OP_MAIN_CHANGE_GROUP_READONLY) ++ { ++ set_option (OPTNEWS); ++ if (!(CurrentNewsSrv = mutt_select_newsserver (NewsServer))) ++ break; ++ if (flags) ++ cp = _("Open newsgroup in read-only mode"); ++ else ++ cp = _("Open newsgroup"); ++ nntp_buffy (buf); ++ } ++ else ++#endif + mutt_buffy (buf, sizeof (buf)); + + if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) +@@ -1103,6 +1288,14 @@ int mutt_index_menu (void) + } + } + ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ unset_option (OPTNEWS); ++ nntp_expand_path (buf, sizeof (buf), &CurrentNewsSrv->conn->account); ++ } ++ else ++#endif + mutt_expand_path (buf, sizeof (buf)); + if (mx_get_magic (buf) <= 0) + { +@@ -1140,15 +1333,18 @@ int mutt_index_menu (void) + CurrentMenu = MENU_MAIN; + mutt_folder_hook (buf); + +- if ((Context = mx_open_mailbox (buf, +- (option (OPTREADONLY) || op == OP_MAIN_CHANGE_FOLDER_READONLY) ? +- M_READONLY : 0, NULL)) != NULL) ++ if ((Context = mx_open_mailbox (buf, flags, NULL)) != NULL) + { + menu->current = ci_first_message (); + } + else + menu->current = 0; + ++#ifdef USE_NNTP ++ /* mutt_buffy_check() must be done with mail-reader mode! */ ++ menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_MAIN, ++ (Context && (Context->magic == M_NNTP)) ? IndexNewsHelp : IndexHelp); ++#endif + mutt_clear_error (); + mutt_buffy_check(1); /* force the buffy check after we have changed + the folder */ +@@ -1519,6 +1715,15 @@ int mutt_index_menu (void) + CHECK_READONLY; + CHECK_ACL(M_ACL_WRITE, _("flag message")); + ++#ifdef USE_NNTP ++ if (Context->magic == M_NNTP) ++ { ++ mutt_flushinp (); ++ mutt_error _("Can't change 'important' flag on NNTP server."); ++ break; ++ } ++#endif ++ + if (tag) + { + for (j = 0; j < Context->vcount; j++) +@@ -1866,6 +2071,17 @@ int mutt_index_menu (void) + } + break; + ++#ifdef USE_NNTP ++ case OP_CATCHUP: ++ if (Context && Context->magic == M_NNTP) ++ { ++ if (mutt_newsgroup_catchup (CurrentNewsSrv, ++ ((NNTP_DATA *)Context->data)->group)) ++ menu->redraw = REDRAW_INDEX | REDRAW_STATUS; ++ } ++ break; ++#endif ++ + case OP_DISPLAY_ADDRESS: + + CHECK_MSGCOUNT; +@@ -1993,6 +2209,15 @@ int mutt_index_menu (void) + menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS; + } + #endif ++ ++#ifdef USE_NNTP ++ if (Context->magic == M_NNTP) ++ { ++ mutt_flushinp (); ++ mutt_error _("Can't edit message on newsserver."); ++ break; ++ } ++#endif + + MAYBE_REDRAW (menu->redraw); + break; +@@ -2065,6 +2290,41 @@ int mutt_index_menu (void) + menu->redraw = REDRAW_FULL; + break; + ++#ifdef USE_NNTP ++ case OP_FOLLOWUP: ++ case OP_FORWARD_TO_GROUP: ++ ++ CHECK_MSGCOUNT; ++ CHECK_VISIBLE; ++ ++ case OP_POST: ++ ++ CHECK_ATTACH; ++ if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || ++ mutt_strcasecmp (CURHDR->env->followup_to, "poster") || ++ query_quadoption (OPT_FOLLOWUPTOPOSTER,_("Reply by mail as poster prefers?")) != M_YES) ++ { ++ if (Context && Context->magic == M_NNTP && ++ !((NNTP_DATA *)Context->data)->allowed && ++ query_quadoption (OPT_TOMODERATED, _("Posting to this group not allowed, may be moderated. Continue?")) != M_YES) ++ break; ++ if (op == OP_POST) ++ ci_send_message (SENDNEWS, NULL, NULL, Context, NULL); ++ else ++ { ++ CHECK_MSGCOUNT; ++ if (op == OP_FOLLOWUP) ++ ci_send_message (SENDNEWS|SENDREPLY, NULL, NULL, Context, ++ tag ? NULL : CURHDR); ++ else ++ ci_send_message (SENDNEWS|SENDFORWARD, NULL, NULL, Context, ++ tag ? NULL : CURHDR); ++ } ++ menu->redraw = REDRAW_FULL; ++ break; ++ } ++#endif ++ + case OP_REPLY: + + CHECK_ATTACH; +@@ -2140,6 +2400,12 @@ int mutt_index_menu (void) + CHECK_READONLY; + CHECK_ACL(M_ACL_DELETE, _("undelete message(s)")); + ++#ifdef USE_NNTP ++ /* Close all open NNTP connections */ ++ if (!attach_msg) ++ nntp_logout_all (); ++#endif ++ + rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0, + op == OP_UNDELETE_THREAD ? 0 : 1); + +diff -udprP mutt-1.5.20.orig/doc/manual.xml.head mutt-1.5.20/doc/manual.xml.head +--- mutt-1.5.20.orig/doc/manual.xml.head 2009-05-30 20:20:08.000000000 +0300 ++++ mutt-1.5.20/doc/manual.xml.head 2009-06-15 21:05:24.000000000 +0300 +@@ -1568,6 +1568,22 @@ fo-table for details. + + + ++ ++Reading news via NNTP ++ ++ ++If compiled with --enable-nntp option, Mutt can ++read news from newsserver via NNTP. You can open a newsgroup with ++function ``change-newsgroup'' (default: ``i''). Default newsserver ++can be obtained from NNTPSERVER environment ++variable. Like other news readers, info about subscribed newsgroups ++is saved in file by $newsrc ++variable. Article headers are cached and can be loaded from file when ++newsgroup entered instead loading from newsserver. ++ ++ ++ ++ + + + +diff -udprP mutt-1.5.20.orig/doc/mutt.man mutt-1.5.20/doc/mutt.man +--- mutt-1.5.20.orig/doc/mutt.man 2009-06-07 03:32:44.000000000 +0300 ++++ mutt-1.5.20/doc/mutt.man 2009-06-15 21:07:47.000000000 +0300 +@@ -23,8 +23,8 @@ mutt \- The Mutt Mail User Agent + .SH SYNOPSIS + .PP + .B mutt +-[-nRyzZ] +-[\-e \fIcmd\fP] [\-F \fIfile\fP] [\-m \fItype\fP] [\-f \fIfile\fP] ++[-GnRyzZ] ++[\-e \fIcmd\fP] [\-F \fIfile\fP] [\-g \fIserver\fP] [\-m \fItype\fP] [\-f \fIfile\fP] + .PP + .B mutt + [\-nx] +@@ -101,6 +101,10 @@ files. + Specify which mailbox to load. + .IP "-F \fImuttrc\fP" + Specify an initialization file to read instead of ~/.muttrc ++.IP "-g \fIserver\fP" ++Start Mutt with a listing of subscribed newsgroups at specified newsserver. ++.IP "-G" ++Start Mutt with a listing of subscribed newsgroups. + .IP "-h" + Display help. + .IP "-H \fIdraft\fP" +diff -udprP mutt-1.5.20.orig/functions.h mutt-1.5.20/functions.h +--- mutt-1.5.20.orig/functions.h 2009-04-30 08:36:17.000000000 +0300 ++++ mutt-1.5.20/functions.h 2009-06-15 21:05:24.000000000 +0300 +@@ -88,6 +88,10 @@ struct binding_t OpMain[] = { /* map: in + { "break-thread", OP_MAIN_BREAK_THREAD, "#" }, + { "change-folder", OP_MAIN_CHANGE_FOLDER, "c" }, + { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" }, ++#ifdef USE_NNTP ++ { "change-newsgroup", OP_MAIN_CHANGE_GROUP, "i" }, ++ { "change-newsgroup-readonly",OP_MAIN_CHANGE_GROUP_READONLY, "\033i" }, ++#endif + { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX, NULL }, + { "collapse-thread", OP_MAIN_COLLAPSE_THREAD, "\033v" }, + { "collapse-all", OP_MAIN_COLLAPSE_ALL, "\033V" }, +@@ -101,7 +105,15 @@ struct binding_t OpMain[] = { /* map: in + { "edit", OP_EDIT_MESSAGE, "e" }, + { "edit-type", OP_EDIT_TYPE, "\005" }, + { "forward-message", OP_FORWARD_MESSAGE, "f" }, +- { "flag-message", OP_FLAG_MESSAGE, "F" }, ++#ifdef USE_NNTP ++ { "forward-to-group", OP_FORWARD_TO_GROUP, "\033F" }, ++ { "followup-message", OP_FOLLOWUP, "F" }, ++ { "get-children", OP_GET_CHILDREN, NULL }, ++ { "get-message", OP_GET_MESSAGE, "\007" }, ++ { "get-parent", OP_GET_PARENT, "\033G" }, ++ { "reconstruct-thread", OP_RECONSTRUCT_THREAD, NULL }, ++#endif ++ { "flag-message", OP_FLAG_MESSAGE, "\033f" }, + { "group-reply", OP_GROUP_REPLY, "g" }, + #ifdef USE_POP + { "fetch-mail", OP_MAIN_FETCH_MAIL, "G" }, +@@ -127,6 +139,9 @@ struct binding_t OpMain[] = { /* map: in + { "sort-mailbox", OP_SORT, "o" }, + { "sort-reverse", OP_SORT_REVERSE, "O" }, + { "print-message", OP_PRINT, "p" }, ++#ifdef USE_NNTP ++ { "post-message", OP_POST, "P" }, ++#endif + { "previous-thread", OP_MAIN_PREV_THREAD, "\020" }, + { "previous-subthread", OP_MAIN_PREV_SUBTHREAD, "\033p" }, + { "recall-message", OP_RECALL_MESSAGE, "R" }, +@@ -146,6 +161,10 @@ struct binding_t OpMain[] = { /* map: in + { "show-version", OP_VERSION, "V" }, + { "set-flag", OP_MAIN_SET_FLAG, "w" }, + { "clear-flag", OP_MAIN_CLEAR_FLAG, "W" }, ++ { "toggle-read", OP_TOGGLE_READ, "X" }, ++#ifdef USE_NNTP ++ { "catchup", OP_CATCHUP, "y" }, ++#endif + { "display-message", OP_DISPLAY_MESSAGE, M_ENTER_S }, + { "buffy-list", OP_BUFFY_LIST, "." }, + { "sync-mailbox", OP_MAIN_SYNC_FOLDER, "$" }, +@@ -157,7 +176,7 @@ struct binding_t OpMain[] = { /* map: in + { "previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD, "\033\t" }, + { "next-unread", OP_MAIN_NEXT_UNREAD, NULL }, + { "previous-unread", OP_MAIN_PREV_UNREAD, NULL }, +- { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" }, ++ { "parent-message", OP_MAIN_PARENT_MESSAGE, NULL }, + + + { "extract-keys", OP_EXTRACT_KEYS, "\013" }, +@@ -177,6 +196,10 @@ struct binding_t OpPager[] = { /* map: p + { "bounce-message", OP_BOUNCE_MESSAGE, "b" }, + { "change-folder", OP_MAIN_CHANGE_FOLDER, "c" }, + { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" }, ++#ifdef USE_NNTP ++ { "change-newsgroup", OP_MAIN_CHANGE_GROUP, "i" }, ++ { "change-newsgroup-readonly",OP_MAIN_CHANGE_GROUP_READONLY, "\033i" }, ++#endif + { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX, NULL }, + { "copy-message", OP_COPY_MESSAGE, "C" }, + { "decode-copy", OP_DECODE_COPY, "\033C" }, +@@ -187,8 +210,12 @@ struct binding_t OpPager[] = { /* map: p + { "clear-flag", OP_MAIN_CLEAR_FLAG, "W" }, + { "edit", OP_EDIT_MESSAGE, "e" }, + { "edit-type", OP_EDIT_TYPE, "\005" }, ++#ifdef USE_NNTP ++ { "followup-message", OP_FOLLOWUP, "F" }, ++ { "forward-to-group", OP_FORWARD_TO_GROUP, "\033F" }, ++#endif + { "forward-message", OP_FORWARD_MESSAGE, "f" }, +- { "flag-message", OP_FLAG_MESSAGE, "F" }, ++ { "flag-message", OP_FLAG_MESSAGE, "\033f" }, + { "group-reply", OP_GROUP_REPLY, "g" }, + #ifdef USE_IMAP + { "imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL }, +@@ -207,6 +234,9 @@ struct binding_t OpPager[] = { /* map: p + { "next-thread", OP_MAIN_NEXT_THREAD, "\016" }, + { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" }, + { "print-message", OP_PRINT, "p" }, ++#ifdef USE_NNTP ++ { "post-message", OP_POST, "P" }, ++#endif + { "previous-thread", OP_MAIN_PREV_THREAD, "\020" }, + { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" }, + { "quit", OP_QUIT, "Q" }, +@@ -254,7 +284,7 @@ struct binding_t OpPager[] = { /* map: p + { "half-down", OP_HALF_DOWN, NULL }, + { "previous-line", OP_PREV_LINE, NULL }, + { "bottom", OP_PAGER_BOTTOM, NULL }, +- { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" }, ++ { "parent-message", OP_MAIN_PARENT_MESSAGE, NULL }, + + + +@@ -275,6 +305,10 @@ struct binding_t OpAttach[] = { /* map: + { "bounce-message", OP_BOUNCE_MESSAGE, "b" }, + { "display-toggle-weed", OP_DISPLAY_HEADERS, "h" }, + { "edit-type", OP_EDIT_TYPE, "\005" }, ++#ifdef USE_NNTP ++ { "followup-message", OP_FOLLOWUP, "F" }, ++ { "forward-to-group", OP_FORWARD_TO_GROUP, "\033F" }, ++#endif + { "print-entry", OP_PRINT, "p" }, + { "save-entry", OP_SAVE, "s" }, + { "pipe-entry", OP_PIPE, "|" }, +@@ -300,6 +334,7 @@ struct binding_t OpAttach[] = { /* map: + struct binding_t OpCompose[] = { /* map: compose */ + { "attach-file", OP_COMPOSE_ATTACH_FILE, "a" }, + { "attach-message", OP_COMPOSE_ATTACH_MESSAGE, "A" }, ++ { "attach-news-message",OP_COMPOSE_ATTACH_NEWS_MESSAGE,"\033a" }, + { "edit-bcc", OP_COMPOSE_EDIT_BCC, "b" }, + { "edit-cc", OP_COMPOSE_EDIT_CC, "c" }, + { "copy-file", OP_SAVE, "C" }, +@@ -319,6 +354,11 @@ struct binding_t OpCompose[] = { /* map: + { "print-entry", OP_PRINT, "l" }, + { "edit-mime", OP_COMPOSE_EDIT_MIME, "m" }, + { "new-mime", OP_COMPOSE_NEW_MIME, "n" }, ++#ifdef USE_NNTP ++ { "edit-newsgroups", OP_COMPOSE_EDIT_NEWSGROUPS, "N" }, ++ { "edit-followup-to", OP_COMPOSE_EDIT_FOLLOWUP_TO, "o" }, ++ { "edit-x-comment-to",OP_COMPOSE_EDIT_X_COMMENT_TO, "x" }, ++#endif + { "postpone-message", OP_COMPOSE_POSTPONE_MESSAGE, "P" }, + { "edit-reply-to", OP_COMPOSE_EDIT_REPLY_TO, "r" }, + { "rename-file", OP_COMPOSE_RENAME_FILE, "R" }, +@@ -370,14 +410,25 @@ struct binding_t OpBrowser[] = { /* map: + { "select-new", OP_BROWSER_NEW_FILE, "N" }, + { "check-new", OP_CHECK_NEW, NULL }, + { "toggle-mailboxes", OP_TOGGLE_MAILBOXES, "\t" }, ++#ifdef USE_NNTP ++ { "reload-active", OP_LOAD_ACTIVE, "g" }, ++ { "subscribe-pattern", OP_SUBSCRIBE_PATTERN, "S" }, ++ { "unsubscribe-pattern", OP_UNSUBSCRIBE_PATTERN, "U" }, ++ { "catchup", OP_CATCHUP, "y" }, ++ { "uncatchup", OP_UNCATCHUP, "Y" }, ++#endif + { "view-file", OP_BROWSER_VIEW_FILE, " " }, + { "buffy-list", OP_BUFFY_LIST, "." }, + #ifdef USE_IMAP + { "create-mailbox", OP_CREATE_MAILBOX, "C" }, + { "delete-mailbox", OP_DELETE_MAILBOX, "d" }, + { "rename-mailbox", OP_RENAME_MAILBOX, "r" }, ++#endif ++#if defined USE_IMAP || defined USE_NNTP + { "subscribe", OP_BROWSER_SUBSCRIBE, "s" }, + { "unsubscribe", OP_BROWSER_UNSUBSCRIBE, "u" }, ++#endif ++#ifdef USE_IMAP + { "toggle-subscribed", OP_BROWSER_TOGGLE_LSUB, "T" }, + #endif + { NULL, 0, NULL } +diff -udprP mutt-1.5.20.orig/globals.h mutt-1.5.20/globals.h +--- mutt-1.5.20.orig/globals.h 2009-06-03 23:48:31.000000000 +0300 ++++ mutt-1.5.20/globals.h 2009-06-15 21:05:24.000000000 +0300 +@@ -95,6 +95,15 @@ WHERE char *MixEntryFormat; + #endif + + WHERE char *Muttrc INITVAL (NULL); ++#ifdef USE_NNTP ++WHERE char *NewsCacheDir; ++WHERE char *GroupFormat; ++WHERE char *Inews; ++WHERE char *NewsServer; ++WHERE char *NntpUser; ++WHERE char *NntpPass; ++WHERE char *NewsRc; ++#endif + WHERE char *Outbox; + WHERE char *Pager; + WHERE char *PagerFmt; +@@ -188,6 +197,11 @@ extern unsigned char QuadOptions[]; + + WHERE unsigned short Counter INITVAL (0); + ++#ifdef USE_NNTP ++WHERE short NewsPollTimeout; ++WHERE short NntpContext; ++#endif ++ + WHERE short ConnectTimeout; + WHERE short HistSize; + WHERE short MenuContext; +diff -udprP mutt-1.5.20.orig/hash.c mutt-1.5.20/hash.c +--- mutt-1.5.20.orig/hash.c 2009-03-31 09:52:43.000000000 +0300 ++++ mutt-1.5.20/hash.c 2009-06-15 21:19:59.000000000 +0300 +@@ -57,6 +57,7 @@ HASH *hash_create (int nelem, int lower) + if (nelem == 0) + nelem = 2; + table->nelem = nelem; ++ table->curnelem = 0; + table->table = safe_calloc (nelem, sizeof (struct hash_elem *)); + if (lower) + { +@@ -71,6 +72,29 @@ HASH *hash_create (int nelem, int lower) + return table; + } + ++HASH *hash_resize (HASH *ptr, int nelem, int lower) ++{ ++ HASH *table; ++ struct hash_elem *elem, *tmp; ++ int i; ++ ++ table = hash_create (nelem, lower); ++ ++ for (i = 0; i < ptr->nelem; i++) ++ { ++ for (elem = ptr->table[i]; elem; ) ++ { ++ tmp = elem; ++ elem = elem->next; ++ hash_insert (table, tmp->key, tmp->data, 1); ++ FREE (&tmp); ++ } ++ } ++ FREE (&ptr->table); ++ FREE (&ptr); ++ return table; ++} ++ + /* table hash table to update + * key key to hash on + * data data to associate with `key' +@@ -90,6 +114,7 @@ int hash_insert (HASH * table, const cha + { + ptr->next = table->table[h]; + table->table[h] = ptr; ++ table->curnelem++; + } + else + { +@@ -112,6 +137,7 @@ int hash_insert (HASH * table, const cha + else + table->table[h] = ptr; + ptr->next = tmp; ++ table->curnelem++; + } + return h; + } +@@ -142,6 +168,7 @@ void hash_delete_hash (HASH * table, int + if (destroy) + destroy (ptr->data); + FREE (&ptr); ++ table->curnelem--; + + ptr = *last; + } +diff -udprP mutt-1.5.20.orig/hash.h mutt-1.5.20/hash.h +--- mutt-1.5.20.orig/hash.h 2009-03-31 09:52:43.000000000 +0300 ++++ mutt-1.5.20/hash.h 2009-06-15 21:05:24.000000000 +0300 +@@ -28,7 +28,7 @@ struct hash_elem + + typedef struct + { +- int nelem; ++ int nelem, curnelem; + struct hash_elem **table; + unsigned int (*hash_string)(const unsigned char *, unsigned int); + int (*cmp_string)(const char *, const char *); +@@ -41,6 +41,7 @@ HASH; + + HASH *hash_create (int nelem, int lower); + int hash_insert (HASH * table, const char *key, void *data, int allow_dup); ++HASH *hash_resize (HASH * table, int nelem, int lower); + void *hash_find_hash (const HASH * table, int hash, const char *key); + void hash_delete_hash (HASH * table, int hash, const char *key, const void *data, + void (*destroy) (void *)); +diff -udprP mutt-1.5.20.orig/hdrline.c mutt-1.5.20/hdrline.c +--- mutt-1.5.20.orig/hdrline.c 2009-04-13 19:24:55.000000000 +0300 ++++ mutt-1.5.20/hdrline.c 2009-06-15 21:05:24.000000000 +0300 +@@ -211,6 +211,7 @@ int mutt_user_is_recipient (HEADER *h) + * %E = number of messages in current thread + * %f = entire from line + * %F = like %n, unless from self ++ * %g = newsgroup name (if compiled with nntp support) + * %i = message-id + * %l = number of lines in the message + * %L = like %F, except `lists' are displayed first +@@ -219,12 +220,14 @@ int mutt_user_is_recipient (HEADER *h) + * %N = score + * %O = like %L, except using address instead of name + * %P = progress indicator for builtin pager ++ * %R = `x-comment-to:' field (if present and compiled with nntp support) + * %s = subject + * %S = short message status (e.g., N/O/D/!/r/-) + * %t = `to:' field (recipients) + * %T = $to_chars + * %u = user (login) name of author + * %v = first name of author, unless from self ++ * %W = where user is (organization) + * %X = number of MIME attachments + * %y = `x-label:' field (if present) + * %Y = `x-label:' field (if present, tree unfolded, and != parent's x-label) +@@ -457,6 +460,12 @@ hdr_format_str (char *dest, + + break; + ++#ifdef USE_NNTP ++ case 'g': ++ mutt_format_s (dest, destlen, prefix, hdr->env->newsgroups ? hdr->env->newsgroups : ""); ++ break; ++#endif ++ + case 'i': + mutt_format_s (dest, destlen, prefix, hdr->env->message_id ? hdr->env->message_id : ""); + break; +@@ -548,6 +557,15 @@ hdr_format_str (char *dest, + strfcpy(dest, NONULL(hfi->pager_progress), destlen); + break; + ++#ifdef USE_NNTP ++ case 'R': ++ if (!optional) ++ mutt_format_s (dest, destlen, prefix, hdr->env->x_comment_to ? hdr->env->x_comment_to : ""); ++ else if (!hdr->env->x_comment_to) ++ optional = 0; ++ break; ++#endif ++ + case 's': + + if (flags & M_FORMAT_TREE && !hdr->collapsed) +@@ -637,6 +655,13 @@ hdr_format_str (char *dest, + mutt_format_s (dest, destlen, prefix, buf2); + break; + ++ case 'W': ++ if (!optional) ++ mutt_format_s (dest, destlen, prefix, hdr->env->organization ? hdr->env->organization : ""); ++ else if (!hdr->env->organization) ++ optional = 0; ++ break; ++ + case 'Z': + + ch = ' '; +diff -udprP mutt-1.5.20.orig/headers.c mutt-1.5.20/headers.c +--- mutt-1.5.20.orig/headers.c 2009-04-30 08:36:17.000000000 +0300 ++++ mutt-1.5.20/headers.c 2009-06-15 21:17:07.000000000 +0300 +@@ -114,6 +114,9 @@ void mutt_edit_headers (const char *edit + $edit_headers set, we remove References: as they're likely invalid; + we can simply compare strings as we don't generate References for + multiple Message-Ids in IRT anyways */ ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif + if (!n->in_reply_to || (msg->env->in_reply_to && + mutt_strcmp (n->in_reply_to->data, + msg->env->in_reply_to->data) != 0)) +diff -udprP mutt-1.5.20.orig/init.c mutt-1.5.20/init.c +--- mutt-1.5.20.orig/init.c 2009-06-01 19:29:32.000000000 +0300 ++++ mutt-1.5.20/init.c 2009-06-15 21:05:24.000000000 +0300 +@@ -2966,6 +2966,28 @@ void mutt_init (int skip_sys_rc, LIST *c + else + Fqdn = safe_strdup(NONULL(Hostname)); + ++#ifdef USE_NNTP ++ { ++ FILE *f; ++ char *i; ++ ++ if ((f = safe_fopen (SYSCONFDIR "/nntpserver", "r"))) ++ { ++ buffer[0] = '\0'; ++ fgets (buffer, sizeof (buffer), f); ++ p = &buffer; ++ SKIPWS (p); ++ i = p; ++ while (*i && (*i != ' ') && (*i != '\t') && (*i != '\r') && (*i != '\n')) i++; ++ *i = '\0'; ++ NewsServer = safe_strdup (p); ++ fclose (f); ++ } ++ } ++ if ((p = getenv ("NNTPSERVER"))) ++ NewsServer = safe_strdup (p); ++#endif ++ + if ((p = getenv ("MAIL"))) + Spoolfile = safe_strdup (p); + else if ((p = getenv ("MAILDIR"))) +diff -udprP mutt-1.5.20.orig/init.h mutt-1.5.20/init.h +--- mutt-1.5.20.orig/init.h 2009-06-14 00:35:21.000000000 +0300 ++++ mutt-1.5.20/init.h 2009-06-15 21:15:03.000000000 +0300 +@@ -176,6 +176,20 @@ struct option_t MuttVars[] = { + ** If \fIset\fP, Mutt will prompt you for carbon-copy (Cc) recipients before + ** editing the body of an outgoing message. + */ ++#ifdef USE_NNTP ++ { "ask_follow_up", DT_BOOL, R_NONE, OPTASKFOLLOWUP, 0 }, ++ /* ++ ** .pp ++ ** If set, Mutt will prompt you for follow-up groups before editing ++ ** the body of an outgoing message. ++ */ ++ { "ask_x_comment_to", DT_BOOL, R_NONE, OPTASKXCOMMENTTO, 0 }, ++ /* ++ ** .pp ++ ** If set, Mutt will prompt you for x-comment-to field before editing ++ ** the body of an outgoing message. ++ */ ++#endif + { "assumed_charset", DT_STR, R_NONE, UL &AssumedCharset, UL 0}, + /* + ** .pp +@@ -322,6 +336,14 @@ struct option_t MuttVars[] = { + ** follow these menus. The option is \fIunset\fP by default because many + ** visual terminals don't permit making the cursor invisible. + */ ++#ifdef USE_NNTP ++ { "catchup_newsgroup", DT_QUAD, R_NONE, OPT_CATCHUP, M_ASKYES }, ++ /* ++ ** .pp ++ ** If this variable is \fIset\fP, Mutt will mark all articles in newsgroup ++ ** as read when you quit the newsgroup (catchup newsgroup). ++ */ ++#endif + #if defined(USE_SSL) + { "certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" }, + /* +@@ -797,6 +819,16 @@ struct option_t MuttVars[] = { + ** sent to both the list and your address, resulting in two copies + ** of the same email for you. + */ ++#ifdef USE_NNTP ++ { "followup_to_poster", DT_QUAD, R_NONE, OPT_FOLLOWUPTOPOSTER, M_ASKYES }, ++ /* ++ ** .pp ++ ** If this variable is \fIset\fP and the keyword "poster" is present in ++ ** \fIFollowup-To\fP header, follow-up to newsgroup function is not ++ ** permitted. The message will be mailed to the submitter of the ++ ** message via mail. ++ */ ++#endif + { "force_name", DT_BOOL, R_NONE, OPTFORCENAME, 0 }, + /* + ** .pp +@@ -879,6 +911,27 @@ struct option_t MuttVars[] = { + ** a regular expression that will match the whole name so mutt will expand + ** ``Franklin'' to ``Franklin, Steve''. + */ ++#ifdef USE_NNTP ++ { "group_index_format", DT_STR, R_BOTH, UL &GroupFormat, UL "%4C %M%N %5s %-45.45f %d" }, ++ /* ++ ** .pp ++ ** This variable allows you to customize the newsgroup browser display to ++ ** your personal taste. This string is similar to ``$index_format'', but ++ ** has its own set of printf()-like sequences: ++ ** .pp ++ ** .ts ++ ** %C current newsgroup number ++ ** %d description of newsgroup (becomes from server) ++ ** %f newsgroup name ++ ** %M - if newsgroup not allowed for direct post (moderated for example) ++ ** %N N if newsgroup is new, u if unsubscribed, blank otherwise ++ ** %n number of new articles in newsgroup ++ ** %s number of unread articles in newsgroup ++ ** %>X right justify the rest of the string and pad with character "X" ++ ** %|X pad to the end of the line with character "X" ++ ** .te ++ */ ++#endif + { "hdr_format", DT_SYN, R_NONE, UL "index_format", 0 }, + /* + */ +@@ -1255,6 +1308,7 @@ struct option_t MuttVars[] = { + ** .dt %E .dd number of messages in current thread + ** .dt %f .dd sender (address + real name), either From: or Return-Path: + ** .dt %F .dd author name, or recipient name if the message is from you ++ ** .dt %g .dd newsgroup name (if compiled with nntp support) + ** .dt %H .dd spam attribute(s) of this message + ** .dt %i .dd message-id of the current message + ** .dt %l .dd number of lines in the message (does not work with maildir, +@@ -1270,12 +1324,14 @@ struct option_t MuttVars[] = { + ** stashed the message: list name or recipient name + ** if not sent to a list + ** .dt %P .dd progress indicator for the builtin pager (how much of the file has been displayed) ++ ** .dt %R .dd `x-comment-to:' field (if present and compiled with nntp support) + ** .dt %s .dd subject of the message + ** .dt %S .dd status of the message (``N''/``D''/``d''/``!''/``r''/\(as) + ** .dt %t .dd ``To:'' field (recipients) + ** .dt %T .dd the appropriate character from the $$to_chars string + ** .dt %u .dd user (login) name of the author + ** .dt %v .dd first name of the author, or the recipient if the message is from you ++ ** .dt %W .dd name of organization of author (`organization:' field) + ** .dt %X .dd number of attachments + ** (please see the ``$attachments'' section for possible speed effects) + ** .dt %y .dd ``X-Label:'' field, if present +@@ -1310,6 +1366,21 @@ struct option_t MuttVars[] = { + ** Note that these expandos are supported in + ** ``$save-hook'', ``$fcc-hook'' and ``$fcc-save-hook'', too. + */ ++#ifdef USE_NNTP ++ { "inews", DT_PATH, R_NONE, UL &Inews, UL "" }, ++ /* ++ ** .pp ++ ** If set, specifies the program and arguments used to deliver news posted ++ ** by Mutt. Otherwise, mutt posts article using current connection to ++ ** news server. The following printf-style sequence is understood: ++ ** .pp ++ ** .ts ++ ** %s newsserver name ++ ** .te ++ ** .pp ++ ** Example: set inews="/usr/local/bin/inews -hS" ++ */ ++#endif + { "ispell", DT_PATH, R_NONE, UL &Ispell, UL ISPELL }, + /* + ** .pp +@@ -1533,6 +1604,15 @@ struct option_t MuttVars[] = { + ** menu, attachments which cannot be decoded in a reasonable manner will + ** be attached to the newly composed message if this option is \fIset\fP. + */ ++#ifdef USE_NNTP ++ { "mime_subject", DT_BOOL, R_NONE, OPTMIMESUBJECT, 1 }, ++ /* ++ ** .pp ++ ** If \fIunset\fP, 8-bit ``subject:'' line in article header will not be ++ ** encoded according to RFC2047 to base64. This is useful when message ++ ** is Usenet article, because MIME for news is nonstandard feature. ++ */ ++#endif + #ifdef MIXMASTER + { "mix_entry_format", DT_STR, R_NONE, UL &MixEntryFormat, UL "%4n %c %-16s %a" }, + /* +@@ -1580,6 +1660,77 @@ struct option_t MuttVars[] = { + ** See also $$read_inc, $$write_inc and $$net_inc. + */ + #endif ++#ifdef USE_NNTP ++ { "news_cache_dir", DT_PATH, R_NONE, UL &NewsCacheDir, UL "~/.mutt" }, ++ /* ++ ** .pp ++ ** This variable pointing to directory where Mutt will save cached news ++ ** articles headers in. If \fIunset\fP, headers will not be saved at all ++ ** and will be reloaded each time when you enter to newsgroup. ++ */ ++ { "news_server", DT_STR, R_NONE, UL &NewsServer, 0 }, ++ /* ++ ** .pp ++ ** This variable specifies domain name or address of NNTP server. It ++ ** defaults to the newsserver specified in the environment variable ++ ** $$$NNTPSERVER or contained in the file /etc/nntpserver. You can also ++ ** specify username and an alternative port for each newsserver, ie: ++ ** .pp ++ ** [news[s]://][username[:password]@]newsserver[:port] ++ */ ++ { "newsrc", DT_PATH, R_NONE, UL &NewsRc, UL "~/.newsrc" }, ++ /* ++ ** .pp ++ ** The file, containing info about subscribed newsgroups - names and ++ ** indexes of read articles. The following printf-style sequence ++ ** is understood: ++ ** .pp ++ ** .ts ++ ** %s newsserver name ++ ** .te ++ */ ++ { "nntp_context", DT_NUM, R_NONE, UL &NntpContext, 1000 }, ++ /* ++ ** .pp ++ ** This variable defines number of articles which will be in index when ++ ** newsgroup entered. If active newsgroup have more articles than this ++ ** number, oldest articles will be ignored. Also controls how many ++ ** articles headers will be saved in cache when you quit newsgroup. ++ */ ++ { "nntp_load_description", DT_BOOL, R_NONE, OPTLOADDESC, 1 }, ++ /* ++ ** .pp ++ ** This variable controls whether or not descriptions for each newsgroup ++ ** must be loaded when newsgroup is added to list (first time list ++ ** loading or new newsgroup adding). ++ */ ++ { "nntp_user", DT_STR, R_NONE, UL &NntpUser, UL "" }, ++ /* ++ ** .pp ++ ** Your login name on the NNTP server. If \fIunset\fP and NNTP server requires ++ ** authentification, Mutt will prompt you for your account name when you ++ ** connect to newsserver. ++ */ ++ { "nntp_pass", DT_STR, R_NONE, UL &NntpPass, UL "" }, ++ /* ++ ** .pp ++ ** Your password for NNTP account. ++ */ ++ { "nntp_poll", DT_NUM, R_NONE, UL &NewsPollTimeout, 60 }, ++ /* ++ ** .pp ++ ** The time in seconds until any operations on newsgroup except post new ++ ** article will cause recheck for new news. If set to 0, Mutt will ++ ** recheck newsgroup on each operation in index (stepping, read article, ++ ** etc.). ++ */ ++ { "nntp_reconnect", DT_QUAD, R_NONE, OPT_NNTPRECONNECT, M_ASKYES }, ++ /* ++ ** .pp ++ ** Controls whether or not Mutt will try to reconnect to newsserver when ++ ** connection lost. ++ */ ++#endif + { "pager", DT_PATH, R_NONE, UL &Pager, UL "builtin" }, + /* + ** .pp +@@ -2079,6 +2230,16 @@ struct option_t MuttVars[] = { + { "post_indent_str", DT_SYN, R_NONE, UL "post_indent_string", 0 }, + /* + */ ++#ifdef USE_NNTP ++ { "post_moderated", DT_QUAD, R_NONE, OPT_TOMODERATED, M_ASKYES }, ++ /* ++ ** .pp ++ ** If set to \fIyes\fP, Mutt will post article to newsgroup that have ++ ** not permissions to posting (e.g. moderated). \fBNote:\fP if newsserver ++ ** does not support posting to that newsgroup or totally read-only, that ++ ** posting will not have an effect. ++ */ ++#endif + { "postpone", DT_QUAD, R_NONE, OPT_POSTPONE, M_ASKYES }, + /* + ** .pp +@@ -2479,6 +2640,28 @@ struct option_t MuttVars[] = { + ** Command to use when spawning a subshell. By default, the user's login + ** shell from \fC/etc/passwd\fP is used. + */ ++#ifdef USE_NNTP ++ { "save_unsubscribed",DT_BOOL, R_NONE, OPTSAVEUNSUB, 0 }, ++ /* ++ ** .pp ++ ** When \fIset\fP, info about unsubscribed newsgroups will be saved into ++ ** ``newsrc'' file and into cache. ++ */ ++ { "show_new_news", DT_BOOL, R_NONE, OPTSHOWNEWNEWS, 1 }, ++ /* ++ ** .pp ++ ** If \fIset\fP, newsserver will be asked for new newsgroups on entering ++ ** the browser. Otherwise, it will be done only once for a newsserver. ++ ** Also controls whether or not number of new articles of subscribed ++ ** newsgroups will be then checked. ++ */ ++ { "show_only_unread", DT_BOOL, R_NONE, OPTSHOWONLYUNREAD, 0 }, ++ /* ++ ** .pp ++ ** If \fIset\fP, only subscribed newsgroups that contain unread articles ++ ** will be displayed in browser. ++ */ ++#endif + { "sig_dashes", DT_BOOL, R_NONE, OPTSIGDASHES, 1 }, + /* + ** .pp +@@ -3337,6 +3520,14 @@ struct option_t MuttVars[] = { + ** Also see the $$read_inc, $$net_inc and $$time_inc variables and the + ** ``$tuning'' section of the manual for performance considerations. + */ ++#ifdef USE_NNTP ++ { "x_comment_to", DT_BOOL, R_NONE, OPTXCOMMENTTO, 0 }, ++ /* ++ ** .pp ++ ** If \fIset\fP, Mutt will add ``X-Comment-To:'' field (that contains full ++ ** name of original article author) to article that followuped to newsgroup. ++ */ ++#endif + /*--*/ + { NULL, 0, 0, 0, 0 } + }; +diff -udprP mutt-1.5.20.orig/keymap.c mutt-1.5.20/keymap.c +--- mutt-1.5.20.orig/keymap.c 2008-11-29 23:09:10.000000000 +0200 ++++ mutt-1.5.20/keymap.c 2009-06-15 21:05:24.000000000 +0300 +@@ -654,7 +654,6 @@ void km_init (void) + km_bindkey ("", MENU_MAIN, OP_DISPLAY_MESSAGE); + + km_bindkey ("x", MENU_PAGER, OP_EXIT); +- km_bindkey ("i", MENU_PAGER, OP_EXIT); + km_bindkey ("", MENU_PAGER, OP_PREV_LINE); + km_bindkey ("", MENU_PAGER, OP_NEXT_PAGE); + km_bindkey ("", MENU_PAGER, OP_PREV_PAGE); +diff -udprP mutt-1.5.20.orig/mailbox.h mutt-1.5.20/mailbox.h +--- mutt-1.5.20.orig/mailbox.h 2009-04-30 08:36:17.000000000 +0300 ++++ mutt-1.5.20/mailbox.h 2009-06-15 21:05:24.000000000 +0300 +@@ -74,6 +74,9 @@ int mx_is_imap (const char *); + #ifdef USE_POP + int mx_is_pop (const char *); + #endif ++#ifdef USE_NNTP ++int mx_is_nntp (const char *); ++#endif + + int mx_access (const char*, int); + int mx_check_empty (const char *); +diff -udprP mutt-1.5.20.orig/main.c mutt-1.5.20/main.c +--- mutt-1.5.20.orig/main.c 2009-06-01 19:29:32.000000000 +0300 ++++ mutt-1.5.20/main.c 2009-06-15 21:05:24.000000000 +0300 +@@ -60,6 +60,10 @@ + #include + #endif + ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif ++ + static const char *ReachingUs = N_("\ + To contact the developers, please mail to .\n\ + To report a bug, please visit http://bugs.mutt.org/.\n"); +@@ -133,6 +137,8 @@ options:\n\ + " -e \tspecify a command to be executed after initialization\n\ + -f \tspecify which mailbox to read\n\ + -F \tspecify an alternate muttrc file\n\ ++ -g \tspecify a newsserver (if compiled with NNTP)\n\ ++ -G\t\tselect a newsgroup (if compiled with NNTP)\n\ + -H \tspecify a draft file to read header and body from\n\ + -i \tspecify a file which Mutt should include in the body\n\ + -m \tspecify a default mailbox type\n\ +@@ -255,6 +261,12 @@ static void show_version (void) + "-USE_POP " + #endif + ++#ifdef USE_NNTP ++ "+USE_NNTP " ++#else ++ "-USE_NNTP " ++#endif ++ + #ifdef USE_IMAP + "+USE_IMAP " + #else +@@ -522,6 +534,9 @@ static void start_curses (void) + #define M_NOSYSRC (1<<2) /* -n */ + #define M_RO (1<<3) /* -R */ + #define M_SELECT (1<<4) /* -y */ ++#ifdef USE_NNTP ++#define M_NEWS (1<<5) /* -g and -G */ ++#endif + + int main (int argc, char **argv) + { +@@ -594,7 +609,11 @@ int main (int argc, char **argv) + argv[nargc++] = argv[optind]; + } + ++#ifdef USE_NNTP ++ if ((i = getopt (argc, argv, "+A:a:b:F:f:c:Dd:e:g:GH:s:i:hm:npQ:RvxyzZ")) != EOF) ++#else + if ((i = getopt (argc, argv, "+A:a:b:F:f:c:Dd:e:H:s:i:hm:npQ:RvxyzZ")) != EOF) ++#endif + switch (i) + { + case 'A': +@@ -691,6 +710,20 @@ int main (int argc, char **argv) + flags |= M_SELECT; + break; + ++#ifdef USE_NNTP ++ case 'g': /* Specify a newsserver */ ++ { ++ char buf[LONG_STRING]; ++ ++ snprintf (buf, sizeof (buf), "set news_server=%s", optarg); ++ commands = mutt_add_list (commands, buf); ++ } ++ ++ case 'G': /* List of newsgroups */ ++ flags |= M_SELECT | M_NEWS; ++ break; ++#endif ++ + case 'z': + flags |= M_IGNORE; + break; +@@ -978,6 +1011,18 @@ int main (int argc, char **argv) + } + else if (flags & M_SELECT) + { ++#ifdef USE_NNTP ++ if (flags & M_NEWS) ++ { ++ set_option (OPTNEWS); ++ if(!(CurrentNewsSrv = mutt_select_newsserver (NewsServer))) ++ { ++ mutt_endwin (Errorbuf); ++ exit (1); ++ } ++ } ++ else ++#endif + if (!Incoming) { + mutt_endwin _("No incoming mailboxes defined."); + exit (1); +@@ -993,6 +1038,15 @@ int main (int argc, char **argv) + + if (!folder[0]) + strfcpy (folder, NONULL(Spoolfile), sizeof (folder)); ++ ++#ifdef USE_NNTP ++ if (option (OPTNEWS)) ++ { ++ unset_option (OPTNEWS); ++ nntp_expand_path (folder, sizeof (folder), &CurrentNewsSrv->conn->account); ++ } ++ else ++#endif + mutt_expand_path (folder, sizeof (folder)); + + mutt_str_replace (&CurrentFolder, folder); +diff -udprP mutt-1.5.20.orig/mutt.h mutt-1.5.20/mutt.h +--- mutt-1.5.20.orig/mutt.h 2009-06-13 01:15:42.000000000 +0300 ++++ mutt-1.5.20/mutt.h 2009-06-15 21:05:24.000000000 +0300 +@@ -229,6 +229,9 @@ enum + M_PGP_KEY, + M_XLABEL, + M_MIMEATTACH, ++#ifdef USE_NNTP ++ M_NEWSGROUPS, ++#endif + + /* Options for Mailcap lookup */ + M_EDIT, +@@ -285,6 +288,12 @@ enum + #endif + OPT_SUBJECT, + OPT_VERIFYSIG, /* verify PGP signatures */ ++#ifdef USE_NNTP ++ OPT_TOMODERATED, ++ OPT_NNTPRECONNECT, ++ OPT_CATCHUP, ++ OPT_FOLLOWUPTOPOSTER, ++#endif /* USE_NNTP */ + + /* THIS MUST BE THE LAST VALUE. */ + OPT_MAX +@@ -300,6 +309,7 @@ enum + #define SENDMAILX (1<<6) + #define SENDKEY (1<<7) + #define SENDRESEND (1<<8) ++#define SENDNEWS (1<<9) + + /* flags to _mutt_select_file() */ + #define M_SEL_BUFFY (1<<0) +@@ -319,6 +329,8 @@ enum + OPTASCIICHARS, + OPTASKBCC, + OPTASKCC, ++ OPTASKFOLLOWUP, ++ OPTASKXCOMMENTTO, + OPTATTACHSPLIT, + OPTAUTOEDIT, + OPTAUTOTAG, +@@ -396,6 +408,9 @@ enum + OPTMETOO, + OPTMHPURGE, + OPTMIMEFORWDECODE, ++#ifdef USE_NNTP ++ OPTMIMESUBJECT, /* encode subject line with RFC2047 */ ++#endif + OPTNARROWTREE, + OPTPAGERSTOP, + OPTPIPEDECODE, +@@ -477,6 +492,16 @@ enum + OPTPGPAUTOINLINE, + OPTPGPREPLYINLINE, + ++ /* news options */ ++ ++#ifdef USE_NNTP ++ OPTSHOWNEWNEWS, ++ OPTSHOWONLYUNREAD, ++ OPTSAVEUNSUB, ++ OPTLOADDESC, ++ OPTXCOMMENTTO, ++#endif /* USE_NNTP */ ++ + /* pseudo options */ + + OPTAUXSORT, /* (pseudo) using auxillary sort function */ +@@ -497,6 +522,7 @@ enum + OPTSORTSUBTHREADS, /* (pseudo) used when $sort_aux changes */ + OPTNEEDRESCORE, /* (pseudo) set when the `score' command is used */ + OPTATTACHMSG, /* (pseudo) used by attach-message */ ++ OPTHIDEREAD, /* (pseudo) whether or not hide read messages */ + OPTKEEPQUIET, /* (pseudo) shut up the message and refresh + * functions while we are executing an + * external program. +@@ -507,6 +533,12 @@ enum + OPTDONTHANDLEPGPKEYS, /* (pseudo) used to extract PGP keys */ + OPTUNBUFFEREDINPUT, /* (pseudo) don't use key buffer */ + ++#ifdef USE_NNTP ++ OPTNEWS, /* (pseudo) used to change reader mode */ ++ OPTNEWSSEND, /* (pseudo) used to change behavior when posting */ ++ OPTNEWSCACHE, /* (pseudo) used to indicate if news cache exist */ ++#endif ++ + OPTMAX + }; + +@@ -585,6 +617,13 @@ typedef struct envelope + char *supersedes; + char *date; + char *x_label; ++ char *organization; ++#ifdef USE_NNTP ++ char *newsgroups; ++ char *xref; ++ char *followup_to; ++ char *x_comment_to; ++#endif + BUFFER *spam; + LIST *references; /* message references (in reverse order) */ + LIST *in_reply_to; /* in-reply-to header content */ +@@ -751,6 +790,9 @@ typedef struct header + ENVELOPE *env; /* envelope information */ + BODY *content; /* list of MIME parts */ + char *path; ++#ifdef USE_NNTP ++ int article_num; ++#endif + + char *tree; /* character string to print thread tree */ + struct thread *thread; +@@ -766,7 +808,7 @@ typedef struct header + int refno; /* message number on server */ + #endif + +-#if defined USE_POP || defined USE_IMAP ++#if defined USE_POP || defined USE_IMAP || defined USE_NNTP + void *data; /* driver-specific data */ + #endif + +diff -udprP mutt-1.5.20.orig/muttlib.c mutt-1.5.20/muttlib.c +--- mutt-1.5.20.orig/muttlib.c 2009-05-19 03:11:35.000000000 +0300 ++++ mutt-1.5.20/muttlib.c 2009-06-15 21:05:24.000000000 +0300 +@@ -301,7 +301,7 @@ void mutt_free_header (HEADER **h) + #ifdef MIXMASTER + mutt_free_list (&(*h)->chain); + #endif +-#if defined USE_POP || defined USE_IMAP ++#if defined USE_POP || defined USE_IMAP || defined USE_NNTP + FREE (&(*h)->data); + #endif + FREE (h); /* __FREE_CHECKED__ */ +@@ -689,6 +689,13 @@ void mutt_free_envelope (ENVELOPE **p) + FREE (&(*p)->supersedes); + FREE (&(*p)->date); + FREE (&(*p)->x_label); ++ FREE (&(*p)->organization); ++#ifdef USE_NNTP ++ FREE (&(*p)->newsgroups); ++ FREE (&(*p)->xref); ++ FREE (&(*p)->followup_to); ++ FREE (&(*p)->x_comment_to); ++#endif + + mutt_buffer_free (&(*p)->spam); + +@@ -1470,6 +1477,14 @@ int mutt_save_confirm (const char *s, st + } + } + ++#ifdef USE_NNTP ++ if (magic == M_NNTP) ++ { ++ mutt_error _("Can't save message to newsserver."); ++ return 0; ++ } ++#endif ++ + if (stat (s, st) != -1) + { + if (magic == -1) +diff -udprP mutt-1.5.20.orig/mx.c mutt-1.5.20/mx.c +--- mutt-1.5.20.orig/mx.c 2009-06-11 07:29:41.000000000 +0300 ++++ mutt-1.5.20/mx.c 2009-06-15 21:05:24.000000000 +0300 +@@ -343,6 +343,22 @@ int mx_is_pop (const char *p) + } + #endif + ++#ifdef USE_NNTP ++int mx_is_nntp (const char *p) ++{ ++ url_scheme_t scheme; ++ ++ if (!p) ++ return 0; ++ ++ scheme = url_check_scheme (p); ++ if (scheme == U_NNTP || scheme == U_NNTPS) ++ return 1; ++ ++ return 0; ++} ++#endif ++ + int mx_get_magic (const char *path) + { + struct stat st; +@@ -360,6 +376,11 @@ int mx_get_magic (const char *path) + return M_POP; + #endif /* USE_POP */ + ++#ifdef USE_NNTP ++ if (mx_is_nntp (path)) ++ return M_NNTP; ++#endif /* USE_NNTP */ ++ + if (stat (path, &st) == -1) + { + dprint (1, (debugfile, "mx_get_magic(): unable to stat %s: %s (errno %d).\n", +@@ -669,6 +690,12 @@ CONTEXT *mx_open_mailbox (const char *pa + break; + #endif /* USE_POP */ + ++#ifdef USE_NNTP ++ case M_NNTP: ++ rc = nntp_open_mailbox (ctx); ++ break; ++#endif /* USE_NNTP */ ++ + default: + rc = -1; + break; +@@ -761,6 +788,12 @@ static int sync_mailbox (CONTEXT *ctx, i + rc = pop_sync_mailbox (ctx, index_hint); + break; + #endif /* USE_POP */ ++ ++#ifdef USE_NNTP ++ case M_NNTP: ++ rc = nntp_sync_mailbox (ctx); ++ break; ++#endif /* USE_NNTP */ + } + + #if 0 +@@ -787,6 +820,16 @@ int mx_close_mailbox (CONTEXT *ctx, int + + ctx->closing = 1; + ++#ifdef USE_NNTP ++ if (ctx->magic == M_NNTP) ++ { ++ int ret; ++ ++ ret = nntp_close_mailbox (ctx); ++ mx_fastclose_mailbox (ctx); ++ return ret; ++ } ++#endif + if (ctx->readonly || ctx->dontwrite) + { + /* mailbox is readonly or we don't want to write */ +@@ -1336,6 +1379,11 @@ int mx_check_mailbox (CONTEXT *ctx, int + case M_POP: + return (pop_check_mailbox (ctx, index_hint)); + #endif /* USE_POP */ ++ ++#ifdef USE_NNTP ++ case M_NNTP: ++ return (nntp_check_mailbox (ctx)); ++#endif /* USE_NNTP */ + } + } + +@@ -1396,6 +1444,15 @@ MESSAGE *mx_open_message (CONTEXT *ctx, + } + #endif /* USE_POP */ + ++#ifdef USE_NNTP ++ case M_NNTP: ++ { ++ if (nntp_fetch_message (msg, ctx, msgno) != 0) ++ FREE (&msg); ++ break; ++ } ++#endif /* USE_NNTP */ ++ + default: + dprint (1, (debugfile, "mx_open_message(): function not implemented for mailbox type %d.\n", ctx->magic)); + FREE (&msg); +@@ -1477,6 +1534,9 @@ int mx_close_message (MESSAGE **msg) + #ifdef USE_POP + || (*msg)->magic == M_POP + #endif ++#ifdef USE_NNTP ++ || (*msg)->magic == M_NNTP ++#endif + ) + { + r = safe_fclose (&(*msg)->fp); +diff -udprP mutt-1.5.20.orig/mx.h mutt-1.5.20/mx.h +--- mutt-1.5.20.orig/mx.h 2008-11-11 21:55:47.000000000 +0200 ++++ mutt-1.5.20/mx.h 2009-06-15 21:05:24.000000000 +0300 +@@ -40,6 +40,9 @@ enum + #ifdef USE_POP + , M_POP + #endif ++#ifdef USE_NNTP ++ , M_NNTP ++#endif + }; + + WHERE short DefaultMagic INITVAL (M_MBOX); +diff -udprP mutt-1.5.20.orig/newsrc.c mutt-1.5.20/newsrc.c +--- mutt-1.5.20.orig/newsrc.c 1970-01-01 03:00:00.000000000 +0300 ++++ mutt-1.5.20/newsrc.c 2009-06-15 21:05:24.000000000 +0300 +@@ -0,0 +1,1170 @@ ++/* ++ * Copyright (C) 1998 Brandon Long ++ * Copyright (C) 1999 Andrej Gritsenko ++ * Copyright (C) 2000-2009 Vsevolod Volkov ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "mutt.h" ++#include "mutt_curses.h" ++#include "sort.h" ++#include "mx.h" ++#include "mime.h" ++#include "mailbox.h" ++#include "nntp.h" ++#include "rfc822.h" ++#include "rfc1524.h" ++#include "rfc2047.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++void nntp_add_to_list (NNTP_SERVER *s, NNTP_DATA *d) ++{ ++ LIST *l; ++ ++ if (!s || !d) ++ return; ++ ++ l = safe_calloc (1, sizeof (LIST)); ++ if (s->list) ++ s->tail->next = l; ++ else ++ s->list = l; ++ s->tail = l; ++ l->data = (void *) d; ++} ++ ++static int nntp_parse_newsrc_line (NNTP_SERVER *news, char *line) ++{ ++ NNTP_DATA *data; ++ char group[LONG_STRING]; ++ int x = 1; ++ char *p = line, *b, *h; ++ size_t len; ++ ++ while (*p) ++ { ++ if (*p++ == ',') ++ x++; ++ } ++ ++ p = line; ++ while (*p && (*p != ':' && *p != '!')) p++; ++ if (!*p) ++ return -1; ++ len = p + 1 - line; ++ if (len > sizeof (group)) ++ len = sizeof (group); ++ strfcpy (group, line, len); ++ if ((data = (NNTP_DATA *)hash_find (news->newsgroups, group)) == NULL) ++ { ++ data = (NNTP_DATA *) safe_calloc (1, sizeof (NNTP_DATA) + strlen (group) + 1); ++ data->group = (char *) data + sizeof (NNTP_DATA); ++ strcpy (data->group, group); ++ data->nserv = news; ++ data->deleted = 1; ++ if (news->newsgroups->nelem < news->newsgroups->curnelem * 2) ++ news->newsgroups = hash_resize (news->newsgroups, news->newsgroups->nelem * 2, 0); ++ hash_insert (news->newsgroups, data->group, data, 0); ++ nntp_add_to_list (news, data); ++ } ++ else ++ FREE ((void **) &data->entries); ++ ++ data->rc = 1; ++ data->entries = safe_calloc (x*2, sizeof (NEWSRC_ENTRY)); ++ data->max = x*2; ++ ++ if (*p == ':') ++ data->subscribed = 1; ++ else ++ data->subscribed = 0; ++ ++ p++; ++ b = p; ++ x = 0; ++ while (*b) ++ { ++ while (*p && *p != ',' && *p != '\n') p++; ++ if (*p) ++ { ++ *p = '\0'; ++ p++; ++ } ++ if ((h = strchr(b, '-'))) ++ { ++ *h = '\0'; ++ h++; ++ data->entries[x].first = atoi(b); ++ data->entries[x].last = atoi(h); ++ } ++ else ++ { ++ data->entries[x].first = atoi(b); ++ data->entries[x].last = data->entries[x].first; ++ } ++ b = p; ++ if (data->entries[x].last != 0) ++ x++; ++ } ++ if (x && !data->lastMessage) ++ data->lastMessage = data->entries[x-1].last; ++ data->num = x; ++ mutt_newsgroup_stat (data); ++ dprint (2, (debugfile, "parse_line: Newsgroup %s\n", data->group)); ++ ++ return 0; ++} ++ ++static int slurp_newsrc (NNTP_SERVER *news) ++{ ++ FILE *fp; ++ char *buf; ++ struct stat sb; ++ ++ news->stat = stat (news->newsrc, &sb); ++ news->size = sb.st_size; ++ news->mtime = sb.st_mtime; ++ ++ if ((fp = safe_fopen (news->newsrc, "r")) == NULL) ++ return -1; ++ /* hmm, should we use dotlock? */ ++ if (mx_lock_file (news->newsrc, fileno (fp), 0, 0, 1)) ++ { ++ fclose (fp); ++ return -1; ++ } ++ ++ buf = safe_malloc (sb.st_size + 1); ++ while (sb.st_size && fgets (buf, sb.st_size + 1, fp)) ++ nntp_parse_newsrc_line (news, buf); ++ FREE (&buf); ++ ++ mx_unlock_file (news->newsrc, fileno (fp), 0); ++ fclose (fp); ++ return 0; ++} ++ ++void nntp_cache_expand (char *dst, const char *src) ++{ ++ snprintf (dst, _POSIX_PATH_MAX, "%s/%s", NewsCacheDir, src); ++ mutt_expand_path (dst, _POSIX_PATH_MAX); ++} ++ ++/* Loads $news_cache_dir/.index into memory, loads newsserver data ++ * and newsgroup cache names */ ++static int nntp_parse_cacheindex (NNTP_SERVER *news) ++{ ++ struct stat st; ++ char buf[HUGE_STRING], *cp; ++ char dir[_POSIX_PATH_MAX], file[_POSIX_PATH_MAX]; ++ FILE *index; ++ NNTP_DATA *data; ++ int l, m, t; ++ ++ /* check is server name defined or not */ ++ if (!news || !news->conn || !news->conn->account.host) ++ return -1; ++ unset_option (OPTNEWSCACHE); ++ if (!NewsCacheDir || !*NewsCacheDir) ++ return 0; ++ ++ strfcpy (dir, NewsCacheDir, sizeof (dir)); ++ mutt_expand_path (dir, sizeof(dir)); ++ ++ if (lstat (dir, &st) || (st.st_mode & S_IFDIR) == 0) ++ { ++ snprintf (buf, sizeof(buf), _("Directory %s not exist. Create it?"), dir); ++ if (mutt_yesorno (buf, M_YES) != M_YES || mkdir (dir, (S_IRWXU+S_IRWXG+ ++ S_IRWXO))) ++ { ++ mutt_error _("Cache directory not created!"); ++ return -1; ++ } ++ mutt_clear_error(); ++ } ++ ++ set_option (OPTNEWSCACHE); ++ ++ FREE (&news->cache); ++ snprintf (buf, sizeof(buf), "%s/.index", dir); ++ if (!(index = safe_fopen (buf, "a+"))) ++ return 0; ++ rewind (index); ++ while (fgets (buf, sizeof(buf), index)) ++ { ++ buf[strlen(buf) - 1] = 0; /* strip ending '\n' */ ++ if (!mutt_strncmp (buf, "#: ", 3) && ++ !mutt_strcasecmp (buf+3, news->conn->account.host)) ++ break; ++ } ++ while (fgets (buf, sizeof(buf), index)) ++ { ++ cp = buf; ++ while (*cp && *cp != ' ') cp++; ++ if (!*cp) continue; ++ cp[0] = 0; ++ if (!mutt_strcmp (buf, "#:")) ++ break; ++ sscanf (cp + 1, "%s %d %d", file, &l, &m); ++ if (!mutt_strcmp (buf, "ALL")) ++ { ++ news->cache = safe_strdup (file); ++ news->newgroups_time = m; ++ } ++ else if (news->newsgroups) ++ { ++ if ((data = (NNTP_DATA *)hash_find (news->newsgroups, buf)) == NULL) ++ { ++ data = (NNTP_DATA *) safe_calloc (1, sizeof (NNTP_DATA) + strlen (buf) + 1); ++ data->group = (char *) data + sizeof (NNTP_DATA); ++ strcpy(data->group, buf); ++ data->nserv = news; ++ data->deleted = 1; ++ if (news->newsgroups->nelem < news->newsgroups->curnelem * 2) ++ news->newsgroups = hash_resize (news->newsgroups, news->newsgroups->nelem * 2, 0); ++ hash_insert (news->newsgroups, data->group, data, 0); ++ nntp_add_to_list (news, data); ++ } ++ data->cache = safe_strdup (file); ++ t = 0; ++ if (!data->firstMessage || data->lastMessage < m) ++ t = 1; ++ if (!data->firstMessage) ++ data->firstMessage = l; ++ if (data->lastMessage < m) ++ data->lastMessage = m; ++ data->lastCached = m; ++ if (t || !data->unread) ++ mutt_newsgroup_stat (data); ++ } ++ } ++ fclose (index); ++ return 0; ++} ++ ++const char * ++nntp_format_str (char *dest, size_t destlen, size_t col, char op, const char *src, ++ const char *fmt, const char *ifstring, const char *elsestring, ++ unsigned long data, format_flag flags) ++{ ++ char fn[SHORT_STRING], tmp[SHORT_STRING]; ++ ++ switch (op) ++ { ++ case 's': ++ strncpy (fn, NewsServer, sizeof(fn) - 1); ++ mutt_strlower (fn); ++ snprintf (tmp, sizeof (tmp), "%%%ss", fmt); ++ snprintf (dest, destlen, tmp, fn); ++ break; ++ } ++ return (src); ++} ++ ++/* nntp_parse_url: given an NNPT URL, return host, port, ++ * username, password and newsgroup will recognise. */ ++int nntp_parse_url (const char *server, ACCOUNT *acct, ++ char *group, size_t group_len) ++{ ++ ciss_url_t url; ++ char *c; ++ int ret = -1; ++ ++ /* Defaults */ ++ acct->flags = 0; ++ acct->port = NNTP_PORT; ++ acct->type = M_ACCT_TYPE_NNTP; ++ ++ c = safe_strdup (server); ++ url_parse_ciss (&url, c); ++ ++ if (url.scheme == U_NNTP || url.scheme == U_NNTPS) ++ { ++ if (url.scheme == U_NNTPS) ++ { ++ acct->flags |= M_ACCT_SSL; ++ acct->port = NNTP_SSL_PORT; ++ } ++ ++ *group = '\0'; ++ if (url.path) ++ strfcpy (group, url.path, group_len); ++ ++ ret = mutt_account_fromurl (acct, &url); ++ } ++ ++ FREE (&c); ++ return ret; ++} ++ ++void nntp_expand_path (char *line, size_t len, ACCOUNT *acct) ++{ ++ ciss_url_t url; ++ ++ url.path = safe_strdup (line); ++ mutt_account_tourl (acct, &url); ++ url_ciss_tostring (&url, line, len, 0); ++ FREE (&url.path); ++} ++ ++/* ++ * Automatically loads a newsrc into memory, if necessary. ++ * Checks the size/mtime of a newsrc file, if it doesn't match, load ++ * again. Hmm, if a system has broken mtimes, this might mean the file ++ * is reloaded every time, which we'd have to fix. ++ * ++ * a newsrc file is a line per newsgroup, with the newsgroup, then a ++ * ':' denoting subscribed or '!' denoting unsubscribed, then a ++ * comma separated list of article numbers and ranges. ++ */ ++NNTP_SERVER *mutt_select_newsserver (char *server) ++{ ++ char file[_POSIX_PATH_MAX]; ++ char *buf, *p; ++ LIST *list; ++ ACCOUNT acct; ++ NNTP_SERVER *serv; ++ CONNECTION *conn; ++ ++ if (!server || !*server) ++ { ++ mutt_error _("No newsserver defined!"); ++ return NULL; ++ } ++ ++ buf = p = safe_calloc (strlen (server) + 10, sizeof (char)); ++ if (url_check_scheme (server) == U_UNKNOWN) ++ { ++ strcpy (buf, "news://"); ++ p = strchr (buf, '\0'); ++ } ++ strcpy (p, server); ++ ++ if ((nntp_parse_url (buf, &acct, file, sizeof (file))) < 0 || *file) ++ { ++ FREE (&buf); ++ mutt_error (_("%s is an invalid newsserver specification!"), server); ++ return NULL; ++ } ++ FREE (&buf); ++ ++ conn = mutt_conn_find (NULL, &acct); ++ if (!conn) ++ return NULL; ++ ++ mutt_FormatString (file, sizeof (file), 0, NONULL (NewsRc), nntp_format_str, 0, 0); ++ mutt_expand_path (file, sizeof (file)); ++ ++ serv = (NNTP_SERVER *)conn->data; ++ if (serv) ++ { ++ struct stat sb; ++ ++ /* externally modified? */ ++ if (serv->stat != stat (file, &sb) || (!serv->stat && ++ (serv->size != sb.st_size || serv->mtime != sb.st_mtime))) ++ { ++ for (list = serv->list; list; list = list->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *) list->data; ++ ++ if (data) ++ { ++ data->subscribed = 0; ++ data->rc = 0; ++ data->num = 0; ++ } ++ } ++ slurp_newsrc (serv); ++ nntp_clear_cacheindex (serv); ++ } ++ ++ if (serv->status == NNTP_BYE) ++ serv->status = NNTP_NONE; ++ nntp_check_newgroups (serv, 0); ++ return serv; ++ } ++ ++ /* New newsserver */ ++ serv = safe_calloc (1, sizeof (NNTP_SERVER)); ++ serv->conn = conn; ++ serv->newsrc = safe_strdup (file); ++ serv->newsgroups = hash_create (1009, 0); ++ slurp_newsrc (serv); /* load .newsrc */ ++ nntp_parse_cacheindex (serv); /* load .index */ ++ if (option (OPTNEWSCACHE) && serv->cache && nntp_get_cache_all (serv) >= 0) ++ nntp_check_newgroups (serv, 1); ++ else if (nntp_get_active (serv) < 0) ++ { ++ hash_destroy (&serv->newsgroups, nntp_delete_data); ++ for (list = serv->list; list; list = list->next) ++ list->data = NULL; ++ mutt_free_list (&serv->list); ++ FREE (&serv->newsrc); ++ FREE (&serv->cache); ++ FREE (&serv); ++ return NULL; ++ } ++ nntp_clear_cacheindex (serv); ++ conn->data = (void *)serv; ++ ++ return serv; ++} ++ ++/* ++ * full status flags are not supported by nntp, but we can fake some ++ * of them. This is how: ++ * Read = a read message number is in the .newsrc ++ * New = a message is new since we last read this newsgroup ++ * Old = anything else ++ * So, Read is marked as such in the newsrc, old is anything that is ++ * "skipped" in the newsrc, and new is anything not in the newsrc nor ++ * in the cache. By skipped, I mean before the last unread message ++ */ ++void nntp_get_status (CONTEXT *ctx, HEADER *h, char *group, int article) ++{ ++ NNTP_DATA *data = (NNTP_DATA *) ctx->data; ++ int x; ++ ++ if (group) ++ data = (NNTP_DATA *) hash_find (data->nserv->newsgroups, group); ++ ++ if (!data) ++ { ++#ifdef DEBUG ++ if (group) ++ dprint (3, (debugfile, "newsgroup %s not found\n", group)); ++#endif ++ return; ++ } ++ ++ for (x = 0; x < data->num; x++) ++ { ++ if ((article >= data->entries[x].first) && ++ (article <= data->entries[x].last)) ++ { ++ /* we cannot use mutt_set_flag() because mx_update_context() ++ didn't called yet */ ++ h->read = 1; ++ return; ++ } ++ } ++ /* If article was not cached yet, it is new! :) */ ++ if (!data->cache || article > data->lastCached) ++ return; ++ /* Old articles are articles which aren't read but an article after them ++ * has been cached */ ++ if (option (OPTMARKOLD)) ++ h->old = 1; ++} ++ ++void mutt_newsgroup_stat (NNTP_DATA *data) ++{ ++ int i; ++ unsigned int first, last; ++ ++ data->unread = 0; ++ if (data->lastMessage == 0 || data->firstMessage > data->lastMessage) ++ return; ++ ++ data->unread = data->lastMessage - data->firstMessage + 1; ++ for (i = 0; i < data->num; i++) ++ { ++ first = data->entries[i].first; ++ if (first < data->firstMessage) ++ first = data->firstMessage; ++ last = data->entries[i].last; ++ if (last > data->lastMessage) ++ last = data->lastMessage; ++ if (first <= last) ++ data->unread -= last - first + 1; ++ } ++} ++ ++static int puti (char *line, int num) ++{ ++ char *p, s[32]; ++ ++ for (p = s; num; ) ++ { ++ *p++ = '0' + num % 10; ++ num /= 10; ++ } ++ while (p > s) ++ *line++ = *--p, num++; ++ *line = '\0'; ++ return num; ++} ++ ++static void nntp_create_newsrc_line (NNTP_DATA *data, char **buf, char **pline, size_t *buflen) ++{ ++ char *line = *pline; ++ size_t len = *buflen - (*pline - *buf); ++ int x, i; ++ ++ if (len < LONG_STRING * 10) ++ { ++ len += *buflen; ++ *buflen *= 2; ++ line = *buf; ++ safe_realloc (buf, *buflen); ++ line = *buf + (*pline - line); ++ } ++ strcpy (line, data->group); ++ len -= strlen (line) + 1; ++ line += strlen (line); ++ *line++ = data->subscribed ? ':' : '!'; ++ *line++ = ' '; ++ *line = '\0'; ++ ++ for (x = 0; x < data->num; x++) ++ { ++ if (len < LONG_STRING) ++ { ++ len += *buflen; ++ *buflen *= 2; ++ *pline = line; ++ line = *buf; ++ safe_realloc (buf, *buflen); ++ line = *buf + (*pline - line); ++ } ++ if (x) ++ { ++ *line++ = ','; ++ len--; ++ } ++ ++#if 0 ++ if (data->entries[x].first == data->entries[x].last) ++ snprintf (line, len, "%d%n", data->entries[x].first, &i); ++ else ++ snprintf (line, len, "%d-%d%n", ++ data->entries[x].first, data->entries[x].last, &i); ++ len -= i; ++ line += i; ++#else ++ i = puti (line, data->entries[x].first); ++ line +=i; len -= i; ++ if (data->entries[x].first != data->entries[x].last) ++ { ++ *line++ = '-'; ++ len--; ++ i = puti (line, data->entries[x].last); ++ line +=i; len -= i; ++ } ++#endif ++ } ++ *line++ = '\n'; ++ *line = '\0'; ++ *pline = line; ++} ++ ++void newsrc_gen_entries (CONTEXT *ctx) ++{ ++ NNTP_DATA *data = (NNTP_DATA *)ctx->data; ++ int series, x; ++ unsigned int last = 0, first = 1; ++ int save_sort = SORT_ORDER; ++ ++ if (Sort != SORT_ORDER) ++ { ++ save_sort = Sort; ++ Sort = SORT_ORDER; ++ mutt_sort_headers (ctx, 0); ++ } ++ ++ if (!data->max) ++ { ++ data->entries = safe_calloc (5, sizeof (NEWSRC_ENTRY)); ++ data->max = 5; ++ } ++ ++ /* ++ * Set up to fake initial sequence from 1 to the article before the ++ * first article in our list ++ */ ++ data->num = 0; ++ series = 1; ++ ++ for (x = 0; x < ctx->msgcount; x++) ++ { ++ if (series) /* search for first unread */ ++ { ++ /* ++ * We don't actually check sequential order, since we mark ++ * "missing" entries as read/deleted ++ */ ++ last = ctx->hdrs[x]->article_num; ++ if (last >= data->firstMessage && !ctx->hdrs[x]->deleted && ++ !ctx->hdrs[x]->read) ++ { ++ if (data->num >= data->max) ++ { ++ data->max = data->max * 2; ++ safe_realloc (&data->entries, ++ data->max * sizeof (NEWSRC_ENTRY)); ++ } ++ data->entries[data->num].first = first; ++ data->entries[data->num].last = last - 1; ++ data->num++; ++ series = 0; ++ } ++ } ++ else /* search for first read */ ++ { ++ if (ctx->hdrs[x]->deleted || ctx->hdrs[x]->read) ++ { ++ first = last + 1; ++ series = 1; ++ } ++ last = ctx->hdrs[x]->article_num; ++ } ++ } ++ if (series && first <= data->lastLoaded) ++ { ++ if (data->num >= data->max) ++ { ++ data->max = data->max * 2; ++ safe_realloc (&data->entries, ++ data->max * sizeof (NEWSRC_ENTRY)); ++ } ++ data->entries[data->num].first = first; ++ data->entries[data->num].last = data->lastLoaded; ++ data->num++; ++ } ++ ++ if (save_sort != Sort) ++ { ++ Sort = save_sort; ++ mutt_sort_headers (ctx, 0); ++ } ++} ++ ++static int mutt_update_list_file (char *filename, char *section, ++ char *key, char *line) ++{ ++ FILE *ifp; ++ FILE *ofp; ++ char buf[HUGE_STRING]; ++ char tmpfile[_POSIX_PATH_MAX]; ++ char *c; ++ int ext = 0, done = 0, r = 0; ++ ++ /* if file not exist, create it */ ++ if ((ifp = safe_fopen (filename, "a"))) ++ fclose (ifp); ++ dprint (1, (debugfile, "Opening %s\n", filename)); ++ if (!(ifp = safe_fopen (filename, "r"))) ++ { ++ mutt_error (_("Unable to open %s for reading"), filename); ++ return -1; ++ } ++ if (mx_lock_file (filename, fileno (ifp), 0, 0, 1)) ++ { ++ fclose (ifp); ++ mutt_error (_("Unable to lock %s"), filename); ++ return -1; ++ } ++ snprintf (tmpfile, sizeof(tmpfile), "%s.tmp", filename); ++ dprint (1, (debugfile, "Opening %s\n", tmpfile)); ++ if (!(ofp = fopen (tmpfile, "w"))) ++ { ++ fclose (ifp); ++ mutt_error (_("Unable to open %s for writing"), tmpfile); ++ return -1; ++ } ++ ++ if (section) ++ { ++ while (r != EOF && !done && fgets (buf, sizeof (buf), ifp)) ++ { ++ r = fputs (buf, ofp); ++ c = buf; ++ while (*c && *c != '\n') c++; ++ c[0] = 0; /* strip EOL */ ++ if (!strncmp (buf, "#: ", 3) && !mutt_strcasecmp (buf+3, section)) ++ done++; ++ } ++ if (r != EOF && !done) ++ { ++ snprintf (buf, sizeof(buf), "#: %s\n", section); ++ r = fputs (buf, ofp); ++ } ++ done = 0; ++ } ++ ++ while (r != EOF && fgets (buf, sizeof (buf), ifp)) ++ { ++ if (ext) ++ { ++ c = buf; ++ while (*c && (*c != '\r') && (*c != '\n')) c++; ++ c--; ++ if (*c != '\\') ext = 0; ++ } ++ else if ((section && !strncmp (buf, "#: ", 3))) ++ { ++ if (!done && line) ++ { ++ fputs (line, ofp); ++ fputc ('\n', ofp); ++ } ++ r = fputs (buf, ofp); ++ done++; ++ break; ++ } ++ else if (key && !strncmp (buf, key, strlen(key)) && ++ (!*key || buf[strlen(key)] == ' ')) ++ { ++ c = buf; ++ ext = 0; ++ while (*c && (*c != '\r') && (*c != '\n')) c++; ++ c--; ++ if (*c == '\\') ext = 1; ++ if (!done && line) ++ { ++ r = fputs (line, ofp); ++ if (*key) ++ r = fputc ('\n', ofp); ++ done++; ++ } ++ } ++ else ++ { ++ r = fputs (buf, ofp); ++ } ++ } ++ ++ while (r != EOF && fgets (buf, sizeof (buf), ifp)) ++ r = fputs (buf, ofp); ++ ++ /* If there wasn't a line to replace, put it on the end of the file */ ++ if (r != EOF && !done && line) ++ { ++ fputs (line, ofp); ++ r = fputc ('\n', ofp); ++ } ++ mx_unlock_file (filename, fileno (ifp), 0); ++ fclose (ofp); ++ fclose (ifp); ++ if (r == EOF) ++ { ++ unlink (tmpfile); ++ mutt_error (_("Can't write %s"), tmpfile); ++ return -1; ++ } ++ if (rename (tmpfile, filename) < 0) ++ { ++ unlink (tmpfile); ++ mutt_error (_("Can't rename %s to %s"), tmpfile, filename); ++ return -1; ++ } ++ return 0; ++} ++ ++int mutt_newsrc_update (NNTP_SERVER *news) ++{ ++ char *buf, *line; ++ NNTP_DATA *data; ++ LIST *tmp; ++ int r = -1; ++ size_t len, llen; ++ ++ if (!news) ++ return -1; ++ llen = len = 10 * LONG_STRING; ++ line = buf = safe_calloc (1, len); ++ /* we will generate full newsrc here */ ++ for (tmp = news->list; tmp; tmp = tmp->next) ++ { ++ data = (NNTP_DATA *) tmp->data; ++ if (!data || !data->rc) ++ continue; ++ nntp_create_newsrc_line (data, &buf, &line, &llen); ++ if (*line) ++ dprint (2, (debugfile, "Added to newsrc: %s\n", line)); ++ line += strlen (line); ++ } ++ /* newrc being fully rewritten */ ++ if (news->newsrc && ++ (r = mutt_update_list_file (news->newsrc, NULL, "", buf)) == 0) ++ { ++ struct stat st; ++ ++ stat (news->newsrc, &st); ++ news->size = st.st_size; ++ news->mtime = st.st_mtime; ++ } ++ FREE (&buf); ++ return r; ++} ++ ++static FILE *mutt_mkname (char *s) ++{ ++ char buf[_POSIX_PATH_MAX], *pc; ++ int fd; ++ FILE *fp; ++ ++ nntp_cache_expand (buf, s); ++ if ((fp = safe_fopen (buf, "w"))) ++ return fp; ++ ++ nntp_cache_expand (buf, "cache-XXXXXX"); ++ pc = buf + strlen (buf) - 12; /* positioning to "cache-XXXXXX" */ ++ if ((fd = mkstemp (buf)) == -1) ++ return NULL; ++ strcpy (s, pc); /* generated name */ ++ return fdopen (fd, "w"); ++} ++ ++/* Updates info into .index file: ALL or about selected newsgroup */ ++static int nntp_update_cacheindex (NNTP_SERVER *serv, NNTP_DATA *data) ++{ ++ char buf[LONG_STRING], *key = "ALL"; ++ char file[_POSIX_PATH_MAX]; ++ ++ if (!serv || !serv->conn || !serv->conn->account.host) ++ return -1; ++ ++ if (data && data->group) ++ { ++ key = data->group; ++ snprintf (buf, sizeof (buf), "%s %s %d %d", key, data->cache, ++ data->firstMessage, data->lastLoaded); ++ } ++ else ++ { ++ strfcpy (file, serv->cache, sizeof (file)); ++ snprintf (buf, sizeof (buf), "ALL %s 0 %d", file, (int)serv->newgroups_time); ++ } ++ nntp_cache_expand (file, ".index"); ++ return mutt_update_list_file (file, serv->conn->account.host, key, buf); ++} ++ ++/* Remove cache files of unsubscribed newsgroups */ ++void nntp_clear_cacheindex (NNTP_SERVER *news) ++{ ++ NNTP_DATA *data; ++ LIST *tmp; ++ ++ if (option (OPTSAVEUNSUB) || !news) ++ return; ++ ++ for (tmp = news->list; tmp; tmp = tmp->next) ++ { ++ data = (NNTP_DATA *) tmp->data; ++ if (!data || data->subscribed || !data->cache) ++ continue; ++ nntp_delete_cache (data); ++ dprint (2, (debugfile, "Removed from .index: %s\n", data->group)); ++ } ++ return; ++} ++ ++int nntp_save_cache_index (NNTP_SERVER *news) ++{ ++ char buf[HUGE_STRING]; ++ char file[_POSIX_PATH_MAX]; ++ NNTP_DATA *d; ++ FILE *f; ++ LIST *l; ++ ++ if (!news || !news->newsgroups) ++ return -1; ++ if (!option (OPTNEWSCACHE)) ++ return 0; ++ ++ if (news->cache) ++ { ++ nntp_cache_expand (file, news->cache); ++ unlink (file); ++ f = safe_fopen (file, "w"); ++ } ++ else ++ { ++ strfcpy (buf, news->conn->account.host, sizeof(buf)); ++ f = mutt_mkname (buf); ++ news->cache = safe_strdup (buf); ++ nntp_cache_expand (file, buf); ++ } ++ if (!f) ++ return -1; ++ ++ for (l = news->list; l; l = l->next) ++ { ++ if ((d = (NNTP_DATA *)l->data) && !d->deleted) ++ { ++ if (d->desc) ++ snprintf (buf, sizeof(buf), "%s %d %d %c %s\n", d->group, ++ d->lastMessage, d->firstMessage, d->allowed ? 'y' : 'n', ++ d->desc); ++ else ++ snprintf (buf, sizeof(buf), "%s %d %d %c\n", d->group, ++ d->lastMessage, d->firstMessage, d->allowed ? 'y' : 'n'); ++ if (fputs (buf, f) == EOF) ++ { ++ fclose (f); ++ unlink (file); ++ return -1; ++ } ++ } ++ } ++ fclose (f); ++ ++ if (nntp_update_cacheindex (news, NULL)) ++ { ++ unlink (file); ++ return -1; ++ } ++ return 0; ++} ++ ++int nntp_save_cache_group (CONTEXT *ctx) ++{ ++ char buf[HUGE_STRING], addr[STRING]; ++ char file[_POSIX_PATH_MAX]; ++ FILE *f; ++ HEADER *h; ++ struct tm *tm; ++ int i = 0, save = SORT_ORDER; ++ int prev = 0; ++ ++ if (!option (OPTNEWSCACHE)) ++ return 0; ++ if (!ctx || !ctx->data || ctx->magic != M_NNTP) ++ return -1; ++ ++ if (((NNTP_DATA *)ctx->data)->cache) ++ { ++ nntp_cache_expand (file, ((NNTP_DATA *)ctx->data)->cache); ++ unlink (file); ++ f = safe_fopen (file, "w"); ++ } ++ else ++ { ++ snprintf (buf, sizeof(buf), "%s-%s", ++ ((NNTP_DATA *)ctx->data)->nserv->conn->account.host, ++ ((NNTP_DATA *)ctx->data)->group); ++ f = mutt_mkname (buf); ++ ((NNTP_DATA *)ctx->data)->cache = safe_strdup (buf); ++ nntp_cache_expand (file, buf); ++ } ++ if (!f) ++ return -1; ++ ++ if (Sort != SORT_ORDER) ++ { ++ save = Sort; ++ Sort = SORT_ORDER; ++ mutt_sort_headers (ctx, 0); ++ } ++ ++ /* Save only $nntp_context messages... */ ++ ((NNTP_DATA *)ctx->data)->lastCached = 0; ++ if (NntpContext && ctx->msgcount > NntpContext) ++ i = ctx->msgcount - NntpContext; ++ for (; i < ctx->msgcount; i++) ++ { ++ if (!ctx->hdrs[i]->deleted && ctx->hdrs[i]->article_num != prev) ++ { ++ h = ctx->hdrs[i]; ++ addr[0] = 0; ++ rfc822_write_address (addr, sizeof(addr), h->env->from, 0); ++ tm = gmtime (&h->date_sent); ++ snprintf (buf, sizeof(buf), ++ "%d\t%s\t%s\t%d %s %d %02d:%02d:%02d GMT\t%s\t", ++ h->article_num, h->env->subject, addr, tm->tm_mday, ++ Months[tm->tm_mon], tm->tm_year+1900, tm->tm_hour, tm->tm_min, ++ tm->tm_sec, h->env->message_id); ++ fputs (buf, f); ++ if (h->env->references) ++ mutt_write_references (h->env->references, f, 10); ++ snprintf (buf, sizeof(buf), "\t%ld\t%d\tXref: %s\n", (long int) h->content->length, ++ (int) h->lines, NONULL(h->env->xref)); ++ if (fputs (buf, f) == EOF) ++ { ++ fclose (f); ++ unlink (file); ++ return -1; ++ } ++ } ++ prev = ctx->hdrs[i]->article_num; ++ } ++ ++ if (save != Sort) ++ { ++ Sort = save; ++ mutt_sort_headers (ctx, 0); ++ } ++ fclose (f); ++ ++ if (nntp_update_cacheindex (((NNTP_DATA *)ctx->data)->nserv, ++ (NNTP_DATA *)ctx->data)) ++ { ++ unlink (file); ++ return -1; ++ } ++ ((NNTP_DATA *)ctx->data)->lastCached = ((NNTP_DATA *)ctx->data)->lastLoaded; ++ return 0; ++} ++ ++void nntp_delete_cache (NNTP_DATA *data) ++{ ++ char buf[_POSIX_PATH_MAX]; ++ ++ if (!option (OPTNEWSCACHE) || !data || !data->cache || !data->nserv) ++ return; ++ ++ nntp_cache_expand (buf, data->cache); ++ unlink (buf); ++ FREE (&data->cache); ++ data->lastCached = 0; ++ nntp_cache_expand (buf, ".index"); ++ mutt_update_list_file (buf, data->nserv->conn->account.host, data->group, NULL); ++} ++ ++NNTP_DATA *mutt_newsgroup_subscribe (NNTP_SERVER *news, char *group) ++{ ++ NNTP_DATA *data; ++ ++ if (!news || !news->newsgroups || !group || !*group) ++ return NULL; ++ if (!(data = (NNTP_DATA *)hash_find (news->newsgroups, group))) ++ { ++ data = (NNTP_DATA *) safe_calloc (1, sizeof (NNTP_DATA) + strlen (group) + 1); ++ data->group = (char *) data + sizeof (NNTP_DATA); ++ strcpy (data->group, group); ++ data->nserv = news; ++ data->deleted = 1; ++ if (news->newsgroups->nelem < news->newsgroups->curnelem * 2) ++ news->newsgroups = hash_resize (news->newsgroups, news->newsgroups->nelem * 2, 0); ++ hash_insert (news->newsgroups, data->group, data, 0); ++ nntp_add_to_list (news, data); ++ } ++ if (!data->subscribed) ++ { ++ data->subscribed = 1; ++ data->rc = 1; ++ } ++ return data; ++} ++ ++NNTP_DATA *mutt_newsgroup_unsubscribe (NNTP_SERVER *news, char *group) ++{ ++ NNTP_DATA *data; ++ ++ if (!news || !news->newsgroups || !group || !*group || ++ !(data = (NNTP_DATA *)hash_find (news->newsgroups, group))) ++ return NULL; ++ if (data->subscribed) ++ { ++ data->subscribed = 0; ++ if (!option (OPTSAVEUNSUB)) ++ data->rc = 0; ++ } ++ return data; ++} ++ ++NNTP_DATA *mutt_newsgroup_catchup (NNTP_SERVER *news, char *group) ++{ ++ NNTP_DATA *data; ++ ++ if (!news || !news->newsgroups || !group || !*group || ++ !(data = (NNTP_DATA *)hash_find (news->newsgroups, group))) ++ return NULL; ++ if (!data->max) ++ { ++ data->entries = safe_calloc (5, sizeof (NEWSRC_ENTRY)); ++ data->max = 5; ++ } ++ data->num = 1; ++ data->entries[0].first = 1; ++ data->unread = 0; ++ data->entries[0].last = data->lastMessage; ++ if (Context && Context->data == data) ++ { ++ int x; ++ ++ for (x = 0; x < Context->msgcount; x++) ++ mutt_set_flag (Context, Context->hdrs[x], M_READ, 1); ++ } ++ return data; ++} ++ ++NNTP_DATA *mutt_newsgroup_uncatchup (NNTP_SERVER *news, char *group) ++{ ++ NNTP_DATA *data; ++ ++ if (!news || !news->newsgroups || !group || !*group || ++ !(data = (NNTP_DATA *)hash_find (news->newsgroups, group))) ++ return NULL; ++ if (!data->max) ++ { ++ data->entries = safe_calloc (5, sizeof (NEWSRC_ENTRY)); ++ data->max = 5; ++ } ++ data->num = 1; ++ data->entries[0].first = 1; ++ data->entries[0].last = data->firstMessage - 1; ++ if (Context && Context->data == data) ++ { ++ int x; ++ ++ data->unread = Context->msgcount; ++ for (x = 0; x < Context->msgcount; x++) ++ mutt_set_flag (Context, Context->hdrs[x], M_READ, 0); ++ } ++ else ++ data->unread = data->lastMessage - data->entries[0].last; ++ return data; ++} ++ ++/* this routine gives the first newsgroup with new messages */ ++void nntp_buffy (char *s) ++{ ++ LIST *list; ++ ++ for (list = CurrentNewsSrv->list; list; list = list->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *) list->data; ++ ++ if (data && data->subscribed && data->unread) ++ { ++ if (Context && Context->magic == M_NNTP && ++ !mutt_strcmp (data->group, ((NNTP_DATA *) Context->data)->group)) ++ { ++ unsigned int i, unread = 0; ++ ++ for (i = 0; i < Context->msgcount; i++) ++ if (!Context->hdrs[i]->read && !Context->hdrs[i]->deleted) ++ unread++; ++ if (!unread) ++ continue; ++ } ++ strcpy (s, data->group); ++ break; ++ } ++ } ++} +diff -udprP mutt-1.5.20.orig/nntp.c mutt-1.5.20/nntp.c +--- mutt-1.5.20.orig/nntp.c 1970-01-01 03:00:00.000000000 +0300 ++++ mutt-1.5.20/nntp.c 2009-06-15 21:05:24.000000000 +0300 +@@ -0,0 +1,1588 @@ ++/* ++ * Copyright (C) 1998 Brandon Long ++ * Copyright (C) 1999 Andrej Gritsenko ++ * Copyright (C) 2000-2007 Vsevolod Volkov ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "mutt.h" ++#include "mutt_curses.h" ++#include "sort.h" ++#include "mx.h" ++#include "mime.h" ++#include "rfc1524.h" ++#include "rfc2047.h" ++#include "mailbox.h" ++#include "nntp.h" ++ ++#ifdef HAVE_PGP ++#include "pgp.h" ++#endif ++ ++#ifdef HAVE_SMIME ++#include "smime.h" ++#endif ++ ++#include ++#include ++#include ++#include ++ ++static unsigned int _checked = 0; ++ ++#ifdef DEBUG ++static void nntp_error (const char *where, const char *msg) ++{ ++ dprint (1, (debugfile, "nntp_error(): unexpected response in %s: %s\n", where, msg)); ++} ++#endif /* DEBUG */ ++ ++static int nntp_auth (NNTP_SERVER *serv) ++{ ++ CONNECTION *conn = serv->conn; ++ char buf[STRING]; ++ unsigned char flags = conn->account.flags; ++ ++ if (mutt_account_getuser (&conn->account) || !conn->account.user[0] || ++ mutt_account_getpass (&conn->account) || !conn->account.pass[0]) ++ { ++ conn->account.flags = flags; ++ return -2; ++ } ++ ++ mutt_message _("Logging in..."); ++ ++ snprintf (buf, sizeof (buf), "AUTHINFO USER %s\r\n", conn->account.user); ++ mutt_socket_write (conn, buf); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ { ++ conn->account.flags = flags; ++ return -1; ++ } ++ ++#ifdef DEBUG ++ /* don't print the password unless we're at the ungodly debugging level */ ++ if (debuglevel < M_SOCK_LOG_FULL) ++ dprint (M_SOCK_LOG_CMD, (debugfile, "> AUTHINFO PASS *\n")); ++#endif ++ snprintf (buf, sizeof (buf), "AUTHINFO PASS %s\r\n", conn->account.pass); ++ mutt_socket_write_d (conn, buf, -1, M_SOCK_LOG_FULL); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ { ++ conn->account.flags = flags; ++ return -1; ++ } ++ ++ if (mutt_strncmp ("281", buf, 3)) ++ { ++ conn->account.flags = flags; ++ mutt_error _("Login failed."); ++ sleep (2); ++ return -3; ++ } ++ ++ return 0; ++} ++ ++static int nntp_connect_error (NNTP_SERVER *serv) ++{ ++ serv->status = NNTP_NONE; ++ mutt_socket_close (serv->conn); ++ mutt_error _("Server closed connection!"); ++ sleep (2); ++ return -1; ++} ++ ++static int nntp_connect_and_auth (NNTP_SERVER *serv) ++{ ++ CONNECTION *conn = serv->conn; ++ char buf[STRING]; ++ int rc; ++ ++ serv->status = NNTP_NONE; ++ ++ if (mutt_socket_open (conn) < 0) ++ return -1; ++ ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ ++ if (!mutt_strncmp ("200", buf, 3)) ++ mutt_message (_("Connected to %s. Posting ok."), conn->account.host); ++ else if (!mutt_strncmp ("201", buf, 3)) ++ mutt_message (_("Connected to %s. Posting NOT ok."), conn->account.host); ++ else ++ { ++ mutt_socket_close (conn); ++ mutt_remove_trailing_ws (buf); ++ mutt_error ("%s", buf); ++ sleep (2); ++ return -1; ++ } ++ ++ sleep (1); ++ ++ /* Tell INN to switch to mode reader if it isn't so. Ignore all ++ returned codes and messages. */ ++ mutt_socket_write (conn, "MODE READER\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ ++ mutt_socket_write (conn, "STAT\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ ++ if (!(conn->account.flags & M_ACCT_USER) && mutt_strncmp ("480", buf, 3)) ++ { ++ serv->status = NNTP_OK; ++ return 0; ++ } ++ ++ rc = nntp_auth (serv); ++ if (rc == -1) ++ return nntp_connect_error (serv); ++ if (rc == -2) ++ { ++ mutt_socket_close (conn); ++ serv->status = NNTP_BYE; ++ return -1; ++ } ++ if (rc < 0) ++ { ++ mutt_socket_close (conn); ++ mutt_error _("Login failed."); ++ sleep (2); ++ return -1; ++ } ++ serv->status = NNTP_OK; ++ return 0; ++} ++ ++static int nntp_attempt_features (NNTP_SERVER *serv) ++{ ++ char buf[LONG_STRING]; ++ CONNECTION *conn = serv->conn; ++ ++ mutt_socket_write (conn, "XOVER\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ if (mutt_strncmp ("500", buf, 3)) ++ serv->hasXOVER = 1; ++ ++ mutt_socket_write (conn, "XPAT\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ if (mutt_strncmp ("500", buf, 3)) ++ serv->hasXPAT = 1; ++ ++ mutt_socket_write (conn, "LISTGROUP\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ if (mutt_strncmp ("500", buf, 3)) ++ serv->hasLISTGROUP = 1; ++ ++ mutt_socket_write (conn, "XGTITLE +\r\n"); ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ if (mutt_strncmp ("500", buf, 3)) ++ serv->hasXGTITLE = 1; ++ ++ if (!mutt_strncmp ("282", buf, 3)) ++ { ++ do ++ { ++ if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) ++ return nntp_connect_error (serv); ++ } while (!(buf[0] == '.' && buf[1] == '\0')); ++ } ++ ++ return 0; ++} ++ ++static int nntp_open_connection (NNTP_SERVER *serv) ++{ ++ if (serv->status == NNTP_OK) ++ return 0; ++ if (serv->status == NNTP_BYE) ++ return -1; ++ if (nntp_connect_and_auth (serv) < 0) ++ return -1; ++ if (nntp_attempt_features (serv) < 0) ++ return -1; ++ return 0; ++} ++ ++static int nntp_reconnect (NNTP_SERVER *serv) ++{ ++ char buf[SHORT_STRING]; ++ ++ mutt_socket_close (serv->conn); ++ ++ FOREVER ++ { ++ if (nntp_connect_and_auth (serv) == 0) ++ return 0; ++ ++ snprintf (buf, sizeof (buf), _("Connection to %s lost. Reconnect?"), ++ serv->conn->account.host); ++ if (query_quadoption (OPT_NNTPRECONNECT, buf) != M_YES) ++ { ++ serv->status = NNTP_BYE; ++ return -1; ++ } ++ } ++} ++ ++/* Send data from line[LONG_STRING] and receive answer to same line */ ++static int mutt_nntp_query (NNTP_DATA *data, char *line, size_t linelen) ++{ ++ char buf[LONG_STRING]; ++ int done = TRUE; ++ ++ if (data->nserv->status == NNTP_BYE) ++ return -1; ++ ++ do ++ { ++ if (*line) ++ { ++ mutt_socket_write (data->nserv->conn, line); ++ } ++ else if (data->group) ++ { ++ snprintf (buf, sizeof (buf), "GROUP %s\r\n", data->group); ++ mutt_socket_write (data->nserv->conn, buf); ++ } ++ ++ done = TRUE; ++ if (mutt_socket_readln (buf, sizeof (buf), data->nserv->conn) < 0) ++ { ++ if (nntp_reconnect (data->nserv) < 0) ++ return -1; ++ ++ if (data->group) ++ { ++ snprintf (buf, sizeof (buf), "GROUP %s\r\n", data->group); ++ mutt_socket_write (data->nserv->conn, buf); ++ if (mutt_socket_readln (buf, sizeof (buf), data->nserv->conn) < 0) ++ return -1; ++ } ++ if (*line) ++ done = FALSE; ++ } ++ else if ((!mutt_strncmp ("480", buf, 3)) && nntp_auth (data->nserv) < 0) ++ return -1; ++ } while (!done); ++ ++ strfcpy (line, buf, linelen); ++ return 0; ++} ++ ++/* ++ * This function calls funct(*line, *data) for each received line, ++ * funct(NULL, *data) if rewind(*data) needs, exits when fail or done. ++ * Returned codes: ++ * 0 - successful, ++ * 1 - correct but not performed (may be, have to be continued), ++ * -1 - conection lost, ++ * -2 - invalid command or execution error, ++ * -3 - error in funct(*line, *data). ++ */ ++static int mutt_nntp_fetch (NNTP_DATA *nntp_data, char *query, char *msg, ++ int (*funct) (char *, void *), void *data, int tagged) ++{ ++ char buf[LONG_STRING]; ++ char *inbuf, *p; ++ int done = FALSE; ++ int chunk, line; ++ size_t lenbuf = 0; ++ int ret; ++ ++ do ++ { ++ strfcpy (buf, query, sizeof (buf)); ++ if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) ++ return -1; ++ if (buf[0] == '5') ++ return -2; ++ if (buf[0] != '2') ++ return 1; ++ ++ ret = 0; ++ line = 0; ++ inbuf = safe_malloc (sizeof (buf)); ++ ++ FOREVER ++ { ++ chunk = mutt_socket_readln_d (buf, sizeof (buf), nntp_data->nserv->conn, ++ M_SOCK_LOG_HDR); ++ if (chunk < 0) ++ break; ++ ++ p = buf; ++ if (!lenbuf && buf[0] == '.') ++ { ++ if (buf[1] == '\0') ++ { ++ done = TRUE; ++ break; ++ } ++ if (buf[1] == '.') ++ p++; ++ } ++ ++ strfcpy (inbuf + lenbuf, p, sizeof (buf)); ++ ++ if (chunk >= sizeof (buf)) ++ { ++ lenbuf += strlen (p); ++ } ++ else ++ { ++ line++; ++ if (msg && ReadInc && (line % ReadInc == 0)) { ++ if (tagged) ++ mutt_message (_("%s (tagged: %d) %d"), msg, tagged, line); ++ else ++ mutt_message ("%s %d", msg, line); ++ } ++ ++ if (ret == 0 && funct (inbuf, data) < 0) ++ ret = -3; ++ lenbuf = 0; ++ } ++ ++ safe_realloc (&inbuf, lenbuf + sizeof (buf)); ++ } ++ FREE (&inbuf); ++ funct (NULL, data); ++ } ++ while (!done); ++ return ret; ++} ++ ++static int nntp_read_tempfile (char *line, void *file) ++{ ++ FILE *f = (FILE *)file; ++ ++ if (!line) ++ rewind (f); ++ else ++ { ++ fputs (line, f); ++ if (fputc ('\n', f) == EOF) ++ return -1; ++ } ++ return 0; ++} ++ ++static void nntp_parse_xref (CONTEXT *ctx, char *group, char *xref, HEADER *h) ++{ ++ register char *p, *b; ++ register char *colon = NULL; ++ ++ b = p = xref; ++ while (*p) ++ { ++ /* skip to next word */ ++ b = p; ++ while (*b && ((*b == ' ') || (*b == '\t'))) b++; ++ p = b; ++ colon = NULL; ++ /* skip to end of word */ ++ while (*p && (*p != ' ') && (*p != '\t')) ++ { ++ if (*p == ':') ++ colon = p; ++ p++; ++ } ++ if (*p) ++ { ++ *p = '\0'; ++ p++; ++ } ++ if (colon) ++ { ++ *colon = '\0'; ++ colon++; ++ nntp_get_status (ctx, h, b, atoi(colon)); ++ if (h && h->article_num == 0 && mutt_strcmp (group, b) == 0) ++ h->article_num = atoi(colon); ++ } ++ } ++} ++ ++/* ++ * returns: ++ * 0 on success ++ * 1 if article not found ++ * -1 if read or write error on tempfile or socket ++ */ ++static int nntp_read_header (CONTEXT *ctx, const char *msgid, int article_num) ++{ ++ NNTP_DATA *nntp_data = ((NNTP_DATA *)ctx->data); ++ FILE *f; ++ char buf[LONG_STRING]; ++ char tempfile[_POSIX_PATH_MAX]; ++ int ret; ++ HEADER *h = ctx->hdrs[ctx->msgcount]; ++ ++ mutt_mktemp (tempfile); ++ if (!(f = safe_fopen (tempfile, "w+"))) ++ return -1; ++ ++ if (!msgid) ++ snprintf (buf, sizeof (buf), "HEAD %d\r\n", article_num); ++ else ++ snprintf (buf, sizeof (buf), "HEAD %s\r\n", msgid); ++ ++ ret = mutt_nntp_fetch (nntp_data, buf, NULL, nntp_read_tempfile, f, 0); ++ if (ret) ++ { ++#ifdef DEBUG ++ if (ret != -1) ++ dprint(1, (debugfile, "nntp_read_header: %s\n", buf)); ++#endif ++ fclose (f); ++ unlink (tempfile); ++ return (ret == -1 ? -1 : 1); ++ } ++ ++ h->article_num = article_num; ++ h->env = mutt_read_rfc822_header (f, h, 0, 0); ++ fclose (f); ++ unlink (tempfile); ++ ++ if (h->env->xref != NULL) ++ nntp_parse_xref (ctx, nntp_data->group, h->env->xref, h); ++ else if (h->article_num == 0 && msgid) ++ { ++ snprintf (buf, sizeof (buf), "STAT %s\r\n", msgid); ++ if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) == 0) ++ h->article_num = atoi (buf + 4); ++ } ++ ++ return 0; ++} ++ ++static int parse_description (char *line, void *n) ++{ ++#define news ((NNTP_SERVER *) n) ++ register char *d = line; ++ NNTP_DATA *data; ++ ++ if (!line) ++ return 0; ++ while (*d && *d != '\t' && *d != ' ') d++; ++ *d = 0; ++ d++; ++ while (*d && (*d == '\t' || *d == ' ')) d++; ++ dprint (2, (debugfile, "group: %s, desc: %s\n", line, d)); ++ if ((data = (NNTP_DATA *) hash_find (news->newsgroups, line)) != NULL && ++ mutt_strcmp (d, data->desc)) ++ { ++ FREE (&data->desc); ++ data->desc = safe_strdup (d); ++ } ++ return 0; ++#undef news ++} ++ ++static void nntp_get_desc (NNTP_DATA *data, char *mask, char *msg) ++{ ++ char buf[STRING]; ++ ++ if (!option (OPTLOADDESC) || !data || !data->nserv) ++ return; ++ ++ /* Get newsgroup description, if we can */ ++ if (data->nserv->hasXGTITLE) ++ snprintf (buf, sizeof (buf), "XGTITLE %s\r\n", mask); ++ else ++ snprintf (buf, sizeof (buf), "LIST NEWSGROUPS %s\r\n", mask); ++ if (mutt_nntp_fetch (data, buf, msg, parse_description, data->nserv, 0) != 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_get_desc()", buf); ++#endif ++ } ++} ++ ++/* ++ * XOVER returns a tab separated list of: ++ * id|subject|from|date|Msgid|references|bytes|lines|xref ++ * ++ * This has to duplicate some of the functionality of ++ * mutt_read_rfc822_header(), since it replaces the call to that (albeit with ++ * a limited number of headers which are "parsed" by placement in the list) ++ */ ++static int nntp_parse_xover (CONTEXT *ctx, char *buf, HEADER *hdr) ++{ ++ NNTP_DATA *nntp_data = (NNTP_DATA *) ctx->data; ++ char *p, *b; ++ int x, done = 0; ++ ++ hdr->env = mutt_new_envelope(); ++ hdr->env->newsgroups = safe_strdup (nntp_data->group); ++ hdr->content = mutt_new_body(); ++ hdr->content->type = TYPETEXT; ++ hdr->content->subtype = safe_strdup ("plain"); ++ hdr->content->encoding = ENC7BIT; ++ hdr->content->disposition = DISPINLINE; ++ hdr->content->length = -1; ++ b = p = buf; ++ ++ for (x = 0; !done && x < 9; x++) ++ { ++ /* if from file, need to skip newline character */ ++ while (*p && *p != '\n' && *p != '\t') p++; ++ if (!*p) done++; ++ *p = '\0'; ++ p++; ++ switch (x) ++ { ++ case 0: ++ ++ hdr->article_num = atoi (b); ++ nntp_get_status (ctx, hdr, NULL, hdr->article_num); ++ break; ++ case 1: ++ hdr->env->subject = safe_strdup (b); ++ /* Now we need to do the things which would normally be done in ++ * mutt_read_rfc822_header() */ ++ if (hdr->env->subject) ++ { ++ regmatch_t pmatch[1]; ++ ++ rfc2047_decode (&hdr->env->subject); ++ ++ if (regexec (ReplyRegexp.rx, hdr->env->subject, 1, pmatch, 0) == 0) ++ hdr->env->real_subj = hdr->env->subject + pmatch[0].rm_eo; ++ else ++ hdr->env->real_subj = hdr->env->subject; ++ } ++ break; ++ case 2: ++ rfc822_free_address (&hdr->env->from); ++ hdr->env->from = rfc822_parse_adrlist (hdr->env->from, b); ++ rfc2047_decode_adrlist (hdr->env->from); ++ break; ++ case 3: ++ hdr->date_sent = mutt_parse_date (b, hdr); ++ hdr->received = hdr->date_sent; ++ break; ++ case 4: ++ FREE (&hdr->env->message_id); ++ hdr->env->message_id = safe_strdup (b); ++ break; ++ case 5: ++ mutt_free_list (&hdr->env->references); ++ hdr->env->references = mutt_parse_references (b, 0); ++ break; ++ case 6: ++ hdr->content->length = atoi (b); ++ break; ++ case 7: ++ hdr->lines = atoi (b); ++ break; ++ case 8: ++ if (!hdr->read) ++ FREE (&hdr->env->xref); ++ b = b + 6; /* skips the "Xref: " */ ++ hdr->env->xref = safe_strdup (b); ++ nntp_parse_xref (ctx, nntp_data->group, b, hdr); ++ } ++ if (!*p) ++ return -1; ++ b = p; ++ } ++ return 0; ++} ++ ++typedef struct ++{ ++ CONTEXT *ctx; ++ unsigned int base; ++ unsigned int first; ++ unsigned int last; ++ unsigned short *messages; ++ char* msg; ++} FETCH_CONTEXT; ++ ++#define fc ((FETCH_CONTEXT *) c) ++static int nntp_fetch_numbers (char *line, void *c) ++{ ++ unsigned int num; ++ ++ if (!line) ++ return 0; ++ num = atoi (line); ++ if (num < fc->base || num > fc->last) ++ return 0; ++ fc->messages[num - fc->base] = 1; ++ return 0; ++} ++ ++static int add_xover_line (char *line, void *c) ++{ ++ unsigned int num, total; ++ CONTEXT *ctx = fc->ctx; ++ NNTP_DATA *data = (NNTP_DATA *)ctx->data; ++ ++ if (!line) ++ return 0; ++ ++ if (ctx->msgcount >= ctx->hdrmax) ++ mx_alloc_memory (ctx); ++ ctx->hdrs[ctx->msgcount] = mutt_new_header (); ++ ctx->hdrs[ctx->msgcount]->index = ctx->msgcount; ++ ++ nntp_parse_xover (ctx, line, ctx->hdrs[ctx->msgcount]); ++ num = ctx->hdrs[ctx->msgcount]->article_num; ++ ++ if (num >= fc->first && num <= fc->last && fc->messages[num - fc->base]) ++ { ++ ctx->msgcount++; ++ if (num > data->lastLoaded) ++ data->lastLoaded = num; ++ num = num - fc->first + 1; ++ total = fc->last - fc->first + 1; ++ if (!ctx->quiet && fc->msg && ReadInc && (num % ReadInc == 0)) ++ mutt_message ("%s %d/%d", fc->msg, num, total); ++ } ++ else ++ mutt_free_header (&ctx->hdrs[ctx->msgcount]); /* skip it */ ++ ++ return 0; ++} ++#undef fc ++ ++static int nntp_fetch_headers (CONTEXT *ctx, unsigned int first, ++ unsigned int last) ++{ ++ char buf[HUGE_STRING]; ++ char *msg = _("Fetching message headers..."); ++ NNTP_DATA *nntp_data = ((NNTP_DATA *)ctx->data); ++ int ret; ++ int num; ++ int oldmsgcount; ++ unsigned int current; ++ FILE *f; ++ FETCH_CONTEXT fc; ++ ++ /* if empty group or nothing to do */ ++ if (!last || first > last) ++ return 0; ++ ++ /* fetch list of articles */ ++ fc.ctx = ctx; ++ fc.base = first; ++ fc.last = last; ++ fc.messages = safe_calloc (last - first + 1, sizeof (unsigned short)); ++ if (nntp_data->nserv->hasLISTGROUP) ++ { ++ mutt_message _("Fetching list of articles..."); ++ snprintf (buf, sizeof (buf), "LISTGROUP %s\r\n", nntp_data->group); ++ if (mutt_nntp_fetch (nntp_data, buf, NULL, nntp_fetch_numbers, &fc, 0) != 0) ++ { ++ mutt_error (_("LISTGROUP command failed: %s"), buf); ++#ifdef DEBUG ++ nntp_error ("nntp_fetch_headers()", buf); ++#endif ++ FREE (&fc.messages); ++ return -1; ++ } ++ } ++ else ++ { ++ for (num = 0; num < last - first + 1; num++) ++ fc.messages[num] = 1; ++ } ++ ++ /* CACHE: must be loaded xover cache here */ ++ num = nntp_data->lastCached - first + 1; ++ if (option (OPTNEWSCACHE) && nntp_data->cache && num > 0) ++ { ++ nntp_cache_expand (buf, nntp_data->cache); ++ mutt_message _("Fetching headers from cache..."); ++ if ((f = safe_fopen (buf, "r"))) ++ { ++ int r = 0; ++ ++ /* counting number of lines */ ++ while (fgets (buf, sizeof (buf), f) != NULL) ++ r++; ++ rewind (f); ++ while (r > num && fgets (buf, sizeof (buf), f) != NULL) ++ r--; ++ oldmsgcount = ctx->msgcount; ++ fc.first = first; ++ fc.last = first + num - 1; ++ fc.msg = NULL; ++ while (fgets (buf, sizeof (buf), f) != NULL) ++ add_xover_line (buf, &fc); ++ fclose (f); ++ nntp_data->lastLoaded = fc.last; ++ first = fc.last + 1; ++ if (ctx->msgcount > oldmsgcount) ++ mx_update_context (ctx, ctx->msgcount - oldmsgcount); ++ } ++ else ++ nntp_delete_cache (nntp_data); ++ } ++ num = last - first + 1; ++ if (num <= 0) ++ { ++ FREE (&fc.messages); ++ return 0; ++ } ++ ++ /* ++ * Without XOVER, we have to fetch each article header and parse ++ * it. With XOVER, we ask for all of them ++ */ ++ mutt_message (msg); ++ if (nntp_data->nserv->hasXOVER) ++ { ++ oldmsgcount = ctx->msgcount; ++ fc.first = first; ++ fc.last = last; ++ fc.msg = msg; ++ snprintf (buf, sizeof (buf), "XOVER %d-%d\r\n", first, last); ++ ret = mutt_nntp_fetch (nntp_data, buf, NULL, add_xover_line, &fc, 0); ++ if (ctx->msgcount > oldmsgcount) ++ mx_update_context (ctx, ctx->msgcount - oldmsgcount); ++ if (ret != 0) ++ { ++ mutt_error (_("XOVER command failed: %s"), buf); ++#ifdef DEBUG ++ nntp_error ("nntp_fetch_headers()", buf); ++#endif ++ FREE (&fc.messages); ++ return -1; ++ } ++ /* fetched OK */ ++ } ++ else ++ for (current = first; current <= last; current++) ++ { ++ HEADER *h; ++ ++ ret = current - first + 1; ++ mutt_message ("%s %d/%d", msg, ret, num); ++ ++ if (!fc.messages[current - fc.base]) ++ continue; ++ ++ if (ctx->msgcount >= ctx->hdrmax) ++ mx_alloc_memory (ctx); ++ h = ctx->hdrs[ctx->msgcount] = mutt_new_header (); ++ h->index = ctx->msgcount; ++ ++ ret = nntp_read_header (ctx, NULL, current); ++ if (ret == 0) /* Got article. Fetch next header */ ++ { ++ nntp_get_status (ctx, h, NULL, h->article_num); ++ ctx->msgcount++; ++ mx_update_context (ctx, 1); ++ } ++ else ++ mutt_free_header (&h); /* skip it */ ++ if (ret == -1) ++ { ++ FREE (&fc.messages); ++ return -1; ++ } ++ ++ if (current > nntp_data->lastLoaded) ++ nntp_data->lastLoaded = current; ++ } ++ FREE (&fc.messages); ++ nntp_data->lastLoaded = last; ++ mutt_clear_error (); ++ return 0; ++} ++ ++/* ++ * currently, nntp "mailbox" is "newsgroup" ++ */ ++int nntp_open_mailbox (CONTEXT *ctx) ++{ ++ NNTP_DATA *nntp_data; ++ NNTP_SERVER *serv; ++ char buf[HUGE_STRING]; ++ char server[LONG_STRING]; ++ int count = 0; ++ unsigned int first; ++ ACCOUNT acct; ++ ++ if (nntp_parse_url (ctx->path, &acct, buf, sizeof (buf)) < 0 || !*buf) ++ { ++ mutt_error (_("%s is an invalid newsgroup specification!"), ctx->path); ++ mutt_sleep (2); ++ return -1; ++ } ++ ++ server[0] = '\0'; ++ nntp_expand_path (server, sizeof (server), &acct); ++ if (!(serv = mutt_select_newsserver (server)) || serv->status != NNTP_OK) ++ return -1; ++ ++ CurrentNewsSrv = serv; ++ ++ /* create NNTP-specific state struct if nof found in list */ ++ if ((nntp_data = (NNTP_DATA *) hash_find (serv->newsgroups, buf)) == NULL) ++ { ++ nntp_data = safe_calloc (1, sizeof (NNTP_DATA) + strlen (buf) + 1); ++ nntp_data->group = (char *) nntp_data + sizeof (NNTP_DATA); ++ strcpy (nntp_data->group, buf); ++ hash_insert (serv->newsgroups, nntp_data->group, nntp_data, 0); ++ nntp_add_to_list (serv, nntp_data); ++ } ++ ctx->data = nntp_data; ++ ctx->mx_close = nntp_fastclose_mailbox; ++ nntp_data->nserv = serv; ++ ++ mutt_message (_("Selecting %s..."), nntp_data->group); ++ ++ if (!nntp_data->desc) ++ { ++ nntp_get_desc (nntp_data, nntp_data->group, NULL); ++ if (nntp_data->desc) ++ nntp_save_cache_index (serv); ++ } ++ ++ buf[0] = 0; ++ if (mutt_nntp_query (nntp_data, buf, sizeof(buf)) < 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_open_mailbox()", buf); ++#endif ++ return -1; ++ } ++ ++ if (mutt_strncmp ("211", buf, 3)) ++ { ++ LIST *l = serv->list; ++ ++ /* GROUP command failed */ ++ if (!mutt_strncmp ("411", buf, 3)) ++ { ++ mutt_error (_("Newsgroup %s not found on server %s"), ++ nntp_data->group, serv->conn->account.host); ++ ++ /* CACHE: delete cache and line from .index */ ++ nntp_delete_cache (nntp_data); ++ hash_delete (serv->newsgroups, nntp_data->group, NULL, nntp_delete_data); ++ while (l && l->data != (void *) nntp_data) l = l->next; ++ if (l) ++ l->data = NULL; ++ ++ sleep (2); ++ } ++ ++ return -1; ++ } ++ ++ sscanf (buf + 4, "%d %u %u %s", &count, &nntp_data->firstMessage, ++ &nntp_data->lastMessage, buf); ++ ++ nntp_data->deleted = 0; ++ ++ time (&serv->check_time); ++ ++ /* ++ * Check for max adding context. If it is greater than $nntp_context, ++ * strip off extra articles ++ */ ++ first = nntp_data->firstMessage; ++ if (NntpContext && nntp_data->lastMessage - first + 1 > NntpContext) ++ first = nntp_data->lastMessage - NntpContext + 1; ++ if (first) ++ nntp_data->lastLoaded = first - 1; ++ return nntp_fetch_headers (ctx, first, nntp_data->lastMessage); ++} ++ ++int nntp_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno) ++{ ++ char buf[LONG_STRING]; ++ char path[_POSIX_PATH_MAX]; ++ NNTP_CACHE *cache; ++ char *m = _("Fetching message..."); ++ int ret; ++ ++ /* see if we already have the message in our cache */ ++ cache = &((NNTP_DATA *) ctx->data)->acache[ctx->hdrs[msgno]->index % NNTP_CACHE_LEN]; ++ ++ /* if everything is fine, assign msg->fp and return */ ++ if (cache->path && cache->index == ctx->hdrs[msgno]->index && ++ (msg->fp = fopen (cache->path, "r"))) ++ return 0; ++ ++ /* clear the previous entry */ ++ unlink (cache->path); ++ free (cache->path); ++ ++ mutt_message (m); ++ ++ cache->index = ctx->hdrs[msgno]->index; ++ mutt_mktemp (path); ++ cache->path = safe_strdup (path); ++ if (!(msg->fp = safe_fopen (path, "w+"))) ++ { ++ FREE (&cache->path); ++ return -1; ++ } ++ ++ if (ctx->hdrs[msgno]->article_num == 0) ++ snprintf (buf, sizeof (buf), "ARTICLE %s\r\n", ++ ctx->hdrs[msgno]->env->message_id); ++ else ++ snprintf (buf, sizeof (buf), "ARTICLE %d\r\n", ++ ctx->hdrs[msgno]->article_num); ++ ++ ret = mutt_nntp_fetch ((NNTP_DATA *)ctx->data, buf, m, nntp_read_tempfile, ++ msg->fp, ctx->tagged); ++ if (ret == 1) ++ { ++ mutt_error (_("Article %d not found on server"), ++ ctx->hdrs[msgno]->article_num); ++ dprint (1, (debugfile, "nntp_fetch_message: %s\n", buf)); ++ } ++ ++ if (ret) ++ { ++ fclose (msg->fp); ++ unlink (path); ++ FREE (&cache->path); ++ return -1; ++ } ++ ++ mutt_free_envelope (&ctx->hdrs[msgno]->env); ++ ctx->hdrs[msgno]->env = mutt_read_rfc822_header (msg->fp, ctx->hdrs[msgno], 0, 0); ++ /* fix content length */ ++ fseek(msg->fp, 0, SEEK_END); ++ ctx->hdrs[msgno]->content->length = ftell (msg->fp) - ++ ctx->hdrs[msgno]->content->offset; ++ ++ /* this is called in mutt before the open which fetches the message, ++ * which is probably wrong, but we just call it again here to handle ++ * the problem instead of fixing it. ++ */ ++ mutt_parse_mime_message (ctx, ctx->hdrs[msgno]); ++ ++ /* These would normally be updated in mx_update_context(), but the ++ * full headers aren't parsed with XOVER, so the information wasn't ++ * available then. ++ */ ++#if defined(HAVE_PGP) || defined(HAVE_SMIME) ++ ctx->hdrs[msgno]->security = crypt_query (ctx->hdrs[msgno]->content); ++#endif /* HAVE_PGP || HAVE_SMIME */ ++ ++ mutt_clear_error(); ++ rewind (msg->fp); ++ ++ return 0; ++} ++ ++/* Post article */ ++int nntp_post (const char *msg) { ++ char buf[LONG_STRING]; ++ size_t len; ++ FILE *f; ++ NNTP_DATA *nntp_data; ++ ++ if (Context && Context->magic == M_NNTP) ++ nntp_data = (NNTP_DATA *)Context->data; ++ else ++ { ++ if (!(CurrentNewsSrv = mutt_select_newsserver (NewsServer)) || ++ !CurrentNewsSrv->list || !CurrentNewsSrv->list->data) ++ { ++ mutt_error (_("Can't post article. No connection to news server.")); ++ return -1; ++ } ++ nntp_data = (NNTP_DATA *)CurrentNewsSrv->list->data; ++ } ++ ++ if (!(f = safe_fopen (msg, "r"))) ++ { ++ mutt_error (_("Can't post article. Unable to open %s"), msg); ++ return -1; ++ } ++ ++ strfcpy (buf, "POST\r\n", sizeof (buf)); ++ if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) ++ { ++ mutt_error (_("Can't post article. Connection to %s lost."), ++ nntp_data->nserv->conn->account.host); ++ return -1; ++ } ++ if (buf[0] != '3') ++ { ++ mutt_error (_("Can't post article: %s"), buf); ++ return -1; ++ } ++ ++ buf[0] = '.'; ++ buf[1] = '\0'; ++ while (fgets (buf + 1, sizeof (buf) - 2, f) != NULL) ++ { ++ len = strlen (buf); ++ if (buf[len - 1] == '\n') ++ { ++ buf[len - 1] = '\r'; ++ buf[len] = '\n'; ++ len++; ++ buf[len] = '\0'; ++ } ++ if (buf[1] == '.') ++ mutt_socket_write_d (nntp_data->nserv->conn, buf, -1, M_SOCK_LOG_HDR); ++ else ++ mutt_socket_write_d (nntp_data->nserv->conn, buf + 1, -1, M_SOCK_LOG_HDR); ++ } ++ fclose (f); ++ ++ if (buf[strlen (buf) - 1] != '\n') ++ mutt_socket_write_d (nntp_data->nserv->conn, "\r\n", -1, M_SOCK_LOG_HDR); ++ mutt_socket_write_d (nntp_data->nserv->conn, ".\r\n", -1, M_SOCK_LOG_HDR); ++ if (mutt_socket_readln (buf, sizeof (buf), nntp_data->nserv->conn) < 0) ++ { ++ mutt_error (_("Can't post article. Connection to %s lost."), ++ nntp_data->nserv->conn->account.host); ++ return -1; ++ } ++ if (buf[0] != '2') ++ { ++ mutt_error (_("Can't post article: %s"), buf); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* nntp_logout_all: close all open connections. */ ++void nntp_logout_all (void) ++{ ++ char buf[LONG_STRING]; ++ CONNECTION* conn; ++ ++ conn = mutt_socket_head (); ++ ++ while (conn) ++ { ++ CONNECTION *next = conn->next; ++ ++ if (conn->account.type == M_ACCT_TYPE_NNTP) ++ { ++ mutt_message (_("Closing connection to %s..."), conn->account.host); ++ mutt_socket_write (conn, "QUIT\r\n"); ++ mutt_socket_readln (buf, sizeof (buf), conn); ++ mutt_clear_error (); ++ mutt_socket_close (conn); ++ mutt_socket_free (conn); ++ } ++ ++ conn = next; ++ } ++} ++ ++static void nntp_free_acache (NNTP_DATA *data) ++{ ++ int i; ++ ++ for (i = 0; i < NNTP_CACHE_LEN; i++) ++ { ++ if (data->acache[i].path) ++ { ++ unlink (data->acache[i].path); ++ FREE (&data->acache[i].path); ++ } ++ } ++} ++ ++void nntp_delete_data (void *p) ++{ ++ NNTP_DATA *data = (NNTP_DATA *)p; ++ ++ if (!p) ++ return; ++ FREE (&data->entries); ++ FREE (&data->desc); ++ FREE (&data->cache); ++ nntp_free_acache (data); ++ FREE (p); ++} ++ ++int nntp_sync_mailbox (CONTEXT *ctx) ++{ ++ NNTP_DATA *data = ctx->data; ++ ++ /* CACHE: update cache and .index files */ ++ if ((option (OPTSAVEUNSUB) || data->subscribed)) ++ nntp_save_cache_group (ctx); ++ nntp_free_acache (data); ++ ++ data->nserv->check_time = 0; /* next nntp_check_mailbox() will really check */ ++ return 0; ++} ++ ++int nntp_fastclose_mailbox (CONTEXT *ctx) ++{ ++ NNTP_DATA *data = (NNTP_DATA *) ctx->data, *tmp; ++ ++ if (!data) ++ return 0; ++ nntp_free_acache (data); ++ if (!data->nserv || !data->nserv->newsgroups || !data->group) ++ return 0; ++ nntp_save_cache_index (data->nserv); ++ if ((tmp = hash_find (data->nserv->newsgroups, data->group)) == NULL ++ || tmp != data) ++ nntp_delete_data (data); ++ return 0; ++} ++ ++/* commit changes and terminate connection */ ++int nntp_close_mailbox (CONTEXT *ctx) ++{ ++ if (!ctx) ++ return -1; ++ mutt_message _("Quitting newsgroup..."); ++ if (ctx->data) ++ { ++ NNTP_DATA *data = (NNTP_DATA *) ctx->data; ++ int ret; ++ ++ if (data->nserv && data->nserv->conn && ctx->unread) ++ { ++ ret = query_quadoption (OPT_CATCHUP, _("Mark all articles read?")); ++ if (ret == M_YES) ++ mutt_newsgroup_catchup (data->nserv, data->group); ++ else if (ret < 0) ++ return -1; ++ } ++ } ++ nntp_sync_mailbox (ctx); ++ if (ctx->data && ((NNTP_DATA *)ctx->data)->nserv) ++ { ++ NNTP_SERVER *news; ++ ++ news = ((NNTP_DATA *)ctx->data)->nserv; ++ newsrc_gen_entries (ctx); ++ ((NNTP_DATA *)ctx->data)->unread = ctx->unread; ++ mutt_newsrc_update (news); ++ } ++ mutt_clear_error(); ++ return 0; ++} ++ ++/* use the GROUP command to poll for new mail */ ++static int _nntp_check_mailbox (CONTEXT *ctx, NNTP_DATA *nntp_data) ++{ ++ char buf[LONG_STRING]; ++ int count = 0; ++ ++ if (nntp_data->nserv->check_time + NewsPollTimeout > time (NULL)) ++ return 0; ++ ++ buf[0] = 0; ++ if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_check_mailbox()", buf); ++#endif ++ return -1; ++ } ++ if (mutt_strncmp ("211", buf, 3)) ++ { ++ buf[0] = 0; ++ if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_check_mailbox()", buf); ++#endif ++ return -1; ++ } ++ } ++ if (!mutt_strncmp ("211", buf, 3)) ++ { ++ int first; ++ int last; ++ ++ sscanf (buf + 4, "%d %d %d", &count, &first, &last); ++ nntp_data->firstMessage = first; ++ nntp_data->lastMessage = last; ++ if (ctx && last > nntp_data->lastLoaded) ++ { ++ nntp_fetch_headers (ctx, nntp_data->lastLoaded + 1, last); ++ time (&nntp_data->nserv->check_time); ++ return 1; ++ } ++ if (!last || (!nntp_data->rc && !nntp_data->lastCached)) ++ nntp_data->unread = count; ++ else ++ mutt_newsgroup_stat (nntp_data); ++ /* active was renumbered? */ ++ if (last < nntp_data->lastLoaded) ++ { ++ if (!nntp_data->max) ++ { ++ nntp_data->entries = safe_calloc (5, sizeof (NEWSRC_ENTRY)); ++ nntp_data->max = 5; ++ } ++ nntp_data->lastCached = 0; ++ nntp_data->num = 1; ++ nntp_data->entries[0].first = 1; ++ nntp_data->entries[0].last = 0; ++ } ++ } ++ ++ time (&nntp_data->nserv->check_time); ++ return 0; ++} ++ ++int nntp_check_mailbox (CONTEXT *ctx) ++{ ++ return _nntp_check_mailbox (ctx, (NNTP_DATA *)ctx->data); ++} ++ ++static int add_group (char *buf, void *serv) ++{ ++#define s ((NNTP_SERVER *) serv) ++ char group[LONG_STRING], mod, desc[HUGE_STRING]; ++ int first, last; ++ NNTP_DATA *nntp_data; ++ static int n = 0; ++ ++ _checked = n; /* _checked have N, where N = number of groups */ ++ if (!buf) /* at EOF must be zerouth */ ++ n = 0; ++ ++ if (!s || !buf) ++ return 0; ++ ++ *desc = 0; ++ sscanf (buf, "%s %d %d %c %[^\n]", group, &last, &first, &mod, desc); ++ if (!group) ++ return 0; ++ if ((nntp_data = (NNTP_DATA *) hash_find (s->newsgroups, group)) == NULL) ++ { ++ n++; ++ nntp_data = safe_calloc (1, sizeof (NNTP_DATA) + strlen (group) + 1); ++ nntp_data->group = (char *) nntp_data + sizeof (NNTP_DATA); ++ strcpy (nntp_data->group, group); ++ nntp_data->nserv = s; ++ if (s->newsgroups->nelem < s->newsgroups->curnelem * 2) ++ s->newsgroups = hash_resize (s->newsgroups, s->newsgroups->nelem * 2, 0); ++ hash_insert (s->newsgroups, nntp_data->group, nntp_data, 0); ++ nntp_add_to_list (s, nntp_data); ++ } ++ nntp_data->deleted = 0; ++ nntp_data->firstMessage = first; ++ nntp_data->lastMessage = last; ++ if (mod == 'y') ++ nntp_data->allowed = 1; ++ else ++ nntp_data->allowed = 0; ++ if (nntp_data->desc) ++ FREE (&nntp_data->desc); ++ if (*desc) ++ nntp_data->desc = safe_strdup (desc); ++ if (nntp_data->rc || nntp_data->lastCached) ++ mutt_newsgroup_stat (nntp_data); ++ else if (nntp_data->lastMessage && ++ nntp_data->firstMessage <= nntp_data->lastMessage) ++ nntp_data->unread = nntp_data->lastMessage - nntp_data->firstMessage + 1; ++ else ++ nntp_data->unread = 0; ++ ++ return 0; ++#undef s ++} ++ ++int nntp_check_newgroups (NNTP_SERVER *serv, int force) ++{ ++ char buf[LONG_STRING]; ++ char msg[SHORT_STRING]; ++ NNTP_DATA nntp_data; ++ LIST *l; ++ LIST emp; ++ time_t now; ++ struct tm *t; ++ unsigned int count = 0; ++ unsigned int total = 0; ++ ++ if (!serv || !serv->newgroups_time) ++ return -1; ++ ++ if (nntp_open_connection (serv) < 0) ++ return -1; ++ ++ /* check subscribed groups for new news */ ++ if (option (OPTSHOWNEWNEWS)) ++ { ++ mutt_message _("Checking for new messages..."); ++ for (l = serv->list; l; l = l->next) ++ { ++ serv->check_time = 0; /* really check! */ ++ if (l->data && ((NNTP_DATA *) l->data)->subscribed) ++ _nntp_check_mailbox (NULL, (NNTP_DATA *) l->data); ++ } ++ } ++ else if (!force) ++ return 0; ++ ++ mutt_message _("Checking for new newsgroups..."); ++ now = serv->newgroups_time; ++ time (&serv->newgroups_time); ++ t = gmtime (&now); ++ snprintf (buf, sizeof (buf), "NEWGROUPS %02d%02d%02d %02d%02d%02d GMT\r\n", ++ (t->tm_year % 100), t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, ++ t->tm_sec); ++ nntp_data.nserv = serv; ++ if (Context && Context->magic == M_NNTP) ++ nntp_data.group = ((NNTP_DATA *)Context->data)->group; ++ else ++ nntp_data.group = NULL; ++ l = serv->tail; ++ if (mutt_nntp_fetch (&nntp_data, buf, _("Adding new newsgroups..."), ++ add_group, serv, 0) != 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_check_newgroups()", buf); ++#endif ++ return -1; ++ } ++ ++ strfcpy (msg, _("Loading descriptions..."), sizeof (msg)); ++ mutt_message (msg); ++ if (l) ++ emp.next = l->next; ++ else ++ emp.next = serv->list; ++ l = &emp; ++ while (l->next) ++ { ++ l = l->next; ++ ((NNTP_DATA *) l->data)->new = 1; ++ total++; ++ } ++ l = &emp; ++ while (l->next) ++ { ++ l = l->next; ++ nntp_get_desc ((NNTP_DATA *) l->data, ((NNTP_DATA *) l->data)->group, NULL); ++ count++; ++ if (ReadInc && (count % ReadInc == 0)) ++ mutt_message ("%s %d/%d", msg, count, total); ++ } ++ if (emp.next) ++ nntp_save_cache_index (serv); ++ mutt_clear_error (); ++ return _checked; ++} ++ ++/* Load list of all newsgroups from cache ALL */ ++int nntp_get_cache_all (NNTP_SERVER *serv) ++{ ++ char buf[HUGE_STRING]; ++ FILE *f; ++ ++ nntp_cache_expand (buf, serv->cache); ++ if ((f = safe_fopen (buf, "r"))) ++ { ++ int i = 0; ++ ++ while (fgets (buf, sizeof(buf), f) != NULL) ++ { ++ if (ReadInc && (i % ReadInc == 0)) ++ mutt_message (_("Loading list from cache... %d"), i); ++ add_group (buf, serv); ++ i++; ++ } ++ add_group (NULL, NULL); ++ fclose (f); ++ mutt_clear_error (); ++ return 0; ++ } ++ else ++ { ++ FREE (&serv->cache); ++ return -1; ++ } ++} ++ ++/* Load list of all newsgroups from active */ ++int nntp_get_active (NNTP_SERVER *serv) ++{ ++ char msg[SHORT_STRING]; ++ NNTP_DATA nntp_data; ++ LIST *tmp; ++ ++ if (nntp_open_connection (serv) < 0) ++ return -1; ++ ++ snprintf (msg, sizeof(msg), _("Loading list of all newsgroups on server %s..."), ++ serv->conn->account.host); ++ mutt_message (msg); ++ time (&serv->newgroups_time); ++ nntp_data.nserv = serv; ++ nntp_data.group = NULL; ++ ++ if (mutt_nntp_fetch (&nntp_data, "LIST\r\n", msg, add_group, serv, 0) < 0) ++ { ++#ifdef DEBUG ++ nntp_error ("nntp_get_active()", "LIST\r\n"); ++#endif ++ return -1; ++ } ++ ++ strfcpy (msg, _("Loading descriptions..."), sizeof (msg)); ++ mutt_message (msg); ++ nntp_get_desc (&nntp_data, "*", msg); ++ ++ for (tmp = serv->list; tmp; tmp = tmp->next) ++ { ++ NNTP_DATA *data = (NNTP_DATA *)tmp->data; ++ ++ if (data && data->deleted && !data->rc) ++ { ++ nntp_delete_cache (data); ++ hash_delete (serv->newsgroups, data->group, NULL, nntp_delete_data); ++ tmp->data = NULL; ++ } ++ } ++ nntp_save_cache_index (serv); ++ ++ mutt_clear_error (); ++ return _checked; ++} ++ ++/* ++ * returns -1 if error ocurred while retrieving header, ++ * number of articles which ones exist in context on success. ++ */ ++int nntp_check_msgid (CONTEXT *ctx, const char *msgid) ++{ ++ int ret; ++ ++ /* if msgid is already in context, don't reload them */ ++ if (hash_find (ctx->id_hash, msgid)) ++ return 1; ++ if (ctx->msgcount == ctx->hdrmax) ++ mx_alloc_memory (ctx); ++ ctx->hdrs[ctx->msgcount] = mutt_new_header (); ++ ctx->hdrs[ctx->msgcount]->index = ctx->msgcount; ++ ++ mutt_message (_("Fetching %s from server..."), msgid); ++ ret = nntp_read_header (ctx, msgid, 0); ++ /* since nntp_read_header() may set read flag, we must reset it */ ++ ctx->hdrs[ctx->msgcount]->read = 0; ++ if (ret != 0) ++ mutt_free_header (&ctx->hdrs[ctx->msgcount]); ++ else ++ { ++ ctx->msgcount++; ++ mx_update_context (ctx, 1); ++ ctx->changed = 1; ++ } ++ return ret; ++} ++ ++typedef struct ++{ ++ CONTEXT *ctx; ++ unsigned int num; ++ unsigned int max; ++ unsigned int *child; ++} CHILD_CONTEXT; ++ ++static int check_children (char *s, void *c) ++{ ++#define cc ((CHILD_CONTEXT *) c) ++ unsigned int i, n; ++ ++ if (!s || (n = atoi (s)) == 0) ++ return 0; ++ for (i = 0; i < cc->ctx->msgcount; i++) ++ if (cc->ctx->hdrs[i]->article_num == n) ++ return 0; ++ if (cc->num >= cc->max) ++ safe_realloc (&cc->child, sizeof (unsigned int) * (cc->max += 25)); ++ cc->child[cc->num++] = n; ++ ++ return 0; ++#undef cc ++} ++ ++int nntp_check_children (CONTEXT *ctx, const char *msgid) ++{ ++ NNTP_DATA *nntp_data = (NNTP_DATA *)ctx->data; ++ char buf[STRING]; ++ int i, ret = 0, tmp = 0; ++ CHILD_CONTEXT cc; ++ ++ if (!nntp_data || !nntp_data->nserv || !nntp_data->nserv->conn || ++ !nntp_data->nserv->conn->account.host) ++ return -1; ++ if (nntp_data->firstMessage > nntp_data->lastLoaded) ++ return 0; ++ if (!nntp_data->nserv->hasXPAT) ++ { ++ mutt_error (_("Server %s does not support this operation!"), ++ nntp_data->nserv->conn->account.host); ++ return -1; ++ } ++ ++ snprintf (buf, sizeof (buf), "XPAT References %d-%d *%s*\r\n", ++ nntp_data->firstMessage, nntp_data->lastLoaded, msgid); ++ ++ cc.ctx = ctx; ++ cc.num = 0; ++ cc.max = 25; ++ cc.child = safe_malloc (sizeof (unsigned int) * 25); ++ if (mutt_nntp_fetch (nntp_data, buf, NULL, check_children, &cc, 0)) ++ { ++ FREE (&cc.child); ++ return -1; ++ } ++ /* dont try to read the xover cache. check_children() already ++ * made sure that we dont have the article, so we need to visit ++ * the server. Reading the cache at this point is also bad ++ * because it would duplicate messages */ ++ if (option (OPTNEWSCACHE)) ++ { ++ tmp++; ++ unset_option (OPTNEWSCACHE); ++ } ++ for (i = 0; i < cc.num; i++) ++ { ++ if ((ret = nntp_fetch_headers (ctx, cc.child[i], cc.child[i]))) ++ break; ++ if (ctx->msgcount && ++ ctx->hdrs[ctx->msgcount - 1]->article_num == cc.child[i]) ++ ctx->hdrs[ctx->msgcount - 1]->read = 0; ++ } ++ if (tmp) ++ set_option (OPTNEWSCACHE); ++ FREE (&cc.child); ++ return ret; ++} +diff -udprP mutt-1.5.20.orig/nntp.h mutt-1.5.20/nntp.h +--- mutt-1.5.20.orig/nntp.h 1970-01-01 03:00:00.000000000 +0300 ++++ mutt-1.5.20/nntp.h 2009-06-15 21:05:24.000000000 +0300 +@@ -0,0 +1,136 @@ ++/* ++ * Copyright (C) 1998 Brandon Long ++ * Copyright (C) 1999 Andrej Gritsenko ++ * Copyright (C) 2000-2007 Vsevolod Volkov ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef _NNTP_H_ ++#define _NNTP_H_ 1 ++ ++#include "mutt_socket.h" ++#include "mailbox.h" ++ ++#include ++ ++#define NNTP_PORT 119 ++#define NNTP_SSL_PORT 563 ++ ++/* number of entries in the hash table */ ++#define NNTP_CACHE_LEN 10 ++ ++enum ++{ ++ NNTP_NONE = 0, ++ NNTP_OK, ++ NNTP_BYE ++}; ++ ++typedef struct ++{ ++ int first; ++ int last; ++} NEWSRC_ENTRY; ++ ++typedef struct ++{ ++ unsigned int hasXPAT : 1; ++ unsigned int hasXGTITLE : 1; ++ unsigned int hasXOVER : 1; ++ unsigned int hasLISTGROUP : 1; ++ unsigned int status : 3; ++ char *newsrc; ++ char *cache; ++ int stat; ++ off_t size; ++ time_t mtime; ++ time_t newgroups_time; ++ time_t check_time; ++ HASH *newsgroups; ++ LIST *list; /* list of newsgroups */ ++ LIST *tail; /* last entry of list */ ++ CONNECTION *conn; ++} NNTP_SERVER; ++ ++typedef struct ++{ ++ unsigned int index; ++ char *path; ++} NNTP_CACHE; ++ ++typedef struct ++{ ++ NEWSRC_ENTRY *entries; ++ unsigned int num; /* number of used entries */ ++ unsigned int max; /* number of allocated entries */ ++ unsigned int unread; ++ unsigned int firstMessage; ++ unsigned int lastMessage; ++ unsigned int lastLoaded; ++ unsigned int lastCached; ++ unsigned int subscribed : 1; ++ unsigned int rc : 1; ++ unsigned int new : 1; ++ unsigned int allowed : 1; ++ unsigned int deleted : 1; ++ char *group; ++ char *desc; ++ char *cache; ++ NNTP_SERVER *nserv; ++ NNTP_CACHE acache[NNTP_CACHE_LEN]; ++} NNTP_DATA; ++ ++/* internal functions */ ++int nntp_get_active (NNTP_SERVER *); ++int nntp_get_cache_all (NNTP_SERVER *); ++int nntp_save_cache_index (NNTP_SERVER *); ++int nntp_check_newgroups (NNTP_SERVER *, int); ++int nntp_save_cache_group (CONTEXT *); ++int nntp_parse_url (const char *, ACCOUNT *, char *, size_t); ++void newsrc_gen_entries (CONTEXT *); ++void nntp_get_status (CONTEXT *, HEADER *, char *, int); ++void mutt_newsgroup_stat (NNTP_DATA *); ++void nntp_delete_cache (NNTP_DATA *); ++void nntp_add_to_list (NNTP_SERVER *, NNTP_DATA *); ++void nntp_cache_expand (char *, const char *); ++void nntp_delete_data (void *); ++ ++/* exposed interface */ ++NNTP_SERVER *mutt_select_newsserver (char *); ++NNTP_DATA *mutt_newsgroup_subscribe (NNTP_SERVER *, char *); ++NNTP_DATA *mutt_newsgroup_unsubscribe (NNTP_SERVER *, char *); ++NNTP_DATA *mutt_newsgroup_catchup (NNTP_SERVER *, char *); ++NNTP_DATA *mutt_newsgroup_uncatchup (NNTP_SERVER *, char *); ++void nntp_clear_cacheindex (NNTP_SERVER *); ++int mutt_newsrc_update (NNTP_SERVER *); ++int nntp_open_mailbox (CONTEXT *); ++int nntp_sync_mailbox (CONTEXT *); ++int nntp_check_mailbox (CONTEXT *); ++int nntp_close_mailbox (CONTEXT *); ++int nntp_fastclose_mailbox (CONTEXT *); ++int nntp_fetch_message (MESSAGE *, CONTEXT *, int); ++int nntp_post (const char *); ++int nntp_check_msgid (CONTEXT *, const char *); ++int nntp_check_children (CONTEXT *, const char *); ++void nntp_buffy (char *); ++void nntp_expand_path (char *, size_t, ACCOUNT *); ++void nntp_logout_all (); ++const char *nntp_format_str (char *, size_t, size_t, char, const char *, const char *, ++ const char *, const char *, unsigned long, format_flag); ++ ++NNTP_SERVER *CurrentNewsSrv INITVAL (NULL); ++ ++#endif /* _NNTP_H_ */ +diff -udprP mutt-1.5.20.orig/pager.c mutt-1.5.20/pager.c +--- mutt-1.5.20.orig/pager.c 2009-06-03 23:48:31.000000000 +0300 ++++ mutt-1.5.20/pager.c 2009-06-15 21:05:24.000000000 +0300 +@@ -1059,6 +1059,11 @@ fill_buffer (FILE *f, LOFF_T *last_pos, + return b_read; + } + ++#ifdef USE_NNTP ++#include "mx.h" ++#include "nntp.h" ++#endif ++ + + static int format_line (struct line_t **lineInfo, int n, unsigned char *buf, + int flags, ansi_attr *pa, int cnt, +@@ -1512,6 +1517,16 @@ static struct mapping_t PagerHelpExtra[] + { NULL, 0 } + }; + ++#ifdef USE_NNTP ++static struct mapping_t PagerNewsHelpExtra[] = { ++ { N_("Post"), OP_POST }, ++ { N_("Followup"), OP_FOLLOWUP }, ++ { N_("Del"), OP_DELETE }, ++ { N_("Next"), OP_MAIN_NEXT_UNDELETED }, ++ { NULL, 0 } ++}; ++#endif ++ + + + /* This pager is actually not so simple as it once was. It now operates in +@@ -1553,6 +1568,10 @@ mutt_pager (const char *banner, const ch + int old_PagerIndexLines; /* some people want to resize it + * while inside the pager... */ + ++#ifdef USE_NNTP ++ char *followup_to; ++#endif ++ + if (!(flags & M_SHOWCOLOR)) + flags |= M_SHOWFLAT; + +@@ -1592,7 +1611,11 @@ mutt_pager (const char *banner, const ch + if (IsHeader (extra)) + { + strfcpy (tmphelp, helpstr, sizeof (tmphelp)); +- mutt_compile_help (buffer, sizeof (buffer), MENU_PAGER, PagerHelpExtra); ++ mutt_compile_help (buffer, sizeof (buffer), MENU_PAGER, ++#ifdef USE_NNTP ++ (Context && (Context->magic == M_NNTP)) ? PagerNewsHelpExtra : ++#endif ++ PagerHelpExtra); + snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer); + } + if (!InHelp) +@@ -2465,6 +2488,15 @@ search_next: + CHECK_READONLY; + CHECK_ACL(M_ACL_WRITE, "flag message"); + ++#ifdef USE_NNTP ++ if (Context->magic == M_NNTP) ++ { ++ mutt_flushinp (); ++ mutt_error _("Can't change 'important' flag on NNTP server."); ++ break; ++ } ++#endif ++ + mutt_set_flag (Context, extra->hdr, M_FLAG, !extra->hdr->flagged); + redraw = REDRAW_STATUS | REDRAW_INDEX; + if (option (OPTRESOLVE)) +@@ -2498,6 +2530,60 @@ search_next: + redraw = REDRAW_FULL; + break; + ++#ifdef USE_NNTP ++ case OP_POST: ++ CHECK_MODE(IsHeader (extra) && !IsAttach (extra)); ++ CHECK_ATTACH; ++ if (extra->ctx && extra->ctx->magic == M_NNTP && ++ !((NNTP_DATA *)extra->ctx->data)->allowed && ++ query_quadoption (OPT_TOMODERATED,_("Posting to this group not allowed, may be moderated. Continue?")) != M_YES) ++ break; ++ ci_send_message (SENDNEWS, NULL, NULL, extra->ctx, NULL); ++ redraw = REDRAW_FULL; ++ break; ++ ++ case OP_FORWARD_TO_GROUP: ++ CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra)); ++ CHECK_ATTACH; ++ if (extra->ctx && extra->ctx->magic == M_NNTP && ++ !((NNTP_DATA *)extra->ctx->data)->allowed && ++ query_quadoption (OPT_TOMODERATED,_("Posting to this group not allowed, may be moderated. Continue?")) != M_YES) ++ break; ++ if (IsMsgAttach (extra)) ++ mutt_attach_forward (extra->fp, extra->hdr, extra->idx, ++ extra->idxlen, extra->bdy, SENDNEWS); ++ else ++ ci_send_message (SENDNEWS|SENDFORWARD, NULL, NULL, extra->ctx, extra->hdr); ++ redraw = REDRAW_FULL; ++ break; ++ ++ case OP_FOLLOWUP: ++ CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra)); ++ CHECK_ATTACH; ++ ++ if (IsMsgAttach (extra)) ++ followup_to = extra->bdy->hdr->env->followup_to; ++ else ++ followup_to = extra->hdr->env->followup_to; ++ ++ if (!followup_to || mutt_strcasecmp (followup_to, "poster") || ++ query_quadoption (OPT_FOLLOWUPTOPOSTER,_("Reply by mail as poster prefers?")) != M_YES) ++ { ++ if (extra->ctx && extra->ctx->magic == M_NNTP && ++ !((NNTP_DATA *)extra->ctx->data)->allowed && ++ query_quadoption (OPT_TOMODERATED,_("Posting to this group not allowed, may be moderated. Continue?")) != M_YES) ++ break; ++ if (IsMsgAttach (extra)) ++ mutt_attach_reply (extra->fp, extra->hdr, extra->idx, ++ extra->idxlen, extra->bdy, SENDNEWS|SENDREPLY); ++ else ++ ci_send_message (SENDNEWS|SENDREPLY, NULL, NULL, ++ extra->ctx, extra->hdr); ++ redraw = REDRAW_FULL; ++ break; ++ } ++#endif ++ + case OP_REPLY: + CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra)); + CHECK_ATTACH; +@@ -2544,7 +2630,7 @@ search_next: + CHECK_ATTACH; + if (IsMsgAttach (extra)) + mutt_attach_forward (extra->fp, extra->hdr, extra->idx, +- extra->idxlen, extra->bdy); ++ extra->idxlen, extra->bdy, 0); + else + ci_send_message (SENDFORWARD, NULL, NULL, extra->ctx, extra->hdr); + redraw = REDRAW_FULL; +diff -udprP mutt-1.5.20.orig/parse.c mutt-1.5.20/parse.c +--- mutt-1.5.20.orig/parse.c 2009-06-01 19:29:32.000000000 +0300 ++++ mutt-1.5.20/parse.c 2009-06-15 21:05:24.000000000 +0300 +@@ -89,7 +89,7 @@ char *mutt_read_rfc822_line (FILE *f, ch + /* not reached */ + } + +-static LIST *mutt_parse_references (char *s, int in_reply_to) ++LIST *mutt_parse_references (char *s, int in_reply_to) + { + LIST *t, *lst = NULL; + char *m; +@@ -1067,6 +1067,17 @@ int mutt_parse_rfc822_line (ENVELOPE *e, + e->from = rfc822_parse_adrlist (e->from, p); + matched = 1; + } ++#ifdef USE_NNTP ++ else if (!mutt_strcasecmp (line+1, "ollowup-to")) ++ { ++ if (!e->followup_to) ++ { ++ mutt_remove_trailing_ws (p); ++ e->followup_to = safe_strdup (mutt_skip_whitespace (p)); ++ } ++ matched = 1; ++ } ++#endif + break; + + case 'i': +@@ -1149,6 +1160,27 @@ int mutt_parse_rfc822_line (ENVELOPE *e, + } + break; + ++#ifdef USE_NNTP ++ case 'n': ++ if (!mutt_strcasecmp (line + 1, "ewsgroups")) ++ { ++ FREE (&e->newsgroups); ++ mutt_remove_trailing_ws (p); ++ e->newsgroups = safe_strdup (mutt_skip_whitespace (p)); ++ matched = 1; ++ } ++ break; ++#endif ++ ++ case 'o': ++ /* field `Organization:' saves only for pager! */ ++ if (!mutt_strcasecmp (line + 1, "rganization")) ++ { ++ if (!e->organization && mutt_strcasecmp (p, "unknown")) ++ e->organization = safe_strdup (p); ++ } ++ break; ++ + case 'r': + if (!ascii_strcasecmp (line + 1, "eferences")) + { +@@ -1257,6 +1289,20 @@ int mutt_parse_rfc822_line (ENVELOPE *e, + e->x_label = safe_strdup(p); + matched = 1; + } ++#ifdef USE_NNTP ++ else if (!mutt_strcasecmp (line + 1, "-comment-to")) ++ { ++ if (!e->x_comment_to) ++ e->x_comment_to = safe_strdup (p); ++ matched = 1; ++ } ++ else if (!mutt_strcasecmp (line + 1, "ref")) ++ { ++ if (!e->xref) ++ e->xref = safe_strdup (p); ++ matched = 1; ++ } ++#endif + + default: + break; +diff -udprP mutt-1.5.20.orig/pattern.c mutt-1.5.20/pattern.c +--- mutt-1.5.20.orig/pattern.c 2009-06-03 23:48:31.000000000 +0300 ++++ mutt-1.5.20/pattern.c 2009-06-15 21:05:24.000000000 +0300 +@@ -91,6 +91,9 @@ Flags[] = + { 'U', M_UNREAD, 0, NULL }, + { 'v', M_COLLAPSED, 0, NULL }, + { 'V', M_CRYPT_VERIFIED, 0, NULL }, ++#ifdef USE_NNTP ++ { 'w', M_NEWSGROUPS, 0, eat_regexp }, ++#endif + { 'x', M_REFERENCE, 0, eat_regexp }, + { 'X', M_MIMEATTACH, 0, eat_range }, + { 'y', M_XLABEL, 0, eat_regexp }, +@@ -1204,6 +1207,10 @@ mutt_pattern_exec (struct pattern_t *pat + } + case M_UNREFERENCED: + return (pat->not ^ (h->thread && !h->thread->child)); ++#ifdef USE_NNTP ++ case M_NEWSGROUPS: ++ return (pat->not ^ (h->env->newsgroups && patmatch (pat, h->env->newsgroups) == 0)); ++#endif + } + mutt_error (_("error: unknown op %d (report this error)."), pat->op); + return (-1); +@@ -1285,6 +1292,7 @@ int mutt_pattern_func (int op, char *pro + progress_t progress; + + strfcpy (buf, NONULL (Context->pattern), sizeof (buf)); ++ if (prompt || op != M_LIMIT) + if (mutt_get_field (prompt, buf, sizeof (buf), M_PATTERN | M_CLEAR) != 0 || !buf[0]) + return (-1); + +diff -udprP mutt-1.5.20.orig/po/POTFILES.in mutt-1.5.20/po/POTFILES.in +--- mutt-1.5.20.orig/po/POTFILES.in 2008-11-11 21:55:47.000000000 +0200 ++++ mutt-1.5.20/po/POTFILES.in 2009-06-15 21:05:24.000000000 +0300 +@@ -46,6 +46,8 @@ mutt_ssl_gnutls.c + mutt_tunnel.c + muttlib.c + mx.c ++newsrc.c ++nntp.c + pager.c + parse.c + pattern.c +diff -udprP mutt-1.5.20.orig/postpone.c mutt-1.5.20/postpone.c +--- mutt-1.5.20.orig/postpone.c 2009-06-14 00:28:37.000000000 +0300 ++++ mutt-1.5.20/postpone.c 2009-06-15 21:05:24.000000000 +0300 +@@ -124,15 +124,26 @@ int mutt_num_postponed (int force) + + if (LastModify < st.st_mtime) + { ++#ifdef USE_NNTP ++ int optnews = option (OPTNEWS); ++#endif + LastModify = st.st_mtime; + + if (access (Postponed, R_OK | F_OK) != 0) + return (PostCount = 0); ++#ifdef USE_NNTP ++ if (optnews) ++ unset_option (OPTNEWS); ++#endif + if (mx_open_mailbox (Postponed, M_NOSORT | M_QUIET, &ctx) == NULL) + PostCount = 0; + else + PostCount = ctx.msgcount; + mx_fastclose_mailbox (&ctx); ++#ifdef USE_NNTP ++ if (optnews) ++ set_option (OPTNEWS); ++#endif + } + + return (PostCount); +diff -udprP mutt-1.5.20.orig/protos.h mutt-1.5.20/protos.h +--- mutt-1.5.20.orig/protos.h 2009-06-13 02:38:52.000000000 +0300 ++++ mutt-1.5.20/protos.h 2009-06-15 21:05:24.000000000 +0300 +@@ -115,6 +115,7 @@ HASH *mutt_make_id_hash (CONTEXT *); + HASH *mutt_make_subj_hash (CONTEXT *); + + LIST *mutt_make_references(ENVELOPE *e); ++LIST *mutt_parse_references (char *, int); + + char *mutt_read_rfc822_line (FILE *, char *, size_t *); + ENVELOPE *mutt_read_rfc822_header (FILE *, HEADER *, short, short); +diff -udprP mutt-1.5.20.orig/recvattach.c mutt-1.5.20/recvattach.c +--- mutt-1.5.20.orig/recvattach.c 2009-05-19 03:11:35.000000000 +0300 ++++ mutt-1.5.20/recvattach.c 2009-06-15 21:05:24.000000000 +0300 +@@ -1110,6 +1110,15 @@ void mutt_view_attachments (HEADER *hdr) + } + #endif + ++#ifdef USE_NNTP ++ if (Context->magic == M_NNTP) ++ { ++ mutt_flushinp (); ++ mutt_error _("Can't delete attachment from newsserver."); ++ break; ++ } ++#endif ++ + if (WithCrypto && hdr->security & ~PGP_TRADITIONAL_CHECKED) + { + mutt_message _( +@@ -1201,10 +1210,33 @@ void mutt_view_attachments (HEADER *hdr) + case OP_FORWARD_MESSAGE: + CHECK_ATTACH; + mutt_attach_forward (fp, hdr, idx, idxlen, +- menu->tagprefix ? NULL : idx[menu->current]->content); ++ menu->tagprefix ? NULL : idx[menu->current]->content, 0); + menu->redraw = REDRAW_FULL; + break; + ++#ifdef USE_NNTP ++ case OP_FORWARD_TO_GROUP: ++ CHECK_ATTACH; ++ mutt_attach_forward (fp, hdr, idx, idxlen, ++ menu->tagprefix ? NULL : idx[menu->current]->content, SENDNEWS); ++ menu->redraw = REDRAW_FULL; ++ break; ++ ++ case OP_FOLLOWUP: ++ CHECK_ATTACH; ++ ++ if (!idx[menu->current]->content->hdr->env->followup_to || ++ mutt_strcasecmp (idx[menu->current]->content->hdr->env->followup_to, "poster") || ++ query_quadoption (OPT_FOLLOWUPTOPOSTER,_("Reply by mail as poster prefers?")) != M_YES) ++ { ++ mutt_attach_reply (fp, hdr, idx, idxlen, ++ menu->tagprefix ? NULL : idx[menu->current]->content, ++ SENDNEWS|SENDREPLY); ++ menu->redraw = REDRAW_FULL; ++ break; ++ } ++#endif ++ + case OP_REPLY: + case OP_GROUP_REPLY: + case OP_LIST_REPLY: +diff -udprP mutt-1.5.20.orig/recvcmd.c mutt-1.5.20/recvcmd.c +--- mutt-1.5.20.orig/recvcmd.c 2009-06-12 20:24:17.000000000 +0300 ++++ mutt-1.5.20/recvcmd.c 2009-06-15 21:05:24.000000000 +0300 +@@ -401,7 +401,7 @@ static BODY ** copy_problematic_attachme + static void attach_forward_bodies (FILE * fp, HEADER * hdr, + ATTACHPTR ** idx, short idxlen, + BODY * cur, +- short nattach) ++ short nattach, int flags) + { + short i; + short mime_fwd_all = 0; +@@ -547,7 +547,7 @@ _("Can't decode all tagged attachments. + tmpfp = NULL; + + /* now that we have the template, send it. */ +- ci_send_message (0, tmphdr, tmpbody, NULL, parent); ++ ci_send_message (flags, tmphdr, tmpbody, NULL, parent); + return; + + bail: +@@ -574,7 +574,7 @@ _("Can't decode all tagged attachments. + */ + + static void attach_forward_msgs (FILE * fp, HEADER * hdr, +- ATTACHPTR ** idx, short idxlen, BODY * cur) ++ ATTACHPTR ** idx, short idxlen, BODY * cur, int flags) + { + HEADER *curhdr = NULL; + HEADER *tmphdr; +@@ -679,23 +679,23 @@ static void attach_forward_msgs (FILE * + else + mutt_free_header (&tmphdr); + +- ci_send_message (0, tmphdr, *tmpbody ? tmpbody : NULL, ++ ci_send_message (flags, tmphdr, *tmpbody ? tmpbody : NULL, + NULL, curhdr); + + } + + void mutt_attach_forward (FILE * fp, HEADER * hdr, +- ATTACHPTR ** idx, short idxlen, BODY * cur) ++ ATTACHPTR ** idx, short idxlen, BODY * cur, int flags) + { + short nattach; + + + if (check_all_msg (idx, idxlen, cur, 0) == 0) +- attach_forward_msgs (fp, hdr, idx, idxlen, cur); ++ attach_forward_msgs (fp, hdr, idx, idxlen, cur, flags); + else + { + nattach = count_tagged (idx, idxlen); +- attach_forward_bodies (fp, hdr, idx, idxlen, cur, nattach); ++ attach_forward_bodies (fp, hdr, idx, idxlen, cur, nattach, flags); + } + } + +@@ -753,28 +753,40 @@ attach_reply_envelope_defaults (ENVELOPE + return -1; + } + +- if (parent) ++#ifdef USE_NNTP ++ if ((flags & SENDNEWS)) + { +- if (mutt_fetch_recips (env, curenv, flags) == -1) +- return -1; ++ /* in case followup set Newsgroups: with Followup-To: if it present */ ++ if (!env->newsgroups && curenv && ++ mutt_strcasecmp (curenv->followup_to, "poster")) ++ env->newsgroups = safe_strdup (curenv->followup_to); + } + else ++#endif + { +- for (i = 0; i < idxlen; i++) ++ if (parent) + { +- if (idx[i]->content->tagged +- && mutt_fetch_recips (env, idx[i]->content->hdr->env, flags) == -1) ++ if (mutt_fetch_recips (env, curenv, flags) == -1) + return -1; + } ++ else ++ { ++ for (i = 0; i < idxlen; i++) ++ { ++ if (idx[i]->content->tagged ++ && mutt_fetch_recips (env, idx[i]->content->hdr->env, flags) == -1) ++ return -1; ++ } ++ } ++ ++ if ((flags & SENDLISTREPLY) && !env->to) ++ { ++ mutt_error _("No mailing lists found!"); ++ return (-1); ++ } ++ ++ mutt_fix_reply_recipients (env); + } +- +- if ((flags & SENDLISTREPLY) && !env->to) +- { +- mutt_error _("No mailing lists found!"); +- return (-1); +- } +- +- mutt_fix_reply_recipients (env); + mutt_make_misc_reply_headers (env, Context, curhdr, curenv); + + if (parent) +@@ -835,6 +847,13 @@ void mutt_attach_reply (FILE * fp, HEADE + char prefix[SHORT_STRING]; + int rc; + ++#ifdef USE_NNTP ++ if (flags & SENDNEWS) ++ set_option (OPTNEWSSEND); ++ else ++ unset_option (OPTNEWSSEND); ++#endif ++ + if (check_all_msg (idx, idxlen, cur, 0) == -1) + { + nattach = count_tagged (idx, idxlen); +diff -udprP mutt-1.5.20.orig/rfc1524.c mutt-1.5.20/rfc1524.c +--- mutt-1.5.20.orig/rfc1524.c 2009-05-30 20:20:08.000000000 +0300 ++++ mutt-1.5.20/rfc1524.c 2009-06-15 21:05:24.000000000 +0300 +@@ -569,13 +569,13 @@ int rfc1524_expand_filename (char *namet + * safe_fopen(). + */ + +-int mutt_rename_file (char *oldfile, char *newfile) ++int _mutt_rename_file (char *oldfile, char *newfile, int overwrite) + { + FILE *ofp, *nfp; + + if (access (oldfile, F_OK) != 0) + return 1; +- if (access (newfile, F_OK) == 0) ++ if (!overwrite && access (newfile, F_OK) == 0) + return 2; + if ((ofp = fopen (oldfile,"r")) == NULL) + return 3; +@@ -590,3 +590,8 @@ int mutt_rename_file (char *oldfile, cha + mutt_unlink (oldfile); + return 0; + } ++ ++int mutt_rename_file (char *oldfile, char *newfile) ++{ ++ return _mutt_rename_file (oldfile, newfile, 0); ++} +diff -udprP mutt-1.5.20.orig/rfc1524.h mutt-1.5.20/rfc1524.h +--- mutt-1.5.20.orig/rfc1524.h 2008-11-11 21:55:47.000000000 +0200 ++++ mutt-1.5.20/rfc1524.h 2009-06-15 21:05:24.000000000 +0300 +@@ -40,5 +40,6 @@ int rfc1524_expand_command (BODY *, char + int rfc1524_expand_filename (char *, char *, char *, size_t); + int rfc1524_mailcap_lookup (BODY *, char *, rfc1524_entry *, int); + int mutt_rename_file (char *, char *); ++int _mutt_rename_file (char *, char *, int); + + #endif /* _RFC1524_H */ +diff -udprP mutt-1.5.20.orig/send.c mutt-1.5.20/send.c +--- mutt-1.5.20.orig/send.c 2009-06-13 02:38:52.000000000 +0300 ++++ mutt-1.5.20/send.c 2009-06-15 21:13:13.000000000 +0300 +@@ -44,6 +44,11 @@ + #include + #include + ++#ifdef USE_NNTP ++#include "nntp.h" ++#include "mx.h" ++#endif ++ + #ifdef MIXMASTER + #include "remailer.h" + #endif +@@ -213,17 +218,51 @@ static int edit_address (ADDRESS **a, /* + return 0; + } + +-static int edit_envelope (ENVELOPE *en) ++static int edit_envelope (ENVELOPE *en, int flags) + { + char buf[HUGE_STRING]; + LIST *uh = UserHeader; + +- if (edit_address (&en->to, "To: ") == -1 || en->to == NULL) +- return (-1); +- if (option (OPTASKCC) && edit_address (&en->cc, "Cc: ") == -1) +- return (-1); +- if (option (OPTASKBCC) && edit_address (&en->bcc, "Bcc: ") == -1) +- return (-1); ++#ifdef USE_NNTP ++ if (option (OPTNEWSSEND)) ++ { ++ if (en->newsgroups) ++ strfcpy (buf, en->newsgroups, sizeof (buf)); ++ else ++ buf[0] = 0; ++ if (mutt_get_field ("Newsgroups: ", buf, sizeof (buf), 0) != 0) ++ return (-1); ++ FREE (&en->newsgroups); ++ en->newsgroups = safe_strdup (buf); ++ ++ if (en->followup_to) ++ strfcpy (buf, en->followup_to, sizeof (buf)); ++ else ++ buf[0] = 0; ++ if (option (OPTASKFOLLOWUP) && mutt_get_field ("Followup-To: ", buf, sizeof (buf), 0) != 0) ++ return (-1); ++ FREE (&en->followup_to); ++ en->followup_to = safe_strdup (buf); ++ ++ if (en->x_comment_to) ++ strfcpy (buf, en->x_comment_to, sizeof (buf)); ++ else ++ buf[0] = 0; ++ if (option (OPTXCOMMENTTO) && option (OPTASKXCOMMENTTO) && mutt_get_field ("X-Comment-To: ", buf, sizeof (buf), 0) != 0) ++ return (-1); ++ FREE (&en->x_comment_to); ++ en->x_comment_to = safe_strdup (buf); ++ } ++ else ++#endif ++ { ++ if (edit_address (&en->to, "To: ") == -1 || en->to == NULL) ++ return (-1); ++ if (option (OPTASKCC) && edit_address (&en->cc, "Cc: ") == -1) ++ return (-1); ++ if (option (OPTASKBCC) && edit_address (&en->bcc, "Bcc: ") == -1) ++ return (-1); ++ } + + if (en->subject) + { +@@ -259,6 +298,14 @@ static int edit_envelope (ENVELOPE *en) + return 0; + } + ++#ifdef USE_NNTP ++char *nntp_get_header (const char *s) ++{ ++ SKIPWS (s); ++ return safe_strdup (s); ++} ++#endif ++ + static void process_user_recips (ENVELOPE *env) + { + LIST *uh = UserHeader; +@@ -271,6 +318,14 @@ static void process_user_recips (ENVELOP + env->cc = rfc822_parse_adrlist (env->cc, uh->data + 3); + else if (ascii_strncasecmp ("bcc:", uh->data, 4) == 0) + env->bcc = rfc822_parse_adrlist (env->bcc, uh->data + 4); ++#ifdef USE_NNTP ++ else if (ascii_strncasecmp ("newsgroups:", uh->data, 11) == 0) ++ env->newsgroups = nntp_get_header (uh->data + 11); ++ else if (ascii_strncasecmp ("followup-to:", uh->data, 12) == 0) ++ env->followup_to = nntp_get_header (uh->data + 12); ++ else if (ascii_strncasecmp ("x-comment-to:", uh->data, 13) == 0) ++ env->x_comment_to = nntp_get_header (uh->data + 13); ++#endif + } + } + +@@ -309,6 +364,12 @@ static void process_user_header (ENVELOP + else if (ascii_strncasecmp ("to:", uh->data, 3) != 0 && + ascii_strncasecmp ("cc:", uh->data, 3) != 0 && + ascii_strncasecmp ("bcc:", uh->data, 4) != 0 && ++#ifdef USE_NNTP ++ ascii_strncasecmp ("newsgroups:", uh->data, 11) != 0 && ++ ascii_strncasecmp ("followup-to:", uh->data, 12) != 0 && ++ ascii_strncasecmp ("x-comment-to:", uh->data, 13) != 0 && ++#endif ++ ascii_strncasecmp ("supersedes:", uh->data, 11) != 0 && + ascii_strncasecmp ("subject:", uh->data, 8) != 0 && + ascii_strncasecmp ("return-path:", uh->data, 12) != 0) + { +@@ -657,6 +718,10 @@ void mutt_add_to_reference_headers (ENVE + if (pp) *pp = p; + if (qq) *qq = q; + ++#ifdef USE_NNTP ++ if (option (OPTNEWSSEND) && option (OPTXCOMMENTTO) && curenv->from) ++ env->x_comment_to = safe_strdup (mutt_get_name (curenv->from)); ++#endif + } + + static void +@@ -719,6 +784,16 @@ envelope_defaults (ENVELOPE *env, CONTEX + + if (flags & SENDREPLY) + { ++#ifdef USE_NNTP ++ if ((flags & SENDNEWS)) ++ { ++ /* in case followup set Newsgroups: with Followup-To: if it present */ ++ if (!env->newsgroups && curenv && ++ mutt_strcasecmp (curenv->followup_to, "poster")) ++ env->newsgroups = safe_strdup (curenv->followup_to); ++ } ++ else ++#endif + if (tag) + { + HEADER *h; +@@ -865,7 +940,18 @@ void mutt_set_followup_to (ENVELOPE *e) + * it hasn't already been set + */ + +- if (option (OPTFOLLOWUPTO) && !e->mail_followup_to) ++ if (!option (OPTFOLLOWUPTO)) ++ return; ++#ifdef USE_NNTP ++ if (option (OPTNEWSSEND)) ++ { ++ if (!e->followup_to && e->newsgroups && (strrchr (e->newsgroups, ','))) ++ e->followup_to = safe_strdup (e->newsgroups); ++ return; ++ } ++#endif ++ ++ if (!e->mail_followup_to) + { + if (mutt_is_list_cc (0, e->to, e->cc)) + { +@@ -1026,6 +1112,9 @@ static int send_message (HEADER *msg) + #endif + + #if USE_SMTP ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif /* USE_NNTP */ + if (SmtpUrl) + return mutt_smtp_send (msg->env->from, msg->env->to, msg->env->cc, + msg->env->bcc, tempfile, +@@ -1137,6 +1226,13 @@ ci_send_message (int flags, /* send mod + + int rv = -1; + ++#ifdef USE_NNTP ++ if (flags & SENDNEWS) ++ set_option (OPTNEWSSEND); ++ else ++ unset_option (OPTNEWSSEND); ++#endif ++ + if (!flags && !msg && quadoption (OPT_RECALL) != M_NO && + mutt_num_postponed (1)) + { +@@ -1167,6 +1263,22 @@ ci_send_message (int flags, /* send mod + { + if ((flags = mutt_get_postponed (ctx, msg, &cur, fcc, sizeof (fcc))) < 0) + goto cleanup; ++#ifdef USE_NNTP ++ /* ++ * If postponed message is a news article, it have ++ * a "Newsgroups:" header line, then set appropriate flag. ++ */ ++ if (msg->env->newsgroups) ++ { ++ flags |= SENDNEWS; ++ set_option (OPTNEWSSEND); ++ } ++ else ++ { ++ flags &= ~SENDNEWS; ++ unset_option (OPTNEWSSEND); ++ } ++#endif + } + + if (flags & (SENDPOSTPONED|SENDRESEND)) +@@ -1278,11 +1390,16 @@ ci_send_message (int flags, /* send mod + if (flags & SENDREPLY) + mutt_fix_reply_recipients (msg->env); + ++#ifdef USE_NNTP ++ if ((flags & SENDNEWS) && ctx && ctx->magic == M_NNTP && !msg->env->newsgroups) ++ msg->env->newsgroups = safe_strdup (((NNTP_DATA *)ctx->data)->group); ++#endif ++ + if (! (flags & SENDMAILX) && + ! (option (OPTAUTOEDIT) && option (OPTEDITHDRS)) && + ! ((flags & SENDREPLY) && option (OPTFASTREPLY))) + { +- if (edit_envelope (msg->env) == -1) ++ if (edit_envelope (msg->env, flags) == -1) + goto cleanup; + } + +@@ -1539,6 +1656,11 @@ main_loop: + if (i == -1) + { + /* abort */ ++#ifdef USE_NNTP ++ if (flags & SENDNEWS) ++ mutt_message _("Article not posted."); ++ else ++#endif + mutt_message _("Mail not sent."); + goto cleanup; + } +@@ -1571,6 +1693,9 @@ main_loop: + } + } + ++#ifdef USE_NNTP ++ if (!(flags & SENDNEWS)) ++#endif + if (!has_recips (msg->env->to) && !has_recips (msg->env->cc) && + !has_recips (msg->env->bcc)) + { +@@ -1604,6 +1729,19 @@ main_loop: + mutt_error _("No subject specified."); + goto main_loop; + } ++#ifdef USE_NNTP ++ if ((flags & SENDNEWS) && !msg->env->subject) ++ { ++ mutt_error _("No subject specified."); ++ goto main_loop; ++ } ++ ++ if ((flags & SENDNEWS) && !msg->env->newsgroups) ++ { ++ mutt_error _("No newsgroup specified."); ++ goto main_loop; ++ } ++#endif + + if (msg->content->next) + msg->content = mutt_make_multipart (msg->content); +@@ -1810,7 +1948,12 @@ full_fcc: + } + } + else if (!option (OPTNOCURSES) && ! (flags & SENDMAILX)) +- mutt_message (i == 0 ? _("Mail sent.") : _("Sending in background.")); ++ mutt_message (i != 0 ? _("Sending in background.") : ++#ifdef USE_NNTP ++ (flags & SENDNEWS) ? _("Article posted.") : _("Mail sent.")); ++#else ++ _("Mail sent.")); ++#endif + + if (WithCrypto && (msg->security & ENCRYPT)) + FREE (&pgpkeylist); +diff -udprP mutt-1.5.20.orig/sendlib.c mutt-1.5.20/sendlib.c +--- mutt-1.5.20.orig/sendlib.c 2009-06-14 18:46:11.000000000 +0300 ++++ mutt-1.5.20/sendlib.c 2009-06-15 21:51:17.000000000 +0300 +@@ -46,6 +46,10 @@ + #include + #include + ++#ifdef USE_NNTP ++#include "nntp.h" ++#endif ++ + #ifdef HAVE_SYSEXITS_H + #include + #else /* Make sure EX_OK is defined */ +@@ -1868,6 +1872,9 @@ int mutt_write_rfc822_header (FILE *fp, + mutt_write_address_list (env->to, fp, 4, 0); + } + else if (mode > 0) ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif + fputs ("To: \n", fp); + + if (env->cc) +@@ -1876,6 +1883,9 @@ int mutt_write_rfc822_header (FILE *fp, + mutt_write_address_list (env->cc, fp, 4, 0); + } + else if (mode > 0) ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif + fputs ("Cc: \n", fp); + + if (env->bcc) +@@ -1887,8 +1897,28 @@ int mutt_write_rfc822_header (FILE *fp, + } + } + else if (mode > 0) ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif + fputs ("Bcc: \n", fp); + ++#ifdef USE_NNTP ++ if (env->newsgroups) ++ fprintf (fp, "Newsgroups: %s\n", env->newsgroups); ++ else if (mode == 1 && option (OPTNEWSSEND)) ++ fputs ("Newsgroups: \n", fp); ++ ++ if (env->followup_to) ++ fprintf (fp, "Followup-To: %s\n", env->followup_to); ++ else if (mode == 1 && option (OPTNEWSSEND)) ++ fputs ("Followup-To: \n", fp); ++ ++ if (env->x_comment_to) ++ fprintf (fp, "X-Comment-To: %s\n", env->x_comment_to); ++ else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO)) ++ fputs ("X-Comment-To: \n", fp); ++#endif ++ + if (env->subject) + mutt_write_one_header (fp, "Subject", env->subject, NULL, 0, 0); + else if (mode == 1) +@@ -1907,6 +1937,9 @@ int mutt_write_rfc822_header (FILE *fp, + fputs ("Reply-To: \n", fp); + + if (env->mail_followup_to) ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++#endif + { + fputs ("Mail-Followup-To: ", fp); + mutt_write_address_list (env->mail_followup_to, fp, 18, 0); +@@ -2245,11 +2278,30 @@ mutt_invoke_sendmail (ADDRESS *from, /* + const char *msg, /* file containing message */ + int eightbit) /* message contains 8bit chars */ + { +- char *ps = NULL, *path = NULL, *s = safe_strdup (Sendmail), *childout = NULL; ++ char *ps = NULL, *path = NULL, *s = NULL, *childout = NULL; + char **args = NULL; + size_t argslen = 0, argsmax = 0; + int i; + ++#ifdef USE_NNTP ++ if (option (OPTNEWSSEND)) ++ { ++ char cmd[LONG_STRING]; ++ ++ mutt_FormatString (cmd, sizeof (cmd), 0, NONULL (Inews), nntp_format_str, 0, 0); ++ if (!*cmd) ++ { ++ i = nntp_post (msg); ++ unlink (msg); ++ return i; ++ } ++ ++ s = safe_strdup (cmd); ++ } ++ else ++#endif ++ s = safe_strdup (Sendmail); ++ + ps = s; + i = 0; + while ((ps = strtok (ps, " "))) +@@ -2273,6 +2325,10 @@ mutt_invoke_sendmail (ADDRESS *from, /* + i++; + } + ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND)) ++ { ++#endif + if (eightbit && option (OPTUSE8BITMIME)) + args = add_option (args, &argslen, &argsmax, "-B8BITMIME"); + +@@ -2304,6 +2360,9 @@ mutt_invoke_sendmail (ADDRESS *from, /* + args = add_args (args, &argslen, &argsmax, to); + args = add_args (args, &argslen, &argsmax, cc); + args = add_args (args, &argslen, &argsmax, bcc); ++#ifdef USE_NNTP ++ } ++#endif + + if (argslen == argsmax) + safe_realloc (&args, sizeof (char *) * (++argsmax)); +@@ -2384,6 +2443,9 @@ void mutt_prepare_envelope (ENVELOPE *en + rfc2047_encode_string (&env->x_label); + + if (env->subject) ++#ifdef USE_NNTP ++ if (!option (OPTNEWSSEND) || option (OPTMIMESUBJECT)) ++#endif + { + rfc2047_encode_string (&env->subject); + } +@@ -2504,6 +2566,10 @@ int mutt_bounce_message (FILE *fp, HEADE + } + rfc822_write_address (resent_from, sizeof (resent_from), from, 0); + ++#ifdef USE_NNTP ++ unset_option (OPTNEWSSEND); ++#endif ++ + ret = _mutt_bounce_message (fp, h, to, resent_from, from); + + rfc822_free_address (&from); +diff -udprP mutt-1.5.20.orig/sort.c mutt-1.5.20/sort.c +--- mutt-1.5.20.orig/sort.c 2008-11-11 21:55:47.000000000 +0200 ++++ mutt-1.5.20/sort.c 2009-06-15 21:05:24.000000000 +0300 +@@ -151,6 +151,15 @@ static int compare_order (const void *a, + HEADER **ha = (HEADER **) a; + HEADER **hb = (HEADER **) b; + ++#ifdef USE_NNTP ++ if ((*ha)->article_num && (*hb)->article_num) ++ { ++ int result = (*ha)->article_num - (*hb)->article_num; ++ AUXSORT(result,a,b); ++ return (SORTCODE (result)); ++ } ++ else ++#endif + /* no need to auxsort because you will never have equality here */ + return (SORTCODE ((*ha)->index - (*hb)->index)); + } +diff -udprP mutt-1.5.20.orig/url.c mutt-1.5.20/url.c +--- mutt-1.5.20.orig/url.c 2009-06-01 19:29:32.000000000 +0300 ++++ mutt-1.5.20/url.c 2009-06-15 21:05:24.000000000 +0300 +@@ -39,6 +39,8 @@ static struct mapping_t UrlMap[] = + { "imaps", U_IMAPS }, + { "pop", U_POP }, + { "pops", U_POPS }, ++ { "news", U_NNTP }, ++ { "newss", U_NNTPS }, + { "mailto", U_MAILTO }, + { "smtp", U_SMTP }, + { "smtps", U_SMTPS }, +diff -udprP mutt-1.5.20.orig/url.h mutt-1.5.20/url.h +--- mutt-1.5.20.orig/url.h 2008-11-11 21:55:47.000000000 +0200 ++++ mutt-1.5.20/url.h 2009-06-15 21:05:24.000000000 +0300 +@@ -8,6 +8,8 @@ typedef enum url_scheme + U_POPS, + U_IMAP, + U_IMAPS, ++ U_NNTP, ++ U_NNTPS, + U_SMTP, + U_SMTPS, + U_MAILTO, +diff -udprP mutt-1.5.20.orig/Makefile.am mutt-1.5.20/Makefile.am +--- mutt-1.5.20.orig/Makefile.am 2009-01-05 04:11:29.000000000 +0200 ++++ mutt-1.5.20/Makefile.am 2009-06-15 21:05:24.000000000 +0300 +@@ -53,6 +53,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c + mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ + mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \ + pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \ ++ nntp.c newsrc.c \ + smime.c smtp.c utf8.c wcwidth.c \ + bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h + +@@ -64,6 +65,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP O + mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h \ + mx.h pager.h pgp.h pop.h protos.h rfc1524.h rfc2047.h \ + rfc2231.h rfc822.h rfc3676.h sha1.h sort.h mime.types VERSION prepare \ ++ nntp.h ChangeLog.nntp \ + _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h \ + mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h \ + README.SSL smime.h \ +diff -udprP mutt-1.5.20.orig/Makefile.in mutt-1.5.20/Makefile.in +--- mutt-1.5.20.orig/Makefile.in 2009-06-09 09:50:44.000000000 +0300 ++++ mutt-1.5.20/Makefile.in 2009-06-15 21:05:24.000000000 +0300 +@@ -372,6 +372,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c + mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ + mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \ + pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \ ++ nntp.c newsrc.c \ + smime.c smtp.c utf8.c wcwidth.c \ + bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h + +@@ -383,6 +384,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP O + mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h \ + mx.h pager.h pgp.h pop.h protos.h rfc1524.h rfc2047.h \ + rfc2231.h rfc822.h rfc3676.h sha1.h sort.h mime.types VERSION prepare \ ++ nntp.h ChangeLog.nntp \ + _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h \ + mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h \ + README.SSL smime.h \ +@@ -637,6 +639,8 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_tunnel.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muttlib.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mx.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newsrc.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nntp.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pager.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patchlist.Po@am__quote@ +diff -udprP mutt-1.5.20.orig/configure mutt-1.5.20/configure +--- mutt-1.5.20.orig/configure 2009-06-09 09:50:42.000000000 +0300 ++++ mutt-1.5.20/configure 2009-06-15 21:05:24.000000000 +0300 +@@ -1478,6 +1478,7 @@ Optional Features: + Force use of an external dotlock program + --enable-pop Enable POP3 support + --enable-imap Enable IMAP support ++ --enable-nntp Enable NNTP support + --enable-smtp include internal SMTP relay support + --enable-debug Enable debugging support + --enable-flock Use flock() to lock files +@@ -14198,6 +14199,20 @@ fi + fi + done + ++# Check whether --enable-nntp or --disable-nntp was given. ++if test "${enable_nntp+set}" = set; then ++ enableval="$enable_nntp" ++ if test x$enableval = xyes ; then ++ cat >>confdefs.h <<\_ACEOF ++#define USE_NNTP 1 ++_ACEOF ++ ++ MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS nntp.o newsrc.o" ++ need_socket="yes" ++ fi ++ ++fi; ++ + + + for ac_func in strftime +diff -udprP mutt-1.5.20.orig/doc/Muttrc mutt-1.5.20/doc/Muttrc +--- mutt-1.5.20.orig/doc/Muttrc 2009-06-14 21:53:24.000000000 +0300 ++++ mutt-1.5.20/doc/Muttrc 2009-06-15 21:05:24.000000000 +0300 +@@ -281,6 +281,28 @@ attachments -I message/external-body + # of the value as shown above if included. + # + # ++# set ask_follow_up=no ++# ++# Name: ask_follow_up ++# Type: boolean ++# Default: no ++# ++# ++# If set, Mutt will prompt you for follow-up groups before editing ++# the body of an outgoing message. ++# ++# ++# set ask_x_comment_to=no ++# ++# Name: ask_x_comment_to ++# Type: boolean ++# Default: no ++# ++# ++# If set, Mutt will prompt you for x-comment-to field before editing ++# the body of an outgoing message. ++# ++# + # set attach_format="%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " + # + # Name: attach_format +@@ -466,6 +488,17 @@ attachments -I message/external-body + # set certificate_file=~/.mutt/certificates + # + # ++# set catchup_newsgroup=ask-yes ++# ++# Name: catchup_newsgroup ++# Type: quadoption ++# Default: ask-yes ++# ++# ++# If this variable is set, Mutt will mark all articles in newsgroup ++# as read when you quit the newsgroup (catchup newsgroup). ++# ++# + # set charset="" + # + # Name: charset +@@ -1121,6 +1154,19 @@ attachments -I message/external-body + # of the same email for you. + # + # ++# set followup_to_poster=ask-yes ++# ++# Name: followup_to_poster ++# Type: quadoption ++# Default: ask-yes ++# ++# ++# If this variable is set and the keyword "poster" is present in ++# Followup-To header, follow-up to newsgroup function is not ++# permitted. The message will be mailed to the submitter of the ++# message via mail. ++# ++# + # set force_name=no + # + # Name: force_name +@@ -1231,6 +1277,28 @@ attachments -I message/external-body + # ``Franklin'' to ``Franklin, Steve''. + # + # ++# set group_index_format="%4C %M%N %5s %-45.45f %d" ++# ++# Name: group_index_format ++# Type: string ++# Default: "%4C %M%N %5s %-45.45f %d" ++# ++# ++# This variable allows you to customize the newsgroup browser display to ++# your personal taste. This string is similar to ``index_format'', but ++# has its own set of printf()-like sequences: ++# ++# %C current newsgroup number ++# %d description of newsgroup (becomes from server) ++# %f newsgroup name ++# %M - if newsgroup not allowed for direct post (moderated for example) ++# %N N if newsgroup is new, u if unsubscribed, blank otherwise ++# %n number of new articles in newsgroup ++# %s number of unread articles in newsgroup ++# %>X right justify the rest of the string and pad with character "X" ++# %|X pad to the end of the line with character "X" ++# ++# + # set hdrs=yes + # + # Name: hdrs +@@ -1779,6 +1847,7 @@ attachments -I message/external-body + # %E number of messages in current thread + # %f sender (address + real name), either From: or Return-Path: + # %F author name, or recipient name if the message is from you ++# %g newsgroup name (if compiled with nntp support) + # %H spam attribute(s) of this message + # %i message-id of the current message + # %l number of lines in the message (does not work with maildir, +@@ -1794,12 +1863,14 @@ attachments -I message/external-body + # stashed the message: list name or recipient name + # if not sent to a list + # %P progress indicator for the builtin pager (how much of the file has been displayed) ++# %R `x-comment-to:' field (if present and compiled with nntp support) + # %s subject of the message + # %S status of the message (``N''/``D''/``d''/``!''/``r''/*) + # %t ``To:'' field (recipients) + # %T the appropriate character from the $to_chars string + # %u user (login) name of the author + # %v first name of the author, or the recipient if the message is from you ++# %W name of organization of author (`organization:' field) + # %X number of attachments + # (please see the ``attachments'' section for possible speed effects) + # %y ``X-Label:'' field, if present +@@ -1835,6 +1906,22 @@ attachments -I message/external-body + # ``save-hook'', ``fcc-hook'' and ``fcc-save-hook'', too. + # + # ++# set inews="" ++# ++# Name: inews ++# Type: path ++# Default: "" ++# ++# ++# If set, specifies the program and arguments used to deliver news posted ++# by Mutt. Otherwise, mutt posts article using current connection to ++# news server. The following printf-style sequence is understood: ++# ++# %s newsserver name ++# ++# Example: set inews="/usr/local/bin/inews -hS" ++# ++# + # set ispell="ispell" + # + # Name: ispell +@@ -2188,6 +2275,18 @@ attachments -I message/external-body + # be attached to the newly composed message if this option is set. + # + # ++# set mime_subject=yes ++# ++# Name: mime_subject ++# Type: boolean ++# Default: yes ++# ++# ++# If unset, 8-bit ``subject:'' line in article header will not be ++# encoded according to RFC2047 to base64. This is useful when message ++# is Usenet article, because MIME for news is nonstandard feature. ++# ++# + # set mix_entry_format="%4n %c %-16s %a" + # + # Name: mix_entry_format +@@ -2254,6 +2353,118 @@ attachments -I message/external-body + # See also $read_inc, $write_inc and $net_inc. + # + # ++# set news_cache_dir="~/.mutt" ++# ++# Name: news_cache_dir ++# Type: path ++# Default: "~/.mutt" ++# ++# ++# This variable pointing to directory where Mutt will save cached news ++# articles headers in. If unset, headers will not be saved at all ++# and will be reloaded each time when you enter to newsgroup. ++# ++# ++# set news_server="" ++# ++# Name: news_server ++# Type: string ++# Default: "" ++# ++# ++# This variable specifies domain name or address of NNTP server. It ++# defaults to the newsserver specified in the environment variable ++# $NNTPSERVER or contained in the file /etc/nntpserver. You can also ++# specify username and an alternative port for each newsserver, ie: ++# ++# [news[s]://][username[:password]@]newsserver[:port] ++# ++# ++# set newsrc="~/.newsrc" ++# ++# Name: newsrc ++# Type: path ++# Default: "~/.newsrc" ++# ++# ++# The file, containing info about subscribed newsgroups - names and ++# indexes of read articles. The following printf-style sequence ++# is understood: ++# ++# %s newsserver name ++# ++# ++# set nntp_context=1000 ++# ++# Name: nntp_context ++# Type: number ++# Default: 1000 ++# ++# ++# This variable defines number of articles which will be in index when ++# newsgroup entered. If active newsgroup have more articles than this ++# number, oldest articles will be ignored. Also controls how many ++# articles headers will be saved in cache when you quit newsgroup. ++# ++# ++# set nntp_load_description=yes ++# ++# Name: nntp_load_description ++# Type: boolean ++# Default: yes ++# ++# ++# This variable controls whether or not descriptions for each newsgroup ++# must be loaded when newsgroup is added to list (first time list ++# loading or new newsgroup adding). ++# ++# ++# set nntp_user="" ++# ++# Name: nntp_user ++# Type: string ++# Default: "" ++# ++# ++# Your login name on the NNTP server. If unset and NNTP server requires ++# authentification, Mutt will prompt you for your account name when you ++# connect to newsserver. ++# ++# ++# set nntp_pass="" ++# ++# Name: nntp_pass ++# Type: string ++# Default: "" ++# ++# ++# Your password for NNTP account. ++# ++# ++# set nntp_poll=60 ++# ++# Name: nntp_poll ++# Type: number ++# Default: 60 ++# ++# ++# The time in seconds until any operations on newsgroup except post new ++# article will cause recheck for new news. If set to 0, Mutt will ++# recheck newsgroup on each operation in index (stepping, read article, ++# etc.). ++# ++# ++# set nntp_reconnect=ask-yes ++# ++# Name: nntp_reconnect ++# Type: quadoption ++# Default: ask-yes ++# ++# ++# Controls whether or not Mutt will try to reconnect to newsserver when ++# connection lost. ++# ++# + # set pager="builtin" + # + # Name: pager +@@ -2969,6 +3180,19 @@ attachments -I message/external-body + # string after the inclusion of a message which is being replied to. + # + # ++# set post_moderated=ask-yes ++# ++# Name: post_moderated ++# Type: quadoption ++# Default: ask-yes ++# ++# ++# If set to yes, Mutt will post article to newsgroup that have ++# not permissions to posting (e.g. moderated). Note: if newsserver ++# does not support posting to that newsgroup or totally read-only, that ++# posting will not have an effect. ++# ++# + # set postpone=ask-yes + # + # Name: postpone +@@ -3543,6 +3767,41 @@ attachments -I message/external-body + # shell from /etc/passwd is used. + # + # ++# set save_unsubscribed=no ++# ++# Name: save_unsubscribed ++# Type: boolean ++# Default: no ++# ++# ++# When set, info about unsubscribed newsgroups will be saved into ++# ``newsrc'' file and into cache. ++# ++# ++# set show_new_news=yes ++# ++# Name: show_new_news ++# Type: boolean ++# Default: yes ++# ++# ++# If set, newsserver will be asked for new newsgroups on entering ++# the browser. Otherwise, it will be done only once for a newsserver. ++# Also controls whether or not number of new articles of subscribed ++# newsgroups will be then checked. ++# ++# ++# set show_only_unread=no ++# ++# Name: show_only_unread ++# Type: boolean ++# Default: no ++# ++# ++# If set, only subscribed newsgroups that contain unread articles ++# will be displayed in browser. ++# ++# + # set sig_dashes=yes + # + # Name: sig_dashes +@@ -4748,3 +5007,14 @@ attachments -I message/external-body + # ``tuning'' section of the manual for performance considerations. + # + # ++# set x_comment_to=no ++# ++# Name: x_comment_to ++# Type: boolean ++# Default: no ++# ++# ++# If set, Mutt will add ``X-Comment-To:'' field (that contains full ++# name of original article author) to article that followuped to newsgroup. ++# ++# +--- a/PATCHES ++++ b/PATCHES +@@ -0,0 +1 @@ ++vvv.nntp diff --git a/debian/patches/mutt-patched/sidebar b/debian/patches/mutt-patched/sidebar new file mode 100644 index 0000000..b34a73e --- /dev/null +++ b/debian/patches/mutt-patched/sidebar @@ -0,0 +1,1410 @@ +This is the sidebar patch. + +When enabled, mutt will show a list of mailboxes with (new) message counts in a +separate column on the left side of the screen. + +As this feature is still considered to be unstable, this patch is only applied +in the "mutt-patched" package. + +* Configuration variables: + + sidebar_delim (string, default "|") + + This specifies the delimiter between the sidebar (if visible) and + other screens. + + sidebar_visible (boolean, default no) + + This specifies whether or not to show sidebar (left-side list of folders). + + sidebar_width (integer, default 0) +- + The width of the sidebar. + +* Patch source: + - http://www.lunar-linux.org/index.php?page=mutt-sidebar + - http://lunar-linux.org/~tchan/mutt/patch-1.5.19.sidebar.20090522.txt + +* Changes made: + - 2008-08-02 myon: Refreshed patch using quilt push -f to remove hunks we do + not need (Makefile.in). + +Index: mutt/buffy.c +=================================================================== +--- mutt.orig/buffy.c 2009-06-25 12:36:44.000000000 +0200 ++++ mutt/buffy.c 2009-06-25 12:36:53.000000000 +0200 +@@ -289,6 +289,7 @@ + char path[_POSIX_PATH_MAX]; + struct stat contex_sb; + time_t t; ++ CONTEXT *ctx; + + sb.st_size=0; + contex_sb.st_dev=0; +@@ -328,6 +329,8 @@ + + for (tmp = Incoming; tmp; tmp = tmp->next) + { ++ if ( tmp->new == 1 ) ++ tmp->has_new = 1; + #ifdef USE_IMAP + if (tmp->magic != M_IMAP) + #endif +@@ -384,10 +387,27 @@ + case M_MBOX: + case M_MMDF: + +- if (STAT_CHECK) ++ { ++ if (STAT_CHECK || tmp->msgcount == 0) + { +- BuffyCount++; +- tmp->new = 1; ++ BUFFY b = *tmp; ++ int msgcount = 0; ++ int msg_unread = 0; ++ /* parse the mailbox, to see how much mail there is */ ++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); ++ if(ctx) ++ { ++ msgcount = ctx->msgcount; ++ msg_unread = ctx->unread; ++ mx_close_mailbox(ctx, 0); ++ } ++ *tmp = b; ++ tmp->msgcount = msgcount; ++ tmp->msg_unread = msg_unread; ++ if(STAT_CHECK) { ++ tmp->has_new = tmp->new = 1; ++ BuffyCount++; ++ } + } + else if (option(OPTCHECKMBOXSIZE)) + { +@@ -397,35 +417,86 @@ + if (tmp->newly_created && + (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) + tmp->newly_created = 0; +- ++ } + break; + + case M_MAILDIR: + ++ /* count new message */ + snprintf (path, sizeof (path), "%s/new", tmp->path); + if ((dirp = opendir (path)) == NULL) + { + tmp->magic = 0; + break; + } ++ tmp->msgcount = 0; ++ tmp->msg_unread = 0; ++ tmp->msg_flagged = 0; + while ((de = readdir (dirp)) != NULL) + { + char *p; + if (*de->d_name != '.' && + (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) + { +- /* one new and undeleted message is enough */ +- BuffyCount++; +- tmp->new = 1; +- break; ++ tmp->has_new = tmp->new = 1; ++ tmp->msgcount++; ++ tmp->msg_unread++; ++ } ++ } ++ if(tmp->msg_unread) ++ BuffyCount++; ++ ++ closedir (dirp); ++ ++ /* ++ * count read messages (for folderlist (sidebar) we also need to count ++ * messages in cur so that we the total number of messages ++ */ ++ snprintf (path, sizeof (path), "%s/cur", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.') { ++ if ((p = strstr (de->d_name, ":2,"))) { ++ if (!strchr (p + 3, 'T')) { ++ tmp->msgcount++; ++ if ( !strchr (p + 3, 'S')) ++ tmp->msg_unread++; ++ if (strchr(p + 3, 'F')) ++ tmp->msg_flagged++; ++ } ++ } else ++ tmp->msgcount++; + } + } + closedir (dirp); + break; + + case M_MH: ++ { ++ DIR *dp; ++ struct dirent *de; + if ((tmp->new = mh_buffy (tmp->path)) > 0) + BuffyCount++; ++ ++ if ((dp = opendir (path)) == NULL) ++ break; ++ tmp->msgcount = 0; ++ while ((de = readdir (dp))) ++ { ++ if (mh_valid_message (de->d_name)) ++ { ++ tmp->msgcount++; ++ tmp->has_new = tmp->new = 1; ++ } ++ } ++ closedir (dp); ++ } + break; + } + } +Index: mutt/buffy.h +=================================================================== +--- mutt.orig/buffy.h 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/buffy.h 2009-06-25 12:36:53.000000000 +0200 +@@ -25,7 +25,12 @@ + char path[_POSIX_PATH_MAX]; + off_t size; + struct buffy_t *next; ++ struct buffy_t *prev; + short new; /* mailbox has new mail */ ++ short has_new; /* set it new if new and not read */ ++ int msgcount; /* total number of messages */ ++ int msg_unread; /* number of unread messages */ ++ int msg_flagged; /* number of flagged messages */ + short notified; /* user has been notified */ + short magic; /* mailbox type */ + short newly_created; /* mbox or mmdf just popped into existence */ +Index: mutt/color.c +=================================================================== +--- mutt.orig/color.c 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/color.c 2009-06-25 12:36:53.000000000 +0200 +@@ -93,6 +93,8 @@ + { "bold", MT_COLOR_BOLD }, + { "underline", MT_COLOR_UNDERLINE }, + { "index", MT_COLOR_INDEX }, ++ { "sidebar_new", MT_COLOR_NEW }, ++ { "sidebar_flagged", MT_COLOR_FLAGGED }, + { NULL, 0 } + }; + +Index: mutt/compose.c +=================================================================== +--- mutt.orig/compose.c 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/compose.c 2009-06-25 12:36:53.000000000 +0200 +@@ -72,7 +72,7 @@ + + #define HDR_XOFFSET 10 + #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ +-#define W (COLS - HDR_XOFFSET) ++#define W (COLS - HDR_XOFFSET - SidebarWidth) + + static char *Prompts[] = + { +@@ -115,16 +115,16 @@ + if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) + { + if (!msg->security) +- mvaddstr (HDR_CRYPT, 0, "Security: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, "Security: "); + else if (msg->security & APPLICATION_SMIME) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); + else if (msg->security & APPLICATION_PGP) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); + } + else if ((WithCrypto & APPLICATION_SMIME)) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); + else if ((WithCrypto & APPLICATION_PGP)) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); + else + return; + +@@ -148,7 +148,7 @@ + } + clrtoeol (); + +- move (HDR_CRYPTINFO, 0); ++ move (HDR_CRYPTINFO, SidebarWidth); + clrtoeol (); + if ((WithCrypto & APPLICATION_PGP) + && msg->security & APPLICATION_PGP && msg->security & SIGN) +@@ -164,7 +164,7 @@ + && (msg->security & ENCRYPT) + && SmimeCryptAlg + && *SmimeCryptAlg) { +- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), ++ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), + NONULL(SmimeCryptAlg)); + off = 20; + } +@@ -178,7 +178,7 @@ + int c; + char *t; + +- mvaddstr (HDR_MIX, 0, " Mix: "); ++ mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); + + if (!chain) + { +@@ -193,7 +193,7 @@ + if (t && t[0] == '0' && t[1] == '\0') + t = ""; + +- if (c + mutt_strlen (t) + 2 >= COLS) ++ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) + break; + + addstr (NONULL(t)); +@@ -245,7 +245,7 @@ + + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), addr, 1); +- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); ++ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); + mutt_paddstr (W, buf); + } + +@@ -255,10 +255,10 @@ + draw_envelope_addr (HDR_TO, msg->env->to); + draw_envelope_addr (HDR_CC, msg->env->cc); + draw_envelope_addr (HDR_BCC, msg->env->bcc); +- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); ++ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); + mutt_paddstr (W, NONULL (msg->env->subject)); + draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); +- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); ++ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); + mutt_paddstr (W, fcc); + + if (WithCrypto) +@@ -269,7 +269,7 @@ + #endif + + SETCOLOR (MT_COLOR_STATUS); +- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); ++ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); + BKGDSET (MT_COLOR_STATUS); + clrtoeol (); + +@@ -307,7 +307,7 @@ + /* redraw the expanded list so the user can see the result */ + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), *addr, 1); +- move (line, HDR_XOFFSET); ++ move (line, HDR_XOFFSET+SidebarWidth); + mutt_paddstr (W, buf); + + return 0; +@@ -552,7 +552,7 @@ + if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) + { + mutt_str_replace (&msg->env->subject, buf); +- move (HDR_SUBJECT, HDR_XOFFSET); ++ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); + clrtoeol (); + if (msg->env->subject) + mutt_paddstr (W, msg->env->subject); +@@ -569,7 +569,7 @@ + { + strfcpy (fcc, buf, fcclen); + mutt_pretty_mailbox (fcc, fcclen); +- move (HDR_FCC, HDR_XOFFSET); ++ move (HDR_FCC, HDR_XOFFSET + SidebarWidth); + mutt_paddstr (W, fcc); + fccSet = 1; + } +Index: mutt/curs_main.c +=================================================================== +--- mutt.orig/curs_main.c 2009-06-25 12:36:26.000000000 +0200 ++++ mutt/curs_main.c 2009-06-25 12:36:53.000000000 +0200 +@@ -26,7 +26,9 @@ + #include "mailbox.h" + #include "mapping.h" + #include "sort.h" ++#include "buffy.h" + #include "mx.h" ++#include "sidebar.h" + + #ifdef USE_POP + #include "pop.h" +@@ -536,8 +538,12 @@ + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +- if (mutt_buffy_notify () && option (OPTBEEPNEW)) +- beep (); ++ if (mutt_buffy_notify ()) ++ { ++ menu->redraw |= REDRAW_FULL; ++ if (option (OPTBEEPNEW)) ++ beep (); ++ } + } + else + do_buffy_notify = 1; +@@ -549,6 +555,7 @@ + if (menu->redraw & REDRAW_FULL) + { + menu_redraw_full (menu); ++ draw_sidebar(menu->menu); + mutt_show_error (); + } + +@@ -571,10 +578,13 @@ + + if (menu->redraw & REDRAW_STATUS) + { ++ DrawFullLine = 1; + menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); ++ DrawFullLine = 0; + CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); ++ set_buffystats(Context); + mutt_paddstr (COLS, buf); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +@@ -595,7 +605,7 @@ + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +- move (menu->current - menu->top + menu->offset, 2); ++ move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +@@ -1075,6 +1085,7 @@ + menu->redraw = REDRAW_FULL; + break; + ++ case OP_SIDEBAR_OPEN: + case OP_MAIN_CHANGE_FOLDER: + case OP_MAIN_NEXT_UNREAD_MAILBOX: + +@@ -1106,7 +1117,11 @@ + { + mutt_buffy (buf, sizeof (buf)); + +- if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) ++ if ( op == OP_SIDEBAR_OPEN ) { ++ if(!CurBuffy) ++ break; ++ strncpy( buf, CurBuffy->path, sizeof(buf) ); ++ } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +@@ -1124,6 +1139,7 @@ + } + + mutt_expand_path (buf, sizeof (buf)); ++ set_curbuffy(buf); + if (mx_get_magic (buf) <= 0) + { + mutt_error (_("%s is not a mailbox."), buf); +@@ -2216,6 +2232,12 @@ + mutt_what_key(); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(op, menu->menu); ++ break; + default: + if (menu->menu == MENU_MAIN) + km_error_key (MENU_MAIN); +Index: mutt/flags.c +=================================================================== +--- mutt.orig/flags.c 2009-06-25 12:36:14.000000000 +0200 ++++ mutt/flags.c 2009-06-25 12:36:53.000000000 +0200 +@@ -22,8 +22,10 @@ + + #include "mutt.h" + #include "mutt_curses.h" ++#include "mutt_menu.h" + #include "sort.h" + #include "mx.h" ++#include "sidebar.h" + + void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) + { +@@ -290,6 +292,7 @@ + */ + if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged)) + h->searched = 0; ++ draw_sidebar(0); + } + + void mutt_tag_set_flag (int flag, int bf) +Index: mutt/functions.h +=================================================================== +--- mutt.orig/functions.h 2009-06-25 12:36:35.000000000 +0200 ++++ mutt/functions.h 2009-06-25 12:36:53.000000000 +0200 +@@ -169,6 +169,11 @@ + { "decrypt-save", OP_DECRYPT_SAVE, NULL }, + + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +@@ -270,6 +275,11 @@ + + { "what-key", OP_WHAT_KEY, NULL }, + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +Index: mutt/globals.h +=================================================================== +--- mutt.orig/globals.h 2009-06-25 12:36:22.000000000 +0200 ++++ mutt/globals.h 2009-06-25 12:36:53.000000000 +0200 +@@ -117,6 +117,7 @@ + WHERE char *SendCharset; + WHERE char *Sendmail; + WHERE char *Shell; ++WHERE char *SidebarDelim; + WHERE char *Signature; + WHERE char *SimpleSearch; + #if USE_SMTP +@@ -209,6 +210,9 @@ + WHERE short ScoreThresholdRead; + WHERE short ScoreThresholdFlag; + ++WHERE struct buffy_t *CurBuffy INITVAL(0); ++WHERE short DrawFullLine INITVAL(0); ++WHERE short SidebarWidth; + #ifdef USE_IMAP + WHERE short ImapKeepalive; + WHERE short ImapPipelineDepth; +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:36:40.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:36:53.000000000 +0200 +@@ -1953,6 +1953,22 @@ + ** not used. + ** (PGP only) + */ ++ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, ++ /* ++ ** .pp ++ ** This specifies the delimiter between the sidebar (if visible) and ++ ** other screens. ++ */ ++ { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to show sidebar (left-side list of folders). ++ */ ++ { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 }, ++ /* ++ ** .pp ++ ** The width of the sidebar. ++ */ + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, + /* + ** .pp +Index: mutt/mailbox.h +=================================================================== +--- mutt.orig/mailbox.h 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/mailbox.h 2009-06-25 12:36:53.000000000 +0200 +@@ -27,6 +27,7 @@ + #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses + * safe_fopen() for mbox-style folders. + */ ++#define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */ + + /* mx_open_new_message() */ + #define M_ADD_FROM 1 /* add a From_ line */ +Index: mutt/Makefile.am +=================================================================== +--- mutt.orig/Makefile.am 2009-06-25 12:36:26.000000000 +0200 ++++ mutt/Makefile.am 2009-06-25 12:36:53.000000000 +0200 +@@ -29,7 +29,8 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c crypt-mod.c crypt-mod.h ++ url.c ascii.c crypt-mod.c crypt-mod.h \ ++ sidebar.c + + nodist_mutt_SOURCES = $(BUILT_SOURCES) + +Index: mutt/mbox.c +=================================================================== +--- mutt.orig/mbox.c 2009-06-25 12:36:45.000000000 +0200 ++++ mutt/mbox.c 2009-06-25 12:36:53.000000000 +0200 +@@ -104,6 +104,7 @@ + mutt_perror (ctx->path); + return (-1); + } ++ ctx->atime = sb.st_atime; + ctx->mtime = sb.st_mtime; + ctx->size = sb.st_size; + +@@ -259,6 +260,7 @@ + + ctx->size = sb.st_size; + ctx->mtime = sb.st_mtime; ++ ctx->atime = sb.st_atime; + + #ifdef NFS_ATTRIBUTE_HACK + if (sb.st_mtime > sb.st_atime) +Index: mutt/menu.c +=================================================================== +--- mutt.orig/menu.c 2009-06-25 12:36:19.000000000 +0200 ++++ mutt/menu.c 2009-06-25 12:36:53.000000000 +0200 +@@ -24,6 +24,7 @@ + #include "mutt_curses.h" + #include "mutt_menu.h" + #include "mbyte.h" ++#include "sidebar.h" + + #include + #include +@@ -156,7 +157,7 @@ + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +- int cols = COLS - shift; ++ int cols = COLS - shift - SidebarWidth; + + mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +@@ -207,6 +208,7 @@ + char buf[LONG_STRING]; + int i; + ++ draw_sidebar(1); + for (i = menu->top; i < menu->top + menu->pagelen; i++) + { + if (i < menu->max) +@@ -217,7 +219,7 @@ + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + + if (i == menu->current) + { +@@ -246,14 +248,14 @@ + BKGDSET (MT_COLOR_INDICATOR); + } + +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +@@ -268,7 +270,7 @@ + return; + } + +- move (menu->oldcurrent + menu->offset - menu->top, 0); ++ move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +@@ -283,13 +285,13 @@ + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +- move (menu->oldcurrent + menu->offset - menu->top, 3); ++ move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3); + print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + + /* now draw it in the new location */ +- move (menu->current + menu->offset - menu->top, 0); ++ move (menu->current + menu->offset - menu->top, SidebarWidth); + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + addstr ("->"); +@@ -310,7 +312,7 @@ + attrset (menu->color (menu->current)); + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); +- CLEARLINE (menu->current - menu->top + menu->offset); ++ CLEARLINE_WIN (menu->current - menu->top + menu->offset); + print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +@@ -322,7 +324,7 @@ + { + char buf[LONG_STRING]; + +- move (menu->current + menu->offset - menu->top, 0); ++ move (menu->current + menu->offset - menu->top, SidebarWidth); + menu_make_entry (buf, sizeof (buf), menu, menu->current); + menu_pad_string (buf, sizeof (buf)); + +@@ -885,7 +887,7 @@ + + + if (option (OPTARROWCURSOR)) +- move (menu->current - menu->top + menu->offset, 2); ++ move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +Index: mutt/mutt_curses.h +=================================================================== +--- mutt.orig/mutt_curses.h 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/mutt_curses.h 2009-06-25 12:36:53.000000000 +0200 +@@ -64,6 +64,7 @@ + #undef lines + #endif /* lines */ + ++#define CLEARLINE_WIN(x) move(x,SidebarWidth), clrtoeol() + #define CLEARLINE(x) move(x,0), clrtoeol() + #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x) + #define BEEP() do { if (option (OPTBEEP)) beep(); } while (0) +@@ -126,6 +127,8 @@ + MT_COLOR_BOLD, + MT_COLOR_UNDERLINE, + MT_COLOR_INDEX, ++ MT_COLOR_NEW, ++ MT_COLOR_FLAGGED, + MT_COLOR_MAX + }; + +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:36:26.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:36:53.000000000 +0200 +@@ -425,6 +425,7 @@ + OPTSAVEEMPTY, + OPTSAVENAME, + OPTSCORE, ++ OPTSIDEBAR, + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, +@@ -864,6 +865,7 @@ + { + char *path; + FILE *fp; ++ time_t atime; + time_t mtime; + off_t size; + off_t vsize; +@@ -904,6 +906,7 @@ + unsigned int quiet : 1; /* inhibit status messages? */ + unsigned int collapsed : 1; /* are all threads collapsed? */ + unsigned int closing : 1; /* mailbox is being closed */ ++ unsigned int peekonly : 1; /* just taking a glance, revert atime */ + + /* driver hooks */ + void *data; /* driver specific data */ +Index: mutt/muttlib.c +=================================================================== +--- mutt.orig/muttlib.c 2009-06-25 12:35:48.000000000 +0200 ++++ mutt/muttlib.c 2009-06-25 12:36:53.000000000 +0200 +@@ -1232,6 +1232,8 @@ + pl = pw = 1; + + /* see if there's room to add content, else ignore */ ++ if ( DrawFullLine ) ++ { + if ((col < COLS && wlen < destlen) || soft) + { + int pad; +@@ -1274,6 +1276,52 @@ + col += wid; + src += pl; + } ++ } ++ else ++ { ++ if ((col < COLS-SidebarWidth && wlen < destlen) || soft) ++ { ++ int pad; ++ ++ /* get contents after padding */ ++ mutt_FormatString (buf, sizeof (buf), 0, src + pl, callback, data, flags); ++ len = mutt_strlen (buf); ++ wid = mutt_strwidth (buf); ++ ++ /* try to consume as many columns as we can, if we don't have ++ * memory for that, use as much memory as possible */ ++ pad = (COLS - SidebarWidth - col - wid) / pw; ++ if (pad > 0 && wlen + (pad * pl) + len > destlen) ++ pad = ((signed)(destlen - wlen - len)) / pl; ++ if (pad > 0) ++ { ++ while (pad--) ++ { ++ memcpy (wptr, src, pl); ++ wptr += pl; ++ wlen += pl; ++ col += pw; ++ } ++ } ++ else if (soft && pad < 0) ++ { ++ /* \0-terminate dest for length computation in mutt_wstr_trunc() */ ++ *wptr = 0; ++ /* make sure right part is at most as wide as display */ ++ len = mutt_wstr_trunc (buf, destlen, COLS, &wid); ++ /* truncate left so that right part fits completely in */ ++ wlen = mutt_wstr_trunc (dest, destlen - len, col + pad, &col); ++ wptr = dest + wlen; ++ } ++ if (len + wlen > destlen) ++ len = mutt_wstr_trunc (buf, destlen - wlen, COLS - SidebarWidth - col, NULL); ++ memcpy (wptr, buf, len); ++ wptr += len; ++ wlen += len; ++ col += wid; ++ src += pl; ++ } ++ } + break; /* skip rest of input */ + } + else if (ch == '|') +Index: mutt/mx.c +=================================================================== +--- mutt.orig/mx.c 2009-06-25 12:36:45.000000000 +0200 ++++ mutt/mx.c 2009-06-25 12:36:53.000000000 +0200 +@@ -595,6 +595,7 @@ + * M_APPEND open mailbox for appending + * M_READONLY open mailbox in read-only mode + * M_QUIET only print error messages ++ * M_PEEK revert atime where applicable + * ctx if non-null, context struct to use + */ + CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) +@@ -617,6 +618,8 @@ + ctx->quiet = 1; + if (flags & M_READONLY) + ctx->readonly = 1; ++ if (flags & M_PEEK) ++ ctx->peekonly = 1; + + if (flags & (M_APPEND|M_NEWFOLDER)) + { +@@ -721,9 +724,21 @@ + void mx_fastclose_mailbox (CONTEXT *ctx) + { + int i; ++#ifndef BUFFY_SIZE ++ struct utimbuf ut; ++#endif + + if(!ctx) + return; ++#ifndef BUFFY_SIZE ++ /* fix up the times so buffy won't get confused */ ++ if (ctx->peekonly && ctx->path && ctx->mtime > ctx->atime) ++ { ++ ut.actime = ctx->atime; ++ ut.modtime = ctx->mtime; ++ utime (ctx->path, &ut); ++ } ++#endif + + if (ctx->mx_close) + ctx->mx_close (ctx); +Index: mutt/OPS +=================================================================== +--- mutt.orig/OPS 2009-06-25 12:36:14.000000000 +0200 ++++ mutt/OPS 2009-06-25 12:36:53.000000000 +0200 +@@ -179,3 +179,8 @@ + OP_MAIN_SHOW_LIMIT "show currently active limit pattern" + OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread" + OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads" ++OP_SIDEBAR_SCROLL_UP "scroll the mailbox pane up 1 page" ++OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page" ++OP_SIDEBAR_NEXT "go down to next mailbox" ++OP_SIDEBAR_PREV "go to previous mailbox" ++OP_SIDEBAR_OPEN "open hilighted mailbox" +Index: mutt/pager.c +=================================================================== +--- mutt.orig/pager.c 2009-06-25 12:36:14.000000000 +0200 ++++ mutt/pager.c 2009-06-25 12:36:53.000000000 +0200 +@@ -29,6 +29,7 @@ + #include "pager.h" + #include "attach.h" + #include "mbyte.h" ++#include "sidebar.h" + + #include "mutt_crypt.h" + +@@ -1071,6 +1072,8 @@ + mbstate_t mbstate; + + int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap); ++ ++ wrap_cols -= SidebarWidth; + + /* FIXME: this should come from lineInfo */ + memset(&mbstate, 0, sizeof(mbstate)); +@@ -1717,7 +1720,7 @@ + if ((redraw & REDRAW_BODY) || topline != oldtopline) + { + do { +- move (bodyoffset, 0); ++ move (bodyoffset, SidebarWidth); + curline = oldtopline = topline; + lines = 0; + force_redraw = 0; +@@ -1730,6 +1733,7 @@ + &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) + lines++; + curline++; ++ move(lines + bodyoffset, SidebarWidth); + } + last_offset = lineInfo[curline].offset; + } while (force_redraw); +@@ -1743,6 +1747,7 @@ + addch ('~'); + addch ('\n'); + lines++; ++ move(lines + bodyoffset, SidebarWidth); + } + /* We are going to update the pager status bar, so it isn't + * necessary to reset to normal color now. */ +@@ -1766,11 +1771,11 @@ + /* print out the pager status bar */ + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- CLEARLINE (statusoffset); ++ CLEARLINE_WIN (statusoffset); + + if (IsHeader (extra) || IsMsgAttach (extra)) + { +- size_t l1 = COLS * MB_LEN_MAX; ++ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; + size_t l2 = sizeof (buffer); + hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; + mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); +@@ -1780,7 +1785,7 @@ + { + char bn[STRING]; + snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); +- mutt_paddstr (COLS, bn); ++ mutt_paddstr (COLS, IsHeader (extra) || IsMsgAttach (extra) ? buffer : banner); + } + BKGDSET (MT_COLOR_NORMAL); + SETCOLOR (MT_COLOR_NORMAL); +@@ -1798,18 +1803,23 @@ + /* redraw the pager_index indicator, because the + * flags for this message might have changed. */ + menu_redraw_current (index); ++ draw_sidebar(MENU_PAGER); + + /* print out the index status bar */ + menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); + +- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); ++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); +- mutt_paddstr (COLS, buffer); ++ mutt_paddstr (COLS-SidebarWidth, buffer); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + ++ /* if we're not using the index, update every time */ ++ if ( index == 0 ) ++ draw_sidebar(MENU_PAGER); ++ + redraw = 0; + + if (option(OPTBRAILLEFRIENDLY)) { +@@ -2742,6 +2752,13 @@ + mutt_what_key (); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(ch, MENU_PAGER); ++ break; ++ + default: + ch = -1; + break; +Index: mutt/sidebar.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ mutt/sidebar.c 2009-06-25 12:36:53.000000000 +0200 +@@ -0,0 +1,333 @@ ++/* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "mutt.h" ++#include "mutt_menu.h" ++#include "mutt_curses.h" ++#include "sidebar.h" ++#include "buffy.h" ++#include ++#include "keymap.h" ++#include ++ ++/*BUFFY *CurBuffy = 0;*/ ++static BUFFY *TopBuffy = 0; ++static BUFFY *BottomBuffy = 0; ++static int known_lines = 0; ++ ++static int quick_log10(int n) ++{ ++ char string[32]; ++ sprintf(string, "%d", n); ++ return strlen(string); ++} ++ ++void calc_boundaries (int menu) ++{ ++ BUFFY *tmp = Incoming; ++ ++ if ( known_lines != LINES ) { ++ TopBuffy = BottomBuffy = 0; ++ known_lines = LINES; ++ } ++ for ( ; tmp->next != 0; tmp = tmp->next ) ++ tmp->next->prev = tmp; ++ ++ if ( TopBuffy == 0 && BottomBuffy == 0 ) ++ TopBuffy = Incoming; ++ if ( BottomBuffy == 0 ) { ++ int count = LINES - 2 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); ++ BottomBuffy = TopBuffy; ++ while ( --count && BottomBuffy->next ) ++ BottomBuffy = BottomBuffy->next; ++ } ++ else if ( TopBuffy == CurBuffy->next ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ BottomBuffy = CurBuffy; ++ tmp = BottomBuffy; ++ while ( --count && tmp->prev) ++ tmp = tmp->prev; ++ TopBuffy = tmp; ++ } ++ else if ( BottomBuffy == CurBuffy->prev ) { ++ int count = LINES - 2 - (menu != MENU_PAGER); ++ TopBuffy = CurBuffy; ++ tmp = TopBuffy; ++ while ( --count && tmp->next ) ++ tmp = tmp->next; ++ BottomBuffy = tmp; ++ } ++} ++ ++char *make_sidebar_entry(char *box, int size, int new, int flagged) ++{ ++ static char *entry = 0; ++ char *c; ++ int i = 0; ++ int delim_len = strlen(SidebarDelim); ++ ++ c = realloc(entry, SidebarWidth - delim_len + 2); ++ if ( c ) entry = c; ++ entry[SidebarWidth - delim_len + 1] = 0; ++ for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' ); ++ i = strlen(box); ++ strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) ); ++ ++ if (size == -1) ++ sprintf(entry + SidebarWidth - delim_len - 3, "?"); ++ else if ( new ) { ++ if (flagged > 0) { ++ sprintf( ++ entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged), ++ "% d(%d)[%d]", size, new, flagged); ++ } else { ++ sprintf( ++ entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new), ++ "% d(%d)", size, new); ++ } ++ } else if (flagged > 0) { ++ sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged); ++ } else { ++ sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size); ++ } ++ return entry; ++} ++ ++void set_curbuffy(char buf[LONG_STRING]) ++{ ++ BUFFY* tmp = CurBuffy = Incoming; ++ ++ if (!Incoming) ++ return; ++ ++ while(1) { ++ if(!strcmp(tmp->path, buf)) { ++ CurBuffy = tmp; ++ break; ++ } ++ ++ if(tmp->next) ++ tmp = tmp->next; ++ else ++ break; ++ } ++} ++ ++int draw_sidebar(int menu) { ++ ++ int lines = option(OPTHELP) ? 1 : 0; ++ BUFFY *tmp; ++#ifndef USE_SLANG_CURSES ++ attr_t attrs; ++#endif ++ short delim_len = strlen(SidebarDelim); ++ short color_pair; ++ ++ static bool initialized = false; ++ static int prev_show_value; ++ static short saveSidebarWidth; ++ ++ /* initialize first time */ ++ if(!initialized) { ++ prev_show_value = option(OPTSIDEBAR); ++ saveSidebarWidth = SidebarWidth; ++ if(!option(OPTSIDEBAR)) SidebarWidth = 0; ++ initialized = true; ++ } ++ ++ /* save or restore the value SidebarWidth */ ++ if(prev_show_value != option(OPTSIDEBAR)) { ++ if(prev_show_value && !option(OPTSIDEBAR)) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } else if(!prev_show_value && option(OPTSIDEBAR)) { ++ SidebarWidth = saveSidebarWidth; ++ } ++ prev_show_value = option(OPTSIDEBAR); ++ } ++ ++ ++// if ( SidebarWidth == 0 ) return 0; ++ if (SidebarWidth > 0 && option (OPTSIDEBAR) ++ && delim_len >= SidebarWidth) { ++ unset_option (OPTSIDEBAR); ++ /* saveSidebarWidth = SidebarWidth; */ ++ if (saveSidebarWidth > delim_len) { ++ SidebarWidth = saveSidebarWidth; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar.")); ++ sleep (2); ++ } else { ++ SidebarWidth = 0; ++ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar. Please set your sidebar_width to a sane value.")); ++ sleep (4); /* the advise to set a sane value should be seen long enough */ ++ } ++ saveSidebarWidth = 0; ++ return (0); ++ } ++ ++ if ( SidebarWidth == 0 || !option(OPTSIDEBAR)) { ++ if (SidebarWidth > 0) { ++ saveSidebarWidth = SidebarWidth; ++ SidebarWidth = 0; ++ } ++ unset_option(OPTSIDEBAR); ++ return 0; ++ } ++ ++ /* get attributes for divider */ ++ SETCOLOR(MT_COLOR_STATUS); ++#ifndef USE_SLANG_CURSES ++ attr_get(&attrs, &color_pair, 0); ++#else ++ color_pair = attr_get(); ++#endif ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ /* draw the divider */ ++ ++ for ( ; lines < LINES-1-(menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ move(lines, SidebarWidth - delim_len); ++ addstr(NONULL(SidebarDelim)); ++#ifndef USE_SLANG_CURSES ++ mvchgat(lines, SidebarWidth - delim_len, delim_len, 0, color_pair, NULL); ++#endif ++ } ++ ++ if ( Incoming == 0 ) return 0; ++ lines = option(OPTHELP) ? 1 : 0; /* go back to the top */ ++ ++ if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 ) ++ calc_boundaries(menu); ++ if ( CurBuffy == 0 ) CurBuffy = Incoming; ++ ++ tmp = TopBuffy; ++ ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ for ( ; tmp && lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); tmp = tmp->next ) { ++ if ( tmp == CurBuffy ) ++ SETCOLOR(MT_COLOR_INDICATOR); ++ else if ( tmp->msg_unread > 0 ) ++ SETCOLOR(MT_COLOR_NEW); ++ else if ( tmp->msg_flagged > 0 ) ++ SETCOLOR(MT_COLOR_FLAGGED); ++ else ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ move( lines, 0 ); ++ if ( Context && !strcmp( tmp->path, Context->path ) ) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ tmp->msg_flagged = Context->flagged; ++ } ++ // check whether Maildir is a prefix of the current folder's path ++ short maildir_is_prefix = 0; ++ if ( (strlen(tmp->path) > strlen(Maildir)) && ++ (strncmp(Maildir, tmp->path, strlen(Maildir)) == 0) ) ++ maildir_is_prefix = 1; ++ // calculate depth of current folder and generate its display name with indented spaces ++ int sidebar_folder_depth = 0; ++ char *sidebar_folder_name; ++ sidebar_folder_name = basename(tmp->path); ++ if ( maildir_is_prefix ) { ++ char *tmp_folder_name; ++ int i; ++ tmp_folder_name = tmp->path + strlen(Maildir); ++ for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { ++ if (tmp_folder_name[i] == '/') sidebar_folder_depth++; ++ } ++ if (sidebar_folder_depth > 0) { ++ sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); ++ for (i=0; i < sidebar_folder_depth; i++) ++ sidebar_folder_name[i]=' '; ++ sidebar_folder_name[i]=0; ++ strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); ++ } ++ } ++ printw( "%.*s", SidebarWidth - delim_len + 1, ++ make_sidebar_entry(sidebar_folder_name, tmp->msgcount, ++ tmp->msg_unread, tmp->msg_flagged)); ++ if (sidebar_folder_depth > 0) ++ free(sidebar_folder_name); ++ lines++; ++ } ++ SETCOLOR(MT_COLOR_NORMAL); ++ for ( ; lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { ++ int i = 0; ++ move( lines, 0 ); ++ for ( ; i < SidebarWidth - delim_len; i++ ) ++ addch(' '); ++ } ++ return 0; ++} ++ ++ ++void set_buffystats(CONTEXT* Context) ++{ ++ BUFFY *tmp = Incoming; ++ while(tmp) { ++ if(Context && !strcmp(tmp->path, Context->path)) { ++ tmp->msg_unread = Context->unread; ++ tmp->msgcount = Context->msgcount; ++ break; ++ } ++ tmp = tmp->next; ++ } ++} ++ ++void scroll_sidebar(int op, int menu) ++{ ++ if(!SidebarWidth) return; ++ if(!CurBuffy) return; ++ ++ switch (op) { ++ case OP_SIDEBAR_NEXT: ++ if ( CurBuffy->next == NULL ) return; ++ CurBuffy = CurBuffy->next; ++ break; ++ case OP_SIDEBAR_PREV: ++ if ( CurBuffy->prev == NULL ) return; ++ CurBuffy = CurBuffy->prev; ++ break; ++ case OP_SIDEBAR_SCROLL_UP: ++ CurBuffy = TopBuffy; ++ if ( CurBuffy != Incoming ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->prev; ++ } ++ break; ++ case OP_SIDEBAR_SCROLL_DOWN: ++ CurBuffy = BottomBuffy; ++ if ( CurBuffy->next ) { ++ calc_boundaries(menu); ++ CurBuffy = CurBuffy->next; ++ } ++ break; ++ default: ++ return; ++ } ++ calc_boundaries(menu); ++ draw_sidebar(menu); ++} ++ +Index: mutt/sidebar.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ mutt/sidebar.h 2009-06-25 12:36:53.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* ++ * Copyright (C) ????-2004 Justin Hibbits ++ * Copyright (C) 2004 Thomer M. Gil ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ */ ++ ++#ifndef SIDEBAR_H ++#define SIDEBAR_H ++ ++struct MBOX_LIST { ++ char *path; ++ int msgcount; ++ int new; ++} MBLIST; ++ ++/* parameter is whether or not to go to the status line */ ++/* used for omitting the last | that covers up the status bar in the index */ ++int draw_sidebar(int); ++void scroll_sidebar(int, int); ++void set_curbuffy(char*); ++void set_buffystats(CONTEXT*); ++ ++#endif /* SIDEBAR_H */ +Index: mutt/doc/Muttrc +=================================================================== +--- mutt.orig/doc/Muttrc 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/doc/Muttrc 2009-06-25 12:36:53.000000000 +0200 +@@ -657,6 +657,26 @@ + # $crypt_autosign, $crypt_replysign and $smime_is_default. + # + # ++# set sidebar_visible=no ++# ++# Name: sidebar_visible ++# Type: boolean ++# Default: no ++# ++# ++# This specifies whether or not to show sidebar (left-side list of folders). ++# ++# ++# set sidebar_width=0 ++# ++# Name: sidebar_width ++# Type: number ++# Default: 0 ++# ++# ++# The width of the sidebar. ++# ++# + # set crypt_autosign=no + # + # Name: crypt_autosign +Index: mutt/imap/imap.c +=================================================================== +--- mutt.orig/imap/imap.c 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/imap/imap.c 2009-06-25 12:36:53.000000000 +0200 +@@ -1521,7 +1521,7 @@ + + imap_munge_mbox_name (munged, sizeof (munged), name); + snprintf (command, sizeof (command), +- "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged); ++ "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT MESSAGES)", munged); + + if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) + { +Index: mutt/imap/command.c +=================================================================== +--- mutt.orig/imap/command.c 2009-06-24 19:37:58.000000000 +0200 ++++ mutt/imap/command.c 2009-06-25 12:36:53.000000000 +0200 +@@ -1009,6 +1009,13 @@ + opened */ + status->uidnext = oldun; + ++ /* Added to make the sidebar show the correct numbers */ ++ if (status->messages) ++ { ++ inc->msgcount = status->messages; ++ inc->msg_unread = status->unseen; ++ } ++ + FREE (&value); + return; + } diff --git a/debian/patches/mutt-patched/sidebar-dotted b/debian/patches/mutt-patched/sidebar-dotted new file mode 100644 index 0000000..2c07d0b --- /dev/null +++ b/debian/patches/mutt-patched/sidebar-dotted @@ -0,0 +1,70 @@ +From: Evgeni Golov +License: 3-BSD + +When using IMAP, a '.' is often used as a separator instead of '/'. +This patch enables mutt to find these dots and +1. correctly intend the dir in the sidebar +2. if "sidebar_shortpath" is set, shorten the dir to the part after + the last dot + +I hope, it's usefull for someone ;) + +Index: mutt/sidebar.c +=================================================================== +--- mutt.orig/sidebar.c 2009-06-25 12:36:53.000000000 +0200 ++++ mutt/sidebar.c 2009-06-25 12:36:59.000000000 +0200 +@@ -255,14 +255,23 @@ + int i; + tmp_folder_name = tmp->path + strlen(Maildir); + for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { +- if (tmp_folder_name[i] == '/') sidebar_folder_depth++; ++ if (tmp_folder_name[i] == '/' || tmp_folder_name[i] == '.') sidebar_folder_depth++; + } + if (sidebar_folder_depth > 0) { +- sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); ++ if (option(OPTSIDEBARSHORTPATH)) { ++ tmp_folder_name = strrchr(tmp->path, '.'); ++ if (tmp_folder_name == NULL) ++ tmp_folder_name = tmp->path; ++ else ++ tmp_folder_name++; ++ } ++ else ++ tmp_folder_name = tmp->path; ++ sidebar_folder_name = malloc(strlen(basename(tmp_folder_name)) + sidebar_folder_depth + 1); + for (i=0; i < sidebar_folder_depth; i++) + sidebar_folder_name[i]=' '; + sidebar_folder_name[i]=0; +- strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); ++ strncat(sidebar_folder_name, basename(tmp_folder_name), strlen(basename(tmp_folder_name)) + sidebar_folder_depth); + } + } + printw( "%.*s", SidebarWidth - delim_len + 1, +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:36:53.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:36:59.000000000 +0200 +@@ -1969,6 +1969,11 @@ + ** .pp + ** The width of the sidebar. + */ ++ { "sidebar_shortpath", DT_BOOL, R_BOTH, OPTSIDEBARSHORTPATH, 0 }, ++ /* ++ ** .pp ++ ** Should the sidebar shorten the path showed. ++ */ + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, + /* + ** .pp +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:36:53.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:36:59.000000000 +0200 +@@ -426,6 +426,7 @@ + OPTSAVENAME, + OPTSCORE, + OPTSIDEBAR, ++ OPTSIDEBARSHORTPATH, + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, diff --git a/debian/patches/mutt-patched/sidebar-newonly b/debian/patches/mutt-patched/sidebar-newonly new file mode 100644 index 0000000..b9c199a --- /dev/null +++ b/debian/patches/mutt-patched/sidebar-newonly @@ -0,0 +1,161 @@ +patches written by Steve Kemp, it adds two new functionalities to the sidebar, +so only the mailbox with new messages will be shown (and/or) selected +See Debian bug http://bugs.debian.org/532510 + +--- a/OPS ++++ b/OPS +@@ -184,3 +184,5 @@ + OP_SIDEBAR_NEXT "go down to next mailbox" + OP_SIDEBAR_PREV "go to previous mailbox" + OP_SIDEBAR_OPEN "open hilighted mailbox" ++OP_SIDEBAR_NEXT_NEW "go down to next mailbox with new mail" ++OP_SIDEBAR_PREV_NEW "go to previous mailbox with new mail" +--- a/curs_main.c ++++ b/curs_main.c +@@ -2236,6 +2236,8 @@ + case OP_SIDEBAR_SCROLL_DOWN: + case OP_SIDEBAR_NEXT: + case OP_SIDEBAR_PREV: ++ case OP_SIDEBAR_NEXT_NEW: ++ case OP_SIDEBAR_PREV_NEW: + scroll_sidebar(op, menu->menu); + break; + default: +--- a/functions.h ++++ b/functions.h +@@ -173,6 +173,10 @@ + { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, + { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, + { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, ++ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, ++ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, ++ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, + { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; +--- a/init.h ++++ b/init.h +@@ -1956,6 +1956,11 @@ + {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, + /* + ** .pp ++ ** Show only new mail in the sidebar. ++ */ ++ {"sidebar_newmail_only", DT_BOOL, R_BOTH, OPTSIDEBARNEWMAILONLY, "no" }, ++ /* ++ ** .pp + ** This specifies the delimiter between the sidebar (if visible) and + ** other screens. + */ +--- a/mutt.h ++++ b/mutt.h +@@ -518,6 +518,8 @@ + OPTDONTHANDLEPGPKEYS, /* (pseudo) used to extract PGP keys */ + OPTUNBUFFEREDINPUT, /* (pseudo) don't use key buffer */ + ++ OPTSIDEBARNEWMAILONLY, ++ + OPTMAX + }; + +--- a/pager.c ++++ b/pager.c +@@ -2756,6 +2756,8 @@ + case OP_SIDEBAR_SCROLL_DOWN: + case OP_SIDEBAR_NEXT: + case OP_SIDEBAR_PREV: ++ case OP_SIDEBAR_NEXT_NEW: ++ case OP_SIDEBAR_PREV_NEW: + scroll_sidebar(ch, MENU_PAGER); + break; + +--- a/sidebar.c ++++ b/sidebar.c +@@ -261,8 +261,20 @@ + SETCOLOR(MT_COLOR_NEW); + else if ( tmp->msg_flagged > 0 ) + SETCOLOR(MT_COLOR_FLAGGED); +- else +- SETCOLOR(MT_COLOR_NORMAL); ++ else { ++ /* make sure the path is either: ++ 1. Containing new mail. ++ 2. The inbox. ++ 3. The current box. ++ */ ++ if ((option (OPTSIDEBARNEWMAILONLY)) && ++ ( (tmp->msg_unread <= 0) && ++ ( tmp != Incoming ) && ++ ( strcmp( tmp->path, Context->path ) != 0 ) ) ) ++ continue; ++ else ++ SETCOLOR(MT_COLOR_NORMAL); ++ } + + move( lines, 0 ); + if ( Context && !strcmp( tmp->path, Context->path ) ) { +@@ -320,6 +332,29 @@ + return 0; + } + ++BUFFY * exist_next_new() ++{ ++ BUFFY *tmp = CurBuffy; ++ if(tmp == NULL) return NULL; ++ while (tmp->next != NULL) ++ { ++ tmp = tmp->next; ++ if(tmp->msg_unread) return tmp; ++ } ++ return NULL; ++} ++ ++BUFFY * exist_prev_new() ++{ ++ BUFFY *tmp = CurBuffy; ++ if(tmp == NULL) return NULL; ++ while (tmp->prev != NULL) ++ { ++ tmp = tmp->prev; ++ if(tmp->msg_unread) return tmp; ++ } ++ return NULL; ++} + + void set_buffystats(CONTEXT* Context) + { +@@ -336,18 +371,33 @@ + + void scroll_sidebar(int op, int menu) + { ++ BUFFY *tmp; + if(!SidebarWidth) return; + if(!CurBuffy) return; + + switch (op) { + case OP_SIDEBAR_NEXT: ++ if (!option (OPTSIDEBARNEWMAILONLY)) { + if ( CurBuffy->next == NULL ) return; + CurBuffy = CurBuffy->next; + break; ++ } ++ case OP_SIDEBAR_NEXT_NEW: ++ if ( (tmp = exist_next_new()) == NULL) ++ return; ++ else CurBuffy = tmp; ++ break; + case OP_SIDEBAR_PREV: ++ if (!option (OPTSIDEBARNEWMAILONLY)) { + if ( CurBuffy->prev == NULL ) return; + CurBuffy = CurBuffy->prev; + break; ++ } ++ case OP_SIDEBAR_PREV_NEW: ++ if ( (tmp = exist_prev_new()) == NULL) ++ return; ++ else CurBuffy = tmp; ++ break; + case OP_SIDEBAR_SCROLL_UP: + CurBuffy = TopBuffy; + if ( CurBuffy != Incoming ) { diff --git a/debian/patches/mutt-patched/sidebar-sorted b/debian/patches/mutt-patched/sidebar-sorted new file mode 100644 index 0000000..5467465 --- /dev/null +++ b/debian/patches/mutt-patched/sidebar-sorted @@ -0,0 +1,81 @@ +From: Evgeni Golov +License: 3-BSD + +When using IMAP and imap_check_subscribed, the server reports the +dirs in a random order. +This patch introduces a new option, sidebar_sort. Which, when it is +set, sorts the dirs in the sidebar alphabetically. + +I hope, it's usefull for someone ;) + +PS: This has to be applied ontop of my sidebar-dotted patch, but it +should be easy to adopt it to a vanilla mutt. + +Index: mutt/sidebar.c +=================================================================== +--- mutt.orig/sidebar.c 2009-06-25 12:36:59.000000000 +0200 ++++ mutt/sidebar.c 2009-06-25 12:37:03.000000000 +0200 +@@ -54,6 +54,35 @@ + for ( ; tmp->next != 0; tmp = tmp->next ) + tmp->next->prev = tmp; + ++ if (option(OPTSIDEBARSORT)) { ++ int needsort=1; ++ BUFFY *prev; ++ BUFFY *next; ++ BUFFY *tmp2; ++ while (needsort==1) { ++ needsort=0; ++ tmp = Incoming; ++ for ( ; tmp ; tmp=tmp->next ) { ++ if (tmp->next != NULL && strcmp(tmp->path, tmp->next->path) > 0) { ++ needsort=1; ++ prev = tmp->prev; ++ next = tmp->next; ++ if (prev != NULL) ++ prev->next = next; ++ else ++ Incoming = next; ++ next->prev = prev; ++ tmp2 = next->next; ++ next->next = tmp; ++ tmp->prev = next; ++ tmp->next = tmp2; ++ if (tmp2 != NULL) ++ tmp2->prev = tmp; ++ } ++ } ++ } ++ } ++ + if ( TopBuffy == 0 && BottomBuffy == 0 ) + TopBuffy = Incoming; + if ( BottomBuffy == 0 ) { +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2009-06-25 12:36:59.000000000 +0200 ++++ mutt/init.h 2009-06-25 12:37:03.000000000 +0200 +@@ -1974,6 +1974,11 @@ + ** .pp + ** Should the sidebar shorten the path showed. + */ ++ { "sidebar_sort", DT_BOOL, R_BOTH, OPTSIDEBARSORT, 0 }, ++ /* ++ ** .pp ++ ** Should the sidebar be sorted. ++ */ + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, + /* + ** .pp +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2009-06-25 12:36:59.000000000 +0200 ++++ mutt/mutt.h 2009-06-25 12:37:03.000000000 +0200 +@@ -427,6 +427,7 @@ + OPTSCORE, + OPTSIDEBAR, + OPTSIDEBARSHORTPATH, ++ OPTSIDEBARSORT, + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, diff --git a/debian/patches/mutt.org b/debian/patches/mutt.org new file mode 100644 index 0000000..571f303 --- /dev/null +++ b/debian/patches/mutt.org @@ -0,0 +1,6 @@ +Dummy patch to serve as marker separating patches for mutt-patched + +--- /dev/null ++++ b/.mutt.org +@@ -0,0 +1 @@ ++# dummy patch to serve as marker separating patches for mutt-patched diff --git a/debian/patches/not-applied/chdir b/debian/patches/not-applied/chdir new file mode 100644 index 0000000..a0fb00e --- /dev/null +++ b/debian/patches/not-applied/chdir @@ -0,0 +1,100 @@ +# vim:ft=diff: +This is the chdir patch by Christoph Berg . + +* Homepage: http://www.df7cb.de/projects/mutt/chdir/ + +== END PATCH +Index: mutt/init.c +=================================================================== +--- mutt.orig/init.c 2006-12-12 14:15:03.000000000 +0100 ++++ mutt/init.c 2007-02-15 20:46:18.950836872 +0100 +@@ -2214,6 +2214,35 @@ static int parse_source (BUFFER *tmp, BU + return (source_rc (path, err)); + } + ++static int parse_cd (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) ++{ ++ char path[_POSIX_PATH_MAX]; ++ ++ if (mutt_extract_token (tmp, s, 0) != 0) ++ { ++ snprintf (err->data, err->dsize, _("cd: error at %s"), s->dptr); ++ return (-1); ++ } ++ if (MoreArgs (s)) ++ { ++ strfcpy (err->data, _("cd: too many arguments"), err->dsize); ++ return (-1); ++ } ++ strfcpy (path, tmp->data, sizeof (path)); ++ mutt_expand_path (path, sizeof (path)); ++ if (!*path) { ++ char *home = getenv("HOME"); ++ if (home) ++ strfcpy (path, home, sizeof (path)); ++ } ++ if (chdir(path) != 0) { ++ snprintf (err->data, err->dsize, _("cd: %s"), strerror(errno)); ++ return (-1); ++ } ++ return (0); ++} ++ ++ + /* line command to execute + + token scratch buffer to be used by parser. caller should free +Index: mutt/init.h +=================================================================== +--- mutt.orig/init.h 2006-12-12 14:15:03.000000000 +0100 ++++ mutt/init.h 2007-02-15 20:46:18.951836720 +0100 +@@ -3020,6 +3020,7 @@ static int parse_unalias (BUFFER *, BUFF + static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *); ++static int parse_cd (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_set (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_my_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *); + static int parse_unmy_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *); +@@ -3056,6 +3057,7 @@ struct command_t Commands[] = { + { "auto_view", parse_list, UL &AutoViewList }, + { "alternative_order", parse_list, UL &AlternativeOrderList}, + { "bind", mutt_parse_bind, 0 }, ++ { "cd", parse_cd, 0 }, + { "charset-hook", mutt_parse_hook, M_CHARSETHOOK }, + #ifdef HAVE_COLOR + { "color", mutt_parse_color, 0 }, +Index: mutt/doc/manual.xml.head +=================================================================== +--- mutt.orig/doc/manual.xml.head 2007-02-15 20:51:41.226843472 +0100 ++++ mutt/doc/manual.xml.head 2007-02-15 20:51:45.303223768 +0100 +@@ -1701,6 +1701,25 @@ sequence. + + + ++ ++Changing the current working directory ++ ++ ++ ++Usage: cd directory ++ ++ ++ ++ ++The cd command changes Mutt's current working directory. ++This affects commands and functions like source, ++change-folder, and save-entry that use ++relative paths. Using cd without directory changes to your ++home directory. ++ ++ ++ ++ + + Defining aliases for character sets + +--- a/PATCHES ++++ b/PATCHES +@@ -0,0 +1 @@ ++patch-1.5.13.cb.chdir.1 diff --git a/debian/patches/not-applied/indexcolor b/debian/patches/not-applied/indexcolor new file mode 100644 index 0000000..c74ab3c --- /dev/null +++ b/debian/patches/not-applied/indexcolor @@ -0,0 +1,670 @@ +# vim:ft=diff: +This is the indexcolor patch by Christian Aichinger . + +This patch enables different colorings for different parts of the index +display. For example you can choose one color for the subject, another one for +the author, and a third one for the flags. + +* Patch last synced with upstream: + - Date: 2007-02-15 + - File: http://greek0.net/mutt.html + http://greek0.net/patches/mutt-1.5.12-indexcolor-3+cb.diff + +* Changes made: + - Repatch for 1.5.13. + - Remove trailing whitespace. + +== END PATCH +Index: mutt/color.c +=================================================================== +--- mutt.orig/color.c 2007-02-15 21:26:09.140472816 +0100 ++++ mutt/color.c 2007-02-15 21:26:47.860586464 +0100 +@@ -35,6 +35,8 @@ int ColorDefs[MT_COLOR_MAX]; + COLOR_LINE *ColorHdrList = NULL; + COLOR_LINE *ColorBodyList = NULL; + COLOR_LINE *ColorIndexList = NULL; ++COLOR_LINE *ColorIndexSubjectList = NULL; ++COLOR_LINE *ColorIndexAuthorList = NULL; + + /* local to this file */ + static int ColorQuoteSize; +@@ -93,6 +95,14 @@ static struct mapping_t Fields[] = + { "bold", MT_COLOR_BOLD }, + { "underline", MT_COLOR_UNDERLINE }, + { "index", MT_COLOR_INDEX }, ++ { "index_subject", MT_COLOR_INDEX_SUBJECT }, ++ { "index_author", MT_COLOR_INDEX_AUTHOR }, ++ { "index_collapsed", MT_COLOR_INDEX_COLLAPSED }, ++ { "index_date", MT_COLOR_INDEX_DATE }, ++ { "index_flags", MT_COLOR_INDEX_FLAGS }, ++ { "index_label", MT_COLOR_INDEX_LABEL }, ++ { "index_number", MT_COLOR_INDEX_NUMBER }, ++ { "index_size", MT_COLOR_INDEX_SIZE }, + { NULL, 0 } + }; + +@@ -364,12 +374,55 @@ int mutt_parse_unmono (BUFFER *buf, BUFF + return _mutt_parse_uncolor(buf, s, data, err, 0); + } + ++static void ++mutt_do_uncolor (BUFFER *buf, BUFFER *s, COLOR_LINE **ColorList, ++ int *do_cache, int parse_uncolor) ++{ ++ COLOR_LINE *tmp, *last = NULL; ++ ++ do ++ { ++ mutt_extract_token (buf, s, 0); ++ if (!mutt_strcmp ("*", buf->data)) ++ { ++ for (tmp = *ColorList; tmp; ) ++ { ++ if (!*do_cache) ++ *do_cache = 1; ++ last = tmp; ++ tmp = tmp->next; ++ mutt_free_color_line(&last, parse_uncolor); ++ } ++ *ColorList = NULL; ++ } ++ else ++ { ++ for (last = NULL, tmp = *ColorList; tmp; last = tmp, tmp = tmp->next) ++ { ++ if (!mutt_strcmp (buf->data, tmp->pattern)) ++ { ++ if (!*do_cache) ++ *do_cache = 1; ++ dprint(1,(debugfile,"Freeing pattern \"%s\" from ColorList\n", ++ tmp->pattern)); ++ if (last) ++ last->next = tmp->next; ++ else ++ *ColorList = tmp->next; ++ mutt_free_color_line(&tmp, parse_uncolor); ++ break; ++ } ++ } ++ } ++ } ++ while (MoreArgs (s)); ++} ++ + static int + _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err, + short parse_uncolor) + { + int object = 0, do_cache = 0; +- COLOR_LINE *tmp, *last = NULL; + + mutt_extract_token (buf, s, 0); + +@@ -379,6 +432,13 @@ _mutt_parse_uncolor (BUFFER *buf, BUFFER + return (-1); + } + ++ if (object > MT_COLOR_INDEX_AUTHOR) /* uncolor index column */ ++ { ++ ColorDefs[object] = 0; ++ set_option (OPTFORCEREDRAWINDEX); ++ return (0); ++ } ++ + if (mutt_strncmp (buf->data, "index", 5) != 0) + { + snprintf (err->data, err->dsize, +@@ -416,44 +476,12 @@ _mutt_parse_uncolor (BUFFER *buf, BUFFER + return 0; + } + +- +- do +- { +- mutt_extract_token (buf, s, 0); +- if (!mutt_strcmp ("*", buf->data)) +- { +- for (tmp = ColorIndexList; tmp; ) +- { +- if (!do_cache) +- do_cache = 1; +- last = tmp; +- tmp = tmp->next; +- mutt_free_color_line(&last, parse_uncolor); +- } +- ColorIndexList = NULL; +- } +- else +- { +- for (last = NULL, tmp = ColorIndexList; tmp; last = tmp, tmp = tmp->next) +- { +- if (!mutt_strcmp (buf->data, tmp->pattern)) +- { +- if (!do_cache) +- do_cache = 1; +- dprint(1,(debugfile,"Freeing pattern \"%s\" from ColorIndexList\n", +- tmp->pattern)); +- if (last) +- last->next = tmp->next; +- else +- ColorIndexList = tmp->next; +- mutt_free_color_line(&tmp, parse_uncolor); +- break; +- } +- } +- } +- } +- while (MoreArgs (s)); +- ++ if (object == MT_COLOR_INDEX) ++ mutt_do_uncolor(buf, s, &ColorIndexList, &do_cache, parse_uncolor); ++ if (object == MT_COLOR_INDEX_SUBJECT) ++ mutt_do_uncolor(buf, s, &ColorIndexSubjectList, &do_cache, parse_uncolor); ++ if (object == MT_COLOR_INDEX_AUTHOR) ++ mutt_do_uncolor(buf, s, &ColorIndexAuthorList, &do_cache, parse_uncolor); + + if (do_cache && !option (OPTNOCURSES)) + { +@@ -693,7 +721,7 @@ _mutt_parse_color (BUFFER *buf, BUFFER * + + /* extract a regular expression if needed */ + +- if (object == MT_COLOR_HEADER || object == MT_COLOR_BODY || object == MT_COLOR_INDEX) ++ if (object == MT_COLOR_HEADER || object == MT_COLOR_BODY || object == MT_COLOR_INDEX || object == MT_COLOR_INDEX_SUBJECT || object == MT_COLOR_INDEX_AUTHOR) + { + if (!MoreArgs (s)) + { +@@ -737,6 +765,18 @@ _mutt_parse_color (BUFFER *buf, BUFFER * + r = add_pattern (&ColorIndexList, buf->data, 1, fg, bg, attr, err, 1); + set_option (OPTFORCEREDRAWINDEX); + } ++ else if (object == MT_COLOR_INDEX_SUBJECT) ++ { ++ r = add_pattern (&ColorIndexSubjectList, buf->data, ++ 1, fg, bg, attr, err, 1); ++ set_option (OPTFORCEREDRAWINDEX); ++ } ++ else if (object == MT_COLOR_INDEX_AUTHOR) ++ { ++ r = add_pattern (&ColorIndexAuthorList, buf->data, ++ 1, fg, bg, attr, err, 1); ++ set_option (OPTFORCEREDRAWINDEX); ++ } + else if (object == MT_COLOR_QUOTED) + { + if (q_level >= ColorQuoteSize) +@@ -762,7 +802,11 @@ _mutt_parse_color (BUFFER *buf, BUFFER * + ColorQuote[q_level] = fgbgattr_to_color(fg, bg, attr); + } + else ++ { + ColorDefs[object] = fgbgattr_to_color(fg, bg, attr); ++ if (object > MT_COLOR_INDEX_AUTHOR) ++ set_option (OPTFORCEREDRAWINDEX); ++ } + + #ifdef HAVE_COLOR + # ifdef HAVE_BKGDSET +Index: mutt/curs_lib.c +=================================================================== +--- mutt.orig/curs_lib.c 2007-02-15 21:26:09.183466280 +0100 ++++ mutt/curs_lib.c 2007-02-15 21:26:15.898445448 +0100 +@@ -648,6 +648,7 @@ void mutt_format_string (char *dest, siz + size_t k, k2; + char scratch[MB_LEN_MAX]; + mbstate_t mbstate1, mbstate2; ++ int escaped = 0; + + memset(&mbstate1, 0, sizeof (mbstate1)); + memset(&mbstate2, 0, sizeof (mbstate2)); +@@ -663,7 +664,15 @@ void mutt_format_string (char *dest, siz + k = (k == (size_t)(-1)) ? 1 : n; + wc = replacement_char (); + } +- if (arboreal && wc < M_TREE_MAX) ++ if (escaped) { ++ escaped = 0; ++ w = 0; ++ } ++ else if (arboreal && wc == M_SPECIAL_INDEX) { ++ escaped = 1; ++ w = 0; ++ } ++ else if (arboreal && wc < M_TREE_MAX) + w = 1; /* hack */ + else + { +Index: mutt/hdrline.c +=================================================================== +--- mutt.orig/hdrline.c 2007-02-15 21:26:09.226459744 +0100 ++++ mutt/hdrline.c 2007-02-15 21:26:15.899445296 +0100 +@@ -99,6 +99,34 @@ static int first_mailing_list (char *buf + return 0; + } + ++/* Takes the color to embed, the buffer to manipulate and the buffer length as ++ * arguments. ++ * Returns the number of chars written. */ ++static size_t add_index_color(char *buf, size_t buflen, ++ format_flag flags, char color) ++{ ++ int len; ++ ++ /* only add color markers if we are operating on main index entries. */ ++ if (!(flags & M_FORMAT_INDEX)) ++ return 0; ++ ++ if (color == MT_COLOR_INDEX) { /* buf might be uninitialized other cases */ ++ len = mutt_strlen(buf); ++ buf += len; ++ buflen -= len; ++ } ++ ++ if (buflen < 2) ++ return 0; ++ ++ buf[0] = M_SPECIAL_INDEX; ++ buf[1] = color; ++ buf[2] = '\0'; ++ ++ return 2; ++} ++ + static void make_from (ENVELOPE *hdr, char *buf, size_t len, int do_lists) + { + int me; +@@ -251,6 +279,7 @@ hdr_format_str (char *dest, + #define THREAD_NEW (threads && hdr->collapsed && hdr->num_hidden > 1 && mutt_thread_contains_unread (ctx, hdr) == 1) + #define THREAD_OLD (threads && hdr->collapsed && hdr->num_hidden > 1 && mutt_thread_contains_unread (ctx, hdr) == 2) + size_t len; ++ size_t colorlen; + + hdr = hfi->hdr; + ctx = hfi->ctx; +@@ -302,12 +331,17 @@ hdr_format_str (char *dest, + break; + + case 'c': ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SIZE); + mutt_pretty_size (buf2, sizeof (buf2), (long) hdr->content->length); +- mutt_format_s (dest, destlen, prefix, buf2); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + break; + + case 'C': +- snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ colorlen = add_index_color(fmt, sizeof(fmt), flags, MT_COLOR_INDEX_NUMBER); ++ snprintf (fmt+colorlen, sizeof(fmt)-colorlen, "%%%sd", prefix); ++ add_index_color(fmt+colorlen, sizeof(fmt)-colorlen, flags, MT_COLOR_INDEX); ++ + snprintf (dest, destlen, fmt, hdr->msgno + 1); + break; + +@@ -406,7 +440,10 @@ hdr_format_str (char *dest, + if (do_locales) + setlocale (LC_TIME, "C"); + +- mutt_format_s (dest, destlen, prefix, buf2); ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_DATE); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); ++ + if (len > 0 && op != 'd' && op != 'D') /* Skip ending op */ + src = cp + 1; + } +@@ -436,8 +473,10 @@ hdr_format_str (char *dest, + case 'F': + if (!optional) + { ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_AUTHOR); + make_from (hdr->env, buf2, sizeof (buf2), 0); +- mutt_format_s (dest, destlen, prefix, buf2); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + } + else if (mutt_addr_is_user (hdr->env->from)) + optional = 0; +@@ -463,7 +502,9 @@ hdr_format_str (char *dest, + if (!optional) + { + snprintf (fmt, sizeof (fmt), "%%%sd", prefix); +- snprintf (dest, destlen, fmt, (int) hdr->lines); ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SIZE); ++ snprintf (dest+colorlen, destlen-colorlen, fmt, (int) hdr->lines); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + } + else if (hdr->lines <= 0) + optional = 0; +@@ -472,8 +513,10 @@ hdr_format_str (char *dest, + case 'L': + if (!optional) + { ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_AUTHOR); + make_from (hdr->env, buf2, sizeof (buf2), 1); +- mutt_format_s (dest, destlen, prefix, buf2); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + } + else if (!check_for_mailing_list (hdr->env->to, NULL, NULL, 0) && + !check_for_mailing_list (hdr->env->cc, NULL, NULL, 0)) +@@ -528,10 +571,16 @@ hdr_format_str (char *dest, + snprintf (fmt, sizeof (fmt), "%%%sd", prefix); + if (!optional) + { +- if (threads && is_index && hdr->collapsed && hdr->num_hidden > 1) +- snprintf (dest, destlen, fmt, hdr->num_hidden); +- else if (is_index && threads) +- mutt_format_s (dest, destlen, prefix, " "); ++ colorlen = add_index_color(dest, destlen, flags, ++ MT_COLOR_INDEX_COLLAPSED); ++ if (threads && is_index && hdr->collapsed && hdr->num_hidden > 1) { ++ snprintf (dest+colorlen, destlen-colorlen, fmt, hdr->num_hidden); ++ add_index_color(dest, destlen-colorlen, flags, MT_COLOR_INDEX); ++ } ++ else if (is_index && threads) { ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, " "); ++ add_index_color(dest, destlen-colorlen, flags, MT_COLOR_INDEX); ++ } + else + *dest = '\0'; + } +@@ -548,15 +597,23 @@ hdr_format_str (char *dest, + { + if (flags & M_FORMAT_FORCESUBJ) + { +- mutt_format_s (dest, destlen, "", NONULL (hdr->env->subject)); ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SUBJECT); ++ mutt_format_s (dest+colorlen, destlen-colorlen, "", ++ NONULL (hdr->env->subject)); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); ++ + snprintf (buf2, sizeof (buf2), "%s%s", hdr->tree, dest); + mutt_format_s_tree (dest, destlen, prefix, buf2); + } + else + mutt_format_s_tree (dest, destlen, prefix, hdr->tree); + } +- else +- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->subject)); ++ else { ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SUBJECT); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, ++ NONULL (hdr->env->subject)); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); ++ } + break; + + case 'S': +@@ -652,7 +709,9 @@ hdr_format_str (char *dest, + hdr->tagged ? '*' : + (hdr->flagged ? '!' : + (Tochars && ((i = mutt_user_is_recipient (hdr)) < mutt_strlen (Tochars)) ? Tochars[i] : ' '))); +- mutt_format_s (dest, destlen, prefix, buf2); ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_FLAGS); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + break; + + case 'X': +@@ -672,7 +731,9 @@ hdr_format_str (char *dest, + if (optional) + optional = hdr->env->x_label ? 1 : 0; + +- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->x_label)); ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_LABEL); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, NONULL (hdr->env->x_label)); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + break; + + case 'Y': +@@ -698,10 +759,12 @@ hdr_format_str (char *dest, + if (optional) + optional = i; + ++ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_LABEL); + if (i) +- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->x_label)); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, NONULL (hdr->env->x_label)); + else +- mutt_format_s (dest, destlen, prefix, ""); ++ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, ""); ++ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX); + + break; + +Index: mutt/menu.c +=================================================================== +--- mutt.orig/menu.c 2007-02-15 21:26:09.270453056 +0100 ++++ mutt/menu.c 2007-02-15 21:26:15.900445144 +0100 +@@ -36,7 +36,30 @@ extern int Charset_is_utf8; /* FIXME: ba + + extern size_t UngetCount; + +-static void print_enriched_string (int attr, unsigned char *s, int do_color) ++static int get_color(int index, int type) { ++ COLOR_LINE *color; ++ HEADER *hdr = Context->hdrs[index]; ++ ++ switch (type) { ++ case MT_COLOR_INDEX_SUBJECT: ++ color = ColorIndexSubjectList; ++ break; ++ case MT_COLOR_INDEX_AUTHOR: ++ color = ColorIndexAuthorList; ++ break; ++ default: ++ return ColorDefs[type]; ++ } ++ ++ for (; color; color = color->next) ++ if (mutt_pattern_exec (color->color_pattern, M_MATCH_FULL_ADDRESS, ++ Context, hdr)) ++ return color->pair; ++ ++ return 0; ++} ++ ++static void print_enriched_string (int index, int attr, unsigned char *s, int do_color) + { + wchar_t wc; + size_t k; +@@ -133,6 +156,18 @@ static void print_enriched_string (int a + } + if (do_color) attrset(attr); + } ++ else if(*s == M_SPECIAL_INDEX) ++ { ++ s++; ++ if (do_color) { ++ if (*s == MT_COLOR_INDEX) ++ attrset(attr); ++ else ++ attron(get_color(index, *s)); ++ } ++ s++; ++ n -= 2; ++ } + else if ((k = mbrtowc (&wc, (char *)s, n, &mbstate)) > 0) + { + addnstr ((char *)s, k); +@@ -235,7 +270,7 @@ void menu_redraw_index (MUTTMENU *menu) + addstr (" "); + } + +- print_enriched_string (menu->color(i), (unsigned char *) buf, 1); ++ print_enriched_string (i, menu->color(i), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + else +@@ -249,7 +284,7 @@ void menu_redraw_index (MUTTMENU *menu) + } + + CLEARLINE (i - menu->top + menu->offset); +- print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); ++ print_enriched_string (i, menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } +@@ -286,7 +321,7 @@ void menu_redraw_motion (MUTTMENU *menu) + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); + move (menu->oldcurrent + menu->offset - menu->top, 3); +- print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); ++ print_enriched_string (menu->oldcurrent, menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + +@@ -304,7 +339,7 @@ void menu_redraw_motion (MUTTMENU *menu) + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); + menu_pad_string (buf, sizeof (buf)); +- print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1); ++ print_enriched_string (menu->oldcurrent, menu->color(menu->oldcurrent), (unsigned char *) buf, 1); + + /* now draw the new one to reflect the change */ + menu_make_entry (buf, sizeof (buf), menu, menu->current); +@@ -313,7 +348,7 @@ void menu_redraw_motion (MUTTMENU *menu) + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); + CLEARLINE (menu->current - menu->top + menu->offset); +- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); ++ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } +@@ -339,7 +374,7 @@ void menu_redraw_current (MUTTMENU *menu + attrset (attr); + addch (' '); + menu_pad_string (buf, sizeof (buf)); +- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 1); ++ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 1); + SETCOLOR (MT_COLOR_NORMAL); + } + else +@@ -348,7 +383,7 @@ void menu_redraw_current (MUTTMENU *menu + ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); + clrtoeol (); +- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); ++ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 0); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } +Index: mutt/mutt_curses.h +=================================================================== +--- mutt.orig/mutt_curses.h 2007-02-15 21:26:09.314446368 +0100 ++++ mutt/mutt_curses.h 2007-02-15 21:26:15.900445144 +0100 +@@ -126,6 +126,16 @@ enum + MT_COLOR_BOLD, + MT_COLOR_UNDERLINE, + MT_COLOR_INDEX, ++ /* please no non-MT_COLOR_INDEX objects after this point */ ++ MT_COLOR_INDEX_SUBJECT, ++ MT_COLOR_INDEX_AUTHOR, ++ /* below only index coloring stuff that doesn't have a colorline! */ ++ MT_COLOR_INDEX_COLLAPSED, ++ MT_COLOR_INDEX_DATE, ++ MT_COLOR_INDEX_FLAGS, ++ MT_COLOR_INDEX_LABEL, ++ MT_COLOR_INDEX_NUMBER, ++ MT_COLOR_INDEX_SIZE, + MT_COLOR_MAX + }; + +@@ -165,6 +175,8 @@ extern int ColorDefs[]; + extern COLOR_LINE *ColorHdrList; + extern COLOR_LINE *ColorBodyList; + extern COLOR_LINE *ColorIndexList; ++extern COLOR_LINE *ColorIndexSubjectList; ++extern COLOR_LINE *ColorIndexAuthorList; + + void ci_init_color (void); + void ci_start_color (void); +Index: mutt/mutt.h +=================================================================== +--- mutt.orig/mutt.h 2007-02-15 21:26:09.358439680 +0100 ++++ mutt/mutt.h 2007-02-15 21:26:15.901444992 +0100 +@@ -176,6 +176,8 @@ typedef enum + #define M_TREE_MISSING 13 + #define M_TREE_MAX 14 + ++#define M_SPECIAL_INDEX M_TREE_MAX ++ + #define M_THREAD_COLLAPSE (1<<0) + #define M_THREAD_UNCOLLAPSE (1<<1) + #define M_THREAD_GET_HIDDEN (1<<2) +Index: mutt/doc/manual.xml.head +=================================================================== +--- mutt.orig/doc/manual.xml.head 2007-02-15 21:26:09.446426304 +0100 ++++ mutt/doc/manual.xml.head 2007-02-15 21:26:15.903444688 +0100 +@@ -1837,8 +1837,8 @@ silently truncated at the screen width, + + + Usage: color object foreground background [ regexp ] +-Usage: color index foreground background pattern +-Usage: uncolor index pattern [ pattern ... ] ++Usage: color index-object foreground background pattern ++ Usage: uncolor index-object pattern [ pattern ... ] + + + +@@ -1901,6 +1901,54 @@ index (match pattern + + ++index_author (color of the author name in the index, uses pattern) ++ ++ ++ ++ ++ ++index_collapsed (the number of messages in a collapsed thread in the index) ++ ++ ++ ++ ++ ++index_date (color of the date field in the index) ++ ++ ++ ++ ++ ++index_flags (color of the message flags in the index) ++ ++ ++ ++ ++ ++index_label (color of the message label in the index) ++ ++ ++ ++ ++ ++index_number (color of the message number in the index) ++ ++ ++ ++ ++ ++index_size (color of the message size and line number in the index) ++ ++ ++ ++ ++ ++index_subject (color of the subject in the index, uses pattern) ++ ++ ++ ++ ++ + indicator (arrow or bar used to indicate the current item in a menu) + + +--- a/PATCHES ++++ b/PATCHES +@@ -0,0 +1 @@ ++patch-1.5.13.greek0.indexcolor-3+cb diff --git a/debian/patches/not-applied/w3mface b/debian/patches/not-applied/w3mface new file mode 100644 index 0000000..3dda72b --- /dev/null +++ b/debian/patches/not-applied/w3mface @@ -0,0 +1,308 @@ +# vim:ft=diff: +This is the xface (w3mface) patch by TAKAHASHI Tamotsu +. + +Needs w3m-img, compface, and netpbm installed. + +* Homepage: http://www.df7cb.de/projects/mutt/x-face/ + +* Changes made: + - Remove LIBEXECDIR definition to avoid needing rerunning automake, + hardcode /usr/lib/w3m/w3mimgdisplay. + +== END PATCH +Index: xface/globals.h +=================================================================== +--- xface.orig/globals.h 2007-02-15 20:28:46.961763520 +0100 ++++ xface/globals.h 2007-02-15 20:28:56.069378952 +0100 +@@ -146,6 +146,11 @@ WHERE const char *ReleaseDate; + + WHERE HASH *Groups; + ++WHERE char *UncompFace; ++WHERE char *IconToPbm; ++WHERE char *W3mImgDisplay; ++WHERE char *W3mOpt; ++ + WHERE LIST *AutoViewList INITVAL(0); + WHERE LIST *AlternativeOrderList INITVAL(0); + WHERE LIST *AttachAllow INITVAL(0); +Index: xface/hcache.c +=================================================================== +--- xface.orig/hcache.c 2007-02-15 20:28:46.968762456 +0100 ++++ xface/hcache.c 2007-02-15 20:28:56.069378952 +0100 +@@ -401,6 +401,7 @@ dump_envelope(ENVELOPE * e, unsigned cha + d = dump_char(e->message_id, d, off); + d = dump_char(e->supersedes, d, off); + d = dump_char(e->date, d, off); ++ d = dump_char(e->x_face, d, off); + d = dump_char(e->x_label, d, off); + + d = dump_buffer(e->spam, d, off); +@@ -438,6 +439,7 @@ restore_envelope(ENVELOPE * e, const uns + restore_char(&e->message_id, d, off); + restore_char(&e->supersedes, d, off); + restore_char(&e->date, d, off); ++ restore_char(&e->x_face, d, off); + restore_char(&e->x_label, d, off); + + restore_buffer(&e->spam, d, off); +Index: xface/init.h +=================================================================== +--- xface.orig/init.h 2007-02-15 20:28:46.976761240 +0100 ++++ xface/init.h 2007-02-15 20:29:15.382442920 +0100 +@@ -2941,6 +2941,31 @@ struct option_t MuttVars[] = { + ** Controls whether mutt writes out the Bcc header when preparing + ** messages to be sent. Exim users may wish to unset this. + */ ++ { "xface", DT_BOOL, R_NONE, OPTXFACE, 0 }, ++ /* ++ ** .pp ++ ** Controls whether mutt displays X-Faces. ++ */ ++ { "xface_icontopbm", DT_PATH, R_NONE, UL &IconToPbm, UL "icontopbm" }, ++ /* ++ ** .pp ++ ** Specify the path to ``icontopbm'' program. ++ */ ++ { "xface_uncompface", DT_PATH, R_NONE, UL &UncompFace, UL "uncompface" }, ++ /* ++ ** .pp ++ ** Specify the path to ``uncompface'' program. ++ */ ++ { "xface_w3mimgdisplay",DT_PATH, R_NONE, UL &W3mImgDisplay, UL "/usr/lib/w3m/w3mimgdisplay" }, ++ /* ++ ** .pp ++ ** Specify the path to ``w3mimgdisplay'' program. ++ */ ++ { "xface_w3mimgdisplay_options",DT_STR, R_NONE, UL &W3mOpt, UL "-x 5 -y 5" }, ++ /* ++ ** .pp ++ ** Specify options for ``w3mimgdisplay'' program. ++ */ + /*--*/ + { NULL } + }; +Index: xface/mutt.h +=================================================================== +--- xface.orig/mutt.h 2007-02-15 20:28:46.983760176 +0100 ++++ xface/mutt.h 2007-02-15 20:28:56.071378648 +0100 +@@ -450,6 +450,7 @@ enum + OPTWRAP, + OPTWRAPSEARCH, + OPTWRITEBCC, /* write out a bcc header? */ ++ OPTXFACE, + OPTXMAILER, + + OPTCRYPTUSEGPGME, +@@ -587,6 +588,7 @@ typedef struct envelope + char *message_id; + char *supersedes; + char *date; ++ char *x_face; /* X-Face header content */ + char *x_label; + BUFFER *spam; + LIST *references; /* message references (in reverse order) */ +Index: xface/muttlib.c +=================================================================== +--- xface.orig/muttlib.c 2007-02-15 20:28:46.991758960 +0100 ++++ xface/muttlib.c 2007-02-15 20:28:56.072378496 +0100 +@@ -670,6 +670,7 @@ void mutt_free_envelope (ENVELOPE **p) + FREE (&(*p)->message_id); + FREE (&(*p)->supersedes); + FREE (&(*p)->date); ++ FREE (&(*p)->x_face); + FREE (&(*p)->x_label); + + mutt_buffer_free (&(*p)->spam); +Index: xface/pager.c +=================================================================== +--- xface.orig/pager.c 2007-02-15 20:28:47.000757592 +0100 ++++ xface/pager.c 2007-02-15 20:28:56.072378496 +0100 +@@ -1479,6 +1479,89 @@ upNLines (int nlines, struct line_t *inf + return cur; + } + ++static int ++display_xface (HEADER *hdr) ++{ ++ char facefile[_POSIX_PATH_MAX + 1]; ++ char command[LONG_STRING]; ++ char *facedata; ++ FILE *fpin = NULL, *fpout = NULL; ++ pid_t pid; ++ ++ /* everything ready? */ ++ if (!UncompFace || !(*UncompFace) || ++ !IconToPbm || !(*IconToPbm) || ++ !W3mImgDisplay || !(*W3mImgDisplay) || ++ !hdr || !hdr->env || !hdr->env->x_face) ++ return 0; ++ ++ /* test w3mimgdisplay */ ++ snprintf (command, sizeof (command), "%s -test >/dev/null", W3mImgDisplay); ++ if (mutt_system (command) == -1) ++ return 0; ++ ++ /* prepare facedata */ ++ facedata = hdr->env->x_face; ++ ++ /* convert facedata to imagedata ++ * and store imagedata in facefile ++ */ ++ mutt_mktemp (facefile); ++ if ((fpout = safe_fopen (facefile, "w")) == NULL) ++ { ++ mutt_error (_("Could not create temporary file!")); ++ return 0; ++ } ++ snprintf (command, sizeof (command), ++ "( echo '/* Width=48, Height=48 */'; %s ) | %s", ++ UncompFace, IconToPbm); ++ pid = mutt_create_filter_fd ++ (command, &fpin, NULL, NULL, -1, fileno (fpout), -1); ++ if (pid < 0) ++ { ++ mutt_perror (_("face filter")); ++ safe_fclose (&fpout); ++ mutt_unlink (facefile); ++ return 0; ++ } ++ /* pass facedata to converters */ ++ fputs (facedata, fpin); ++ if (safe_fclose (&fpin) != 0 && errno != EPIPE) ++ { ++ if (fpout != NULL) ++ { ++ mutt_wait_filter (pid); ++ safe_fclose (&fpout); ++ } ++ mutt_unlink (facefile); ++ return 0; ++ } ++ if (fpout != NULL) ++ mutt_wait_filter (pid); ++ safe_fclose (&fpout); ++ ++ /* ++ * w3mimgdisplay ++ */ ++ snprintf (command, sizeof (command), ++ "%s %s", W3mImgDisplay, NONULL (W3mOpt)); ++ pid = mutt_create_filter_fd ++ (command, &fpin, NULL, NULL, -1, -1, -1); ++ if (pid < 0) ++ { ++ mutt_perror ("w3mdisp"); ++ mutt_unlink (facefile); ++ return 0; ++ } ++ /* pass facefile to w3mimgdisplay */ ++ fprintf (fpin, "2;3;\n0;1;0;0;48;48;0;0;48;48;%s\n4;\n3;\n", facefile); ++ if (safe_fclose (&fpin) != 0 && errno != EPIPE) ++ mutt_perror ("w3mdisp"); ++ mutt_wait_filter (pid); ++ mutt_unlink (facefile); ++ return 0; ++} ++ + static struct mapping_t PagerHelp[] = { + { N_("Exit"), OP_EXIT }, + { N_("PrevPg"), OP_PREV_PAGE }, +@@ -1514,6 +1597,7 @@ mutt_pager (const char *banner, const ch + int lines = 0, curline = 0, topline = 0, oldtopline = 0, err, first = 1; + int r = -1; + int redraw = REDRAW_FULL; ++ int xface = 0; + FILE *fp = NULL; + LOFF_T last_pos = 0, last_offset = 0; + int old_smart_wrap, old_markers; +@@ -1593,6 +1677,8 @@ mutt_pager (const char *banner, const ch + + if (redraw & REDRAW_FULL) + { ++ xface = 1; /* display xface later */ ++ + SETCOLOR (MT_COLOR_NORMAL); + /* clear() doesn't optimize screen redraws */ + move (0, 0); +@@ -1794,6 +1880,11 @@ mutt_pager (const char *banner, const ch + } else move (statusoffset, COLS-1); + mutt_refresh (); + ++ /* X-Face */ ++ if (option (OPTXFACE) && xface && IsHeader (extra)) ++ display_xface (extra->hdr); ++ xface = 0; ++ + if (IsHeader (extra) && OldHdr == extra->hdr && TopLine != topline + && lineInfo[curline].offset < sb.st_size-1) + { +Index: xface/parse.c +=================================================================== +--- xface.orig/parse.c 2007-02-15 20:28:47.007756528 +0100 ++++ xface/parse.c 2007-02-15 20:28:56.073378344 +0100 +@@ -43,6 +43,7 @@ char *mutt_read_rfc822_line (FILE *f, ch + char *buf = line; + char ch; + size_t offset = 0; ++ int xface = 0; + + FOREVER + { +@@ -53,6 +54,9 @@ char *mutt_read_rfc822_line (FILE *f, ch + return (line); + } + ++ if (ascii_strcasecmp (buf, "x-face:") == 0) ++ xface = 1; ++ + buf += strlen (buf) - 1; + if (*buf == '\n') + { +@@ -71,9 +75,12 @@ char *mutt_read_rfc822_line (FILE *f, ch + /* eat tabs and spaces from the beginning of the continuation line */ + while ((ch = fgetc (f)) == ' ' || ch == '\t') + ; +- ungetc (ch, f); +- *++buf = ' '; /* string is still terminated because we removed +- at least one whitespace char above */ ++ if (!xface) ++ { ++ ungetc (ch, f); ++ *++buf = ' '; /* string is still terminated because we removed ++ at least one whitespace char above */ ++ } + } + + buf++; +@@ -1244,6 +1251,11 @@ int mutt_parse_rfc822_line (ENVELOPE *e, + e->x_label = safe_strdup(p); + matched = 1; + } ++ else if (ascii_strcasecmp (line+1, "-face") == 0) ++ { ++ e->x_face = safe_strdup (p); ++ matched = 1; ++ } + + default: + break; +Index: xface/sendlib.c +=================================================================== +--- xface.orig/sendlib.c 2007-02-15 20:28:47.017755008 +0100 ++++ xface/sendlib.c 2007-02-15 20:28:56.074378192 +0100 +@@ -1829,6 +1829,9 @@ int mutt_write_rfc822_header (FILE *fp, + } + } + ++ if (env->x_face) ++ fprintf (fp, "X-Face: %s\n", env->x_face); ++ + if (mode == 0 && !privacy && option (OPTXMAILER) && !has_agent) + { + /* Add a vanity header */ +--- a/PATCHES ++++ b/PATCHES +@@ -0,0 +1 @@ ++patch-1.5.13.tamo.w3mface.2 diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..404ac09 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,84 @@ +# build system patches +misc/am-maintainer-mode +misc/hg.pmdef.debugtime +debian-specific/build_doc_adjustments.diff + +# features +features/ifdef +features/xtitles +features/trash-folder +features/purge-message +features/imap_fast_trash +features/sensible_browser_position +features-old/patch-1.5.4.vk.pgp_verbose_mime +features/compressed-folders +features/compressed-folders.debian + +# Debian config +debian-specific/Muttrc +debian-specific/Md.etc_mailname_gethostbyname.diff +debian-specific/use_usr_bin_editor.diff +debian-specific/correct_docdir_in_man_page.diff +debian-specific/dont_document_not_present_features.diff +debian-specific/document_debian_defaults +debian-specific/assumed_charset-compat +debian-specific/467432-write_bcc.patch +misc/define-pgp_getkeys_command.diff +misc/gpg.rc-paths +misc/smime.rc + +# patches integrated from upstream mercurial +# drop them with a new upstream release +upstream/533209-mutt_perror.patch +upstream/533459-unmailboxes.patch +upstream/533439-mbox-time.patch +upstream/531430-imapuser.patch +upstream/534543-imap-port.patch +upstream/538128-mh-folder-access.patch +upstream/537818-emptycharset.patch +upstream/535096-pop-port.patch +upstream/542910-search-segfault.patch +upstream/533370-pgp-inline.patch +upstream/533520-signature-highlight.patch +upstream/393926-internal-viewer.patch +upstream/543467-thread-segfault.patch +upstream/544180-italian-yesorno.patch +upstream/542817-smimekeys-tmpdir.patch +upstream/544794-smtp-batch.patch +upstream/537694-segv-imap-headers.patch +upstream/548577-gpgme-1.2.patch +upstream/548494-swedish-intl.patch +upstream/553321-ansi-escape-segfault.patch +upstream/553238-german-intl.patch +upstream/557395-muttrc-crypto.patch +upstream/545316-header-color.patch +upstream/568295-references.patch +upstream/547980-smime_keys-chaining.patch +upstream/528233-readonly-open.patch +upstream/228671-pipe-mime.patch +upstream/383769-score-match.patch +upstream/547739-manual-typos.patch +upstream/311296-rand-mktemp.patch +upstream/573823-imap_internal_date +upstream/542344-dont_fold_From_ + +upstream/path_max +misc/hyphen-as-minus.patch +#misc/manpage-typos.patch +misc/smime_keys-manpage.patch + +mutt.org +# extra patches for mutt-patched +mutt-patched/sidebar +mutt-patched/sidebar-dotted +mutt-patched/sidebar-sorted + +# not applying cleanly at the moment +#mutt-patched/nntp + +# unapplied patches for custom packages +# not-applied/chdir +# not-applied/indexcolor +# not-applied/w3mface +# unapplied, not stable at the moment +#mutt-patched/sidebar-newonly diff --git a/debian/patches/upstream/228671-pipe-mime.patch b/debian/patches/upstream/228671-pipe-mime.patch new file mode 100644 index 0000000..f17b147 --- /dev/null +++ b/debian/patches/upstream/228671-pipe-mime.patch @@ -0,0 +1,36 @@ +Don't draw imap fetch progress if we aren't in visual mode. +Drawing progress leaves terminal in confusing state when piping a message +from pager to less(1). See http://bugs.mutt.org/1771 + +Updated in #569279. + +--- a/imap/message.c ++++ b/imap/message.c +@@ -392,7 +392,7 @@ int imap_fetch_message (MESSAGE *msg, CO + char path[_POSIX_PATH_MAX]; + char *pc; + long bytes; +- progress_t progressbar; ++ progress_t progressbar, *pbar; + int uid; + int cacheno; + IMAP_CACHE *cache; +@@ -489,9 +489,15 @@ int imap_fetch_message (MESSAGE *msg, CO + imap_error ("imap_fetch_message()", buf); + goto bail; + } +- mutt_progress_init (&progressbar, _("Fetching message..."), +- M_PROGRESS_SIZE, NetInc, bytes); +- if (imap_read_literal (msg->fp, idata, bytes, &progressbar) < 0) ++ if (!isendwin()) ++ { ++ mutt_progress_init (&progressbar, _("Fetching message..."), ++ M_PROGRESS_SIZE, NetInc, bytes); ++ pbar = &progressbar; ++ } ++ else ++ pbar = NULL; ++ if (imap_read_literal (msg->fp, idata, bytes, pbar) < 0) + goto bail; + /* pick up trailing line */ + if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE) diff --git a/debian/patches/upstream/311296-rand-mktemp.patch b/debian/patches/upstream/311296-rand-mktemp.patch new file mode 100644 index 0000000..e65b879 --- /dev/null +++ b/debian/patches/upstream/311296-rand-mktemp.patch @@ -0,0 +1,19 @@ +More random file creation in /tmp to prevent DOS, see CVE CAN-2005-2351 and +upstream http://bugs.mutt.org/3158 + +--- a/muttlib.c ++++ b/muttlib.c +@@ -748,7 +748,12 @@ + + void _mutt_mktemp (char *s, const char *src, int line) + { +- snprintf (s, _POSIX_PATH_MAX, "%s/mutt-%s-%d-%d-%d", NONULL (Tempdir), NONULL(Hostname), (int) getuid(), (int) getpid (), Counter++); ++ long sek; ++ ++ time(&sek); ++ srand(sek); ++ snprintf (s, _POSIX_PATH_MAX, "%s/mutt-%s-%d-%d-%d%x%x", NONULL (Tempdir), NONULL(Hostname), (int) getuid(), (int) getpid (), ++ Counter++, (unsigned int) rand(), (unsigned int) rand()); + dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); + unlink (s); + } diff --git a/debian/patches/upstream/350957-postponed-to-bcc.patch b/debian/patches/upstream/350957-postponed-to-bcc.patch new file mode 100644 index 0000000..8cf8be6 --- /dev/null +++ b/debian/patches/upstream/350957-postponed-to-bcc.patch @@ -0,0 +1,15 @@ +For %F, display Bcc recipient if no other recipients found. +Closes http://bugs.mutt.org/3157 +See also http://bugs.debian.org/350957 + +--- a/hdrline.c ++++ b/hdrline.c +@@ -121,6 +121,8 @@ + snprintf (buf, len, "To %s", mutt_get_name (hdr->to)); + else if (me && hdr->cc) + snprintf (buf, len, "Cc %s", mutt_get_name (hdr->cc)); ++ else if (me && hdr->bcc) ++ snprintf (buf, len, "Bcc %s", mutt_get_name (hdr->bcc)); + else if (hdr->from) + strfcpy (buf, mutt_get_name (hdr->from), len); + else diff --git a/debian/patches/upstream/375530-index-weirdness.patch b/debian/patches/upstream/375530-index-weirdness.patch new file mode 100644 index 0000000..f3a5205 --- /dev/null +++ b/debian/patches/upstream/375530-index-weirdness.patch @@ -0,0 +1,34 @@ +Actually reopen mbox/mmdf files in case we find modifications. Closes +http://bugs.mutt.org/2725. + +Since the file is changed while we have it open in ctx->fp, we likely +get wrong information when parsing the mailbox. Now we explicitely close +and (re)open it. + +See http://bugs.debian.org/375530 for more info + +--- a/mbox.c ++++ b/mbox.c +@@ -1119,17 +1119,13 @@ + { + case M_MBOX: + case M_MMDF: +- if (fseek (ctx->fp, 0, SEEK_SET) != 0) +- { +- dprint (1, (debugfile, "mutt_reopen_mailbox: fseek() failed\n")); ++ cmp_headers = mbox_strict_cmp_headers; ++ safe_fclose (&ctx->fp); ++ if (!(ctx->fp = safe_fopen (ctx->path, "r"))) + rc = -1; +- } +- else +- { +- cmp_headers = mbox_strict_cmp_headers; ++ else + rc = ((ctx->magic == M_MBOX) ? mbox_parse_mailbox +- : mmdf_parse_mailbox) (ctx); +- } ++ : mmdf_parse_mailbox) (ctx); + break; + + default: diff --git a/debian/patches/upstream/383769-score-match.patch b/debian/patches/upstream/383769-score-match.patch new file mode 100644 index 0000000..777ac0d --- /dev/null +++ b/debian/patches/upstream/383769-score-match.patch @@ -0,0 +1,14 @@ +better matching for ~f, same as mutt-ng did, see upstream +http://bugs.mutt.org/2179 + +--- a/score.c ++++ b/score.c +@@ -133,7 +133,7 @@ + hdr->score = 0; /* in case of re-scoring */ + for (tmp = Score; tmp; tmp = tmp->next) + { +- if (mutt_pattern_exec (tmp->pat, 0, NULL, hdr) > 0) ++ if (mutt_pattern_exec (tmp->pat, M_MATCH_FULL_ADDRESS, NULL, hdr) > 0) + { + if (tmp->exact || tmp->val == 9999 || tmp->val == -9999) + { diff --git a/debian/patches/upstream/393926-internal-viewer.patch b/debian/patches/upstream/393926-internal-viewer.patch new file mode 100644 index 0000000..f97f42a --- /dev/null +++ b/debian/patches/upstream/393926-internal-viewer.patch @@ -0,0 +1,21 @@ +Display text/x-diff with the internal viewer, see upstream bug +http://bugs.mutt.org/3246 + +--- a/muttlib.c ++++ b/muttlib.c +@@ -622,11 +622,11 @@ + switch (m->type) + { + case TYPETEXT: +- + if (!ascii_strcasecmp ("plain", m->subtype) || +- !ascii_strcasecmp ("rfc822-headers", m->subtype) || +- !ascii_strcasecmp ("enriched", m->subtype)) +- return 0; ++ !ascii_strcasecmp ("rfc822-headers", m->subtype) || ++ !ascii_strcasecmp ("enriched", m->subtype) || ++ !ascii_strcasecmp ("x-diff", m->subtype)) ++ return 0; + break; + + case TYPEAPPLICATION: diff --git a/debian/patches/upstream/493719-segfault-imap-close.patch b/debian/patches/upstream/493719-segfault-imap-close.patch new file mode 100644 index 0000000..ed6671f --- /dev/null +++ b/debian/patches/upstream/493719-segfault-imap-close.patch @@ -0,0 +1,20 @@ +IMAP: only close socket when not already disconnected. +closes http://bugs.mutt.org/3161 and +http://bugs.debian.org/493719 + +--- a/imap/imap.c ++++ b/imap/imap.c +@@ -488,8 +488,11 @@ + + void imap_close_connection(IMAP_DATA* idata) + { +- mutt_socket_close (idata->conn); +- idata->state = IMAP_DISCONNECTED; ++ if (idata->state != IMAP_DISCONNECTED) ++ { ++ mutt_socket_close (idata->conn); ++ idata->state = IMAP_DISCONNECTED; ++ } + idata->seqno = idata->nextcmd = idata->lastcmd = idata->status = 0; + memset (idata->cmds, 0, sizeof (IMAP_COMMAND) * idata->cmdslots); + } diff --git a/debian/patches/upstream/500016-temp-cache-fix.patch b/debian/patches/upstream/500016-temp-cache-fix.patch new file mode 100644 index 0000000..486f74e --- /dev/null +++ b/debian/patches/upstream/500016-temp-cache-fix.patch @@ -0,0 +1,29 @@ +message cache partially invalid after network problem +fixed by http://dev.mutt.org/trac/ticket/3163 +changeset http://dev.mutt.org/trac/changeset/da94a92c3ba0 +resolves http://bugs.debian.org/500016 + +--- mutt-1.5.19/bcache.c 2009-01-05 19:20:53.000000000 +0000 ++++ mutt-7ddf1d1cc490/bcache.c 2009-01-27 20:58:15.000000000 +0000 +@@ -136,6 +136,13 @@ + snprintf (path, sizeof (path), "%s%s%s", bcache->path, id, + tmp ? ".tmp" : ""); + ++ if ((fp = safe_fopen (path, "w+"))) ++ goto out; ++ ++ if (errno == EEXIST) ++ /* clean up leftover tmp file */ ++ mutt_unlink (path); ++ + s = strchr (path + 1, '/'); + while (!(fp = safe_fopen (path, "w+")) && errno == ENOENT && s) + { +@@ -147,6 +154,7 @@ + s = strchr (s + 1, '/'); + } + ++ out: + dprint (3, (debugfile, "bcache: put: '%s'\n", path)); + + return fp; diff --git a/debian/patches/upstream/502628-attach_charset-doc.patch b/debian/patches/upstream/502628-attach_charset-doc.patch new file mode 100644 index 0000000..cffdbbe --- /dev/null +++ b/debian/patches/upstream/502628-attach_charset-doc.patch @@ -0,0 +1,17 @@ +clarify what attach_charset does, see http://bugs.mutt.org/3165 +and http://bugs.debian.org/502628 + +--- a/init.h ++++ b/init.h +@@ -197,7 +197,10 @@ + /* + ** .pp + ** This variable is a colon-separated list of character encoding +- ** schemes for text file attachments. ++ ** schemes for text file attachments. Mutt uses this setting to guess ++ ** which encoding files being attached are encoded in to convert them to ++ ** a proper character set given in $$send_charset. ++ ** .pp + ** If \fIunset\fP, the value of $$charset will be used instead. + ** For example, the following configuration would work for Japanese + ** text handling: diff --git a/debian/patches/upstream/504530-stunnel-account_hook-doc.patch b/debian/patches/upstream/504530-stunnel-account_hook-doc.patch new file mode 100644 index 0000000..7fea22f --- /dev/null +++ b/debian/patches/upstream/504530-stunnel-account_hook-doc.patch @@ -0,0 +1,16 @@ +Mention account-hook in the docs for $tunnel, see http://bugs.mutt.org/3237 +and http://bugs.debian.org/504530 + +--- a/init.h ++++ b/init.h +@@ -2410,6 +2410,10 @@ + ** .pp + ** Note: For this example to work, you must be able to log in to the + ** remote machine without having to enter a password. ++ ** .pp ++ ** When set, Mutt uses the tunnel for all remote connections. ++ ** Please see ``$account-hook'' in the manual for how to use different ++ ** tunnel commands per connection. + */ + #endif /* USE_SOCKET */ + { "print", DT_QUAD, R_NONE, OPT_PRINT, M_ASKNO }, diff --git a/debian/patches/upstream/508988-inode-sort.patch b/debian/patches/upstream/508988-inode-sort.patch new file mode 100644 index 0000000..64192ad --- /dev/null +++ b/debian/patches/upstream/508988-inode-sort.patch @@ -0,0 +1,41 @@ +fixed by http://dev.mutt.org/trac/ticket/3163 +changeset http://dev.mutt.org/trac/changeset/eb918af802ec +resolves http://bugs.debian.org/508988 + +This commit introduces an unconditional inode-sort to fix the slowness with big +maildirs + +--- mutt-1.5.19/mh.c 2009-01-05 19:20:53.000000000 +0000 ++++ mutt-7ddf1d1cc490/mh.c 2009-01-27 20:58:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 1996-2002,2007 Michael R. Elkins ++ * Copyright (C) 1996-2002,2007,2009 Michael R. Elkins + * Copyright (C) 1999-2005 Thomas Roessler + * + * This program is free software; you can redistribute it and/or modify +@@ -1027,13 +1027,14 @@ + if (!ctx->quiet && progress) + mutt_progress_update (progress, count, -1); + ++ DO_SORT(); ++ + snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path); + + #if USE_HCACHE + if (option(OPTHCACHEVERIFY)) + { +- DO_SORT(); +- ret = stat(fn, &lastchanged); ++ ret = stat(fn, &lastchanged); + } + else + { +@@ -1057,7 +1058,6 @@ + { + #endif /* USE_HCACHE */ + +- DO_SORT(); + if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) + { + p->header_parsed = 1; diff --git a/debian/patches/upstream/514960-certificate-insecure-algorithm.patch b/debian/patches/upstream/514960-certificate-insecure-algorithm.patch new file mode 100644 index 0000000..0aa4096 --- /dev/null +++ b/debian/patches/upstream/514960-certificate-insecure-algorithm.patch @@ -0,0 +1,22 @@ +The new version of gnutls introduced this new option which mutt did not +know about, if the cert is signed with an insecure algorithm (md5) it will +set a particular bit; if the cert is in the cache of the user we will +unset all bits so this has to be unset as well +See http://bugs.mutt.org/3229 and http://bugs.debian.org/514960 + +--- a/mutt_ssl_gnutls.c ++++ b/mutt_ssl_gnutls.c +@@ -614,6 +614,13 @@ + in our cache. */ + certstat ^= GNUTLS_CERT_SIGNER_NOT_CA; + } ++ ++ if (certstat & GNUTLS_CERT_INSECURE_ALGORITHM) ++ { ++ /* if the certificate is in the cache the user is happy with ++ using an insecure algorithm */ ++ certstat ^= GNUTLS_CERT_INSECURE_ALGORITHM; ++ } + } + + if (certstat & GNUTLS_CERT_REVOKED) diff --git a/debian/patches/upstream/524420-segfault-reconnect-sasl.patch b/debian/patches/upstream/524420-segfault-reconnect-sasl.patch new file mode 100644 index 0000000..60e158b --- /dev/null +++ b/debian/patches/upstream/524420-segfault-reconnect-sasl.patch @@ -0,0 +1,14 @@ +Mutt crashes when connection that used SASL is closed +and reopened again (e.g. network problem) +see http://bugs.debian.org/524420 and http://bugs.mutt.org/3206 + +--- a/mutt_sasl.c ++++ b/mutt_sasl.c +@@ -481,6 +481,7 @@ + conn->conn_close = sasldata->msasl_close; + conn->conn_read = sasldata->msasl_read; + conn->conn_write = sasldata->msasl_write; ++ conn->conn_poll = sasldata->msasl_poll; + + /* release sasl resources */ + sasl_dispose (&sasldata->saslconn); diff --git a/debian/patches/upstream/528233-readonly-open.patch b/debian/patches/upstream/528233-readonly-open.patch new file mode 100644 index 0000000..049fc09 --- /dev/null +++ b/debian/patches/upstream/528233-readonly-open.patch @@ -0,0 +1,28 @@ +Open attachments as read-only so the editor won't be able to modify it; +otherwise the user can believe that he/she can edit it and risk to lose his/her +work (see upstream bug http://bugs.mutt.org/3261) + +#528233, updated in #572203 + +--- a/attach.c ++++ b/attach.c +@@ -492,6 +492,7 @@ int mutt_view_attachment (FILE *fp, BODY + FREE (&fname); + if (mutt_save_attachment (fp, a, tempfile, 0, NULL) == -1) + goto return_error; ++ chmod (tempfile, 0400); + } + + use_pipe = rfc1524_expand_command (a, tempfile, type, +@@ -633,7 +634,11 @@ int mutt_view_attachment (FILE *fp, BODY + if (entry) + rfc1524_free_entry (&entry); + if (fp && tempfile[0]) ++ { ++ /* Restore write permission so mutt_unlink can open the file for writing */ ++ chmod(tempfile, 0600); + mutt_unlink (tempfile); ++ } + else if (unlink_tempfile) + unlink(tempfile); + diff --git a/debian/patches/upstream/530661-mandatory-doubledash.patch b/debian/patches/upstream/530661-mandatory-doubledash.patch new file mode 100644 index 0000000..802b82e --- /dev/null +++ b/debian/patches/upstream/530661-mandatory-doubledash.patch @@ -0,0 +1,54 @@ +This patch is taken up from upstream http://bugs.mutt.org/3235 +The new way getopt is called broke the possibility to use +"mutt -a attachfile recipient" +now -- is mandatory to separate file and recipient, even if only +a single file is attached, this patch fixes the documentation +to make -- mandatory + +--- a/doc/mutt.man ++++ b/doc/mutt.man +@@ -82,8 +82,10 @@ + An expanded version of the given alias is passed to stdout. + .IP "-a \fIfile\fP [...]" + Attach a file to your message using MIME. +-To attach multiple files, separating filenames and recipient addresses with +-"\-\-" is mandatory, e.g. \fBmutt \-a img.jpg *.png \-\- addr1 addr2\fP. ++When attaching single or multiple files, separating filenames and recipient addresses with ++"\-\-" is mandatory, e.g. \fBmutt \-a image.jpg \-\- addr1\fP or ++\fBmutt \-a img.jpg *.png \-\- addr1 addr2\fP. ++The \-a option must be placed at the end of command line options. + .IP "-b \fIaddress\fP" + Specify a blind-carbon-copy (BCC) recipient + .IP "-c \fIaddress\fP" +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -6995,9 +6995,6 @@ + + muttrc + +- +-file +- + + address + +@@ -7008,15 +7005,12 @@ + subject + + +- ++ + file ++ ++-- + +--- +- +- +-address +- +- ++ + address + + diff --git a/debian/patches/upstream/530887-dovecot-imap.patch b/debian/patches/upstream/530887-dovecot-imap.patch new file mode 100644 index 0000000..793f049 --- /dev/null +++ b/debian/patches/upstream/530887-dovecot-imap.patch @@ -0,0 +1,39 @@ +This patch fixes the following two bugs: +*) http://bugs.debian.org/530887 + mutt: fails to move read messages even with move=yes + +*) http://bugs.debian.org/530671 + mutt: does not want to open dot subdirs via imap anymore + +the second one happens with dovecot which uses / as a delimeter for mailbox, +so without this patch is not possible to access subdirs on imap accounts +hosted on dovecot + +--- a/imap/util.c ++++ b/imap/util.c +@@ -393,19 +393,19 @@ + size_t plen) + { + int i = 0; +- char delim; ++ char delim = '\0'; + + if (idata) + delim = idata->delim; +- else if (ImapDelimChars && ImapDelimChars[0]) +- delim = ImapDelimChars[0]; +- else +- delim = '/'; + + while (mailbox && *mailbox && i < plen - 1) + { +- if (strchr(ImapDelimChars, *mailbox) || *mailbox == delim) ++ if ((ImapDelimChars && strchr(ImapDelimChars, *mailbox)) ++ || *mailbox == delim) + { ++ /* use connection delimiter if known. Otherwise use user delimiter */ ++ if (!idata) ++ delim = *mailbox; + while (*mailbox && + (strchr(ImapDelimChars, *mailbox) || *mailbox == delim)) + mailbox++; diff --git a/debian/patches/upstream/531430-imapuser.patch b/debian/patches/upstream/531430-imapuser.patch new file mode 100644 index 0000000..a32939a --- /dev/null +++ b/debian/patches/upstream/531430-imapuser.patch @@ -0,0 +1,14 @@ +fixes a problem where the imap->login has the precedence so the user +is asked with wrong informaton, see upstream #3240 + +--- a/account.c ++++ b/account.c +@@ -218,7 +218,7 @@ + else + { + snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "), +- account->flags & M_ACCT_LOGIN ? account->login : account->user, ++ ((account->flags & M_ACCT_LOGIN) && !(account->user)) ? account->login : account->user, + account->host); + account->pass[0] = '\0'; + if (mutt_get_password (prompt, account->pass, sizeof (account->pass))) diff --git a/debian/patches/upstream/533209-mutt_perror.patch b/debian/patches/upstream/533209-mutt_perror.patch new file mode 100644 index 0000000..ef03769 --- /dev/null +++ b/debian/patches/upstream/533209-mutt_perror.patch @@ -0,0 +1,13 @@ +mutt is calling mutt_perror twice, so the error messages are +sometimes confused, see upstream #3268 + +--- a/mx.c ++++ b/mx.c +@@ -415,7 +415,6 @@ + { + dprint (1, (debugfile, "mx_get_magic(): unable to open file %s for reading.\n", + path)); +- mutt_perror (path); + return (-1); + } + diff --git a/debian/patches/upstream/533370-pgp-inline.patch b/debian/patches/upstream/533370-pgp-inline.patch new file mode 100644 index 0000000..da37b35 --- /dev/null +++ b/debian/patches/upstream/533370-pgp-inline.patch @@ -0,0 +1,41 @@ +inline pgp messages were displayed incorrectly when pgp_auto_decode=yes, see +upstream http://bugs.mutt.org/3269 + +--- a/crypt-gpgme.c ++++ b/crypt-gpgme.c +@@ -2371,16 +2371,14 @@ + safe_fclose (&pgpout); + } + } +-#if 0 + else + { +- /* why would we want to display this at all? */ ++ /* A traditional PGP part may mix signed and unsigned content */ + /* XXX - we may wish to recode here */ + if (s->prefix) + state_puts (s->prefix, s); + state_puts (buf, s); + } +-#endif + } + + m->goodsig = (maybe_goodsig && have_any_sigs); +--- a/pgp.c ++++ b/pgp.c +@@ -482,7 +482,6 @@ + state_attach_puts (_("[-- END PGP SIGNED MESSAGE --]\n"), s); + } + } +-#if 0 + else + { + /* why would we want to display this at all? */ +@@ -491,7 +490,6 @@ + state_puts (s->prefix, s); + state_puts (buf, s); + } +-#endif + } + + rc = 0; diff --git a/debian/patches/upstream/533439-mbox-time.patch b/debian/patches/upstream/533439-mbox-time.patch new file mode 100644 index 0000000..f844e80 --- /dev/null +++ b/debian/patches/upstream/533439-mbox-time.patch @@ -0,0 +1,113 @@ +upstream test patch to fix the atime issue +(See #533439 and upstream #3271, #1372) + +--- a/mbox.c ++++ b/mbox.c +@@ -685,22 +685,30 @@ + + /* if mailbox has at least 1 new message, sets mtime > atime of mailbox + * so buffy check reports new mail */ +-static void reset_atime (CONTEXT *ctx) ++void mbox_reset_atime (CONTEXT *ctx, struct stat *st) + { + struct utimbuf utimebuf; +- int i; +- time_t now = time (NULL); ++ int i, found = 0; ++ struct stat _st; + +- for (i = 0; i < ctx->msgcount; i++) ++ if (!st) + { +- if (!ctx->hdrs[i]->deleted && !ctx->hdrs[i]->read && !ctx->hdrs[i]->old) +- { +- utimebuf.actime = now - 1; +- utimebuf.modtime = now; +- utime (ctx->path, &utimebuf); ++ if (stat (ctx->path, &_st) < 0) + return; +- } ++ st = &_st; + } ++ ++ utimebuf.actime = st->st_atime; ++ utimebuf.modtime = st->st_mtime; ++ ++ for (i = 0; !found && i < ctx->msgcount; i++) ++ if (!ctx->hdrs[i]->deleted && !ctx->hdrs[i]->read && !ctx->hdrs[i]->old) ++ found = 1; ++ ++ if (found && utimebuf.actime >= utimebuf.modtime) ++ utimebuf.actime = utimebuf.modtime - 1; ++ ++ utime (ctx->path, &utimebuf); + } + + /* return values: +@@ -716,6 +724,7 @@ + int need_sort = 0; /* flag to resort mailbox if new mail arrives */ + int first = -1; /* first message to be written */ + LOFF_T offset; /* location in mailbox to write changed messages */ ++ struct stat statbuf; + struct m_update_t *newOffset = NULL; + struct m_update_t *oldOffset = NULL; + FILE *fp = NULL; +@@ -907,6 +916,15 @@ + } + fp = NULL; + ++ /* Save the state of this folder. */ ++ if (stat (ctx->path, &statbuf) == -1) ++ { ++ mutt_perror (ctx->path); ++ mutt_sleep (5); ++ unlink (tempfile); ++ goto bail; ++ } ++ + if ((fp = fopen (tempfile, "r")) == NULL) + { + mutt_unblock_signals (); +@@ -976,6 +994,9 @@ + return (-1); + } + ++ /* Restore the previous access/modification times */ ++ mbox_reset_atime (ctx, &statbuf); ++ + /* reopen the mailbox in read-only mode */ + if ((ctx->fp = fopen (ctx->path, "r")) == NULL) + { +@@ -1002,11 +1023,6 @@ + unlink (tempfile); /* remove partial copy of the mailbox */ + mutt_unblock_signals (); + +- /* if mailbox has new mail, mangle atime+mtime to make buffy check +- * report new mail for it */ +- if (!option (OPTCHECKMBOXSIZE)) +- reset_atime (ctx); +- + return (0); /* signal success */ + + bail: /* Come here in case of disaster */ +--- a/mx.c ++++ b/mx.c +@@ -1005,6 +1005,8 @@ + { + if (!ctx->quiet) + mutt_message _("Mailbox is unchanged."); ++ if (ctx->magic == M_MBOX || ctx->magic == M_MMDF) ++ mbox_reset_atime (ctx, NULL); + mx_fastclose_mailbox (ctx); + return 0; + } +--- a/mx.h ++++ b/mx.h +@@ -59,6 +59,7 @@ + int mmdf_parse_mailbox (CONTEXT *); + void mbox_unlock_mailbox (CONTEXT *); + int mbox_check_empty (const char *); ++void mbox_reset_atime (CONTEXT *, struct stat *); + + int mh_read_dir (CONTEXT *, const char *); + int mh_sync_mailbox (CONTEXT *, int *); diff --git a/debian/patches/upstream/533459-unmailboxes.patch b/debian/patches/upstream/533459-unmailboxes.patch new file mode 100644 index 0000000..91ea411 --- /dev/null +++ b/debian/patches/upstream/533459-unmailboxes.patch @@ -0,0 +1,13 @@ +mutt segfaults everytime the 'unmailboxes' command is used +(see upstream #3273) + +--- a/buffy.c ++++ b/buffy.c +@@ -236,7 +236,6 @@ + { + if(*tmp) + { +- FREE (&((*tmp)->path)); + tmp1=(*tmp)->next; + FREE (tmp); /* __FREE_CHECKED__ */ + *tmp=tmp1; diff --git a/debian/patches/upstream/533520-signature-highlight.patch b/debian/patches/upstream/533520-signature-highlight.patch new file mode 100644 index 0000000..c2bc2b8 --- /dev/null +++ b/debian/patches/upstream/533520-signature-highlight.patch @@ -0,0 +1,14 @@ +before this patch mutt failed to highlight some signatures if text_flowed was +set to yes (see upstream http://bugs.mutt.org/3275) + +--- a/handler.c ++++ b/handler.c +@@ -1500,7 +1500,7 @@ + l = mutt_strlen (buf); + if (l > 0 && buf[l-1] == '\n') + buf[--l] = 0; +- if (option (OPTTEXTFLOWED)) ++ if (mutt_strcmp (buf, "-- ") != 0 && option (OPTTEXTFLOWED)) + { + while (l > 0 && buf[l-1] == ' ') + buf[--l] = 0; diff --git a/debian/patches/upstream/534543-imap-port.patch b/debian/patches/upstream/534543-imap-port.patch new file mode 100644 index 0000000..3c1a76c --- /dev/null +++ b/debian/patches/upstream/534543-imap-port.patch @@ -0,0 +1,21 @@ +a bug in 1.5.20 upstream prevented mutt from correctly parsing the port +in an IMAP url (imap[s]://...:), this was fixed by upstream bug +3264 and backported to the Debian package in 534543 + +Index: mutt/url.c +=================================================================== +--- mutt.orig/url.c 2009-06-25 12:37:59.000000000 +0200 ++++ mutt/url.c 2009-06-25 12:39:05.000000000 +0200 +@@ -143,9 +143,11 @@ + + if ((p = strchr (t, ':'))) + { ++ int t; + *p++ = '\0'; +- if (mutt_atos (p, (short*) &ciss->port) < 0) ++ if (mutt_atoi (p, &t) < 0 || t < 0 || t > 0xffff) + return NULL; ++ ciss->port = (unsigned short)t; + } + else + ciss->port = 0; diff --git a/debian/patches/upstream/535096-pop-port.patch b/debian/patches/upstream/535096-pop-port.patch new file mode 100644 index 0000000..3931d09 --- /dev/null +++ b/debian/patches/upstream/535096-pop-port.patch @@ -0,0 +1,30 @@ +This patch will allow the user to specify a port, as it was before 1.5.20, see +upstream bug http://bugs.mutt.org/3322 + +--- a/pop_lib.c ++++ b/pop_lib.c +@@ -43,6 +43,7 @@ + /* Defaults */ + acct->flags = 0; + acct->type = M_ACCT_TYPE_POP; ++ acct->port = 0; + + c = safe_strdup (path); + url_parse_ciss (&url, c); +@@ -60,10 +61,12 @@ + acct->flags |= M_ACCT_SSL; + + service = getservbyname (url.scheme == U_POP ? "pop3" : "pop3s", "tcp"); +- if (service) +- acct->port = ntohs (service->s_port); +- else +- acct->port = url.scheme == U_POP ? POP_PORT : POP_SSL_PORT;; ++ if (!acct->port) { ++ if (service) ++ acct->port = ntohs (service->s_port); ++ else ++ acct->port = url.scheme == U_POP ? POP_PORT : POP_SSL_PORT;; ++ } + + FREE (&c); + return 0; diff --git a/debian/patches/upstream/537694-segv-imap-headers.patch b/debian/patches/upstream/537694-segv-imap-headers.patch new file mode 100644 index 0000000..4c7f74c --- /dev/null +++ b/debian/patches/upstream/537694-segv-imap-headers.patch @@ -0,0 +1,15 @@ +This patch fixes a segfault that happens when the IMAP server sends some +additional flags for the same message ID, see upstream bug +http://bugs.mutt.org/3288 + +--- a/imap/message.c ++++ b/imap/message.c +@@ -288,7 +288,7 @@ + continue; + } + /* May receive FLAGS updates in a separate untagged response (#2935) */ +- if (idx < ctx->msgcount) ++ if (ctx->hdrs[idx] != NULL) + { + dprint (2, (debugfile, "imap_read_headers: message %d is not new\n", + h.sid)); diff --git a/debian/patches/upstream/537818-emptycharset.patch b/debian/patches/upstream/537818-emptycharset.patch new file mode 100644 index 0000000..a330018 --- /dev/null +++ b/debian/patches/upstream/537818-emptycharset.patch @@ -0,0 +1,15 @@ +without this patch mutt crashes if any option that contains charset is set to +empty, see upstream bug http://bugs.mutt.org/3326 + +--- a/init.c ++++ b/init.c +@@ -1751,6 +1751,9 @@ + char *p, *q = NULL, *s = safe_strdup (val); + int rc = 0, strict = strcmp (opt->option, "send_charset") == 0; + ++ if (!s) ++ return rc; ++ + for (p = strtok_r (s, ":", &q); p; p = strtok_r (NULL, ":", &q)) + { + if (!*p) diff --git a/debian/patches/upstream/538128-mh-folder-access.patch b/debian/patches/upstream/538128-mh-folder-access.patch new file mode 100644 index 0000000..dafa3aa --- /dev/null +++ b/debian/patches/upstream/538128-mh-folder-access.patch @@ -0,0 +1,50 @@ +this fixes a problem with new mail detection on MH folder, for a +more detailed history see mutt bugs #3308 and #3312 and debian +bug 538128 + +--- a/mh.c ++++ b/mh.c +@@ -146,7 +146,7 @@ + if ((p = strchr (t, '-'))) + { + *p++ = '\0'; +- if (mutt_atoi (t, first) < 0 || mutt_atoi (t, last) < 0) ++ if (mutt_atoi (t, first) < 0 || mutt_atoi (p, last) < 0) + return -1; + } + else +@@ -167,7 +167,7 @@ + size_t sz = 0; + + short f; +- int first, last, rc; ++ int first, last, rc = 0; + + char pathname[_POSIX_PATH_MAX]; + snprintf (pathname, sizeof (pathname), "%s/.mh_sequences", path); +@@ -207,7 +207,7 @@ + out: + FREE (&buff); + safe_fclose (&fp); +- return 0; ++ return rc; + } + + static inline mode_t mh_umask (CONTEXT* ctx) +@@ -238,6 +238,7 @@ + for (i = 0; !r && i <= mhs.max; i++) + if (mhs_check (&mhs, i) & MH_SEQ_UNSEEN) + r = 1; ++ mhs_free_sequences (&mhs); + return r; + } + +@@ -1155,7 +1156,7 @@ + + if (ctx->magic == M_MH) + { +- if (mh_read_sequences (&mhs, ctx->path) >= 0) ++ if (mh_read_sequences (&mhs, ctx->path) < 0) + return -1; + mh_update_maildir (md, &mhs); + mhs_free_sequences (&mhs); diff --git a/debian/patches/upstream/542344-dont_fold_From_ b/debian/patches/upstream/542344-dont_fold_From_ new file mode 100644 index 0000000..441371c --- /dev/null +++ b/debian/patches/upstream/542344-dont_fold_From_ @@ -0,0 +1,54 @@ +changeset: 5945:5f590adfdf1a +branch: HEAD +user: Rocco Rutte +date: Thu Jun 25 17:31:27 2009 +0200 +summary: header folding: treat From_ specially, never wrap on sending side + +--- a/sendlib.c ++++ b/sendlib.c +@@ -1630,9 +1630,9 @@ static int fold_one_header (FILE *fp, co + dprint(4,(debugfile,"mwoh: pfx=[%s], tag=[%s], flags=%d value=[%s]\n", + pfx, tag, flags, value)); + +- if (fprintf (fp, "%s%s: ", NONULL (pfx), tag) < 0) ++ if (tag && *tag && fprintf (fp, "%s%s: ", NONULL (pfx), tag) < 0) + return -1; +- col = mutt_strlen (tag) + 2 + mutt_strlen (pfx); ++ col = mutt_strlen (tag) + (tag && *tag ? 2 : 0) + mutt_strlen (pfx); + + while (p && *p) + { +@@ -1717,9 +1717,12 @@ static int write_one_header (FILE *fp, i + int flags) + { + char *tagbuf, *valbuf, *t; ++ int is_from = ((end - start) > 5 && ++ ascii_strncasecmp (start, "from ", 5) == 0); + +- /* only pass through folding machinery if necessary for sending */ +- if (!(flags & CH_DISPLAY) && pfxw + max <= wraplen) ++ /* only pass through folding machinery if necessary for sending, ++ never wrap From_ headers on sending */ ++ if (!(flags & CH_DISPLAY) && (pfxw + max <= wraplen || is_from)) + { + valbuf = mutt_substrdup (start, end); + dprint(4,(debugfile,"mwoh: buf[%s%s] short enough, " +@@ -1738,8 +1741,16 @@ static int write_one_header (FILE *fp, i + else + { + t = strchr (start, ':'); +- tagbuf = mutt_substrdup (start, t); +- valbuf = mutt_substrdup (t + 2, end); ++ if (is_from) ++ { ++ tagbuf = NULL; ++ valbuf = mutt_substrdup (start, end); ++ } ++ else ++ { ++ tagbuf = mutt_substrdup (start, t); ++ valbuf = mutt_substrdup (t + 2, end); ++ } + dprint(4,(debugfile,"mwoh: buf[%s%s] too long, " + "max width = %d > %dn", + NONULL(pfx), valbuf, max, wraplen)); diff --git a/debian/patches/upstream/542817-smimekeys-tmpdir.patch b/debian/patches/upstream/542817-smimekeys-tmpdir.patch new file mode 100644 index 0000000..cca99a7 --- /dev/null +++ b/debian/patches/upstream/542817-smimekeys-tmpdir.patch @@ -0,0 +1,13 @@ +skip the configured tmpdir if it contains '=', that convention is used only by +mutt, see upstream http://bugs.mutt.org/3324 + +--- a/smime_keys.pl ++++ b/smime_keys.pl +@@ -946,6 +946,7 @@ + $option = "notemp" if (not defined($option)); + if (! $tmpdir and $option eq "temp") { + $tmpdir = mutt_Q 'tmpdir'; ++ $tmpdir = '/tmp' if ($tmpdir =~ m/=/); # if the tmpdir contains '=', use the default + $tmpdir = newfile("$tmpdir/smime"); + mkdir $tmpdir, 0700 || die "Can't create $tmpdir: $!\n"; + } diff --git a/debian/patches/upstream/542910-search-segfault.patch b/debian/patches/upstream/542910-search-segfault.patch new file mode 100644 index 0000000..6e30b92 --- /dev/null +++ b/debian/patches/upstream/542910-search-segfault.patch @@ -0,0 +1,20 @@ +Fixes a segfault that happened when searching "~b something =", see upstream +bugs http://bugs.mutt.org/3314 and http://bugs.mutt.org/3315 + +--- a/pattern.c ++++ b/pattern.c +@@ -822,7 +822,13 @@ + case '%': + case '=': + case '~': +- if (*(ps.dptr + 1) == '(') ++ if (!*(ps.dptr + 1)) ++ { ++ snprintf (err->data, err->dsize, _("missing pattern: %s"), ps.dptr); ++ mutt_pattern_free (&curlist); ++ return NULL; ++ } ++ if (*(ps.dptr + 1) == '(') + { + ps.dptr ++; /* skip ~ */ + p = find_matching_paren (ps.dptr + 1); diff --git a/debian/patches/upstream/543467-thread-segfault.patch b/debian/patches/upstream/543467-thread-segfault.patch new file mode 100644 index 0000000..201e2c8 --- /dev/null +++ b/debian/patches/upstream/543467-thread-segfault.patch @@ -0,0 +1,17 @@ +added a patch to prevent segfault when Ctrl+R is hit on a malformed group of +messages (see upstream bug http://bugs.mutt.org/3335) + +--- a/flags.c ++++ b/flags.c +@@ -303,7 +303,10 @@ + int mutt_thread_set_flag (HEADER *hdr, int flag, int bf, int subthread) + { + THREAD *start, *cur = hdr->thread; +- ++ ++ if ( !hdr->thread ) ++ return (-1); ++ + if ((Sort & SORT_MASK) != SORT_THREADS) + { + mutt_error _("Threading is not enabled."); diff --git a/debian/patches/upstream/544180-italian-yesorno.patch b/debian/patches/upstream/544180-italian-yesorno.patch new file mode 100644 index 0000000..d3e97cf --- /dev/null +++ b/debian/patches/upstream/544180-italian-yesorno.patch @@ -0,0 +1,14 @@ +patch to fix a problem in the Italian translation, it was submitted to upstream +on bugs http://bugs.mutt.org/3336 + +--- a/po/it.po ++++ b/po/it.po +@@ -3233,7 +3233,7 @@ + + #: muttlib.c:938 + msgid "yna" +-msgstr "yna" ++msgstr "snt" + + #: muttlib.c:954 + msgid "File is a directory, save under it?" diff --git a/debian/patches/upstream/544794-smtp-batch.patch b/debian/patches/upstream/544794-smtp-batch.patch new file mode 100644 index 0000000..953873c --- /dev/null +++ b/debian/patches/upstream/544794-smtp-batch.patch @@ -0,0 +1,68 @@ +Without this patch mutt fails to send messages and ask for a password even if +smtp_user and smtp_pass are defined in .muttrc, see upstream bug +http://bugs.mutt.org/3289 + +--- a/account.c ++++ b/account.c +@@ -155,6 +155,8 @@ + else if ((account->type == M_ACCT_TYPE_POP) && PopUser) + strfcpy (account->user, PopUser, sizeof (account->user)); + #endif ++ else if (option (OPTNOCURSES)) ++ return -1; + /* prompt (defaults to unix username), copy into account->user */ + else + { +@@ -215,6 +217,8 @@ + else if ((account->type == M_ACCT_TYPE_SMTP) && SmtpPass) + strfcpy (account->pass, SmtpPass, sizeof (account->pass)); + #endif ++ else if (option (OPTNOCURSES)) ++ return -1; + else + { + snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "), +--- a/mutt_sasl.c ++++ b/mutt_sasl.c +@@ -304,7 +304,7 @@ + + snprintf (prompt, sizeof (prompt), "%s: ", interaction->prompt); + resp[0] = '\0'; +- if (mutt_get_field (prompt, resp, sizeof (resp), 0)) ++ if (option (OPTNOCURSES) || mutt_get_field (prompt, resp, sizeof (resp), 0)) + return SASL_FAIL; + + interaction->len = mutt_strlen (resp)+1; +--- a/smtp.c ++++ b/smtp.c +@@ -172,7 +172,7 @@ + progress_t progress; + struct stat st; + int r, term = 0; +- size_t buflen; ++ size_t buflen = 0; + + fp = fopen (msgfile, "r"); + if (!fp) +@@ -454,12 +454,6 @@ + } + + #ifdef USE_SASL +- if (!(conn->account.flags & M_ACCT_PASS) && option (OPTNOCURSES)) +- { +- mutt_error (_("Interactive SMTP authentication not supported")); +- mutt_sleep (1); +- return -1; +- } + return smtp_auth (conn); + #else + mutt_error (_("SMTP authentication requires SASL")); +@@ -603,7 +597,7 @@ + } + } + strfcpy (buf + len, "\r\n", sizeof (buf) - len); +- } while (rc == smtp_ready); ++ } while (rc == smtp_ready && saslrc != SASL_FAIL); + + if (smtp_success (rc)) + { diff --git a/debian/patches/upstream/545316-header-color.patch b/debian/patches/upstream/545316-header-color.patch new file mode 100644 index 0000000..267baf8 --- /dev/null +++ b/debian/patches/upstream/545316-header-color.patch @@ -0,0 +1,13 @@ +Do not store the header color into hcache, see http://bugs.mutt.org/3376 and +http://dev.mutt.org/trac/changeset/b7d2cb7c7ce1 for more info + +--- a/hcache.c ++++ b/hcache.c +@@ -623,6 +623,7 @@ + nh.limited = 0; + nh.num_hidden = 0; + nh.recipient = 0; ++ nh.pair = 0; + nh.attach_valid = 0; + nh.path = NULL; + nh.tree = NULL; diff --git a/debian/patches/upstream/547739-manual-typos.patch b/debian/patches/upstream/547739-manual-typos.patch new file mode 100644 index 0000000..0eff7c2 --- /dev/null +++ b/debian/patches/upstream/547739-manual-typos.patch @@ -0,0 +1,127 @@ +Minor typos in manual.txt, see upstream http://bugs.mutt.org/3379 + +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -1511,7 +1511,7 @@ + + + After editing the initial message text and before entering +-the compose menu, Mutt properly space-stuffes the message. ++the compose menu, Mutt properly space-stuffs the message. + Space-stuffing is required by RfC3676 defining + format=flowed and means to prepend a space to: + +@@ -2507,7 +2507,7 @@ + + + attachment +-bold (hiliting bold patterns in the body of messages) ++bold (highlighting bold patterns in the body of messages) + error (error messages printed by Mutt) + hdrdefault (default color of the message header in the pager) + indicator (arrow or bar used to indicate the current item in a menu) +@@ -2516,11 +2516,11 @@ + normal + quoted (text matching $quote_regexp in the body of a message) + quoted1, quoted2, ..., quotedN (higher levels of quoting) +-search (hiliting of words in the pager) ++search (highlighting of words in the pager) + signaturestatus (mode lines used to display info about the mailbox or message) + tilde (the ˜ used to pad blank lines in the pager) + tree (thread tree drawn in the message index and attachment menu) +-underline (hiliting underlined patterns in the body of messages) ++underline (highlighting underlined patterns in the body of messages) + + + +@@ -3095,7 +3095,7 @@ + the command is executed, so if these names contain shortcut characters (such as = and !), any variable + definition that affects these characters (like $folder and $spoolfile) + should be set before the mailboxes command. If +-none of these shorcuts are used, a local path should be absolute as ++none of these shortcuts are used, a local path should be absolute as + otherwise Mutt tries to find it relative to the directory + from where Mutt was started which may not always be desired. + +@@ -5841,7 +5841,7 @@ + If the command is empty, this operation is + disabled for this file type. In this case, the folder will be open and + closed again (using open-hook and +-close-hookrespectively) each time you ++close-hook respectively) each time you + will add to it. + + +@@ -6811,7 +6811,7 @@ + ## line is unnecessary if you already have "attach-allow */.*", of + ## course. These are off by default! The MIME elements contained + ## within a message/* or multipart/* are still examined, even if the +-## containers themseves don't qualify. ++## containers themselves don't qualify. + ## + #attachments +A message/.* multipart/.* + #attachments +I message/.* multipart/.* +@@ -7465,7 +7465,7 @@ + the current chain position, use <select-entry> or <append>. + You can also delete entries from the chain, using the corresponding + function. Finally, to abandon your changes, leave the menu, or +-<accept> them pressing (by default) the Return key. ++<accept> them, pressing (by default) the Return key. + + + +--- a/doc/Muttrc ++++ b/doc/Muttrc +@@ -1991,7 +1991,7 @@ + # + # + # The default mailbox type used when creating new folders. May be any of +-# ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overriden by the ++# ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overridden by the + # -m command-line option. + # + # +--- a/doc/manual.txt ++++ b/doc/manual.txt +@@ -7405,7 +7405,7 @@ + Default: mbox + + The default mailbox type used when creating new folders. May be any of ?mbox?, +-?MMDF?, ?MH? and ?Maildir?. This is overriden by the -m command-line option. ++?MMDF?, ?MH? and ?Maildir?. This is overridden by the -m command-line option. + + 3.128. menu_context + +--- a/edit.c ++++ b/edit.c +@@ -39,7 +39,7 @@ + * declared "static" (sigh) + */ + static char* EditorHelp1 = N_("\ +-~~ insert a line begining with a single ~\n\ ++~~ insert a line beginning with a single ~\n\ + ~b users add users to the Bcc: field\n\ + ~c users add users to the Cc: field\n\ + ~f messages include messages\n\ +--- a/recvattach.c ++++ b/recvattach.c +@@ -698,7 +698,7 @@ + { + if (!mutt_can_decode (top)) + { +- mutt_error (_("I dont know how to print %s attachments!"), type); ++ mutt_error (_("I don't know how to print %s attachments!"), type); + return (0); + } + } +--- a/init.h ++++ b/init.h +@@ -1413,7 +1413,7 @@ + /* + ** .pp + ** The default mailbox type used when creating new folders. May be any of +- ** ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overriden by the ++ ** ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overridden by the + ** \fC-m\fP command-line option. + */ + { "menu_context", DT_NUM, R_NONE, UL &MenuContext, 0 }, diff --git a/debian/patches/upstream/547980-smime_keys-chaining.patch b/debian/patches/upstream/547980-smime_keys-chaining.patch new file mode 100644 index 0000000..50ff9b5 --- /dev/null +++ b/debian/patches/upstream/547980-smime_keys-chaining.patch @@ -0,0 +1,84 @@ +To suppose certificate chaining in smime_keys, see upstream +http://bugs.mutt.org/3339 + +--- a/smime_keys.pl ++++ b/smime_keys.pl +@@ -81,6 +81,30 @@ + # OPS + # + ++ ++sub get_certs { ++ my $file = shift; ++ return undef unless (defined($file) && -e $file); ++ ++ open IN, "<$file"; ++ ++ my @certs = (); ++ my $in_cert = 0; ++ my $cert = q{}; ++ while ( ) { ++ $in_cert = 1 if ( /^-----BEGIN CERTIFICATE-----$/ ); ++ $cert .= $_; ++ ++ if ( /^-----END CERTIFICATE-----$/ ) { ++ push @certs, $cert; ++ $cert = q{}; ++ $in_cert = 0; ++ } ++ } ++ ++ return @certs; ++} ++ + if(@ARGV == 1 and $ARGV[0] eq "init") { + init_paths; + } +@@ -91,13 +115,27 @@ + change_label($ARGV[1]); + } + elsif(@ARGV == 2 and $ARGV[0] eq "add_cert") { +- my $format = -B $ARGV[1] ? 'DER' : 'PEM'; +- my $cmd = "$opensslbin x509 -noout -hash -in $ARGV[1] -inform $format"; +- my $cert_hash = `$cmd`; +- $? and die "'$cmd' returned $?"; +- chomp($cert_hash); +- my $label = query_label; +- &add_certificate($ARGV[1], \$cert_hash, 1, $label, '?'); ++ foreach my $cert ( get_certs( $ARGV[1] ) ) { ++ ++ my $file = sprintf( '/tmp/smime-%d.%d', $$, int(rand( 999999 ) ) ); ++ print STDERR "TMPFILE: $file\n"; ++ if ( -e $file ) { ++ die( "ERROR: TMPFILE $file existss?!?!" ); ++ } ++ open OUT, ">$file"; ++ print OUT $cert; ++ close OUT; ++ ++ my $format = -B $file ? 'DER' : 'PEM'; ++ my $cmd = "$opensslbin x509 -noout -hash -in $file -inform $format"; ++ ++ my $cert_hash = `$cmd`; ++ $? and die "'$cmd' returned $?"; ++ chomp($cert_hash); ++ my $label = query_label; ++ &add_certificate($ARGV[1], \$cert_hash, 1, $label, '?'); ++ unlink $file; ++ } + } + elsif(@ARGV == 2 and $ARGV[0] eq "add_pem") { + -e $ARGV[1] and -s $ARGV[1] or die("$ARGV[1] is nonexistent or empty."); +@@ -381,9 +419,10 @@ + print "the key ID. This has to be _one_ word (no whitespaces).\n\n"; + + print "Enter label: "; +- chomp($input = ); ++ $input = ; ++ chomp($input) if ( defined($input) ); + +- my ($label, $junk) = split(/\s/, $input, 2); ++ my ($label, $junk) = split(/\s/, $input, 2) if ( defined($input) ); + + defined $junk + and print "\nUsing '$label' as label; ignoring '$junk'\n"; diff --git a/debian/patches/upstream/548494-swedish-intl.patch b/debian/patches/upstream/548494-swedish-intl.patch new file mode 100644 index 0000000..273c4c3 --- /dev/null +++ b/debian/patches/upstream/548494-swedish-intl.patch @@ -0,0 +1,113 @@ +Fix a swedish word, the patch was forwarded upstream to +http://dev.mutt.org/trac/ticket/3370 + +--- a/po/sv.po ++++ b/po/sv.po +@@ -74,7 +74,7 @@ + #: alias.c:307 send.c:206 + #, c-format + msgid "Error: '%s' is a bad IDN." +-msgstr "Fel: '%s' är ett dÃ¥ligt IDN." ++msgstr "Fel: '%s' är ett felaktigt IDN." + + #: alias.c:319 + msgid "Personal name: " +@@ -417,7 +417,7 @@ + #: commands.c:298 recvcmd.c:190 + #, c-format + msgid "Bad IDN: '%s'" +-msgstr "DÃ¥ligt IDN: \"%s\"" ++msgstr "Felaktigt IDN: \"%s\"" + + #: commands.c:309 recvcmd.c:204 + #, c-format +@@ -640,7 +640,7 @@ + #: compose.c:302 + #, c-format + msgid "Warning: '%s' is a bad IDN." +-msgstr "Varning: \"%s\" är ett dÃ¥ligt IDN." ++msgstr "Varning: \"%s\" är ett felaktigt IDN." + + #: compose.c:325 + msgid "You may not delete the only attachment." +@@ -649,7 +649,7 @@ + #: compose.c:600 send.c:1591 + #, c-format + msgid "Bad IDN in \"%s\": '%s'" +-msgstr "DÃ¥ligt IDN i \"%s\": \"%s\"" ++msgstr "Felaktigt IDN i \"%s\": \"%s\"" + + #: compose.c:683 + msgid "Attaching selected files..." +@@ -1788,7 +1788,7 @@ + #: edit.c:446 + #, c-format + msgid "Bad IDN in %s: '%s'\n" +-msgstr "DÃ¥ligt IDN i %s: \"%s\"\n" ++msgstr "Felaktigt IDN i %s: \"%s\"\n" + + #: edit.c:464 + #, c-format +@@ -1999,7 +1999,7 @@ + #: history.c:77 history.c:114 history.c:140 + #, c-format + msgid "Bad history file format (line %d)" +-msgstr "DÃ¥ligt filformat för historia (rad %d)" ++msgstr "Felaktigt filformat för historik (rad %d)" + + #: hook.c:251 + #, c-format +@@ -2186,7 +2186,7 @@ + + #: imap/imap.c:1826 + msgid "Bad mailbox name" +-msgstr "DÃ¥ligt namn pÃ¥ brevlÃ¥da" ++msgstr "Felaktigt namn pÃ¥ brevlÃ¥da" + + #: imap/imap.c:1851 + #, c-format +@@ -2260,7 +2260,7 @@ + #: init.c:466 + #, c-format + msgid "Bad regexp: %s" +-msgstr "DÃ¥ligt reguljärt uttryck: %s" ++msgstr "Felaktigt reguljärt uttryck: %s" + + #: init.c:523 + #, c-format +@@ -2282,7 +2282,7 @@ + #: init.c:901 + #, c-format + msgid "Warning: Bad IDN '%s'.\n" +-msgstr "Varning: DÃ¥ligt IDN \"%s\".\n" ++msgstr "Varning: Felaktigtt IDN \"%s\".\n" + + #: init.c:1109 + msgid "attachments: no disposition" +@@ -2307,7 +2307,7 @@ + #: init.c:1359 + #, c-format + msgid "Warning: Bad IDN '%s' in alias '%s'.\n" +-msgstr "Varning: DÃ¥ligt IDN \"%s\" i alias \"%s\".\n" ++msgstr "Varning: Felaktigt IDN \"%s\" i alias \"%s\".\n" + + #: init.c:1447 + msgid "invalid header field" +@@ -2925,7 +2925,7 @@ + #: mutt_socket.c:470 mutt_socket.c:529 + #, c-format + msgid "Bad IDN \"%s\"." +-msgstr "DÃ¥ligt IDN \"%s\"." ++msgstr "Felaktigt IDN \"%s\"." + + #: mutt_socket.c:478 mutt_socket.c:537 + #, c-format +@@ -4066,7 +4066,7 @@ + #: sendlib.c:2500 + #, c-format + msgid "Bad IDN %s while preparing resent-from." +-msgstr "DÃ¥ligt IDN %s vid förberedning av \"resent-from\"." ++msgstr "Felaktigt IDN %s vid förberedning av \"resent-from\"." + + #: signal.c:43 + #, c-format diff --git a/debian/patches/upstream/548577-gpgme-1.2.patch b/debian/patches/upstream/548577-gpgme-1.2.patch new file mode 100644 index 0000000..14dfba8 --- /dev/null +++ b/debian/patches/upstream/548577-gpgme-1.2.patch @@ -0,0 +1,27 @@ +this patch fixes upstream bug http://bugs.mutt.org/3300 so that +mutt will be able to open pgp crypted/signed message with gpgme + +--- a/init.c ++++ b/init.c +@@ -51,6 +51,10 @@ + #include + #include + ++#if defined(CRYPT_BACKEND_GPGME) ++#include ++#endif ++ + #define CHECK_PAGER \ + if ((CurrentMenu == MENU_PAGER) && (idx >= 0) && \ + (MuttVars[idx].flags & R_RESORT)) \ +@@ -3266,6 +3270,10 @@ + + mutt_read_histfile (); + ++#ifdef CRYPT_BACKEND_GPGME ++ gpgme_check_version (NULL); ++#endif ++ + #if 0 + set_option (OPTWEED); /* turn weeding on by default */ + #endif diff --git a/debian/patches/upstream/553238-german-intl.patch b/debian/patches/upstream/553238-german-intl.patch new file mode 100644 index 0000000..2e0c9b5 --- /dev/null +++ b/debian/patches/upstream/553238-german-intl.patch @@ -0,0 +1,14 @@ +Small fix in a German translation, the original bug submission was amended after +consulting a native speaker (gregoa@) + +--- a/po/de.po ++++ b/po/de.po +@@ -1648,7 +1648,7 @@ + + #: curs_main.c:1317 curs_main.c:1361 + msgid "No undeleted messages." +-msgstr "Alle Nachrichten gelöscht." ++msgstr "Keine ungelöschten Nachrichten." + + #: curs_main.c:1354 curs_main.c:1378 + msgid "You are on the first message." diff --git a/debian/patches/upstream/553321-ansi-escape-segfault.patch b/debian/patches/upstream/553321-ansi-escape-segfault.patch new file mode 100644 index 0000000..85a8788 --- /dev/null +++ b/debian/patches/upstream/553321-ansi-escape-segfault.patch @@ -0,0 +1,17 @@ +This patch prevents mutt from crashing when *buf is freed, the root cause is the +fact that an adjacent memory segment (*fmt) overruns and overwrite prev_size +field in the heap. + +The bug and the patch were forwarded upstream, see http://bugs.mutt.org/3371 + +--- a/pager.c ++++ b/pager.c +@@ -1028,7 +1028,7 @@ + q = *fmt; + while (*p) + { +- if (*p == '\010' && (p > *buf)) ++ if (*p == '\010' && (p > *buf) && (q > *fmt)) + { + if (*(p+1) == '_') /* underline */ + p += 2; diff --git a/debian/patches/upstream/557395-muttrc-crypto.patch b/debian/patches/upstream/557395-muttrc-crypto.patch new file mode 100644 index 0000000..90d6a46 --- /dev/null +++ b/debian/patches/upstream/557395-muttrc-crypto.patch @@ -0,0 +1,13 @@ +Small fix to the muttrc manpage + +--- a/init.h ++++ b/init.h +@@ -559,7 +559,7 @@ + ** .pp + ** If \fI``yes''\fP, always attempt to verify PGP or S/MIME signatures. + ** If \fI``ask-*''\fP, ask whether or not to verify the signature. +- ** If \Fi``no''\fP, never attempt to verify cryptographic signatures. ++ ** If \fI``no''\fP, never attempt to verify cryptographic signatures. + ** (Crypto only) + */ + { "date_format", DT_STR, R_BOTH, UL &DateFmt, UL "!%a, %b %d, %Y at %I:%M:%S%p %Z" }, diff --git a/debian/patches/upstream/568295-references.patch b/debian/patches/upstream/568295-references.patch new file mode 100644 index 0000000..14ac88e --- /dev/null +++ b/debian/patches/upstream/568295-references.patch @@ -0,0 +1,17 @@ +The purpose of this patch is to preserve the References header if the +In-Reply-To header is not initially present; forwarded upstream to +http://bugs.mutt.org/3378 + +--- a/headers.c ++++ b/headers.c +@@ -114,8 +114,8 @@ + $edit_headers set, we remove References: as they're likely invalid; + we can simply compare strings as we don't generate References for + multiple Message-Ids in IRT anyways */ +- if (!n->in_reply_to || (msg->env->in_reply_to && +- mutt_strcmp (n->in_reply_to->data, ++ if (msg->env->in_reply_to && ++ (!n->in_reply_to || mutt_strcmp (n->in_reply_to->data, + msg->env->in_reply_to->data) != 0)) + mutt_free_list (&msg->env->references); + diff --git a/debian/patches/upstream/573823-imap_internal_date b/debian/patches/upstream/573823-imap_internal_date new file mode 100644 index 0000000..76d6c80 --- /dev/null +++ b/debian/patches/upstream/573823-imap_internal_date @@ -0,0 +1,76 @@ +changeset: 5949:b2b97c7a2ae6 +branch: HEAD +user: Brendan Cully +date: Fri Jun 26 21:47:34 2009 -0700 +summary: Set internaldate of messages appended to IMAP mailboxes + +--- a/imap/imap_private.h ++++ b/imap/imap_private.h +@@ -70,6 +70,9 @@ + #define IMAP_CMD_PASS (1<<1) + #define IMAP_CMD_QUEUE (1<<2) + ++/* length of "DD-MMM-YYYY HH:MM:SS +ZZzz" (null-terminated) */ ++#define IMAP_DATELEN 27 ++ + enum + { + IMAP_FATAL = 1, +@@ -281,6 +284,7 @@ char* imap_get_qualifier (char* buf); + int imap_mxcmp (const char* mx1, const char* mx2); + char* imap_next_word (char* s); + time_t imap_parse_date (char* s); ++void imap_make_date (char* buf, time_t timestamp); + void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path); + void imap_quote_string (char* dest, size_t slen, const char* src); + void imap_unquote_string (char* s); +--- a/imap/message.c ++++ b/imap/message.c +@@ -600,6 +600,7 @@ int imap_append_message (CONTEXT *ctx, M + char buf[LONG_STRING]; + char mbox[LONG_STRING]; + char mailbox[LONG_STRING]; ++ char internaldate[IMAP_DATELEN]; + size_t len; + progress_t progressbar; + size_t sent; +@@ -641,12 +642,14 @@ int imap_append_message (CONTEXT *ctx, M + M_PROGRESS_SIZE, NetInc, len); + + imap_munge_mbox_name (mbox, sizeof (mbox), mailbox); +- snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) {%lu}", mbox, ++ imap_make_date (internaldate, msg->received); ++ snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) \"%s\" {%lu}", mbox, + msg->flags.read ? "\\Seen" : "", + msg->flags.read && (msg->flags.replied || msg->flags.flagged) ? " " : "", + msg->flags.replied ? "\\Answered" : "", + msg->flags.replied && msg->flags.flagged ? " " : "", + msg->flags.flagged ? "\\Flagged" : "", ++ internaldate, + (unsigned long) len); + + imap_cmd_start (idata, buf); +--- a/imap/util.c ++++ b/imap/util.c +@@ -577,6 +577,21 @@ time_t imap_parse_date (char *s) + return (mutt_mktime (&t, 0) + tz); + } + ++/* format date in IMAP style: DD-MMM-YYYY HH:MM:SS +ZZzz. ++ * Caller should provide a buffer of IMAP_DATELEN bytes */ ++void imap_make_date (char *buf, time_t timestamp) ++{ ++ struct tm* tm = localtime (×tamp); ++ time_t tz = mutt_local_tz (timestamp); ++ ++ tz /= 60; ++ ++ snprintf (buf, IMAP_DATELEN, "%02d-%s-%d %02d:%02d:%02d %+03d%02d", ++ tm->tm_mday, Months[tm->tm_mon], tm->tm_year + 1900, ++ tm->tm_hour, tm->tm_min, tm->tm_sec, ++ (int) tz / 60, (int) abs (tz) % 60); ++} ++ + /* imap_qualify_path: make an absolute IMAP folder target, given IMAP_MBOX + * and relative path. */ + void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path) diff --git a/debian/patches/upstream/path_max b/debian/patches/upstream/path_max new file mode 100644 index 0000000..7cb34d5 --- /dev/null +++ b/debian/patches/upstream/path_max @@ -0,0 +1,16 @@ +Fixed in hg around 5354:d4ea7f571f10; remove as soon as there's no PATH_MAX in the code anymore. + +--- a/mutt.h ++++ b/mutt.h +@@ -52,6 +52,11 @@ + #include + #endif + ++/* PATH_MAX is undefined on the hurd */ ++#ifndef PATH_MAX ++#define PATH_MAX _POSIX_PATH_MAX ++#endif ++ + #include + #include + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..4dc943c --- /dev/null +++ b/debian/rules @@ -0,0 +1,216 @@ +#!/usr/bin/make -f + +include /usr/share/quilt/quilt.make +QUILT = QUILT_PATCHES=$(QUILT_PATCH_DIR) quilt --quiltrc /dev/null + +###################### user serviceable parts ###################### + +### +# build a separate mutt-patched package? +BUILD_PATCHED := yes +### +# header cache backend +# HCACHE_DB := bdb +# HCACHE_DB := gdbm +# HCACHE_DB := qdbm +HCACHE_DB := tokyocabinet +### +# GPGME backend +GPGME := --enable-gpgme +### + +###################### variables ###################### + +ifneq ($(BUILD_PATCHED),yes) +export DH_OPTIONS := -Nmutt-patched +endif + +# Configure arguments + +ifeq ($(HCACHE_DB),bdb) + hcache_db := --without-gdbm --without-qdbm --without-tokyocabinet +endif +ifeq ($(HCACHE_DB),gdbm) + hcache_db := --without-qdbm --without-bdb --without-tokyocabinet +endif +ifeq ($(HCACHE_DB),qdbm) + hcache_db := --without-gdbm --without-bdb --without-tokyocabinet +endif +ifeq ($(HCACHE_DB),tokyocabinet) + hcache_db := --without-gdbm --without-bdb --without-qdbm + ifeq ($(shell dpkg --print-architecture),hurd-i386) + hcache_db := --without-bdb --without-qdbm + endif +endif + +confflags = --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --with-sharedir=/usr/share/mutt \ + --with-docdir=/usr/share/doc \ + --with-mailpath=/var/mail \ + \ + --disable-dependency-tracking \ + \ + --enable-compressed \ + --enable-debug \ + --enable-fcntl \ + --enable-hcache \ + $(GPGME) \ + --enable-imap \ + --enable-smtp \ + --enable-inodesort \ + --enable-pop \ + \ + --with-curses \ + --with-gnutls \ + --with-gss \ + --with-idn \ + --with-mixmaster \ + --with-sasl \ + \ + $(hcache_db) + +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +confflags += --build $(DEB_BUILD_GNU_TYPE) +# Only specify --host when cross-compiling +ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --host $(DEB_HOST_GNU_TYPE) +endif + +# CFLAGS +CFLAGS = -Wall -g +CPPFLAGS = -I/usr/include/qdbm +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +# Directory to make the build on +objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE) + +###################### main ###################### + +$(objdir)-patched/build-stamp: $(QUILT_STAMPFN) + dh_testdir + dh_clean + -mkdir $(objdir)-patched + +ifeq ($(BUILD_PATCHED),yes) + ###################### building mutt-patched ###################### + $(QUILT) applied > PATCHES + autoreconf --install --include=m4 + cd $(objdir)-patched && \ + env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + ../configure $(confflags) + + echo '#include "config-debian.h"' >> $(objdir)-patched/config.h + + # we should just "make mutt" here, but that doesn't work yet + cd $(objdir)-patched && $(MAKE) CFLAGS="$(CFLAGS)" +endif + + touch $@ + +build build-arch: $(objdir)/build-stamp +$(objdir)/build-stamp: $(objdir)-patched/build-stamp + ###################### building mutt ###################### + $(QUILT) pop mutt.org + $(QUILT) applied > PATCHES + + autoreconf --install --include=m4 + -mkdir $(objdir) + cd $(objdir) && \ + env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + ../configure $(confflags) + + echo '#include "config-debian.h"' >>$(objdir)/config.h + + cd $(objdir) && $(MAKE) CFLAGS="$(CFLAGS)" + + touch $@ + +install: build + ###################### install ###################### + dh_testdir + dh_testroot + dh_prep + cd $(objdir) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + cd debian/tmp/usr/share/doc && \ + rm -rf samples/iconv samples/ca-bundle.crt && \ + mv NEWS NEWS.old && \ + cp $(CURDIR)/UPDATING NEWS + + chmod +x debian/extra/lib/* + chmod +x debian/header.awk + debian/header.awk debian/patches/features/* \ + debian/patches/mutt-patched/* > debian/tmp/README.Patches + + ( sed -e '/## More settings/,$$d' $(objdir)/doc/Muttrc || exit 1 ; \ + cat debian/extra/rc/Muttrc.foot ) > debian/tmp/Muttrc + + ( echo "# GnuPG configuration"; \ + grep '^set' contrib/gpg.rc; \ + echo ) > debian/tmp/gpg.rc + + dh_install + + # prepare files for update-alternatives + mv debian/mutt/usr/bin/mutt debian/mutt/usr/bin/mutt-org +ifeq ($(BUILD_PATCHED),yes) + install -D $(objdir)-patched/mutt debian/mutt-patched/usr/bin/mutt-patched +endif + + # reportbug driver + dh_installdirs + install -m644 debian/bug/control $(CURDIR)/debian/mutt/usr/share/bug/mutt + install debian/bug/script $(CURDIR)/debian/mutt/usr/share/bug/mutt + +binary binary-arch: install + ###################### binary ###################### + dh_installman + dh_installmenu + dh_installmime + dh_installdocs + dh_installexamples + dh_installchangelogs ChangeLog + -dh_lintian + + dh_strip --dbg-package=mutt-dbg + rm -rf $(CURDIR)/debian/mutt-dbg/usr/share/doc/mutt-dbg \ + $(CURDIR)/debian/mutt-patched/usr/share/doc/mutt-patched + + dh_link + dh_compress --exclude usr/share/doc/mutt/README.Patches + dh_fixperms --exclude usr/bin/mutt_dotlock + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +build-indep binary-indep: + @echo "Nothing to do." + +clean: unpatch + ###################### clean ###################### + dh_testdir + dh_testroot + + # please dpkg-source + rm -f po/*.gmo + echo -n > PATCHES + + # remove build trees + rm -rf $(objdir) $(objdir)-patched + + # remove autotool-generated files so they don't show up in the diff.gz + rm -f configure config.h.in + rm -f Makefile.in contrib/Makefile.in imap/Makefile.in doc/Makefile.in m4/Makefile.in + + dh_clean + +.PHONY: configure build build-arch build-indep clean install binary binary-arch binary-indep patch diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/debian/update-autotools.sh b/debian/update-autotools.sh new file mode 100755 index 0000000..f161b02 --- /dev/null +++ b/debian/update-autotools.sh @@ -0,0 +1,38 @@ +#! /bin/sh + +set -e + +dh_testdir + +D=$(basename "$PWD") +PATCH_NAME=misc/autotools-update.diff + +debclean +quilt delete $PATCH_NAME || test $? -eq 1 +quilt push -aq +ln -sf /usr/share/misc/config.sub . +ln -sf /usr/share/misc/config.guess . + +cd .. +cp -al $D $D.orig + +cd $D +aclocal -I m4 +autoheader +( cd m4 && make -f Makefile.am.in ) +automake +autoconf +cd .. + +T=`mktemp $D/diff.XXXXXX` +diff -ru $D.orig $D >$T || test $? -eq 1 +patch -p1 -R -d $D <$T + +cd $D +quilt import -f -P $PATCH_NAME `basename $T` +quilt push +quilt refresh -p0 +cd .. + +rm -f $T +rm -rf $D.orig diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..eb29a9a --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +opts=pasv ftp://ftp.mutt.org/mutt/devel/mutt-(.*).tar.gz diff --git a/doc/Makefile.in b/doc/Makefile.in deleted file mode 100644 index 9058ee5..0000000 --- a/doc/Makefile.in +++ /dev/null @@ -1,656 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = makedoc$(EXEEXT) -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/instdoc.sh.in TODO -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/curslib.m4 $(top_srcdir)/m4/funcdecl.m4 \ - $(top_srcdir)/m4/funcs.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gpgme.m4 \ - $(top_srcdir)/m4/gssapi.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/types.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = instdoc.sh -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -makedoc_SOURCES = makedoc.c -makedoc_OBJECTS = makedoc.$(OBJEXT) -makedoc_LDADD = $(LDADD) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = makedoc.c -DIST_SOURCES = makedoc.c -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBX = @DBX@ -DEBUGGER = @DEBUGGER@ -DEFS = -DSYSCONFDIR=\"$(sysconfdir)\" -DBINDIR=\"$(bindir)\" -DHAVE_CONFIG_H=1 -DEPDIR = @DEPDIR@ -DOTLOCK_GROUP = @DOTLOCK_GROUP@ -DOTLOCK_PERMISSION = @DOTLOCK_PERMISSION@ -DOTLOCK_TARGET = @DOTLOCK_TARGET@ -DSLROOT = @DSLROOT@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GDB = @GDB@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GPGME_CFLAGS = @GPGME_CFLAGS@ -GPGME_CONFIG = @GPGME_CONFIG@ -GPGME_LIBS = @GPGME_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -ISPELL = @ISPELL@ -KRB5CFGPATH = @KRB5CFGPATH@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBIMAP = @LIBIMAP@ -LIBIMAPDEPS = @LIBIMAPDEPS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MUTTLIBS = @MUTTLIBS@ -MUTT_LIB_OBJECTS = @MUTT_LIB_OBJECTS@ -MUTT_MD5 = @MUTT_MD5@ -OBJEXT = @OBJEXT@ -OPS = @OPS@ -OSPCAT = @OSPCAT@ -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@ -PGPAUX_TARGET = @PGPAUX_TARGET@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SDB = @SDB@ -SENDMAIL = @SENDMAIL@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SMIMEAUX_TARGET = @SMIMEAUX_TARGET@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -subdir = doc -AM_CPPFLAGS = -I. -I.. -I$(includedir) -I$(top_srcdir) -MAKEDOC_CPP = $(CPP) $(AM_CPPFLAGS) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C -EXTRA_DIST = dotlock.man \ - smime_keys.man \ - muttbug.man \ - mutt.man \ - PGP-Notes.txt \ - applying-patches.txt \ - devel-notes.txt \ - gen-map-doc \ - muttrc.man.head \ - muttrc.man.tail \ - mbox.man \ - mmdf.man \ - manual.xml.head \ - manual.xml.tail \ - instdoc.sh.in \ - patch-notes.txt \ - smime-notes.txt \ - Muttrc Muttrc.head stamp-doc-rc \ - makedoc.c makedoc-defs.h \ - mutt.css mutt.xsl html.xsl chunk.xsl $(BUILT_DISTFILES) - -CHUNKED_DOCFILES = index.html intro.html gettingstarted.html \ - configuration.html mimesupport.html advancedusage.html \ - optionalfeatures.html security.html tuning.html reference.html miscellany.html - -HTML_DOCFILES = manual.html $(CHUNKED_DOCFILES) -BUILT_DISTFILES = stamp-doc-xml stamp-doc-chunked manual.txt $(HTML_DOCFILES) -srcdir_DOCFILES = PGP-Notes.txt applying-patches.txt \ - devel-notes.txt patch-notes.txt smime-notes.txt - -topsrcdir_DOCFILES = COPYRIGHT GPL INSTALL ChangeLog \ - README NEWS TODO README.SECURITY README.SSL - -DISTCLEANFILES = manual.txt manual.html manual.xml manual.pdf html \ - instdoc Muttrc - -EDIT = sed -e 's,@sysconfdir\@,$(sysconfdir),g' \ - -e 's,@bindir\@,$(bindir),g' \ - -e 's,@docdir\@,$(docdir),g' - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign doc/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -instdoc.sh: $(top_builddir)/config.status $(srcdir)/instdoc.sh.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) -makedoc$(EXEEXT): $(makedoc_OBJECTS) $(makedoc_DEPENDENCIES) - @rm -f makedoc$(EXEEXT) - $(LINK) $(makedoc_OBJECTS) $(makedoc_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makedoc.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-local clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-local clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-local - - -all: makedoc-all - -makedoc-all: mutt.1 smime_keys.1 muttrc.man manual.html stamp-doc-rc stamp-doc-chunked manual.txt - -install-data-local: makedoc-all instdoc - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man5 - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir) - ./instdoc mutt.1 $(DESTDIR)$(mandir)/man1/mutt.1 - ./instdoc smime_keys.1 $(DESTDIR)$(mandir)/man1/smime_keys.1 - ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 - ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/muttbug.1 - test x@DOTLOCK_TARGET@ = x || ./instdoc $(srcdir)/dotlock.man \ - $(DESTDIR)$(mandir)/man1/mutt_dotlock.1 - ./instdoc muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5 - ./instdoc $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5 - ./instdoc $(srcdir)/mmdf.man $(DESTDIR)$(mandir)/man5/mmdf.5 - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir) - for f in $(topsrcdir_DOCFILES) ; do \ - $(INSTALL) -m 644 $(top_srcdir)/$$f $(DESTDIR)$(docdir) ; \ - done - for f in $(srcdir_DOCFILES) ; do \ - $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \ - done - -$(INSTALL) -m 644 manual.txt $(DESTDIR)$(docdir) - -for f in $(HTML_DOCFILES) ; do \ - $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir) ; \ - done - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist - -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \ - mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \ - elif [ -f $(DESTDIR)$(pkgdatadir)/../Muttrc ] ; then \ - mv $(DESTDIR)$(pkgdatadir)/../Muttrc* $(DESTDIR)$(sysconfdir) ; \ - elif [ ! -f $(DESTDIR)$(sysconfdir)/Muttrc ] ; then \ - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir) ; \ - fi - -uninstall-local: - for f in mutt.1 mutt_dotlock.1 flea.1 muttbug.1 smime_keys.1; do \ - rm -f $(DESTDIR)$(mandir)/man1/$$f ; \ - done - for f in muttrc.5 mbox.5 mmdf.5 ; do \ - rm -f $(DESTDIR)$(mandir)/man5/$$f ; \ - done - for f in $(srcdir_DOCFILES) $(topsrcdir_DOCFILES) $(HTML_DOCFILES) ; \ - do \ - rm -f $(DESTDIR)$(docdir)/$$f ; \ - done - -rm -f $(DESTDIR)$(docdir)/manual.txt - for i in Muttrc ; do \ - if cmp -s $(DESTDIR)$(sysconfdir)/$$i.dist $(DESTDIR)$(sysconfdir)/$$i ; then \ - rm $(DESTDIR)$(sysconfdir)/$$i ; \ - fi ; \ - rm $(DESTDIR)$(sysconfdir)/$${i}.dist ; \ - done - -check: -manual.txt: manual.html - -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \ - LC_ALL=C w3m -dump manual.html > $@ || \ - LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@ - -Muttrc: stamp-doc-rc - -stamp-doc-rc: $(top_srcdir)/init.h makedoc$(EXEEXT) $(srcdir)/Muttrc.head - -rm -f Muttrc stamp-doc-rc - sed -e 's,[@]docdir[@],$(docdir),' $(srcdir)/Muttrc.head > Muttrc - $(CPP) $(AM_CPPFLAGS) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C \ - $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -c >> Muttrc - touch stamp-doc-rc - -manual.html: $(srcdir)/html.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css - -xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml - -stamp-doc-chunked: $(srcdir)/chunk.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css - -xsltproc --nonet $(srcdir)/chunk.xsl manual.xml - touch stamp-doc-chunked - -$(CHUNKED_DOCFILES): stamp-doc-chunked - -manual.pdf: manual.tex - -if test -f manual.tex; then pdfjadetex manual.tex; fi - -manual.tex: stamp-doc-xml - -if test -n "$(DSLROOT)"; then \ - openjade -t tex -D $(DSLROOT) -d print/docbook.dsl dtds/decls/xml.dcl manual.xml; \ - fi - -validate: stamp-doc-xml - xmllint --noout --noblanks --postvalid manual.xml - -spellcheck: - -aspell -d american --mode=sgml --encoding=utf-8 -p $(srcdir)/mutt.pwl check manual.xml.head - -aspell -d american --mode=nroff --encoding=utf-8 -p $(srcdir)/mutt.pwl check muttrc.man.head - -aspell -d american --mode=ccpp --encoding=utf-8 -p $(srcdir)/mutt.pwl check $(top_srcdir)/init.h - -sortcheck: manual.xml - sed -n -e '1,/^/d' -e '1,/^/s//\1/p' < manual.xml > vars.tmp.1 - sort < vars.tmp.1 > vars.tmp.2 - cmp -s vars.tmp.1 vars.tmp.2 || diff -u vars.tmp.1 vars.tmp.2 | less - rm -rf vars.tmp.1 vars.tmp.2 - -clean-local: - rm -f *~ *.html *.orig *.rej stamp-doc-* *.ps mutt.1 smime_keys.1 muttrc.man - rm -f *.aux *.log *.tex *.out - -instdoc: instdoc.sh - cat instdoc.sh > instdoc - chmod a+x instdoc - -update-doc: stamp-doc-xml stamp-doc-chunked stamp-doc-rc manual.txt manual.html - -muttrc.man: makedoc$(EXEEXT) $(top_srcdir)/init.h muttrc.man.head muttrc.man.tail - $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -m | \ - cat $(srcdir)/muttrc.man.head - $(srcdir)/muttrc.man.tail\ - > muttrc.man - -mutt.1: $(srcdir)/mutt.man - $(EDIT) $(srcdir)/mutt.man > $@ - -smime_keys.1: $(srcdir)/smime_keys.man - $(EDIT) $(srcdir)/smime_keys.man > $@ - -stamp-doc-xml: makedoc$(EXEEXT) $(top_srcdir)/init.h \ - manual.xml.head $(top_srcdir)/functions.h $(top_srcdir)/OPS* manual.xml.tail \ - $(srcdir)/gen-map-doc $(top_srcdir)/VERSION $(top_srcdir)/ChangeLog - ( date=`head -n 1 $(top_srcdir)/ChangeLog | LC_ALL=C cut -d ' ' -f 1` && \ - sed -e "s/@VERSION\@/`cat $(top_srcdir)/VERSION` ($$date)/" $(srcdir)/manual.xml.head && \ - $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -s && \ - $(MAKEDOC_CPP) $(top_srcdir)/functions.h | \ - perl $(srcdir)/gen-map-doc $(srcdir)/manual.xml.tail $(top_srcdir)/OPS* \ - ) > manual.xml - touch stamp-doc-xml - -# 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/imap/Makefile.in b/imap/Makefile.in deleted file mode 100644 index 74c2c9e..0000000 --- a/imap/Makefile.in +++ /dev/null @@ -1,512 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = imap -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in TODO -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/curslib.m4 $(top_srcdir)/m4/funcdecl.m4 \ - $(top_srcdir)/m4/funcs.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gpgme.m4 \ - $(top_srcdir)/m4/gssapi.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/types.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru -libimap_a_AR = $(AR) $(ARFLAGS) -libimap_a_LIBADD = -am__libimap_a_SOURCES_DIST = auth.c auth_login.c browse.c command.c \ - imap.c imap.h message.c utf7.c util.c auth_anon.c auth_cram.c \ - auth_sasl.c auth_gss.c -@USE_SASL_FALSE@am__objects_1 = auth_anon.$(OBJEXT) \ -@USE_SASL_FALSE@ auth_cram.$(OBJEXT) -@USE_SASL_TRUE@am__objects_1 = auth_sasl.$(OBJEXT) -@USE_GSS_TRUE@am__objects_2 = auth_gss.$(OBJEXT) -am_libimap_a_OBJECTS = auth.$(OBJEXT) auth_login.$(OBJEXT) \ - browse.$(OBJEXT) command.$(OBJEXT) imap.$(OBJEXT) \ - message.$(OBJEXT) utf7.$(OBJEXT) util.$(OBJEXT) \ - $(am__objects_1) $(am__objects_2) -libimap_a_OBJECTS = $(am_libimap_a_OBJECTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(libimap_a_SOURCES) -DIST_SOURCES = $(am__libimap_a_SOURCES_DIST) -HEADERS = $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBX = @DBX@ -DEBUGGER = @DEBUGGER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DOTLOCK_GROUP = @DOTLOCK_GROUP@ -DOTLOCK_PERMISSION = @DOTLOCK_PERMISSION@ -DOTLOCK_TARGET = @DOTLOCK_TARGET@ -DSLROOT = @DSLROOT@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GDB = @GDB@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GPGME_CFLAGS = @GPGME_CFLAGS@ -GPGME_CONFIG = @GPGME_CONFIG@ -GPGME_LIBS = @GPGME_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -ISPELL = @ISPELL@ -KRB5CFGPATH = @KRB5CFGPATH@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBIMAP = @LIBIMAP@ -LIBIMAPDEPS = @LIBIMAPDEPS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MUTTLIBS = @MUTTLIBS@ -MUTT_LIB_OBJECTS = @MUTT_LIB_OBJECTS@ -MUTT_MD5 = @MUTT_MD5@ -OBJEXT = @OBJEXT@ -OPS = @OPS@ -OSPCAT = @OSPCAT@ -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@ -PGPAUX_TARGET = @PGPAUX_TARGET@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SDB = @SDB@ -SENDMAIL = @SENDMAIL@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SMIMEAUX_TARGET = @SMIMEAUX_TARGET@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.6 foreign -@USE_GSS_TRUE@GSSSOURCES = auth_gss.c -@USE_SASL_FALSE@AUTHENTICATORS = auth_anon.c auth_cram.c -@USE_SASL_TRUE@AUTHENTICATORS = auth_sasl.c -EXTRA_DIST = README TODO auth_anon.c auth_cram.c auth_gss.c auth_sasl.c -AM_CPPFLAGS = -I$(top_srcdir) -I../intl -noinst_LIBRARIES = libimap.a -noinst_HEADERS = auth.h imap_private.h message.h -libimap_a_SOURCES = auth.c auth_login.c browse.c command.c imap.c imap.h \ - message.c utf7.c util.c $(AUTHENTICATORS) $(GSSSOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign imap/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign imap/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -libimap.a: $(libimap_a_OBJECTS) $(libimap_a_DEPENDENCIES) - -rm -f libimap.a - $(libimap_a_AR) libimap.a $(libimap_a_OBJECTS) $(libimap_a_LIBADD) - $(RANLIB) libimap.a - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_anon.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_cram.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_gss.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_login.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_sasl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/browse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf7.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/m4/Makefile.in b/m4/Makefile.in deleted file mode 100644 index 83512ef..0000000 --- a/m4/Makefile.in +++ /dev/null @@ -1,388 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = m4 -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/curslib.m4 $(top_srcdir)/m4/funcdecl.m4 \ - $(top_srcdir)/m4/funcs.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gpgme.m4 \ - $(top_srcdir)/m4/gssapi.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/types.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBX = @DBX@ -DEBUGGER = @DEBUGGER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DOTLOCK_GROUP = @DOTLOCK_GROUP@ -DOTLOCK_PERMISSION = @DOTLOCK_PERMISSION@ -DOTLOCK_TARGET = @DOTLOCK_TARGET@ -DSLROOT = @DSLROOT@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GDB = @GDB@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GPGME_CFLAGS = @GPGME_CFLAGS@ -GPGME_CONFIG = @GPGME_CONFIG@ -GPGME_LIBS = @GPGME_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -ISPELL = @ISPELL@ -KRB5CFGPATH = @KRB5CFGPATH@ -LDFLAGS = @LDFLAGS@ -LIBICONV = @LIBICONV@ -LIBIMAP = @LIBIMAP@ -LIBIMAPDEPS = @LIBIMAPDEPS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MUTTLIBS = @MUTTLIBS@ -MUTT_LIB_OBJECTS = @MUTT_LIB_OBJECTS@ -MUTT_MD5 = @MUTT_MD5@ -OBJEXT = @OBJEXT@ -OPS = @OPS@ -OSPCAT = @OSPCAT@ -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@ -PGPAUX_TARGET = @PGPAUX_TARGET@ -POFILES = @POFILES@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SDB = @SDB@ -SENDMAIL = @SENDMAIL@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SMIMEAUX_TARGET = @SMIMEAUX_TARGET@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = README -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign m4/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign m4/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic dist-hook \ - distclean distclean-generic distdir dvi dvi-am html html-am \ - info info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ - uninstall-am - - -dist-hook: - for i in $(srcdir)/*.m4 ; do \ - cp -f -p $$i $(distdir) ; \ - done - -# 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/po/bg.gmo b/po/bg.gmo deleted file mode 100644 index 9827c41..0000000 Binary files a/po/bg.gmo and /dev/null differ diff --git a/po/ca.gmo b/po/ca.gmo deleted file mode 100644 index ea21c44..0000000 Binary files a/po/ca.gmo and /dev/null differ diff --git a/po/cs.gmo b/po/cs.gmo deleted file mode 100644 index 93b7640..0000000 Binary files a/po/cs.gmo and /dev/null differ diff --git a/po/da.gmo b/po/da.gmo deleted file mode 100644 index d30dd28..0000000 Binary files a/po/da.gmo and /dev/null differ diff --git a/po/de.gmo b/po/de.gmo deleted file mode 100644 index 68ef5ef..0000000 Binary files a/po/de.gmo and /dev/null differ diff --git a/po/el.gmo b/po/el.gmo deleted file mode 100644 index da69d6f..0000000 Binary files a/po/el.gmo and /dev/null differ diff --git a/po/eo.gmo b/po/eo.gmo deleted file mode 100644 index 6c77902..0000000 Binary files a/po/eo.gmo and /dev/null differ diff --git a/po/es.gmo b/po/es.gmo deleted file mode 100644 index 134530c..0000000 Binary files a/po/es.gmo and /dev/null differ diff --git a/po/et.gmo b/po/et.gmo deleted file mode 100644 index 33b20d3..0000000 Binary files a/po/et.gmo and /dev/null differ diff --git a/po/eu.gmo b/po/eu.gmo deleted file mode 100644 index c45d867..0000000 Binary files a/po/eu.gmo and /dev/null differ diff --git a/po/fr.gmo b/po/fr.gmo deleted file mode 100644 index bc7d07c..0000000 Binary files a/po/fr.gmo and /dev/null differ diff --git a/po/ga.gmo b/po/ga.gmo deleted file mode 100644 index 1070b8c..0000000 Binary files a/po/ga.gmo and /dev/null differ diff --git a/po/gl.gmo b/po/gl.gmo deleted file mode 100644 index d5b2d64..0000000 Binary files a/po/gl.gmo and /dev/null differ diff --git a/po/hu.gmo b/po/hu.gmo deleted file mode 100644 index 1a6f260..0000000 Binary files a/po/hu.gmo and /dev/null differ diff --git a/po/id.gmo b/po/id.gmo deleted file mode 100644 index cc9df69..0000000 Binary files a/po/id.gmo and /dev/null differ diff --git a/po/it.gmo b/po/it.gmo deleted file mode 100644 index 19aee50..0000000 Binary files a/po/it.gmo and /dev/null differ diff --git a/po/ja.gmo b/po/ja.gmo deleted file mode 100644 index 90e8394..0000000 Binary files a/po/ja.gmo and /dev/null differ diff --git a/po/ko.gmo b/po/ko.gmo deleted file mode 100644 index 8a240f3..0000000 Binary files a/po/ko.gmo and /dev/null differ diff --git a/po/lt.gmo b/po/lt.gmo deleted file mode 100644 index dabbf08..0000000 Binary files a/po/lt.gmo and /dev/null differ diff --git a/po/nl.gmo b/po/nl.gmo deleted file mode 100644 index 3593d18..0000000 Binary files a/po/nl.gmo and /dev/null differ diff --git a/po/pl.gmo b/po/pl.gmo deleted file mode 100644 index a30cd5a..0000000 Binary files a/po/pl.gmo and /dev/null differ diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo deleted file mode 100644 index b71fbbb..0000000 Binary files a/po/pt_BR.gmo and /dev/null differ diff --git a/po/ru.gmo b/po/ru.gmo deleted file mode 100644 index 81e67ab..0000000 Binary files a/po/ru.gmo and /dev/null differ diff --git a/po/sk.gmo b/po/sk.gmo deleted file mode 100644 index 4dd742f..0000000 Binary files a/po/sk.gmo and /dev/null differ diff --git a/po/sv.gmo b/po/sv.gmo deleted file mode 100644 index 1ef9660..0000000 Binary files a/po/sv.gmo and /dev/null differ diff --git a/po/tr.gmo b/po/tr.gmo deleted file mode 100644 index 1b64dc4..0000000 Binary files a/po/tr.gmo and /dev/null differ diff --git a/po/uk.gmo b/po/uk.gmo deleted file mode 100644 index 6859a71..0000000 Binary files a/po/uk.gmo and /dev/null differ diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo deleted file mode 100644 index 248e207..0000000 Binary files a/po/zh_CN.gmo and /dev/null differ diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo deleted file mode 100644 index 69afacf..0000000 Binary files a/po/zh_TW.gmo and /dev/null differ