Compare commits
	
		
			29 Commits
		
	
	
		
			0.7.11
			...
			6f8e688a46
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6f8e688a46 | |||
| d8f44235f5 | |||
| 6e9600426a | |||
| b4d3034c8c | |||
| 9515236244 | |||
| a790494133 | |||
| ec8062309d | |||
| 631998a849 | |||
| bd64536e89 | |||
| b30f2f2362 | |||
| 1a63374e73 | |||
| efc6f92cdb | |||
| 191b24433f | |||
| 40b6f8799f | |||
|   | 13bf23b9a2 | ||
| c732d4f949 | |||
| 7255fae5d0 | |||
| 03407c7afb | |||
| dd5fefe22d | |||
| cbba5c2a33 | |||
| 27082f9629 | |||
| d17f37b3c5 | |||
| e004f116b7 | |||
| e5409a897d | |||
| 55aa25eca3 | |||
| 7ebef4a322 | |||
| d04349e9b4 | |||
| c19253d080 | |||
| 3040f9c363 | 
							
								
								
									
										11
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,6 @@ | |||||||
| Makefile | Makefile | ||||||
| config.h | config.h | ||||||
|  | config.h.in | ||||||
| config.log | config.log | ||||||
| config.status | config.status | ||||||
| src/*.o | src/*.o | ||||||
| @@ -10,3 +11,13 @@ src/.deps/ | |||||||
| src/stamp-h1 | src/stamp-h1 | ||||||
| aclocal.m4 | aclocal.m4 | ||||||
| autom4te.cache/ | autom4te.cache/ | ||||||
|  | Makefile.in | ||||||
|  | configure | ||||||
|  | compile | ||||||
|  | depcomp | ||||||
|  | install-sh | ||||||
|  | missing | ||||||
|  | src/mboxgrep.exe | ||||||
|  | configure~ | ||||||
|  | .gitignore | ||||||
|  | .vscode/* | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -1,5 +0,0 @@ | |||||||
| -*- text -*- |  | ||||||
|  |  | ||||||
| mboxgrep is written and maintained by Daniel Spiljar. |  | ||||||
|  |  | ||||||
| $Id: AUTHORS,v 1.3 2005-11-16 01:37:18 dspiljar Exp $ |  | ||||||
							
								
								
									
										1
									
								
								AUTHORS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								AUTHORS.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | mboxgrep is written and maintained by Daniel Spiljar with contributors. | ||||||
| @@ -5,11 +5,15 @@ | |||||||
| Autoconf and Automake are used, and the most basic compilation procedure consists of: | Autoconf and Automake are used, and the most basic compilation procedure consists of: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|  | autoreconf --install | ||||||
| ./configure | ./configure | ||||||
| make | make | ||||||
| make install # root rights probably needed here, prefix with sudo in such case | make install # root rights probably needed here, prefix with sudo in such case | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | (Invocation of `autoreconf` is only required if the source tree has been cloned from the | ||||||
|  | git repository.) | ||||||
|  |  | ||||||
| To see the list of flags accepted by the configure script, run: | To see the list of flags accepted by the configure script, run: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| @@ -18,5 +22,5 @@ To see the list of flags accepted by the configure script, run: | |||||||
|  |  | ||||||
| Optionally, `mboxgrep` can be linked with the following libraries: | Optionally, `mboxgrep` can be linked with the following libraries: | ||||||
|  |  | ||||||
| - PCRE, to enable support for regular expressions compatible with Perl 5; | - PCRE2, to enable support for regular expressions compatible with Perl 5; | ||||||
| - zlib and bzlib, to enable support for compressed mbox folders. | - zlib and bzlib, to enable support for compressed mbox folders. | ||||||
|   | |||||||
| @@ -1 +1,2 @@ | |||||||
| SUBDIRS = doc src | SUBDIRS = doc src | ||||||
|  | EXTRA_DIST = contrib COPYING.md INSTALL.md NEWS.md README.md TODO.md AUTHORS.md | ||||||
|   | |||||||
							
								
								
									
										759
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										759
									
								
								Makefile.in
									
									
									
									
									
								
							| @@ -1,759 +0,0 @@ | |||||||
| # Makefile.in generated by automake 1.16.3 from Makefile.am. |  | ||||||
| # @configure_input@ |  | ||||||
|  |  | ||||||
| # Copyright (C) 1994-2020 Free Software Foundation, Inc. |  | ||||||
|  |  | ||||||
| # This Makefile.in is free software; the Free Software Foundation |  | ||||||
| # gives unlimited permission to copy and/or distribute it, |  | ||||||
| # with or without modifications, as long as this notice is preserved. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without |  | ||||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |  | ||||||
| # PARTICULAR PURPOSE. |  | ||||||
|  |  | ||||||
| @SET_MAKE@ |  | ||||||
| VPATH = @srcdir@ |  | ||||||
| am__is_gnu_make = { \ |  | ||||||
|   if test -z '$(MAKELEVEL)'; then \ |  | ||||||
|     false; \ |  | ||||||
|   elif test -n '$(MAKE_HOST)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   else \ |  | ||||||
|     false; \ |  | ||||||
|   fi; \ |  | ||||||
| } |  | ||||||
| am__make_running_with_option = \ |  | ||||||
|   case $${target_option-} in \ |  | ||||||
|       ?) ;; \ |  | ||||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ |  | ||||||
|               "target option '$${target_option-}' specified" >&2; \ |  | ||||||
|          exit 1;; \ |  | ||||||
|   esac; \ |  | ||||||
|   has_opt=no; \ |  | ||||||
|   sane_makeflags=$$MAKEFLAGS; \ |  | ||||||
|   if $(am__is_gnu_make); then \ |  | ||||||
|     sane_makeflags=$$MFLAGS; \ |  | ||||||
|   else \ |  | ||||||
|     case $$MAKEFLAGS in \ |  | ||||||
|       *\\[\ \	]*) \ |  | ||||||
|         bs=\\; \ |  | ||||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |  | ||||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ |  | ||||||
|     esac; \ |  | ||||||
|   fi; \ |  | ||||||
|   skip_next=no; \ |  | ||||||
|   strip_trailopt () \ |  | ||||||
|   { \ |  | ||||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |  | ||||||
|   }; \ |  | ||||||
|   for flg in $$sane_makeflags; do \ |  | ||||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *=*|--*) continue;; \ |  | ||||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ |  | ||||||
|       -*I?*) strip_trailopt 'I';; \ |  | ||||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ |  | ||||||
|       -*O?*) strip_trailopt 'O';; \ |  | ||||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ |  | ||||||
|       -*l?*) strip_trailopt 'l';; \ |  | ||||||
|       -[dEDm]) skip_next=yes;; \ |  | ||||||
|       -[JT]) skip_next=yes;; \ |  | ||||||
|     esac; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *$$target_option*) has_opt=yes; break;; \ |  | ||||||
|     esac; \ |  | ||||||
|   done; \ |  | ||||||
|   test $$has_opt = yes |  | ||||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |  | ||||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |  | ||||||
| pkgdatadir = $(datadir)/@PACKAGE@ |  | ||||||
| pkgincludedir = $(includedir)/@PACKAGE@ |  | ||||||
| pkglibdir = $(libdir)/@PACKAGE@ |  | ||||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ |  | ||||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |  | ||||||
| install_sh_DATA = $(install_sh) -c -m 644 |  | ||||||
| install_sh_PROGRAM = $(install_sh) -c |  | ||||||
| install_sh_SCRIPT = $(install_sh) -c |  | ||||||
| INSTALL_HEADER = $(INSTALL_DATA) |  | ||||||
| transform = $(program_transform_name) |  | ||||||
| NORMAL_INSTALL = : |  | ||||||
| PRE_INSTALL = : |  | ||||||
| POST_INSTALL = : |  | ||||||
| NORMAL_UNINSTALL = : |  | ||||||
| PRE_UNINSTALL = : |  | ||||||
| POST_UNINSTALL = : |  | ||||||
| subdir = . |  | ||||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |  | ||||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac |  | ||||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |  | ||||||
| 	$(ACLOCAL_M4) |  | ||||||
| DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ |  | ||||||
| 	$(am__configure_deps) $(am__DIST_COMMON) |  | ||||||
| am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ |  | ||||||
|  configure.lineno config.status.lineno |  | ||||||
| mkinstalldirs = $(install_sh) -d |  | ||||||
| CONFIG_HEADER = $(top_builddir)/src/config.h |  | ||||||
| CONFIG_CLEAN_FILES = |  | ||||||
| CONFIG_CLEAN_VPATH_FILES = |  | ||||||
| AM_V_P = $(am__v_P_@AM_V@) |  | ||||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |  | ||||||
| am__v_P_0 = false |  | ||||||
| am__v_P_1 = : |  | ||||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) |  | ||||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |  | ||||||
| am__v_GEN_0 = @echo "  GEN     " $@; |  | ||||||
| am__v_GEN_1 =  |  | ||||||
| AM_V_at = $(am__v_at_@AM_V@) |  | ||||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |  | ||||||
| am__v_at_0 = @ |  | ||||||
| am__v_at_1 =  |  | ||||||
| SOURCES = |  | ||||||
| DIST_SOURCES = |  | ||||||
| RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ |  | ||||||
| 	ctags-recursive dvi-recursive html-recursive info-recursive \ |  | ||||||
| 	install-data-recursive install-dvi-recursive \ |  | ||||||
| 	install-exec-recursive install-html-recursive \ |  | ||||||
| 	install-info-recursive install-pdf-recursive \ |  | ||||||
| 	install-ps-recursive install-recursive installcheck-recursive \ |  | ||||||
| 	installdirs-recursive pdf-recursive ps-recursive \ |  | ||||||
| 	tags-recursive uninstall-recursive |  | ||||||
| am__can_run_installinfo = \ |  | ||||||
|   case $$AM_UPDATE_INFO_DIR in \ |  | ||||||
|     n|no|NO) false;; \ |  | ||||||
|     *) (install-info --version) >/dev/null 2>&1;; \ |  | ||||||
|   esac |  | ||||||
| RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\ |  | ||||||
|   distclean-recursive maintainer-clean-recursive |  | ||||||
| am__recursive_targets = \ |  | ||||||
|   $(RECURSIVE_TARGETS) \ |  | ||||||
|   $(RECURSIVE_CLEAN_TARGETS) \ |  | ||||||
|   $(am__extra_recursive_targets) |  | ||||||
| AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |  | ||||||
| 	cscope distdir distdir-am dist dist-all distcheck |  | ||||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |  | ||||||
| # Read a list of newline-separated strings from the standard input, |  | ||||||
| # and print each of them once, without duplicates.  Input order is |  | ||||||
| # *not* preserved. |  | ||||||
| am__uniquify_input = $(AWK) '\ |  | ||||||
|   BEGIN { nonempty = 0; } \ |  | ||||||
|   { items[$$0] = 1; nonempty = 1; } \ |  | ||||||
|   END { if (nonempty) { for (i in items) print i; }; } \ |  | ||||||
| ' |  | ||||||
| # Make sure the list of sources is unique.  This is necessary because, |  | ||||||
| # e.g., the same source file might be shared among _SOURCES variables |  | ||||||
| # for different programs/libraries. |  | ||||||
| am__define_uniq_tagged_files = \ |  | ||||||
|   list='$(am__tagged_files)'; \ |  | ||||||
|   unique=`for i in $$list; do \ |  | ||||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |  | ||||||
|   done | $(am__uniquify_input)` |  | ||||||
| ETAGS = etags |  | ||||||
| CTAGS = ctags |  | ||||||
| CSCOPE = cscope |  | ||||||
| DIST_SUBDIRS = $(SUBDIRS) |  | ||||||
| am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS compile depcomp \ |  | ||||||
| 	install-sh missing |  | ||||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |  | ||||||
| distdir = $(PACKAGE)-$(VERSION) |  | ||||||
| top_distdir = $(distdir) |  | ||||||
| am__remove_distdir = \ |  | ||||||
|   if test -d "$(distdir)"; then \ |  | ||||||
|     find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ |  | ||||||
|       && rm -rf "$(distdir)" \ |  | ||||||
|       || { sleep 5 && rm -rf "$(distdir)"; }; \ |  | ||||||
|   else :; fi |  | ||||||
| am__post_remove_distdir = $(am__remove_distdir) |  | ||||||
| am__relativize = \ |  | ||||||
|   dir0=`pwd`; \ |  | ||||||
|   sed_first='s,^\([^/]*\)/.*$$,\1,'; \ |  | ||||||
|   sed_rest='s,^[^/]*/*,,'; \ |  | ||||||
|   sed_last='s,^.*/\([^/]*\)$$,\1,'; \ |  | ||||||
|   sed_butlast='s,/*[^/]*$$,,'; \ |  | ||||||
|   while test -n "$$dir1"; do \ |  | ||||||
|     first=`echo "$$dir1" | sed -e "$$sed_first"`; \ |  | ||||||
|     if test "$$first" != "."; then \ |  | ||||||
|       if test "$$first" = ".."; then \ |  | ||||||
|         dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ |  | ||||||
|         dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ |  | ||||||
|       else \ |  | ||||||
|         first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ |  | ||||||
|         if test "$$first2" = "$$first"; then \ |  | ||||||
|           dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ |  | ||||||
|         else \ |  | ||||||
|           dir2="../$$dir2"; \ |  | ||||||
|         fi; \ |  | ||||||
|         dir0="$$dir0"/"$$first"; \ |  | ||||||
|       fi; \ |  | ||||||
|     fi; \ |  | ||||||
|     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ |  | ||||||
|   done; \ |  | ||||||
|   reldir="$$dir2" |  | ||||||
| DIST_ARCHIVES = $(distdir).tar.gz |  | ||||||
| GZIP_ENV = --best |  | ||||||
| DIST_TARGETS = dist-gzip |  | ||||||
| # Exists only to be overridden by the user if desired. |  | ||||||
| AM_DISTCHECK_DVI_TARGET = dvi |  | ||||||
| distuninstallcheck_listfiles = find . -type f -print |  | ||||||
| am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ |  | ||||||
|   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' |  | ||||||
| distcleancheck_listfiles = find . -type f -print |  | ||||||
| ACLOCAL = @ACLOCAL@ |  | ||||||
| AMTAR = @AMTAR@ |  | ||||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |  | ||||||
| AUTOCONF = @AUTOCONF@ |  | ||||||
| AUTOHEADER = @AUTOHEADER@ |  | ||||||
| AUTOMAKE = @AUTOMAKE@ |  | ||||||
| AWK = @AWK@ |  | ||||||
| CC = @CC@ |  | ||||||
| CCDEPMODE = @CCDEPMODE@ |  | ||||||
| CFLAGS = @CFLAGS@ |  | ||||||
| CPP = @CPP@ |  | ||||||
| CPPFLAGS = @CPPFLAGS@ |  | ||||||
| CYGPATH_W = @CYGPATH_W@ |  | ||||||
| DEFS = @DEFS@ |  | ||||||
| DEPDIR = @DEPDIR@ |  | ||||||
| ECHO_C = @ECHO_C@ |  | ||||||
| ECHO_N = @ECHO_N@ |  | ||||||
| ECHO_T = @ECHO_T@ |  | ||||||
| EGREP = @EGREP@ |  | ||||||
| EXEEXT = @EXEEXT@ |  | ||||||
| GREP = @GREP@ |  | ||||||
| INSTALL = @INSTALL@ |  | ||||||
| INSTALL_DATA = @INSTALL_DATA@ |  | ||||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |  | ||||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ |  | ||||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |  | ||||||
| LDFLAGS = @LDFLAGS@ |  | ||||||
| LIBOBJS = @LIBOBJS@ |  | ||||||
| LIBS = @LIBS@ |  | ||||||
| LTLIBOBJS = @LTLIBOBJS@ |  | ||||||
| MAKEINFO = @MAKEINFO@ |  | ||||||
| MKDIR_P = @MKDIR_P@ |  | ||||||
| OBJEXT = @OBJEXT@ |  | ||||||
| PACKAGE = @PACKAGE@ |  | ||||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |  | ||||||
| PACKAGE_NAME = @PACKAGE_NAME@ |  | ||||||
| PACKAGE_STRING = @PACKAGE_STRING@ |  | ||||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ |  | ||||||
| PACKAGE_URL = @PACKAGE_URL@ |  | ||||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ |  | ||||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ |  | ||||||
| PCRE_CONFIG = @PCRE_CONFIG@ |  | ||||||
| SET_MAKE = @SET_MAKE@ |  | ||||||
| SHELL = @SHELL@ |  | ||||||
| STRIP = @STRIP@ |  | ||||||
| VERSION = @VERSION@ |  | ||||||
| abs_builddir = @abs_builddir@ |  | ||||||
| abs_srcdir = @abs_srcdir@ |  | ||||||
| abs_top_builddir = @abs_top_builddir@ |  | ||||||
| abs_top_srcdir = @abs_top_srcdir@ |  | ||||||
| ac_ct_CC = @ac_ct_CC@ |  | ||||||
| am__include = @am__include@ |  | ||||||
| am__leading_dot = @am__leading_dot@ |  | ||||||
| am__quote = @am__quote@ |  | ||||||
| am__tar = @am__tar@ |  | ||||||
| am__untar = @am__untar@ |  | ||||||
| bindir = @bindir@ |  | ||||||
| build_alias = @build_alias@ |  | ||||||
| builddir = @builddir@ |  | ||||||
| datadir = @datadir@ |  | ||||||
| datarootdir = @datarootdir@ |  | ||||||
| docdir = @docdir@ |  | ||||||
| dvidir = @dvidir@ |  | ||||||
| exec_prefix = @exec_prefix@ |  | ||||||
| host_alias = @host_alias@ |  | ||||||
| htmldir = @htmldir@ |  | ||||||
| includedir = @includedir@ |  | ||||||
| infodir = @infodir@ |  | ||||||
| install_sh = @install_sh@ |  | ||||||
| libdir = @libdir@ |  | ||||||
| libexecdir = @libexecdir@ |  | ||||||
| localedir = @localedir@ |  | ||||||
| localstatedir = @localstatedir@ |  | ||||||
| mandir = @mandir@ |  | ||||||
| mkdir_p = @mkdir_p@ |  | ||||||
| oldincludedir = @oldincludedir@ |  | ||||||
| pdfdir = @pdfdir@ |  | ||||||
| prefix = @prefix@ |  | ||||||
| program_transform_name = @program_transform_name@ |  | ||||||
| psdir = @psdir@ |  | ||||||
| runstatedir = @runstatedir@ |  | ||||||
| sbindir = @sbindir@ |  | ||||||
| sharedstatedir = @sharedstatedir@ |  | ||||||
| srcdir = @srcdir@ |  | ||||||
| sysconfdir = @sysconfdir@ |  | ||||||
| target_alias = @target_alias@ |  | ||||||
| top_build_prefix = @top_build_prefix@ |  | ||||||
| top_builddir = @top_builddir@ |  | ||||||
| top_srcdir = @top_srcdir@ |  | ||||||
| SUBDIRS = doc src |  | ||||||
| all: all-recursive |  | ||||||
|  |  | ||||||
| .SUFFIXES: |  | ||||||
| am--refresh: Makefile |  | ||||||
| 	@: |  | ||||||
| $(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 |  | ||||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |  | ||||||
| 	@case '$?' in \ |  | ||||||
| 	  *config.status*) \ |  | ||||||
| 	    echo ' $(SHELL) ./config.status'; \ |  | ||||||
| 	    $(SHELL) ./config.status;; \ |  | ||||||
| 	  *) \ |  | ||||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ |  | ||||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ |  | ||||||
| 	esac; |  | ||||||
|  |  | ||||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |  | ||||||
| 	$(SHELL) ./config.status --recheck |  | ||||||
|  |  | ||||||
| $(top_srcdir)/configure:  $(am__configure_deps) |  | ||||||
| 	$(am__cd) $(srcdir) && $(AUTOCONF) |  | ||||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) |  | ||||||
| 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) |  | ||||||
| $(am__aclocal_m4_deps): |  | ||||||
|  |  | ||||||
| # This directory's subdirectories are mostly independent; you can cd |  | ||||||
| # into them and run 'make' without going through this Makefile. |  | ||||||
| # To change the values of 'make' variables: instead of editing Makefiles, |  | ||||||
| # (1) if the variable is set in 'config.status', edit 'config.status' |  | ||||||
| #     (which will cause the Makefiles to be regenerated when you run 'make'); |  | ||||||
| # (2) otherwise, pass the desired values on the 'make' command line. |  | ||||||
| $(am__recursive_targets): |  | ||||||
| 	@fail=; \ |  | ||||||
| 	if $(am__make_keepgoing); then \ |  | ||||||
| 	  failcom='fail=yes'; \ |  | ||||||
| 	else \ |  | ||||||
| 	  failcom='exit 1'; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	dot_seen=no; \ |  | ||||||
| 	target=`echo $@ | sed s/-recursive//`; \ |  | ||||||
| 	case "$@" in \ |  | ||||||
| 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ |  | ||||||
| 	  *) list='$(SUBDIRS)' ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for subdir in $$list; do \ |  | ||||||
| 	  echo "Making $$target in $$subdir"; \ |  | ||||||
| 	  if test "$$subdir" = "."; then \ |  | ||||||
| 	    dot_seen=yes; \ |  | ||||||
| 	    local_target="$$target-am"; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    local_target="$$target"; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |  | ||||||
| 	  || eval $$failcom; \ |  | ||||||
| 	done; \ |  | ||||||
| 	if test "$$dot_seen" = "no"; then \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ |  | ||||||
| 	fi; test -z "$$fail" |  | ||||||
|  |  | ||||||
| ID: $(am__tagged_files) |  | ||||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique |  | ||||||
| tags: tags-recursive |  | ||||||
| TAGS: tags |  | ||||||
|  |  | ||||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |  | ||||||
| 	set x; \ |  | ||||||
| 	here=`pwd`; \ |  | ||||||
| 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ |  | ||||||
| 	  include_option=--etags-include; \ |  | ||||||
| 	  empty_fix=.; \ |  | ||||||
| 	else \ |  | ||||||
| 	  include_option=--include; \ |  | ||||||
| 	  empty_fix=; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \ |  | ||||||
| 	  if test "$$subdir" = .; then :; else \ |  | ||||||
| 	    test ! -f $$subdir/TAGS || \ |  | ||||||
| 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done; \ |  | ||||||
| 	$(am__define_uniq_tagged_files); \ |  | ||||||
| 	shift; \ |  | ||||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |  | ||||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ |  | ||||||
| 	  if test $$# -gt 0; then \ |  | ||||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |  | ||||||
| 	      "$$@" $$unique; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |  | ||||||
| 	      $$unique; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	fi |  | ||||||
| ctags: ctags-recursive |  | ||||||
|  |  | ||||||
| CTAGS: ctags |  | ||||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |  | ||||||
| 	$(am__define_uniq_tagged_files); \ |  | ||||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ |  | ||||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |  | ||||||
| 	     $$unique |  | ||||||
|  |  | ||||||
| GTAGS: |  | ||||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ |  | ||||||
| 	  && $(am__cd) $(top_srcdir) \ |  | ||||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" |  | ||||||
| cscope: cscope.files |  | ||||||
| 	test ! -s cscope.files \ |  | ||||||
| 	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) |  | ||||||
| clean-cscope: |  | ||||||
| 	-rm -f cscope.files |  | ||||||
| cscope.files: clean-cscope cscopelist |  | ||||||
| cscopelist: cscopelist-recursive |  | ||||||
|  |  | ||||||
| cscopelist-am: $(am__tagged_files) |  | ||||||
| 	list='$(am__tagged_files)'; \ |  | ||||||
| 	case "$(srcdir)" in \ |  | ||||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |  | ||||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for i in $$list; do \ |  | ||||||
| 	  if test -f "$$i"; then \ |  | ||||||
| 	    echo "$(subdir)/$$i"; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    echo "$$sdir/$$i"; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done >> $(top_builddir)/cscope.files |  | ||||||
|  |  | ||||||
| distclean-tags: |  | ||||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |  | ||||||
| 	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files |  | ||||||
|  |  | ||||||
| distdir: $(BUILT_SOURCES) |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am |  | ||||||
|  |  | ||||||
| distdir-am: $(DISTFILES) |  | ||||||
| 	$(am__remove_distdir) |  | ||||||
| 	test -d "$(distdir)" || mkdir "$(distdir)" |  | ||||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	list='$(DISTFILES)'; \ |  | ||||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ |  | ||||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ |  | ||||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |  | ||||||
| 	case $$dist_files in \ |  | ||||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ |  | ||||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |  | ||||||
| 			   sort -u` ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for file in $$dist_files; do \ |  | ||||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |  | ||||||
| 	  if test -d $$d/$$file; then \ |  | ||||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |  | ||||||
| 	    if test -d "$(distdir)/$$file"; then \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |  | ||||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    test -f "$(distdir)/$$file" \ |  | ||||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ |  | ||||||
| 	    || exit 1; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done |  | ||||||
| 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |  | ||||||
| 	  if test "$$subdir" = .; then :; else \ |  | ||||||
| 	    $(am__make_dryrun) \ |  | ||||||
| 	      || test -d "$(distdir)/$$subdir" \ |  | ||||||
| 	      || $(MKDIR_P) "$(distdir)/$$subdir" \ |  | ||||||
| 	      || exit 1; \ |  | ||||||
| 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ |  | ||||||
| 	    $(am__relativize); \ |  | ||||||
| 	    new_distdir=$$reldir; \ |  | ||||||
| 	    dir1=$$subdir; dir2="$(top_distdir)"; \ |  | ||||||
| 	    $(am__relativize); \ |  | ||||||
| 	    new_top_distdir=$$reldir; \ |  | ||||||
| 	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ |  | ||||||
| 	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ |  | ||||||
| 	    ($(am__cd) $$subdir && \ |  | ||||||
| 	      $(MAKE) $(AM_MAKEFLAGS) \ |  | ||||||
| 	        top_distdir="$$new_top_distdir" \ |  | ||||||
| 	        distdir="$$new_distdir" \ |  | ||||||
| 		am__remove_distdir=: \ |  | ||||||
| 		am__skip_length_check=: \ |  | ||||||
| 		am__skip_mode_fix=: \ |  | ||||||
| 	        distdir) \ |  | ||||||
| 	      || exit 1; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done |  | ||||||
| 	-test -n "$(am__skip_mode_fix)" \ |  | ||||||
| 	|| find "$(distdir)" -type d ! -perm -755 \ |  | ||||||
| 		-exec chmod u+rwx,go+rx {} \; -o \ |  | ||||||
| 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ |  | ||||||
| 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ |  | ||||||
| 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ |  | ||||||
| 	|| chmod -R a+r "$(distdir)" |  | ||||||
| dist-gzip: distdir |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-bzip2: distdir |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-lzip: distdir |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-xz: distdir |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-zstd: distdir |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-tarZ: distdir |  | ||||||
| 	@echo WARNING: "Support for distribution archives compressed with" \ |  | ||||||
| 		       "legacy program 'compress' is deprecated." >&2 |  | ||||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 |  | ||||||
| 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-shar: distdir |  | ||||||
| 	@echo WARNING: "Support for shar distribution archives is" \ |  | ||||||
| 	               "deprecated." >&2 |  | ||||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 |  | ||||||
| 	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist-zip: distdir |  | ||||||
| 	-rm -f $(distdir).zip |  | ||||||
| 	zip -rq $(distdir).zip $(distdir) |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| dist dist-all: |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
|  |  | ||||||
| # This target untars the dist file and tries a VPATH configuration.  Then |  | ||||||
| # it guarantees that the distribution is self-contained by making another |  | ||||||
| # tarfile. |  | ||||||
| distcheck: dist |  | ||||||
| 	case '$(DIST_ARCHIVES)' in \ |  | ||||||
| 	*.tar.gz*) \ |  | ||||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ |  | ||||||
| 	*.tar.bz2*) \ |  | ||||||
| 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ |  | ||||||
| 	*.tar.lz*) \ |  | ||||||
| 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ |  | ||||||
| 	*.tar.xz*) \ |  | ||||||
| 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\ |  | ||||||
| 	*.tar.Z*) \ |  | ||||||
| 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ |  | ||||||
| 	*.shar.gz*) \ |  | ||||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ |  | ||||||
| 	*.zip*) \ |  | ||||||
| 	  unzip $(distdir).zip ;;\ |  | ||||||
| 	*.tar.zst*) \ |  | ||||||
| 	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ |  | ||||||
| 	esac |  | ||||||
| 	chmod -R a-w $(distdir) |  | ||||||
| 	chmod u+w $(distdir) |  | ||||||
| 	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst |  | ||||||
| 	chmod a-w $(distdir) |  | ||||||
| 	test -d $(distdir)/_build || exit 0; \ |  | ||||||
| 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ |  | ||||||
| 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ |  | ||||||
| 	  && am__cwd=`pwd` \ |  | ||||||
| 	  && $(am__cd) $(distdir)/_build/sub \ |  | ||||||
| 	  && ../../configure \ |  | ||||||
| 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \ |  | ||||||
| 	    $(DISTCHECK_CONFIGURE_FLAGS) \ |  | ||||||
| 	    --srcdir=../.. --prefix="$$dc_install_base" \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) check \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) install \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ |  | ||||||
| 	        distuninstallcheck \ |  | ||||||
| 	  && chmod -R a-w "$$dc_install_base" \ |  | ||||||
| 	  && ({ \ |  | ||||||
| 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ |  | ||||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ |  | ||||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ |  | ||||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ |  | ||||||
| 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ |  | ||||||
| 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \ |  | ||||||
| 	  && rm -rf "$$dc_destdir" \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dist \ |  | ||||||
| 	  && rm -rf $(DIST_ARCHIVES) \ |  | ||||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ |  | ||||||
| 	  && cd "$$am__cwd" \ |  | ||||||
| 	  || exit 1 |  | ||||||
| 	$(am__post_remove_distdir) |  | ||||||
| 	@(echo "$(distdir) archives ready for distribution: "; \ |  | ||||||
| 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ |  | ||||||
| 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' |  | ||||||
| distuninstallcheck: |  | ||||||
| 	@test -n '$(distuninstallcheck_dir)' || { \ |  | ||||||
| 	  echo 'ERROR: trying to run $@ with an empty' \ |  | ||||||
| 	       '$$(distuninstallcheck_dir)' >&2; \ |  | ||||||
| 	  exit 1; \ |  | ||||||
| 	}; \ |  | ||||||
| 	$(am__cd) '$(distuninstallcheck_dir)' || { \ |  | ||||||
| 	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ |  | ||||||
| 	  exit 1; \ |  | ||||||
| 	}; \ |  | ||||||
| 	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ |  | ||||||
| 	   || { echo "ERROR: files left after uninstall:" ; \ |  | ||||||
| 	        if test -n "$(DESTDIR)"; then \ |  | ||||||
| 	          echo "  (check DESTDIR support)"; \ |  | ||||||
| 	        fi ; \ |  | ||||||
| 	        $(distuninstallcheck_listfiles) ; \ |  | ||||||
| 	        exit 1; } >&2 |  | ||||||
| distcleancheck: distclean |  | ||||||
| 	@if test '$(srcdir)' = . ; then \ |  | ||||||
| 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \ |  | ||||||
| 	  exit 1 ; \ |  | ||||||
| 	fi |  | ||||||
| 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ |  | ||||||
| 	  || { echo "ERROR: files left in build directory after distclean:" ; \ |  | ||||||
| 	       $(distcleancheck_listfiles) ; \ |  | ||||||
| 	       exit 1; } >&2 |  | ||||||
| check-am: all-am |  | ||||||
| check: check-recursive |  | ||||||
| all-am: Makefile |  | ||||||
| installdirs: installdirs-recursive |  | ||||||
| installdirs-am: |  | ||||||
| install: install-recursive |  | ||||||
| install-exec: install-exec-recursive |  | ||||||
| install-data: install-data-recursive |  | ||||||
| uninstall: uninstall-recursive |  | ||||||
|  |  | ||||||
| install-am: all-am |  | ||||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |  | ||||||
|  |  | ||||||
| installcheck: installcheck-recursive |  | ||||||
| install-strip: |  | ||||||
| 	if test -z '$(STRIP)'; then \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	      install; \ |  | ||||||
| 	else \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |  | ||||||
| 	fi |  | ||||||
| mostlyclean-generic: |  | ||||||
|  |  | ||||||
| clean-generic: |  | ||||||
|  |  | ||||||
| distclean-generic: |  | ||||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |  | ||||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |  | ||||||
|  |  | ||||||
| maintainer-clean-generic: |  | ||||||
| 	@echo "This command is intended for maintainers to use" |  | ||||||
| 	@echo "it deletes files that may require special tools to rebuild." |  | ||||||
| clean: clean-recursive |  | ||||||
|  |  | ||||||
| clean-am: clean-generic mostlyclean-am |  | ||||||
|  |  | ||||||
| distclean: distclean-recursive |  | ||||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) |  | ||||||
| 	-rm -f Makefile |  | ||||||
| distclean-am: clean-am distclean-generic distclean-tags |  | ||||||
|  |  | ||||||
| dvi: dvi-recursive |  | ||||||
|  |  | ||||||
| dvi-am: |  | ||||||
|  |  | ||||||
| html: html-recursive |  | ||||||
|  |  | ||||||
| html-am: |  | ||||||
|  |  | ||||||
| info: info-recursive |  | ||||||
|  |  | ||||||
| info-am: |  | ||||||
|  |  | ||||||
| install-data-am: |  | ||||||
|  |  | ||||||
| install-dvi: install-dvi-recursive |  | ||||||
|  |  | ||||||
| install-dvi-am: |  | ||||||
|  |  | ||||||
| install-exec-am: |  | ||||||
|  |  | ||||||
| install-html: install-html-recursive |  | ||||||
|  |  | ||||||
| install-html-am: |  | ||||||
|  |  | ||||||
| install-info: install-info-recursive |  | ||||||
|  |  | ||||||
| install-info-am: |  | ||||||
|  |  | ||||||
| install-man: |  | ||||||
|  |  | ||||||
| install-pdf: install-pdf-recursive |  | ||||||
|  |  | ||||||
| install-pdf-am: |  | ||||||
|  |  | ||||||
| install-ps: install-ps-recursive |  | ||||||
|  |  | ||||||
| install-ps-am: |  | ||||||
|  |  | ||||||
| installcheck-am: |  | ||||||
|  |  | ||||||
| maintainer-clean: maintainer-clean-recursive |  | ||||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) |  | ||||||
| 	-rm -rf $(top_srcdir)/autom4te.cache |  | ||||||
| 	-rm -f Makefile |  | ||||||
| maintainer-clean-am: distclean-am maintainer-clean-generic |  | ||||||
|  |  | ||||||
| mostlyclean: mostlyclean-recursive |  | ||||||
|  |  | ||||||
| mostlyclean-am: mostlyclean-generic |  | ||||||
|  |  | ||||||
| pdf: pdf-recursive |  | ||||||
|  |  | ||||||
| pdf-am: |  | ||||||
|  |  | ||||||
| ps: ps-recursive |  | ||||||
|  |  | ||||||
| ps-am: |  | ||||||
|  |  | ||||||
| uninstall-am: |  | ||||||
|  |  | ||||||
| .MAKE: $(am__recursive_targets) install-am install-strip |  | ||||||
|  |  | ||||||
| .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ |  | ||||||
| 	am--refresh check check-am clean clean-cscope clean-generic \ |  | ||||||
| 	cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ |  | ||||||
| 	dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ |  | ||||||
| 	dist-zstd distcheck distclean distclean-generic distclean-tags \ |  | ||||||
| 	distcleancheck distdir distuninstallcheck dvi dvi-am html \ |  | ||||||
| 	html-am info info-am install install-am install-data \ |  | ||||||
| 	install-data-am install-dvi install-dvi-am install-exec \ |  | ||||||
| 	install-exec-am install-html install-html-am install-info \ |  | ||||||
| 	install-info-am install-man install-pdf install-pdf-am \ |  | ||||||
| 	install-ps install-ps-am install-strip installcheck \ |  | ||||||
| 	installcheck-am installdirs installdirs-am maintainer-clean \ |  | ||||||
| 	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ |  | ||||||
| 	pdf-am ps ps-am tags tags-am uninstall uninstall-am |  | ||||||
|  |  | ||||||
| .PRECIOUS: Makefile |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # 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: |  | ||||||
							
								
								
									
										50
									
								
								NEWS.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								NEWS.md
									
									
									
									
									
								
							| @@ -1,11 +1,21 @@ | |||||||
| # Changes of mboxgrep | # Changes of mboxgrep | ||||||
|  |  | ||||||
| ## Changes since 0.7.10 | ## Changes in 0.7.12a | ||||||
|  |  | ||||||
|  | - Fix Automake macros to include the license file and others. | ||||||
|  |  | ||||||
|  | ## Changes in 0.7.12 | ||||||
|  |  | ||||||
|  | - Port to the pcre2 library (pcre1 is no longer supported). | ||||||
|  | - Check command-line options for conflicting matchers and actions. | ||||||
|  | - Various minor code cleanups. | ||||||
|  |  | ||||||
|  | ## Changes in 0.7.11 | ||||||
|  |  | ||||||
| - GNU Automake is now utilized instead of manually written Makefile.in files. | - GNU Automake is now utilized instead of manually written Makefile.in files. | ||||||
| - Code indentation has been corrected and documented (GNU indent is used for this purpose). | - Code indentation has been corrected and documented (GNU indent is used for this purpose). | ||||||
|  |  | ||||||
| ## Changes since 0.7.9 | ## Changes in 0.7.10 | ||||||
|  |  | ||||||
| - development has been restarted after a longer hiatus | - development has been restarted after a longer hiatus | ||||||
| - moved the source tree to git | - moved the source tree to git | ||||||
| @@ -14,7 +24,7 @@ | |||||||
| - fixed multiple compilation errors and warnings on Linux and FreeBSD | - fixed multiple compilation errors and warnings on Linux and FreeBSD | ||||||
| - started implementing a debug mode | - started implementing a debug mode | ||||||
|  |  | ||||||
| ## Changes since 0.7.8 | ## Changes in 0.7.9 | ||||||
|  |  | ||||||
| - implemented support for mbox folders compressed with bzip2 algorithm | - implemented support for mbox folders compressed with bzip2 algorithm | ||||||
| - improved detection of PCRE library; this also fixes a compilation bug | - improved detection of PCRE library; this also fixes a compilation bug | ||||||
| @@ -23,7 +33,7 @@ | |||||||
|   folder and temporary directory were on different filesystems; |   folder and temporary directory were on different filesystems; | ||||||
|   thanks to James P. Dugal <jpd AT louisiana.edu> for providing a patch |   thanks to James P. Dugal <jpd AT louisiana.edu> for providing a patch | ||||||
|  |  | ||||||
| ## Changes since 0.7.7 | ## Changes in 0.7.8 | ||||||
|  |  | ||||||
| - fixed crashes on MH folders, as well as a potential problem with mbox | - fixed crashes on MH folders, as well as a potential problem with mbox | ||||||
|   and maildir folders with the same cause |   and maildir folders with the same cause | ||||||
| @@ -32,46 +42,46 @@ | |||||||
| - mboxgrep can now read gzip compressed mbox folders from standard input | - mboxgrep can now read gzip compressed mbox folders from standard input | ||||||
|   (which is a side effect of a code cleanup!) |   (which is a side effect of a code cleanup!) | ||||||
|  |  | ||||||
| ## Changes since 0.7.6a | ## Changes in 0.7.7 | ||||||
|  |  | ||||||
| - mboxgrep can now read mbox folders from standard input | - mboxgrep can now read mbox folders from standard input | ||||||
|  |  | ||||||
| ## Changes since 0.7.6 | ## Changes in 0.7.6a | ||||||
|  |  | ||||||
| - fixed a bug which prevented mboxgrep from being compiled | - fixed a bug which prevented mboxgrep from being compiled | ||||||
|  |  | ||||||
| ## Changes since 0.7.5 | ## Changes in 0.7.6 | ||||||
|  |  | ||||||
| - fixed a bug which caused mboxgrep to coredump on recursive search of  | - fixed a bug which caused mboxgrep to coredump on recursive search of  | ||||||
|   maildirs |   maildirs | ||||||
| - code cleanups | - code cleanups | ||||||
|  |  | ||||||
| ## Changes since 0.7.4 | ## Changes in 0.7.5 | ||||||
|  |  | ||||||
| - recursive search through directories has been reimplemented | - recursive search through directories has been reimplemented | ||||||
|  |  | ||||||
| ## Changes since 0.7.3 | ## Changes in 0.7.4 | ||||||
|  |  | ||||||
| - mboxgrep can now ignore messages with identical bodies | - mboxgrep can now ignore messages with identical bodies | ||||||
|  |  | ||||||
| ## Changes since 0.7.2 | ## Changes in 0.7.3 | ||||||
|  |  | ||||||
| - file locking method can be selected at runtime | - file locking method can be selected at runtime | ||||||
| - mboxgrep used to coredump on messages with empty headers; the problem is  | - mboxgrep used to coredump on messages with empty headers; the problem is  | ||||||
|   now hopefully fixed |   now hopefully fixed | ||||||
| - mboxgrep now compiles on FreeBSD | - mboxgrep now compiles on FreeBSD | ||||||
|  |  | ||||||
| ## Changes since 0.7.1 | ## Changes in 0.7.2 | ||||||
|  |  | ||||||
| - file locking with `flock()` instead of `fcntl()` is now supported | - file locking with `flock()` instead of `fcntl()` is now supported | ||||||
| - mboxgrep should now compile on systems which don't have `getopt_long()` | - mboxgrep should now compile on systems which don't have `getopt_long()` | ||||||
| - other minor bugfixes | - other minor bugfixes | ||||||
|  |  | ||||||
| ## Changes since 0.7.0 | ## Changes in 0.7.1 | ||||||
|  |  | ||||||
| - bugfixes | - bugfixes | ||||||
|  |  | ||||||
| ## Changes since 0.5.3 | ## Changes in 0.7.0 | ||||||
|  |  | ||||||
| - NOTE: there was no stable version between 0.5.x and 0.7.x | - NOTE: there was no stable version between 0.5.x and 0.7.x | ||||||
| - mboxgrep is almost completely rewritten | - mboxgrep is almost completely rewritten | ||||||
| @@ -81,7 +91,7 @@ | |||||||
|   command) |   command) | ||||||
| - added support for compressed mbox folders | - added support for compressed mbox folders | ||||||
|  |  | ||||||
| ## Changes since 0.5.2 | ## Changes in 0.5.3 | ||||||
|  |  | ||||||
| - implemented ability to write found messages to another folder (instead | - implemented ability to write found messages to another folder (instead | ||||||
|   of standard output) |   of standard output) | ||||||
| @@ -89,7 +99,7 @@ | |||||||
|   "NEWS") |   "NEWS") | ||||||
| - wrote a manual in Texinfo format | - wrote a manual in Texinfo format | ||||||
|  |  | ||||||
| ## Changes since 0.5.1 | ## Changes in 0.5.2 | ||||||
|  |  | ||||||
| - implemented message counting (`-c, --count`) | - implemented message counting (`-c, --count`) | ||||||
| - fixed manual page installation target in src/Makefile.in -- manual page  | - fixed manual page installation target in src/Makefile.in -- manual page  | ||||||
| @@ -102,17 +112,17 @@ | |||||||
| - implemented recursive search through directories (`-r, --recursive`) | - implemented recursive search through directories (`-r, --recursive`) | ||||||
| - config.h[.in] is now wrapped (`#ifndef CONFIG_H` and stuff) | - config.h[.in] is now wrapped (`#ifndef CONFIG_H` and stuff) | ||||||
|  |  | ||||||
| ## Changes since 0.5.0 | ## Changes in 0.5.1 | ||||||
|  |  | ||||||
| - added support for qmail-style maildir folders | - added support for qmail-style maildir folders | ||||||
|  |  | ||||||
| ## Changes since 0.4.0 | ## Changes in 0.5.0 | ||||||
|  |  | ||||||
| - the source of `getopt_long()` is now included, so long options are also available | - the source of `getopt_long()` is now included, so long options are also available | ||||||
|   on platforms that don't use GNU libc |   on platforms that don't use GNU libc | ||||||
| - file locking is now performed on mbox folders only | - file locking is now performed on mbox folders only | ||||||
|  |  | ||||||
| ## Changes since 0.2.0 | ## Changes in 0.4.0 | ||||||
|  |  | ||||||
| - added support for MH mailboxes | - added support for MH mailboxes | ||||||
| - added scope selection switches `-B` (or `--body`) and `-H` (or `--headers`) | - added scope selection switches `-B` (or `--body`) and `-H` (or `--headers`) | ||||||
| @@ -123,12 +133,12 @@ | |||||||
| - the feature of reading from standard input is gone | - the feature of reading from standard input is gone | ||||||
| - added `-v` (or `--version`) switch | - added `-v` (or `--version`) switch | ||||||
|  |  | ||||||
| ## Changes since 0.1.1 | ## Changes in 0.2.0 | ||||||
|  |  | ||||||
| - mboxgrep now puts a shared lock on a mailbox before reading it | - mboxgrep now puts a shared lock on a mailbox before reading it | ||||||
| - various code cleanups | - various code cleanups | ||||||
|  |  | ||||||
| ## Changes since 0.1.0 | ## Changes in 0.1.1 | ||||||
|  |  | ||||||
| - fixed install target in Makefile (`install` is now used instead of `cp`) | - fixed install target in Makefile (`install` is now used instead of `cp`) | ||||||
| - added support for mailboxes generated by Gnus | - added support for mailboxes generated by Gnus | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| # mboxgrep - selects e-mail messages matching a pattern | # mboxgrep - selects e-mail messages matching a pattern | ||||||
|  |  | ||||||
| `mboxgrep` is a `grep(1)`-like tool which scans mailboxes and selects | `mboxgrep` is a `grep(1)`-like tool which scans mailboxes and selects | ||||||
| e-mail messages matching pattern. | e-mail messages matching a pattern. | ||||||
|  |  | ||||||
| Full description of mboxgrep is contained in the documentation, | Full description of mboxgrep is contained in the documentation, | ||||||
| which is provided both in manpage and texinfo format, to satisfy | which is provided both in manpage and texinfo format, to satisfy | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								TODO.md
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								TODO.md
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | |||||||
| ## Behavior | ## Behavior | ||||||
|  |  | ||||||
| - [x] use cryptographic hashes for detecting duplicate messages | - [x] use cryptographic hashes for detecting duplicate messages | ||||||
| - [ ] add checking for conflicting command-line options | - [x] add checking for conflicting command-line options | ||||||
| - [ ] support for deletion of messages after being matched and displayed | - [ ] support for deletion of messages after being matched and displayed | ||||||
| - [x] ignore .overview when grepping Gnus folders | - [x] ignore .overview when grepping Gnus folders | ||||||
| - [x] inverted matching | - [x] inverted matching | ||||||
| @@ -15,18 +15,21 @@ | |||||||
| - [x] reading messages from standard input | - [x] reading messages from standard input | ||||||
| - [x] run-time selection of file locking method | - [x] run-time selection of file locking method | ||||||
| - [x] add a debug function | - [x] add a debug function | ||||||
|  | - [ ] Remove the option to recursively traverse directories and instruct the users to run mboxgrep in conjuction with find(1) instead. | ||||||
|  |  | ||||||
| ## File formats, encodings and standards | ## File formats, encodings and standards | ||||||
|  |  | ||||||
|  | - [x] migrate to pcre2, as pcre is obsolete | ||||||
|  | - [ ] use a more modern hash function than MD5 | ||||||
| - [ ] MIME support | - [ ] MIME support | ||||||
| - [ ] support for GnuPG | - [ ] support for GnuPG | ||||||
| - [x] support for compressed mbox folders | - [x] support for compressed mbox folders | ||||||
| - [x] support for bzip2 compression | - [x] support for bzip2 compression | ||||||
| - [ ] support for XZ-format compression | - [ ] support for XZ-format compression | ||||||
| - [ ] support for mail folder conversion | - [ ] support for mail folder conversion | ||||||
| - [ ] use a more modern hash function than MD5 |  | ||||||
| - [ ] improve error detection when a directory is not a Maildir or MH folder | - [ ] improve error detection when a directory is not a Maildir or MH folder | ||||||
| - [ ] document criteria for folder format detection | - [ ] document criteria for folder format detection | ||||||
|  | - [ ] Maildir: check if an atomic rename() fails. This could be caused if "new" and "cur" subdirectories are not on the same filesystem, for example. | ||||||
|  |  | ||||||
| ## Miscellaneous | ## Miscellaneous | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										348
									
								
								compile
									
									
									
									
									
								
							
							
						
						
									
										348
									
								
								compile
									
									
									
									
									
								
							| @@ -1,348 +0,0 @@ | |||||||
| #! /bin/sh |  | ||||||
| # Wrapper for compilers which do not understand '-c -o'. |  | ||||||
|  |  | ||||||
| scriptversion=2018-03-07.03; # UTC |  | ||||||
|  |  | ||||||
| # Copyright (C) 1999-2020 Free Software Foundation, Inc. |  | ||||||
| # Written by Tom Tromey <tromey@cygnus.com>. |  | ||||||
| # |  | ||||||
| # This program is free software; you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU General Public License as published by |  | ||||||
| # the Free Software Foundation; either version 2, or (at your option) |  | ||||||
| # any later version. |  | ||||||
| # |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| # GNU General Public License for more details. |  | ||||||
| # |  | ||||||
| # You should have received a copy of the GNU General Public License |  | ||||||
| # along with this program.  If not, see <https://www.gnu.org/licenses/>. |  | ||||||
|  |  | ||||||
| # As a special exception to the GNU General Public License, if you |  | ||||||
| # distribute this file as part of a program that contains a |  | ||||||
| # configuration script generated by Autoconf, you may include it under |  | ||||||
| # the same distribution terms that you use for the rest of that program. |  | ||||||
|  |  | ||||||
| # This file is maintained in Automake, please report |  | ||||||
| # bugs to <bug-automake@gnu.org> or send patches to |  | ||||||
| # <automake-patches@gnu.org>. |  | ||||||
|  |  | ||||||
| nl=' |  | ||||||
| ' |  | ||||||
|  |  | ||||||
| # We need space, tab and new line, in precisely that order.  Quoting is |  | ||||||
| # there to prevent tools from complaining about whitespace usage. |  | ||||||
| IFS=" ""	$nl" |  | ||||||
|  |  | ||||||
| file_conv= |  | ||||||
|  |  | ||||||
| # func_file_conv build_file lazy |  | ||||||
| # Convert a $build file to $host form and store it in $file |  | ||||||
| # Currently only supports Windows hosts. If the determined conversion |  | ||||||
| # type is listed in (the comma separated) LAZY, no conversion will |  | ||||||
| # take place. |  | ||||||
| func_file_conv () |  | ||||||
| { |  | ||||||
|   file=$1 |  | ||||||
|   case $file in |  | ||||||
|     / | /[!/]*) # absolute file, and not a UNC file |  | ||||||
|       if test -z "$file_conv"; then |  | ||||||
| 	# lazily determine how to convert abs files |  | ||||||
| 	case `uname -s` in |  | ||||||
| 	  MINGW*) |  | ||||||
| 	    file_conv=mingw |  | ||||||
| 	    ;; |  | ||||||
| 	  CYGWIN* | MSYS*) |  | ||||||
| 	    file_conv=cygwin |  | ||||||
| 	    ;; |  | ||||||
| 	  *) |  | ||||||
| 	    file_conv=wine |  | ||||||
| 	    ;; |  | ||||||
| 	esac |  | ||||||
|       fi |  | ||||||
|       case $file_conv/,$2, in |  | ||||||
| 	*,$file_conv,*) |  | ||||||
| 	  ;; |  | ||||||
| 	mingw/*) |  | ||||||
| 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` |  | ||||||
| 	  ;; |  | ||||||
| 	cygwin/* | msys/*) |  | ||||||
| 	  file=`cygpath -m "$file" || echo "$file"` |  | ||||||
| 	  ;; |  | ||||||
| 	wine/*) |  | ||||||
| 	  file=`winepath -w "$file" || echo "$file"` |  | ||||||
| 	  ;; |  | ||||||
|       esac |  | ||||||
|       ;; |  | ||||||
|   esac |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # func_cl_dashL linkdir |  | ||||||
| # Make cl look for libraries in LINKDIR |  | ||||||
| func_cl_dashL () |  | ||||||
| { |  | ||||||
|   func_file_conv "$1" |  | ||||||
|   if test -z "$lib_path"; then |  | ||||||
|     lib_path=$file |  | ||||||
|   else |  | ||||||
|     lib_path="$lib_path;$file" |  | ||||||
|   fi |  | ||||||
|   linker_opts="$linker_opts -LIBPATH:$file" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # func_cl_dashl library |  | ||||||
| # Do a library search-path lookup for cl |  | ||||||
| func_cl_dashl () |  | ||||||
| { |  | ||||||
|   lib=$1 |  | ||||||
|   found=no |  | ||||||
|   save_IFS=$IFS |  | ||||||
|   IFS=';' |  | ||||||
|   for dir in $lib_path $LIB |  | ||||||
|   do |  | ||||||
|     IFS=$save_IFS |  | ||||||
|     if $shared && test -f "$dir/$lib.dll.lib"; then |  | ||||||
|       found=yes |  | ||||||
|       lib=$dir/$lib.dll.lib |  | ||||||
|       break |  | ||||||
|     fi |  | ||||||
|     if test -f "$dir/$lib.lib"; then |  | ||||||
|       found=yes |  | ||||||
|       lib=$dir/$lib.lib |  | ||||||
|       break |  | ||||||
|     fi |  | ||||||
|     if test -f "$dir/lib$lib.a"; then |  | ||||||
|       found=yes |  | ||||||
|       lib=$dir/lib$lib.a |  | ||||||
|       break |  | ||||||
|     fi |  | ||||||
|   done |  | ||||||
|   IFS=$save_IFS |  | ||||||
|  |  | ||||||
|   if test "$found" != yes; then |  | ||||||
|     lib=$lib.lib |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # func_cl_wrapper cl arg... |  | ||||||
| # Adjust compile command to suit cl |  | ||||||
| func_cl_wrapper () |  | ||||||
| { |  | ||||||
|   # Assume a capable shell |  | ||||||
|   lib_path= |  | ||||||
|   shared=: |  | ||||||
|   linker_opts= |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     if test -n "$eat"; then |  | ||||||
|       eat= |  | ||||||
|     else |  | ||||||
|       case $1 in |  | ||||||
| 	-o) |  | ||||||
| 	  # configure might choose to run compile as 'compile cc -o foo foo.c'. |  | ||||||
| 	  eat=1 |  | ||||||
| 	  case $2 in |  | ||||||
| 	    *.o | *.[oO][bB][jJ]) |  | ||||||
| 	      func_file_conv "$2" |  | ||||||
| 	      set x "$@" -Fo"$file" |  | ||||||
| 	      shift |  | ||||||
| 	      ;; |  | ||||||
| 	    *) |  | ||||||
| 	      func_file_conv "$2" |  | ||||||
| 	      set x "$@" -Fe"$file" |  | ||||||
| 	      shift |  | ||||||
| 	      ;; |  | ||||||
| 	  esac |  | ||||||
| 	  ;; |  | ||||||
| 	-I) |  | ||||||
| 	  eat=1 |  | ||||||
| 	  func_file_conv "$2" mingw |  | ||||||
| 	  set x "$@" -I"$file" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	-I*) |  | ||||||
| 	  func_file_conv "${1#-I}" mingw |  | ||||||
| 	  set x "$@" -I"$file" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	-l) |  | ||||||
| 	  eat=1 |  | ||||||
| 	  func_cl_dashl "$2" |  | ||||||
| 	  set x "$@" "$lib" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	-l*) |  | ||||||
| 	  func_cl_dashl "${1#-l}" |  | ||||||
| 	  set x "$@" "$lib" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	-L) |  | ||||||
| 	  eat=1 |  | ||||||
| 	  func_cl_dashL "$2" |  | ||||||
| 	  ;; |  | ||||||
| 	-L*) |  | ||||||
| 	  func_cl_dashL "${1#-L}" |  | ||||||
| 	  ;; |  | ||||||
| 	-static) |  | ||||||
| 	  shared=false |  | ||||||
| 	  ;; |  | ||||||
| 	-Wl,*) |  | ||||||
| 	  arg=${1#-Wl,} |  | ||||||
| 	  save_ifs="$IFS"; IFS=',' |  | ||||||
| 	  for flag in $arg; do |  | ||||||
| 	    IFS="$save_ifs" |  | ||||||
| 	    linker_opts="$linker_opts $flag" |  | ||||||
| 	  done |  | ||||||
| 	  IFS="$save_ifs" |  | ||||||
| 	  ;; |  | ||||||
| 	-Xlinker) |  | ||||||
| 	  eat=1 |  | ||||||
| 	  linker_opts="$linker_opts $2" |  | ||||||
| 	  ;; |  | ||||||
| 	-*) |  | ||||||
| 	  set x "$@" "$1" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++) |  | ||||||
| 	  func_file_conv "$1" |  | ||||||
| 	  set x "$@" -Tp"$file" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) |  | ||||||
| 	  func_file_conv "$1" mingw |  | ||||||
| 	  set x "$@" "$file" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
| 	*) |  | ||||||
| 	  set x "$@" "$1" |  | ||||||
| 	  shift |  | ||||||
| 	  ;; |  | ||||||
|       esac |  | ||||||
|     fi |  | ||||||
|     shift |  | ||||||
|   done |  | ||||||
|   if test -n "$linker_opts"; then |  | ||||||
|     linker_opts="-link$linker_opts" |  | ||||||
|   fi |  | ||||||
|   exec "$@" $linker_opts |  | ||||||
|   exit 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| eat= |  | ||||||
|  |  | ||||||
| case $1 in |  | ||||||
|   '') |  | ||||||
|      echo "$0: No command.  Try '$0 --help' for more information." 1>&2 |  | ||||||
|      exit 1; |  | ||||||
|      ;; |  | ||||||
|   -h | --h*) |  | ||||||
|     cat <<\EOF |  | ||||||
| Usage: compile [--help] [--version] PROGRAM [ARGS] |  | ||||||
|  |  | ||||||
| Wrapper for compilers which do not understand '-c -o'. |  | ||||||
| Remove '-o dest.o' from ARGS, run PROGRAM with the remaining |  | ||||||
| arguments, and rename the output as expected. |  | ||||||
|  |  | ||||||
| If you are trying to build a whole package this is not the |  | ||||||
| right script to run: please start by reading the file 'INSTALL'. |  | ||||||
|  |  | ||||||
| Report bugs to <bug-automake@gnu.org>. |  | ||||||
| EOF |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
|   -v | --v*) |  | ||||||
|     echo "compile $scriptversion" |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
|   cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ |  | ||||||
|   icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) |  | ||||||
|     func_cl_wrapper "$@"      # Doesn't return... |  | ||||||
|     ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| ofile= |  | ||||||
| cfile= |  | ||||||
|  |  | ||||||
| for arg |  | ||||||
| do |  | ||||||
|   if test -n "$eat"; then |  | ||||||
|     eat= |  | ||||||
|   else |  | ||||||
|     case $1 in |  | ||||||
|       -o) |  | ||||||
| 	# configure might choose to run compile as 'compile cc -o foo foo.c'. |  | ||||||
| 	# So we strip '-o arg' only if arg is an object. |  | ||||||
| 	eat=1 |  | ||||||
| 	case $2 in |  | ||||||
| 	  *.o | *.obj) |  | ||||||
| 	    ofile=$2 |  | ||||||
| 	    ;; |  | ||||||
| 	  *) |  | ||||||
| 	    set x "$@" -o "$2" |  | ||||||
| 	    shift |  | ||||||
| 	    ;; |  | ||||||
| 	esac |  | ||||||
| 	;; |  | ||||||
|       *.c) |  | ||||||
| 	cfile=$1 |  | ||||||
| 	set x "$@" "$1" |  | ||||||
| 	shift |  | ||||||
| 	;; |  | ||||||
|       *) |  | ||||||
| 	set x "$@" "$1" |  | ||||||
| 	shift |  | ||||||
| 	;; |  | ||||||
|     esac |  | ||||||
|   fi |  | ||||||
|   shift |  | ||||||
| done |  | ||||||
|  |  | ||||||
| if test -z "$ofile" || test -z "$cfile"; then |  | ||||||
|   # If no '-o' option was seen then we might have been invoked from a |  | ||||||
|   # pattern rule where we don't need one.  That is ok -- this is a |  | ||||||
|   # normal compilation that the losing compiler can handle.  If no |  | ||||||
|   # '.c' file was seen then we are probably linking.  That is also |  | ||||||
|   # ok. |  | ||||||
|   exec "$@" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Name of file we expect compiler to create. |  | ||||||
| cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` |  | ||||||
|  |  | ||||||
| # Create the lock directory. |  | ||||||
| # Note: use '[/\\:.-]' here to ensure that we don't use the same name |  | ||||||
| # that we are using for the .o file.  Also, base the name on the expected |  | ||||||
| # object file name, since that is what matters with a parallel build. |  | ||||||
| lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d |  | ||||||
| while true; do |  | ||||||
|   if mkdir "$lockdir" >/dev/null 2>&1; then |  | ||||||
|     break |  | ||||||
|   fi |  | ||||||
|   sleep 1 |  | ||||||
| done |  | ||||||
| # FIXME: race condition here if user kills between mkdir and trap. |  | ||||||
| trap "rmdir '$lockdir'; exit 1" 1 2 15 |  | ||||||
|  |  | ||||||
| # Run the compile. |  | ||||||
| "$@" |  | ||||||
| ret=$? |  | ||||||
|  |  | ||||||
| if test -f "$cofile"; then |  | ||||||
|   test "$cofile" = "$ofile" || mv "$cofile" "$ofile" |  | ||||||
| elif test -f "${cofile}bj"; then |  | ||||||
|   test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| rmdir "$lockdir" |  | ||||||
| exit $ret |  | ||||||
|  |  | ||||||
| # Local Variables: |  | ||||||
| # mode: shell-script |  | ||||||
| # sh-indentation: 2 |  | ||||||
| # eval: (add-hook 'before-save-hook 'time-stamp) |  | ||||||
| # time-stamp-start: "scriptversion=" |  | ||||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" |  | ||||||
| # time-stamp-time-zone: "UTC0" |  | ||||||
| # time-stamp-end: "; # UTC" |  | ||||||
| # End: |  | ||||||
							
								
								
									
										33
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -18,7 +18,7 @@ | |||||||
| # Process this file with autoconf to produce a configure script. | # Process this file with autoconf to produce a configure script. | ||||||
|  |  | ||||||
| # Yawn. | # Yawn. | ||||||
| AC_INIT([mboxgrep], [0.7.11], [dspiljar@datatipp.se], [mboxgrep], [https://www.mboxgrep.org/]) | AC_INIT([mboxgrep], [0.7.12a], [dspiljar@datatipp.se], [mboxgrep], [https://www.mboxgrep.org/]) | ||||||
| #AM_INIT_AUTOMAKE | #AM_INIT_AUTOMAKE | ||||||
| AM_INIT_AUTOMAKE([foreign]) | AM_INIT_AUTOMAKE([foreign]) | ||||||
| AC_LANG([C]) | AC_LANG([C]) | ||||||
| @@ -34,34 +34,35 @@ AC_HEADER_DIRENT | |||||||
|  |  | ||||||
| # Checks for libraries. | # Checks for libraries. | ||||||
|  |  | ||||||
| # Check for PCRE library | # Check for PCRE2 library | ||||||
| AC_ARG_WITH(pcre, [  --without-pcre          Compile without Perl regexp support],, | AC_ARG_WITH(pcre2, [  --without-pcre2          Compile without Perl regexp support],, | ||||||
| [ | [ | ||||||
| 	AC_PATH_PROG(PCRE_CONFIG, pcre-config) | 	AC_PATH_PROG(PCRE2_CONFIG, pcre2-config) | ||||||
|  |  | ||||||
| 	if test "$PCRE_CONFIG"; then | 	if test "$PCRE2_CONFIG"; then | ||||||
| 	   CFLAGS="$CFLAGS `$PCRE_CONFIG --cflags`" | 	   CFLAGS="$CFLAGS `$PCRE2_CONFIG --cflags`" | ||||||
| 	   LIBS="$LIBS `$PCRE_CONFIG --libs`" | 	   LIBS="$LIBS `$PCRE2_CONFIG --libs32`" | ||||||
|  |  | ||||||
| 	   AC_LINK_IFELSE( | 	   AC_LINK_IFELSE( | ||||||
| 	   [ | 	   [ | ||||||
| #include <pcre.h> | #define PCRE2_CODE_UNIT_WIDTH 32 | ||||||
|  | #include <pcre2.h> | ||||||
|  |  | ||||||
| int main () | int main () | ||||||
| { | { | ||||||
|   return 0; |   return 0; | ||||||
| } | } | ||||||
| 	   ], | 	   ], | ||||||
| 	   AC_DEFINE(HAVE_LIBPCRE), | 	   AC_DEFINE(HAVE_LIBPCRE2), | ||||||
| 	   [ | 	   [ | ||||||
| 		AC_MSG_NOTICE(found pcre-config but could not compile test program.) | 		AC_MSG_NOTICE(found pcre2-config but could not compile test program.) | ||||||
| 		AC_MSG_FAILURE(is PCRE properly installed?) | 		AC_MSG_FAILURE(is PCRE2 properly installed?) | ||||||
| 	   ] | 	   ] | ||||||
| ) | ) | ||||||
| 	else | 	else | ||||||
| 	   AC_MSG_NOTICE(pcre-config not found) | 	   AC_MSG_NOTICE(pcre2-config not found) | ||||||
| 	   AC_MSG_NOTICE(trying to find PCRE anyway) | 	   AC_MSG_NOTICE(trying to find PCRE2 anyway) | ||||||
| 	   AC_CHECK_LIB(pcre, main) | 	   AC_CHECK_LIB(pcre2, main) | ||||||
| 	fi | 	fi | ||||||
| ] | ] | ||||||
| ) | ) | ||||||
| @@ -92,7 +93,5 @@ AC_CHECK_FUNCS([strptime]) | |||||||
| AC_CHECK_FUNCS(ftw) | AC_CHECK_FUNCS(ftw) | ||||||
| AC_CHECK_FUNCS(fts_open) | AC_CHECK_FUNCS(fts_open) | ||||||
|  |  | ||||||
| AC_CONFIG_FILES([Makefile | AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile]) | ||||||
|                  doc/Makefile |  | ||||||
|                  src/Makefile]) |  | ||||||
| AC_OUTPUT | AC_OUTPUT | ||||||
|   | |||||||
							
								
								
									
										791
									
								
								depcomp
									
									
									
									
									
								
							
							
						
						
									
										791
									
								
								depcomp
									
									
									
									
									
								
							| @@ -1,791 +0,0 @@ | |||||||
| #! /bin/sh |  | ||||||
| # depcomp - compile a program generating dependencies as side-effects |  | ||||||
|  |  | ||||||
| scriptversion=2018-03-07.03; # UTC |  | ||||||
|  |  | ||||||
| # Copyright (C) 1999-2020 Free Software Foundation, Inc. |  | ||||||
|  |  | ||||||
| # This program is free software; you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU General Public License as published by |  | ||||||
| # the Free Software Foundation; either version 2, or (at your option) |  | ||||||
| # any later version. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| # GNU General Public License for more details. |  | ||||||
|  |  | ||||||
| # You should have received a copy of the GNU General Public License |  | ||||||
| # along with this program.  If not, see <https://www.gnu.org/licenses/>. |  | ||||||
|  |  | ||||||
| # As a special exception to the GNU General Public License, if you |  | ||||||
| # distribute this file as part of a program that contains a |  | ||||||
| # configuration script generated by Autoconf, you may include it under |  | ||||||
| # the same distribution terms that you use for the rest of that program. |  | ||||||
|  |  | ||||||
| # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. |  | ||||||
|  |  | ||||||
| case $1 in |  | ||||||
|   '') |  | ||||||
|     echo "$0: No command.  Try '$0 --help' for more information." 1>&2 |  | ||||||
|     exit 1; |  | ||||||
|     ;; |  | ||||||
|   -h | --h*) |  | ||||||
|     cat <<\EOF |  | ||||||
| Usage: depcomp [--help] [--version] PROGRAM [ARGS] |  | ||||||
|  |  | ||||||
| Run PROGRAMS ARGS to compile a file, generating dependencies |  | ||||||
| as side-effects. |  | ||||||
|  |  | ||||||
| Environment variables: |  | ||||||
|   depmode     Dependency tracking mode. |  | ||||||
|   source      Source file read by 'PROGRAMS ARGS'. |  | ||||||
|   object      Object file output by 'PROGRAMS ARGS'. |  | ||||||
|   DEPDIR      directory where to store dependencies. |  | ||||||
|   depfile     Dependency file to output. |  | ||||||
|   tmpdepfile  Temporary file to use when outputting dependencies. |  | ||||||
|   libtool     Whether libtool is used (yes/no). |  | ||||||
|  |  | ||||||
| Report bugs to <bug-automake@gnu.org>. |  | ||||||
| EOF |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
|   -v | --v*) |  | ||||||
|     echo "depcomp $scriptversion" |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| # Get the directory component of the given path, and save it in the |  | ||||||
| # global variables '$dir'.  Note that this directory component will |  | ||||||
| # be either empty or ending with a '/' character.  This is deliberate. |  | ||||||
| set_dir_from () |  | ||||||
| { |  | ||||||
|   case $1 in |  | ||||||
|     */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; |  | ||||||
|       *) dir=;; |  | ||||||
|   esac |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Get the suffix-stripped basename of the given path, and save it the |  | ||||||
| # global variable '$base'. |  | ||||||
| set_base_from () |  | ||||||
| { |  | ||||||
|   base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # If no dependency file was actually created by the compiler invocation, |  | ||||||
| # we still have to create a dummy depfile, to avoid errors with the |  | ||||||
| # Makefile "include basename.Plo" scheme. |  | ||||||
| make_dummy_depfile () |  | ||||||
| { |  | ||||||
|   echo "#dummy" > "$depfile" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Factor out some common post-processing of the generated depfile. |  | ||||||
| # Requires the auxiliary global variable '$tmpdepfile' to be set. |  | ||||||
| aix_post_process_depfile () |  | ||||||
| { |  | ||||||
|   # If the compiler actually managed to produce a dependency file, |  | ||||||
|   # post-process it. |  | ||||||
|   if test -f "$tmpdepfile"; then |  | ||||||
|     # Each line is of the form 'foo.o: dependency.h'. |  | ||||||
|     # Do two passes, one to just change these to |  | ||||||
|     #   $object: dependency.h |  | ||||||
|     # and one to simply output |  | ||||||
|     #   dependency.h: |  | ||||||
|     # which is needed to avoid the deleted-header problem. |  | ||||||
|     { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" |  | ||||||
|       sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" |  | ||||||
|     } > "$depfile" |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|   else |  | ||||||
|     make_dummy_depfile |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # A tabulation character. |  | ||||||
| tab='	' |  | ||||||
| # A newline character. |  | ||||||
| nl=' |  | ||||||
| ' |  | ||||||
| # Character ranges might be problematic outside the C locale. |  | ||||||
| # These definitions help. |  | ||||||
| upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ |  | ||||||
| lower=abcdefghijklmnopqrstuvwxyz |  | ||||||
| digits=0123456789 |  | ||||||
| alpha=${upper}${lower} |  | ||||||
|  |  | ||||||
| if test -z "$depmode" || test -z "$source" || test -z "$object"; then |  | ||||||
|   echo "depcomp: Variables source, object and depmode must be set" 1>&2 |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. |  | ||||||
| depfile=${depfile-`echo "$object" | |  | ||||||
|   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} |  | ||||||
| tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} |  | ||||||
|  |  | ||||||
| rm -f "$tmpdepfile" |  | ||||||
|  |  | ||||||
| # Avoid interferences from the environment. |  | ||||||
| gccflag= dashmflag= |  | ||||||
|  |  | ||||||
| # Some modes work just like other modes, but use different flags.  We |  | ||||||
| # parameterize here, but still list the modes in the big case below, |  | ||||||
| # to make depend.m4 easier to write.  Note that we *cannot* use a case |  | ||||||
| # here, because this file can only contain one case statement. |  | ||||||
| if test "$depmode" = hp; then |  | ||||||
|   # HP compiler uses -M and no extra arg. |  | ||||||
|   gccflag=-M |  | ||||||
|   depmode=gcc |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if test "$depmode" = dashXmstdout; then |  | ||||||
|   # This is just like dashmstdout with a different argument. |  | ||||||
|   dashmflag=-xM |  | ||||||
|   depmode=dashmstdout |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| cygpath_u="cygpath -u -f -" |  | ||||||
| if test "$depmode" = msvcmsys; then |  | ||||||
|   # This is just like msvisualcpp but w/o cygpath translation. |  | ||||||
|   # Just convert the backslash-escaped backslashes to single forward |  | ||||||
|   # slashes to satisfy depend.m4 |  | ||||||
|   cygpath_u='sed s,\\\\,/,g' |  | ||||||
|   depmode=msvisualcpp |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if test "$depmode" = msvc7msys; then |  | ||||||
|   # This is just like msvc7 but w/o cygpath translation. |  | ||||||
|   # Just convert the backslash-escaped backslashes to single forward |  | ||||||
|   # slashes to satisfy depend.m4 |  | ||||||
|   cygpath_u='sed s,\\\\,/,g' |  | ||||||
|   depmode=msvc7 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if test "$depmode" = xlc; then |  | ||||||
|   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. |  | ||||||
|   gccflag=-qmakedep=gcc,-MF |  | ||||||
|   depmode=gcc |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| case "$depmode" in |  | ||||||
| gcc3) |  | ||||||
| ## gcc 3 implements dependency tracking that does exactly what |  | ||||||
| ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like |  | ||||||
| ## it if -MD -MP comes after the -MF stuff.  Hmm. |  | ||||||
| ## Unfortunately, FreeBSD c89 acceptance of flags depends upon |  | ||||||
| ## the command line argument order; so add the flags where they |  | ||||||
| ## appear in depend2.am.  Note that the slowdown incurred here |  | ||||||
| ## affects only configure: in makefiles, %FASTDEP% shortcuts this. |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     case $arg in |  | ||||||
|     -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; |  | ||||||
|     *)  set fnord "$@" "$arg" ;; |  | ||||||
|     esac |  | ||||||
|     shift # fnord |  | ||||||
|     shift # $arg |  | ||||||
|   done |  | ||||||
|   "$@" |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   mv "$tmpdepfile" "$depfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| gcc) |  | ||||||
| ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. |  | ||||||
| ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. |  | ||||||
| ## (see the conditional assignment to $gccflag above). |  | ||||||
| ## There are various ways to get dependency output from gcc.  Here's |  | ||||||
| ## why we pick this rather obscure method: |  | ||||||
| ## - Don't want to use -MD because we'd like the dependencies to end |  | ||||||
| ##   up in a subdir.  Having to rename by hand is ugly. |  | ||||||
| ##   (We might end up doing this anyway to support other compilers.) |  | ||||||
| ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like |  | ||||||
| ##   -MM, not -M (despite what the docs say).  Also, it might not be |  | ||||||
| ##   supported by the other compilers which use the 'gcc' depmode. |  | ||||||
| ## - Using -M directly means running the compiler twice (even worse |  | ||||||
| ##   than renaming). |  | ||||||
|   if test -z "$gccflag"; then |  | ||||||
|     gccflag=-MD, |  | ||||||
|   fi |  | ||||||
|   "$@" -Wp,"$gccflag$tmpdepfile" |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   echo "$object : \\" > "$depfile" |  | ||||||
|   # The second -e expression handles DOS-style file names with drive |  | ||||||
|   # letters. |  | ||||||
|   sed -e 's/^[^:]*: / /' \ |  | ||||||
|       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" |  | ||||||
| ## This next piece of magic avoids the "deleted header file" problem. |  | ||||||
| ## The problem is that when a header file which appears in a .P file |  | ||||||
| ## is deleted, the dependency causes make to die (because there is |  | ||||||
| ## typically no way to rebuild the header).  We avoid this by adding |  | ||||||
| ## dummy dependencies for each header file.  Too bad gcc doesn't do |  | ||||||
| ## this for us directly. |  | ||||||
| ## Some versions of gcc put a space before the ':'.  On the theory |  | ||||||
| ## that the space means something, we add a space to the output as |  | ||||||
| ## well.  hp depmode also adds that space, but also prefixes the VPATH |  | ||||||
| ## to the object.  Take care to not repeat it in the output. |  | ||||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation |  | ||||||
| ## correctly.  Breaking it into two sed invocations is a workaround. |  | ||||||
|   tr ' ' "$nl" < "$tmpdepfile" \ |  | ||||||
|     | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ |  | ||||||
|     | sed -e 's/$/ :/' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| hp) |  | ||||||
|   # This case exists only to let depend.m4 do its work.  It works by |  | ||||||
|   # looking at the text of this script.  This case will never be run, |  | ||||||
|   # since it is checked for above. |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| sgi) |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     "$@" "-Wp,-MDupdate,$tmpdepfile" |  | ||||||
|   else |  | ||||||
|     "$@" -MDupdate "$tmpdepfile" |  | ||||||
|   fi |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   rm -f "$depfile" |  | ||||||
|  |  | ||||||
|   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files |  | ||||||
|     echo "$object : \\" > "$depfile" |  | ||||||
|     # Clip off the initial element (the dependent).  Don't try to be |  | ||||||
|     # clever and replace this with sed code, as IRIX sed won't handle |  | ||||||
|     # lines with more than a fixed number of characters (4096 in |  | ||||||
|     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines; |  | ||||||
|     # the IRIX cc adds comments like '#:fec' to the end of the |  | ||||||
|     # dependency line. |  | ||||||
|     tr ' ' "$nl" < "$tmpdepfile" \ |  | ||||||
|       | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ |  | ||||||
|       | tr "$nl" ' ' >> "$depfile" |  | ||||||
|     echo >> "$depfile" |  | ||||||
|     # The second pass generates a dummy entry for each header file. |  | ||||||
|     tr ' ' "$nl" < "$tmpdepfile" \ |  | ||||||
|       | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ |  | ||||||
|       >> "$depfile" |  | ||||||
|   else |  | ||||||
|     make_dummy_depfile |  | ||||||
|   fi |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| xlc) |  | ||||||
|   # This case exists only to let depend.m4 do its work.  It works by |  | ||||||
|   # looking at the text of this script.  This case will never be run, |  | ||||||
|   # since it is checked for above. |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| aix) |  | ||||||
|   # The C for AIX Compiler uses -M and outputs the dependencies |  | ||||||
|   # in a .u file.  In older versions, this file always lives in the |  | ||||||
|   # current directory.  Also, the AIX compiler puts '$object:' at the |  | ||||||
|   # start of each line; $object doesn't have directory information. |  | ||||||
|   # Version 6 uses the directory in both cases. |  | ||||||
|   set_dir_from "$object" |  | ||||||
|   set_base_from "$object" |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     tmpdepfile1=$dir$base.u |  | ||||||
|     tmpdepfile2=$base.u |  | ||||||
|     tmpdepfile3=$dir.libs/$base.u |  | ||||||
|     "$@" -Wc,-M |  | ||||||
|   else |  | ||||||
|     tmpdepfile1=$dir$base.u |  | ||||||
|     tmpdepfile2=$dir$base.u |  | ||||||
|     tmpdepfile3=$dir$base.u |  | ||||||
|     "$@" -M |  | ||||||
|   fi |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |  | ||||||
|   do |  | ||||||
|     test -f "$tmpdepfile" && break |  | ||||||
|   done |  | ||||||
|   aix_post_process_depfile |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| tcc) |  | ||||||
|   # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 |  | ||||||
|   # FIXME: That version still under development at the moment of writing. |  | ||||||
|   #        Make that this statement remains true also for stable, released |  | ||||||
|   #        versions. |  | ||||||
|   # It will wrap lines (doesn't matter whether long or short) with a |  | ||||||
|   # trailing '\', as in: |  | ||||||
|   # |  | ||||||
|   #   foo.o : \ |  | ||||||
|   #    foo.c \ |  | ||||||
|   #    foo.h \ |  | ||||||
|   # |  | ||||||
|   # It will put a trailing '\' even on the last line, and will use leading |  | ||||||
|   # spaces rather than leading tabs (at least since its commit 0394caf7 |  | ||||||
|   # "Emit spaces for -MD"). |  | ||||||
|   "$@" -MD -MF "$tmpdepfile" |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. |  | ||||||
|   # We have to change lines of the first kind to '$object: \'. |  | ||||||
|   sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" |  | ||||||
|   # And for each line of the second kind, we have to emit a 'dep.h:' |  | ||||||
|   # dummy dependency, to avoid the deleted-header problem. |  | ||||||
|   sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| ## The order of this option in the case statement is important, since the |  | ||||||
| ## shell code in configure will try each of these formats in the order |  | ||||||
| ## listed in this file.  A plain '-MD' option would be understood by many |  | ||||||
| ## compilers, so we must ensure this comes after the gcc and icc options. |  | ||||||
| pgcc) |  | ||||||
|   # Portland's C compiler understands '-MD'. |  | ||||||
|   # Will always output deps to 'file.d' where file is the root name of the |  | ||||||
|   # source file under compilation, even if file resides in a subdirectory. |  | ||||||
|   # The object file name does not affect the name of the '.d' file. |  | ||||||
|   # pgcc 10.2 will output |  | ||||||
|   #    foo.o: sub/foo.c sub/foo.h |  | ||||||
|   # and will wrap long lines using '\' : |  | ||||||
|   #    foo.o: sub/foo.c ... \ |  | ||||||
|   #     sub/foo.h ... \ |  | ||||||
|   #     ... |  | ||||||
|   set_dir_from "$object" |  | ||||||
|   # Use the source, not the object, to determine the base name, since |  | ||||||
|   # that's sadly what pgcc will do too. |  | ||||||
|   set_base_from "$source" |  | ||||||
|   tmpdepfile=$base.d |  | ||||||
|  |  | ||||||
|   # For projects that build the same source file twice into different object |  | ||||||
|   # files, the pgcc approach of using the *source* file root name can cause |  | ||||||
|   # problems in parallel builds.  Use a locking strategy to avoid stomping on |  | ||||||
|   # the same $tmpdepfile. |  | ||||||
|   lockdir=$base.d-lock |  | ||||||
|   trap " |  | ||||||
|     echo '$0: caught signal, cleaning up...' >&2 |  | ||||||
|     rmdir '$lockdir' |  | ||||||
|     exit 1 |  | ||||||
|   " 1 2 13 15 |  | ||||||
|   numtries=100 |  | ||||||
|   i=$numtries |  | ||||||
|   while test $i -gt 0; do |  | ||||||
|     # mkdir is a portable test-and-set. |  | ||||||
|     if mkdir "$lockdir" 2>/dev/null; then |  | ||||||
|       # This process acquired the lock. |  | ||||||
|       "$@" -MD |  | ||||||
|       stat=$? |  | ||||||
|       # Release the lock. |  | ||||||
|       rmdir "$lockdir" |  | ||||||
|       break |  | ||||||
|     else |  | ||||||
|       # If the lock is being held by a different process, wait |  | ||||||
|       # until the winning process is done or we timeout. |  | ||||||
|       while test -d "$lockdir" && test $i -gt 0; do |  | ||||||
|         sleep 1 |  | ||||||
|         i=`expr $i - 1` |  | ||||||
|       done |  | ||||||
|     fi |  | ||||||
|     i=`expr $i - 1` |  | ||||||
|   done |  | ||||||
|   trap - 1 2 13 15 |  | ||||||
|   if test $i -le 0; then |  | ||||||
|     echo "$0: failed to acquire lock after $numtries attempts" >&2 |  | ||||||
|     echo "$0: check lockdir '$lockdir'" >&2 |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   # Each line is of the form `foo.o: dependent.h', |  | ||||||
|   # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. |  | ||||||
|   # Do two passes, one to just change these to |  | ||||||
|   # `$object: dependent.h' and one to simply `dependent.h:'. |  | ||||||
|   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" |  | ||||||
|   # Some versions of the HPUX 10.20 sed can't process this invocation |  | ||||||
|   # correctly.  Breaking it into two sed invocations is a workaround. |  | ||||||
|   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ |  | ||||||
|     | sed -e 's/$/ :/' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| hp2) |  | ||||||
|   # The "hp" stanza above does not work with aCC (C++) and HP's ia64 |  | ||||||
|   # compilers, which have integrated preprocessors.  The correct option |  | ||||||
|   # to use with these is +Maked; it writes dependencies to a file named |  | ||||||
|   # 'foo.d', which lands next to the object file, wherever that |  | ||||||
|   # happens to be. |  | ||||||
|   # Much of this is similar to the tru64 case; see comments there. |  | ||||||
|   set_dir_from  "$object" |  | ||||||
|   set_base_from "$object" |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     tmpdepfile1=$dir$base.d |  | ||||||
|     tmpdepfile2=$dir.libs/$base.d |  | ||||||
|     "$@" -Wc,+Maked |  | ||||||
|   else |  | ||||||
|     tmpdepfile1=$dir$base.d |  | ||||||
|     tmpdepfile2=$dir$base.d |  | ||||||
|     "$@" +Maked |  | ||||||
|   fi |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|      rm -f "$tmpdepfile1" "$tmpdepfile2" |  | ||||||
|      exit $stat |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" |  | ||||||
|   do |  | ||||||
|     test -f "$tmpdepfile" && break |  | ||||||
|   done |  | ||||||
|   if test -f "$tmpdepfile"; then |  | ||||||
|     sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" |  | ||||||
|     # Add 'dependent.h:' lines. |  | ||||||
|     sed -ne '2,${ |  | ||||||
|                s/^ *// |  | ||||||
|                s/ \\*$// |  | ||||||
|                s/$/:/ |  | ||||||
|                p |  | ||||||
|              }' "$tmpdepfile" >> "$depfile" |  | ||||||
|   else |  | ||||||
|     make_dummy_depfile |  | ||||||
|   fi |  | ||||||
|   rm -f "$tmpdepfile" "$tmpdepfile2" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| tru64) |  | ||||||
|   # The Tru64 compiler uses -MD to generate dependencies as a side |  | ||||||
|   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. |  | ||||||
|   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put |  | ||||||
|   # dependencies in 'foo.d' instead, so we check for that too. |  | ||||||
|   # Subdirectories are respected. |  | ||||||
|   set_dir_from  "$object" |  | ||||||
|   set_base_from "$object" |  | ||||||
|  |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     # Libtool generates 2 separate objects for the 2 libraries.  These |  | ||||||
|     # two compilations output dependencies in $dir.libs/$base.o.d and |  | ||||||
|     # in $dir$base.o.d.  We have to check for both files, because |  | ||||||
|     # one of the two compilations can be disabled.  We should prefer |  | ||||||
|     # $dir$base.o.d over $dir.libs/$base.o.d because the latter is |  | ||||||
|     # automatically cleaned when .libs/ is deleted, while ignoring |  | ||||||
|     # the former would cause a distcleancheck panic. |  | ||||||
|     tmpdepfile1=$dir$base.o.d          # libtool 1.5 |  | ||||||
|     tmpdepfile2=$dir.libs/$base.o.d    # Likewise. |  | ||||||
|     tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504 |  | ||||||
|     "$@" -Wc,-MD |  | ||||||
|   else |  | ||||||
|     tmpdepfile1=$dir$base.d |  | ||||||
|     tmpdepfile2=$dir$base.d |  | ||||||
|     tmpdepfile3=$dir$base.d |  | ||||||
|     "$@" -MD |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   stat=$? |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" |  | ||||||
|   do |  | ||||||
|     test -f "$tmpdepfile" && break |  | ||||||
|   done |  | ||||||
|   # Same post-processing that is required for AIX mode. |  | ||||||
|   aix_post_process_depfile |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| msvc7) |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     showIncludes=-Wc,-showIncludes |  | ||||||
|   else |  | ||||||
|     showIncludes=-showIncludes |  | ||||||
|   fi |  | ||||||
|   "$@" $showIncludes > "$tmpdepfile" |  | ||||||
|   stat=$? |  | ||||||
|   grep -v '^Note: including file: ' "$tmpdepfile" |  | ||||||
|   if test $stat -ne 0; then |  | ||||||
|     rm -f "$tmpdepfile" |  | ||||||
|     exit $stat |  | ||||||
|   fi |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   echo "$object : \\" > "$depfile" |  | ||||||
|   # The first sed program below extracts the file names and escapes |  | ||||||
|   # backslashes for cygpath.  The second sed program outputs the file |  | ||||||
|   # name when reading, but also accumulates all include files in the |  | ||||||
|   # hold buffer in order to output them again at the end.  This only |  | ||||||
|   # works with sed implementations that can handle large buffers. |  | ||||||
|   sed < "$tmpdepfile" -n ' |  | ||||||
| /^Note: including file:  *\(.*\)/ { |  | ||||||
|   s//\1/ |  | ||||||
|   s/\\/\\\\/g |  | ||||||
|   p |  | ||||||
| }' | $cygpath_u | sort -u | sed -n ' |  | ||||||
| s/ /\\ /g |  | ||||||
| s/\(.*\)/'"$tab"'\1 \\/p |  | ||||||
| s/.\(.*\) \\/\1:/ |  | ||||||
| H |  | ||||||
| $ { |  | ||||||
|   s/.*/'"$tab"'/ |  | ||||||
|   G |  | ||||||
|   p |  | ||||||
| }' >> "$depfile" |  | ||||||
|   echo >> "$depfile" # make sure the fragment doesn't end with a backslash |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| msvc7msys) |  | ||||||
|   # This case exists only to let depend.m4 do its work.  It works by |  | ||||||
|   # looking at the text of this script.  This case will never be run, |  | ||||||
|   # since it is checked for above. |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| #nosideeffect) |  | ||||||
|   # This comment above is used by automake to tell side-effect |  | ||||||
|   # dependency tracking mechanisms from slower ones. |  | ||||||
|  |  | ||||||
| dashmstdout) |  | ||||||
|   # Important note: in order to support this mode, a compiler *must* |  | ||||||
|   # always write the preprocessed file to stdout, regardless of -o. |  | ||||||
|   "$@" || exit $? |  | ||||||
|  |  | ||||||
|   # Remove the call to Libtool. |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     while test "X$1" != 'X--mode=compile'; do |  | ||||||
|       shift |  | ||||||
|     done |  | ||||||
|     shift |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   # Remove '-o $object'. |  | ||||||
|   IFS=" " |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     case $arg in |  | ||||||
|     -o) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     $object) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     *) |  | ||||||
|       set fnord "$@" "$arg" |  | ||||||
|       shift # fnord |  | ||||||
|       shift # $arg |  | ||||||
|       ;; |  | ||||||
|     esac |  | ||||||
|   done |  | ||||||
|  |  | ||||||
|   test -z "$dashmflag" && dashmflag=-M |  | ||||||
|   # Require at least two characters before searching for ':' |  | ||||||
|   # in the target name.  This is to cope with DOS-style filenames: |  | ||||||
|   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. |  | ||||||
|   "$@" $dashmflag | |  | ||||||
|     sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   cat < "$tmpdepfile" > "$depfile" |  | ||||||
|   # Some versions of the HPUX 10.20 sed can't process this sed invocation |  | ||||||
|   # correctly.  Breaking it into two sed invocations is a workaround. |  | ||||||
|   tr ' ' "$nl" < "$tmpdepfile" \ |  | ||||||
|     | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ |  | ||||||
|     | sed -e 's/$/ :/' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| dashXmstdout) |  | ||||||
|   # This case only exists to satisfy depend.m4.  It is never actually |  | ||||||
|   # run, as this mode is specially recognized in the preamble. |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| makedepend) |  | ||||||
|   "$@" || exit $? |  | ||||||
|   # Remove any Libtool call |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     while test "X$1" != 'X--mode=compile'; do |  | ||||||
|       shift |  | ||||||
|     done |  | ||||||
|     shift |  | ||||||
|   fi |  | ||||||
|   # X makedepend |  | ||||||
|   shift |  | ||||||
|   cleared=no eat=no |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     case $cleared in |  | ||||||
|     no) |  | ||||||
|       set ""; shift |  | ||||||
|       cleared=yes ;; |  | ||||||
|     esac |  | ||||||
|     if test $eat = yes; then |  | ||||||
|       eat=no |  | ||||||
|       continue |  | ||||||
|     fi |  | ||||||
|     case "$arg" in |  | ||||||
|     -D*|-I*) |  | ||||||
|       set fnord "$@" "$arg"; shift ;; |  | ||||||
|     # Strip any option that makedepend may not understand.  Remove |  | ||||||
|     # the object too, otherwise makedepend will parse it as a source file. |  | ||||||
|     -arch) |  | ||||||
|       eat=yes ;; |  | ||||||
|     -*|$object) |  | ||||||
|       ;; |  | ||||||
|     *) |  | ||||||
|       set fnord "$@" "$arg"; shift ;; |  | ||||||
|     esac |  | ||||||
|   done |  | ||||||
|   obj_suffix=`echo "$object" | sed 's/^.*\././'` |  | ||||||
|   touch "$tmpdepfile" |  | ||||||
|   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   # makedepend may prepend the VPATH from the source file name to the object. |  | ||||||
|   # No need to regex-escape $object, excess matching of '.' is harmless. |  | ||||||
|   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" |  | ||||||
|   # Some versions of the HPUX 10.20 sed can't process the last invocation |  | ||||||
|   # correctly.  Breaking it into two sed invocations is a workaround. |  | ||||||
|   sed '1,2d' "$tmpdepfile" \ |  | ||||||
|     | tr ' ' "$nl" \ |  | ||||||
|     | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ |  | ||||||
|     | sed -e 's/$/ :/' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" "$tmpdepfile".bak |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| cpp) |  | ||||||
|   # Important note: in order to support this mode, a compiler *must* |  | ||||||
|   # always write the preprocessed file to stdout. |  | ||||||
|   "$@" || exit $? |  | ||||||
|  |  | ||||||
|   # Remove the call to Libtool. |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     while test "X$1" != 'X--mode=compile'; do |  | ||||||
|       shift |  | ||||||
|     done |  | ||||||
|     shift |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   # Remove '-o $object'. |  | ||||||
|   IFS=" " |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     case $arg in |  | ||||||
|     -o) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     $object) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     *) |  | ||||||
|       set fnord "$@" "$arg" |  | ||||||
|       shift # fnord |  | ||||||
|       shift # $arg |  | ||||||
|       ;; |  | ||||||
|     esac |  | ||||||
|   done |  | ||||||
|  |  | ||||||
|   "$@" -E \ |  | ||||||
|     | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ |  | ||||||
|              -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ |  | ||||||
|     | sed '$ s: \\$::' > "$tmpdepfile" |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   echo "$object : \\" > "$depfile" |  | ||||||
|   cat < "$tmpdepfile" >> "$depfile" |  | ||||||
|   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| msvisualcpp) |  | ||||||
|   # Important note: in order to support this mode, a compiler *must* |  | ||||||
|   # always write the preprocessed file to stdout. |  | ||||||
|   "$@" || exit $? |  | ||||||
|  |  | ||||||
|   # Remove the call to Libtool. |  | ||||||
|   if test "$libtool" = yes; then |  | ||||||
|     while test "X$1" != 'X--mode=compile'; do |  | ||||||
|       shift |  | ||||||
|     done |  | ||||||
|     shift |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   IFS=" " |  | ||||||
|   for arg |  | ||||||
|   do |  | ||||||
|     case "$arg" in |  | ||||||
|     -o) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     $object) |  | ||||||
|       shift |  | ||||||
|       ;; |  | ||||||
|     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") |  | ||||||
|         set fnord "$@" |  | ||||||
|         shift |  | ||||||
|         shift |  | ||||||
|         ;; |  | ||||||
|     *) |  | ||||||
|         set fnord "$@" "$arg" |  | ||||||
|         shift |  | ||||||
|         shift |  | ||||||
|         ;; |  | ||||||
|     esac |  | ||||||
|   done |  | ||||||
|   "$@" -E 2>/dev/null | |  | ||||||
|   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" |  | ||||||
|   rm -f "$depfile" |  | ||||||
|   echo "$object : \\" > "$depfile" |  | ||||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" |  | ||||||
|   echo "$tab" >> "$depfile" |  | ||||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" |  | ||||||
|   rm -f "$tmpdepfile" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| msvcmsys) |  | ||||||
|   # This case exists only to let depend.m4 do its work.  It works by |  | ||||||
|   # looking at the text of this script.  This case will never be run, |  | ||||||
|   # since it is checked for above. |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| none) |  | ||||||
|   exec "$@" |  | ||||||
|   ;; |  | ||||||
|  |  | ||||||
| *) |  | ||||||
|   echo "Unknown depmode $depmode" 1>&2 |  | ||||||
|   exit 1 |  | ||||||
|   ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| exit 0 |  | ||||||
|  |  | ||||||
| # Local Variables: |  | ||||||
| # mode: shell-script |  | ||||||
| # sh-indentation: 2 |  | ||||||
| # eval: (add-hook 'before-save-hook 'time-stamp) |  | ||||||
| # time-stamp-start: "scriptversion=" |  | ||||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" |  | ||||||
| # time-stamp-time-zone: "UTC0" |  | ||||||
| # time-stamp-end: "; # UTC" |  | ||||||
| # End: |  | ||||||
| @@ -1,2 +1,2 @@ | |||||||
| man1_MANS = mboxgrep.1 | dist_man_MANS = mboxgrep.1 | ||||||
| info_TEXINFOS = mboxgrep.texi | info_TEXINFOS = mboxgrep.texi | ||||||
|   | |||||||
							
								
								
									
										760
									
								
								doc/Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										760
									
								
								doc/Makefile.in
									
									
									
									
									
								
							| @@ -1,760 +0,0 @@ | |||||||
| # Makefile.in generated by automake 1.16.3 from Makefile.am. |  | ||||||
| # @configure_input@ |  | ||||||
|  |  | ||||||
| # Copyright (C) 1994-2020 Free Software Foundation, Inc. |  | ||||||
|  |  | ||||||
| # This Makefile.in is free software; the Free Software Foundation |  | ||||||
| # gives unlimited permission to copy and/or distribute it, |  | ||||||
| # with or without modifications, as long as this notice is preserved. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without |  | ||||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |  | ||||||
| # PARTICULAR PURPOSE. |  | ||||||
|  |  | ||||||
| @SET_MAKE@ |  | ||||||
| VPATH = @srcdir@ |  | ||||||
| am__is_gnu_make = { \ |  | ||||||
|   if test -z '$(MAKELEVEL)'; then \ |  | ||||||
|     false; \ |  | ||||||
|   elif test -n '$(MAKE_HOST)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   else \ |  | ||||||
|     false; \ |  | ||||||
|   fi; \ |  | ||||||
| } |  | ||||||
| am__make_running_with_option = \ |  | ||||||
|   case $${target_option-} in \ |  | ||||||
|       ?) ;; \ |  | ||||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ |  | ||||||
|               "target option '$${target_option-}' specified" >&2; \ |  | ||||||
|          exit 1;; \ |  | ||||||
|   esac; \ |  | ||||||
|   has_opt=no; \ |  | ||||||
|   sane_makeflags=$$MAKEFLAGS; \ |  | ||||||
|   if $(am__is_gnu_make); then \ |  | ||||||
|     sane_makeflags=$$MFLAGS; \ |  | ||||||
|   else \ |  | ||||||
|     case $$MAKEFLAGS in \ |  | ||||||
|       *\\[\ \	]*) \ |  | ||||||
|         bs=\\; \ |  | ||||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |  | ||||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ |  | ||||||
|     esac; \ |  | ||||||
|   fi; \ |  | ||||||
|   skip_next=no; \ |  | ||||||
|   strip_trailopt () \ |  | ||||||
|   { \ |  | ||||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |  | ||||||
|   }; \ |  | ||||||
|   for flg in $$sane_makeflags; do \ |  | ||||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *=*|--*) continue;; \ |  | ||||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ |  | ||||||
|       -*I?*) strip_trailopt 'I';; \ |  | ||||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ |  | ||||||
|       -*O?*) strip_trailopt 'O';; \ |  | ||||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ |  | ||||||
|       -*l?*) strip_trailopt 'l';; \ |  | ||||||
|       -[dEDm]) skip_next=yes;; \ |  | ||||||
|       -[JT]) skip_next=yes;; \ |  | ||||||
|     esac; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *$$target_option*) has_opt=yes; break;; \ |  | ||||||
|     esac; \ |  | ||||||
|   done; \ |  | ||||||
|   test $$has_opt = yes |  | ||||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |  | ||||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |  | ||||||
| pkgdatadir = $(datadir)/@PACKAGE@ |  | ||||||
| pkgincludedir = $(includedir)/@PACKAGE@ |  | ||||||
| pkglibdir = $(libdir)/@PACKAGE@ |  | ||||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ |  | ||||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |  | ||||||
| install_sh_DATA = $(install_sh) -c -m 644 |  | ||||||
| install_sh_PROGRAM = $(install_sh) -c |  | ||||||
| install_sh_SCRIPT = $(install_sh) -c |  | ||||||
| INSTALL_HEADER = $(INSTALL_DATA) |  | ||||||
| transform = $(program_transform_name) |  | ||||||
| NORMAL_INSTALL = : |  | ||||||
| PRE_INSTALL = : |  | ||||||
| POST_INSTALL = : |  | ||||||
| NORMAL_UNINSTALL = : |  | ||||||
| PRE_UNINSTALL = : |  | ||||||
| POST_UNINSTALL = : |  | ||||||
| subdir = doc |  | ||||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |  | ||||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac |  | ||||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |  | ||||||
| 	$(ACLOCAL_M4) |  | ||||||
| DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |  | ||||||
| mkinstalldirs = $(install_sh) -d |  | ||||||
| CONFIG_HEADER = $(top_builddir)/src/config.h |  | ||||||
| CONFIG_CLEAN_FILES = |  | ||||||
| CONFIG_CLEAN_VPATH_FILES = |  | ||||||
| AM_V_P = $(am__v_P_@AM_V@) |  | ||||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |  | ||||||
| am__v_P_0 = false |  | ||||||
| am__v_P_1 = : |  | ||||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) |  | ||||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |  | ||||||
| am__v_GEN_0 = @echo "  GEN     " $@; |  | ||||||
| am__v_GEN_1 =  |  | ||||||
| AM_V_at = $(am__v_at_@AM_V@) |  | ||||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |  | ||||||
| am__v_at_0 = @ |  | ||||||
| am__v_at_1 =  |  | ||||||
| SOURCES = |  | ||||||
| DIST_SOURCES = |  | ||||||
| AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) |  | ||||||
| am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) |  | ||||||
| am__v_DVIPS_0 = @echo "  DVIPS   " $@; |  | ||||||
| am__v_DVIPS_1 =  |  | ||||||
| AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) |  | ||||||
| am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) |  | ||||||
| am__v_MAKEINFO_0 = @echo "  MAKEINFO" $@; |  | ||||||
| am__v_MAKEINFO_1 =  |  | ||||||
| AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) |  | ||||||
| am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) |  | ||||||
| am__v_INFOHTML_0 = @echo "  INFOHTML" $@; |  | ||||||
| am__v_INFOHTML_1 =  |  | ||||||
| AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) |  | ||||||
| am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) |  | ||||||
| am__v_TEXI2DVI_0 = @echo "  TEXI2DVI" $@; |  | ||||||
| am__v_TEXI2DVI_1 =  |  | ||||||
| AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) |  | ||||||
| am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) |  | ||||||
| am__v_TEXI2PDF_0 = @echo "  TEXI2PDF" $@; |  | ||||||
| am__v_TEXI2PDF_1 =  |  | ||||||
| AM_V_texinfo = $(am__v_texinfo_@AM_V@) |  | ||||||
| am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) |  | ||||||
| am__v_texinfo_0 = -q |  | ||||||
| am__v_texinfo_1 =  |  | ||||||
| AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) |  | ||||||
| am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) |  | ||||||
| am__v_texidevnull_0 = > /dev/null |  | ||||||
| am__v_texidevnull_1 =  |  | ||||||
| INFO_DEPS = $(srcdir)/mboxgrep.info |  | ||||||
| am__TEXINFO_TEX_DIR = $(srcdir) |  | ||||||
| DVIS = mboxgrep.dvi |  | ||||||
| PDFS = mboxgrep.pdf |  | ||||||
| PSS = mboxgrep.ps |  | ||||||
| HTMLS = mboxgrep.html |  | ||||||
| TEXINFOS = mboxgrep.texi |  | ||||||
| TEXI2DVI = texi2dvi |  | ||||||
| TEXI2PDF = $(TEXI2DVI) --pdf --batch |  | ||||||
| MAKEINFOHTML = $(MAKEINFO) --html |  | ||||||
| AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) |  | ||||||
| DVIPS = dvips |  | ||||||
| am__can_run_installinfo = \ |  | ||||||
|   case $$AM_UPDATE_INFO_DIR in \ |  | ||||||
|     n|no|NO) false;; \ |  | ||||||
|     *) (install-info --version) >/dev/null 2>&1;; \ |  | ||||||
|   esac |  | ||||||
| am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" |  | ||||||
| am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |  | ||||||
| am__vpath_adj = case $$p in \ |  | ||||||
|     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ |  | ||||||
|     *) f=$$p;; \ |  | ||||||
|   esac; |  | ||||||
| am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |  | ||||||
| am__install_max = 40 |  | ||||||
| am__nobase_strip_setup = \ |  | ||||||
|   srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |  | ||||||
| am__nobase_strip = \ |  | ||||||
|   for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |  | ||||||
| am__nobase_list = $(am__nobase_strip_setup); \ |  | ||||||
|   for p in $$list; do echo "$$p $$p"; done | \ |  | ||||||
|   sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ |  | ||||||
|   $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ |  | ||||||
|     if (++n[$$2] == $(am__install_max)) \ |  | ||||||
|       { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ |  | ||||||
|     END { for (dir in files) print dir, files[dir] }' |  | ||||||
| am__base_list = \ |  | ||||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ |  | ||||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |  | ||||||
| am__uninstall_files_from_dir = { \ |  | ||||||
|   test -z "$$files" \ |  | ||||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ |  | ||||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ |  | ||||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \ |  | ||||||
|   } |  | ||||||
| man1dir = $(mandir)/man1 |  | ||||||
| NROFF = nroff |  | ||||||
| MANS = $(man1_MANS) |  | ||||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |  | ||||||
| am__DIST_COMMON = $(srcdir)/Makefile.in texinfo.tex |  | ||||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |  | ||||||
| ACLOCAL = @ACLOCAL@ |  | ||||||
| AMTAR = @AMTAR@ |  | ||||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |  | ||||||
| AUTOCONF = @AUTOCONF@ |  | ||||||
| AUTOHEADER = @AUTOHEADER@ |  | ||||||
| AUTOMAKE = @AUTOMAKE@ |  | ||||||
| AWK = @AWK@ |  | ||||||
| CC = @CC@ |  | ||||||
| CCDEPMODE = @CCDEPMODE@ |  | ||||||
| CFLAGS = @CFLAGS@ |  | ||||||
| CPP = @CPP@ |  | ||||||
| CPPFLAGS = @CPPFLAGS@ |  | ||||||
| CYGPATH_W = @CYGPATH_W@ |  | ||||||
| DEFS = @DEFS@ |  | ||||||
| DEPDIR = @DEPDIR@ |  | ||||||
| ECHO_C = @ECHO_C@ |  | ||||||
| ECHO_N = @ECHO_N@ |  | ||||||
| ECHO_T = @ECHO_T@ |  | ||||||
| EGREP = @EGREP@ |  | ||||||
| EXEEXT = @EXEEXT@ |  | ||||||
| GREP = @GREP@ |  | ||||||
| INSTALL = @INSTALL@ |  | ||||||
| INSTALL_DATA = @INSTALL_DATA@ |  | ||||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |  | ||||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ |  | ||||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |  | ||||||
| LDFLAGS = @LDFLAGS@ |  | ||||||
| LIBOBJS = @LIBOBJS@ |  | ||||||
| LIBS = @LIBS@ |  | ||||||
| LTLIBOBJS = @LTLIBOBJS@ |  | ||||||
| MAKEINFO = @MAKEINFO@ |  | ||||||
| MKDIR_P = @MKDIR_P@ |  | ||||||
| OBJEXT = @OBJEXT@ |  | ||||||
| PACKAGE = @PACKAGE@ |  | ||||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |  | ||||||
| PACKAGE_NAME = @PACKAGE_NAME@ |  | ||||||
| PACKAGE_STRING = @PACKAGE_STRING@ |  | ||||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ |  | ||||||
| PACKAGE_URL = @PACKAGE_URL@ |  | ||||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ |  | ||||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ |  | ||||||
| PCRE_CONFIG = @PCRE_CONFIG@ |  | ||||||
| SET_MAKE = @SET_MAKE@ |  | ||||||
| SHELL = @SHELL@ |  | ||||||
| STRIP = @STRIP@ |  | ||||||
| VERSION = @VERSION@ |  | ||||||
| abs_builddir = @abs_builddir@ |  | ||||||
| abs_srcdir = @abs_srcdir@ |  | ||||||
| abs_top_builddir = @abs_top_builddir@ |  | ||||||
| abs_top_srcdir = @abs_top_srcdir@ |  | ||||||
| ac_ct_CC = @ac_ct_CC@ |  | ||||||
| am__include = @am__include@ |  | ||||||
| am__leading_dot = @am__leading_dot@ |  | ||||||
| am__quote = @am__quote@ |  | ||||||
| am__tar = @am__tar@ |  | ||||||
| am__untar = @am__untar@ |  | ||||||
| bindir = @bindir@ |  | ||||||
| build_alias = @build_alias@ |  | ||||||
| builddir = @builddir@ |  | ||||||
| datadir = @datadir@ |  | ||||||
| datarootdir = @datarootdir@ |  | ||||||
| docdir = @docdir@ |  | ||||||
| dvidir = @dvidir@ |  | ||||||
| exec_prefix = @exec_prefix@ |  | ||||||
| host_alias = @host_alias@ |  | ||||||
| htmldir = @htmldir@ |  | ||||||
| includedir = @includedir@ |  | ||||||
| infodir = @infodir@ |  | ||||||
| install_sh = @install_sh@ |  | ||||||
| libdir = @libdir@ |  | ||||||
| libexecdir = @libexecdir@ |  | ||||||
| localedir = @localedir@ |  | ||||||
| localstatedir = @localstatedir@ |  | ||||||
| mandir = @mandir@ |  | ||||||
| mkdir_p = @mkdir_p@ |  | ||||||
| oldincludedir = @oldincludedir@ |  | ||||||
| pdfdir = @pdfdir@ |  | ||||||
| prefix = @prefix@ |  | ||||||
| program_transform_name = @program_transform_name@ |  | ||||||
| psdir = @psdir@ |  | ||||||
| runstatedir = @runstatedir@ |  | ||||||
| sbindir = @sbindir@ |  | ||||||
| sharedstatedir = @sharedstatedir@ |  | ||||||
| srcdir = @srcdir@ |  | ||||||
| sysconfdir = @sysconfdir@ |  | ||||||
| target_alias = @target_alias@ |  | ||||||
| top_build_prefix = @top_build_prefix@ |  | ||||||
| top_builddir = @top_builddir@ |  | ||||||
| top_srcdir = @top_srcdir@ |  | ||||||
| man1_MANS = mboxgrep.1 |  | ||||||
| info_TEXINFOS = mboxgrep.texi |  | ||||||
| all: all-am |  | ||||||
|  |  | ||||||
| .SUFFIXES: |  | ||||||
| .SUFFIXES: .dvi .html .info .pdf .ps .texi |  | ||||||
| $(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 |  | ||||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |  | ||||||
| 	@case '$?' in \ |  | ||||||
| 	  *config.status*) \ |  | ||||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |  | ||||||
| 	  *) \ |  | ||||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ |  | ||||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ |  | ||||||
| 	esac; |  | ||||||
|  |  | ||||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |  | ||||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |  | ||||||
|  |  | ||||||
| $(top_srcdir)/configure:  $(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): |  | ||||||
|  |  | ||||||
| .texi.info: |  | ||||||
| 	$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ |  | ||||||
| 	am__cwd=`pwd` && $(am__cd) $(srcdir) && \ |  | ||||||
| 	rm -rf $$backupdir && mkdir $$backupdir && \ |  | ||||||
| 	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ |  | ||||||
| 	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ |  | ||||||
| 	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ |  | ||||||
| 	  done; \ |  | ||||||
| 	else :; fi && \ |  | ||||||
| 	cd "$$am__cwd"; \ |  | ||||||
| 	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ |  | ||||||
| 	 -o $@ $<; \ |  | ||||||
| 	then \ |  | ||||||
| 	  rc=0; \ |  | ||||||
| 	  $(am__cd) $(srcdir); \ |  | ||||||
| 	else \ |  | ||||||
| 	  rc=$$?; \ |  | ||||||
| 	  $(am__cd) $(srcdir) && \ |  | ||||||
| 	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	rm -rf $$backupdir; exit $$rc |  | ||||||
|  |  | ||||||
| .texi.dvi: |  | ||||||
| 	$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ |  | ||||||
| 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ |  | ||||||
| 	$(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ |  | ||||||
| 	$< |  | ||||||
|  |  | ||||||
| .texi.pdf: |  | ||||||
| 	$(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ |  | ||||||
| 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ |  | ||||||
| 	$(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ |  | ||||||
| 	$< |  | ||||||
|  |  | ||||||
| .texi.html: |  | ||||||
| 	$(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) |  | ||||||
| 	$(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ |  | ||||||
| 	 -o $(@:.html=.htp) $<; \ |  | ||||||
| 	then \ |  | ||||||
| 	  rm -rf $@ && mv $(@:.html=.htp) $@; \ |  | ||||||
| 	else \ |  | ||||||
| 	  rm -rf $(@:.html=.htp); exit 1; \ |  | ||||||
| 	fi |  | ||||||
| $(srcdir)/mboxgrep.info: mboxgrep.texi  |  | ||||||
| mboxgrep.dvi: mboxgrep.texi  |  | ||||||
| mboxgrep.pdf: mboxgrep.texi  |  | ||||||
| mboxgrep.html: mboxgrep.texi  |  | ||||||
| .dvi.ps: |  | ||||||
| 	$(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ |  | ||||||
| 	$(DVIPS) $(AM_V_texinfo) -o $@ $< |  | ||||||
|  |  | ||||||
| uninstall-dvi-am: |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  $(am__strip_dir) \ |  | ||||||
| 	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ |  | ||||||
| 	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| uninstall-html-am: |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  $(am__strip_dir) \ |  | ||||||
| 	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ |  | ||||||
| 	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| uninstall-info-am: |  | ||||||
| 	@$(PRE_UNINSTALL) |  | ||||||
| 	@if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ |  | ||||||
| 	  list='$(INFO_DEPS)'; \ |  | ||||||
| 	  for file in $$list; do \ |  | ||||||
| 	    relfile=`echo "$$file" | sed 's|^.*/||'`; \ |  | ||||||
| 	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ |  | ||||||
| 	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ |  | ||||||
| 	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ |  | ||||||
| 	  done; \ |  | ||||||
| 	else :; fi |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(INFO_DEPS)'; \ |  | ||||||
| 	for file in $$list; do \ |  | ||||||
| 	  relfile=`echo "$$file" | sed 's|^.*/||'`; \ |  | ||||||
| 	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ |  | ||||||
| 	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ |  | ||||||
| 	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ |  | ||||||
| 	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ |  | ||||||
| 	   else :; fi); \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| uninstall-pdf-am: |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  $(am__strip_dir) \ |  | ||||||
| 	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ |  | ||||||
| 	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| uninstall-ps-am: |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(PSS)'; test -n "$(psdir)" || list=; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  $(am__strip_dir) \ |  | ||||||
| 	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ |  | ||||||
| 	  rm -f "$(DESTDIR)$(psdir)/$$f"; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| dist-info: $(INFO_DEPS) |  | ||||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ |  | ||||||
| 	list='$(INFO_DEPS)'; \ |  | ||||||
| 	for base in $$list; do \ |  | ||||||
| 	  case $$base in \ |  | ||||||
| 	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ |  | ||||||
| 	  esac; \ |  | ||||||
| 	  if test -f $$base; then d=.; else d=$(srcdir); fi; \ |  | ||||||
| 	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ |  | ||||||
| 	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ |  | ||||||
| 	    if test -f $$file; then \ |  | ||||||
| 	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \ |  | ||||||
| 	      test -f "$(distdir)/$$relfile" || \ |  | ||||||
| 		cp -p $$file "$(distdir)/$$relfile"; \ |  | ||||||
| 	    else :; fi; \ |  | ||||||
| 	  done; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| mostlyclean-aminfo: |  | ||||||
| 	-rm -rf mboxgrep.t2d mboxgrep.t2p |  | ||||||
|  |  | ||||||
| clean-aminfo: |  | ||||||
| 	-test -z "mboxgrep.dvi mboxgrep.pdf mboxgrep.ps mboxgrep.html" \ |  | ||||||
| 	|| rm -rf mboxgrep.dvi mboxgrep.pdf mboxgrep.ps mboxgrep.html |  | ||||||
|  |  | ||||||
| maintainer-clean-aminfo: |  | ||||||
| 	@list='$(INFO_DEPS)'; for i in $$list; do \ |  | ||||||
| 	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ |  | ||||||
| 	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ |  | ||||||
| 	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ |  | ||||||
| 	done |  | ||||||
| install-man1: $(man1_MANS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list1='$(man1_MANS)'; \ |  | ||||||
| 	list2=''; \ |  | ||||||
| 	test -n "$(man1dir)" \ |  | ||||||
| 	  && test -n "`echo $$list1$$list2`" \ |  | ||||||
| 	  || exit 0; \ |  | ||||||
| 	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ |  | ||||||
| 	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ |  | ||||||
| 	{ for i in $$list1; do echo "$$i"; done;  \ |  | ||||||
| 	if test -n "$$list2"; then \ |  | ||||||
| 	  for i in $$list2; do echo "$$i"; done \ |  | ||||||
| 	    | sed -n '/\.1[a-z]*$$/p'; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	} | while read p; do \ |  | ||||||
| 	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ |  | ||||||
| 	  echo "$$d$$p"; echo "$$p"; \ |  | ||||||
| 	done | \ |  | ||||||
| 	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ |  | ||||||
| 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ |  | ||||||
| 	sed 'N;N;s,\n, ,g' | { \ |  | ||||||
| 	list=; while read file base inst; do \ |  | ||||||
| 	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \ |  | ||||||
| 	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ |  | ||||||
| 	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done; \ |  | ||||||
| 	for i in $$list; do echo "$$i"; done | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  test -z "$$files" || { \ |  | ||||||
| 	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ |  | ||||||
| 	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ |  | ||||||
| 	done; } |  | ||||||
|  |  | ||||||
| uninstall-man1: |  | ||||||
| 	@$(NORMAL_UNINSTALL) |  | ||||||
| 	@list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ |  | ||||||
| 	files=`{ for i in $$list; do echo "$$i"; done; \ |  | ||||||
| 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ |  | ||||||
| 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ |  | ||||||
| 	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) |  | ||||||
| tags TAGS: |  | ||||||
|  |  | ||||||
| ctags CTAGS: |  | ||||||
|  |  | ||||||
| cscope cscopelist: |  | ||||||
|  |  | ||||||
|  |  | ||||||
| distdir: $(BUILT_SOURCES) |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am |  | ||||||
|  |  | ||||||
| distdir-am: $(DISTFILES) |  | ||||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	list='$(DISTFILES)'; \ |  | ||||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ |  | ||||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ |  | ||||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |  | ||||||
| 	case $$dist_files in \ |  | ||||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ |  | ||||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |  | ||||||
| 			   sort -u` ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for file in $$dist_files; do \ |  | ||||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |  | ||||||
| 	  if test -d $$d/$$file; then \ |  | ||||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |  | ||||||
| 	    if test -d "$(distdir)/$$file"; then \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |  | ||||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    test -f "$(distdir)/$$file" \ |  | ||||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ |  | ||||||
| 	    || exit 1; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) \ |  | ||||||
| 	  top_distdir="$(top_distdir)" distdir="$(distdir)" \ |  | ||||||
| 	  dist-info |  | ||||||
| check-am: all-am |  | ||||||
| check: check-am |  | ||||||
| all-am: Makefile $(INFO_DEPS) $(MANS) |  | ||||||
| installdirs: |  | ||||||
| 	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ |  | ||||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |  | ||||||
| 	done |  | ||||||
| install: install-am |  | ||||||
| install-exec: install-exec-am |  | ||||||
| install-data: install-data-am |  | ||||||
| uninstall: uninstall-am |  | ||||||
|  |  | ||||||
| install-am: all-am |  | ||||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |  | ||||||
|  |  | ||||||
| installcheck: installcheck-am |  | ||||||
| install-strip: |  | ||||||
| 	if test -z '$(STRIP)'; then \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	      install; \ |  | ||||||
| 	else \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |  | ||||||
| 	fi |  | ||||||
| mostlyclean-generic: |  | ||||||
|  |  | ||||||
| clean-generic: |  | ||||||
|  |  | ||||||
| distclean-generic: |  | ||||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |  | ||||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |  | ||||||
|  |  | ||||||
| maintainer-clean-generic: |  | ||||||
| 	@echo "This command is intended for maintainers to use" |  | ||||||
| 	@echo "it deletes files that may require special tools to rebuild." |  | ||||||
| clean: clean-am |  | ||||||
|  |  | ||||||
| clean-am: clean-aminfo clean-generic mostlyclean-am |  | ||||||
|  |  | ||||||
| distclean: distclean-am |  | ||||||
| 	-rm -f Makefile |  | ||||||
| distclean-am: clean-am distclean-generic |  | ||||||
|  |  | ||||||
| dvi: dvi-am |  | ||||||
|  |  | ||||||
| dvi-am: $(DVIS) |  | ||||||
|  |  | ||||||
| html: html-am |  | ||||||
|  |  | ||||||
| html-am: $(HTMLS) |  | ||||||
|  |  | ||||||
| info: info-am |  | ||||||
|  |  | ||||||
| info-am: $(INFO_DEPS) |  | ||||||
|  |  | ||||||
| install-data-am: install-info-am install-man |  | ||||||
|  |  | ||||||
| install-dvi: install-dvi-am |  | ||||||
|  |  | ||||||
| install-dvi-am: $(DVIS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ |  | ||||||
| 	  echo "$$d$$p"; \ |  | ||||||
| 	done | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ |  | ||||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ |  | ||||||
| 	done |  | ||||||
| install-exec-am: |  | ||||||
|  |  | ||||||
| install-html: install-html-am |  | ||||||
|  |  | ||||||
| install-html-am: $(HTMLS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ |  | ||||||
| 	  $(am__strip_dir) \ |  | ||||||
| 	  d2=$$d$$p; \ |  | ||||||
| 	  if test -d "$$d2"; then \ |  | ||||||
| 	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ |  | ||||||
| 	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ |  | ||||||
| 	    echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ |  | ||||||
| 	    $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    list2="$$list2 $$d2"; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done; \ |  | ||||||
| 	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ |  | ||||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ |  | ||||||
| 	done; } |  | ||||||
| install-info: install-info-am |  | ||||||
|  |  | ||||||
| install-info-am: $(INFO_DEPS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ |  | ||||||
| 	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for file in $$list; do \ |  | ||||||
| 	  case $$file in \ |  | ||||||
| 	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ |  | ||||||
| 	  esac; \ |  | ||||||
| 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \ |  | ||||||
| 	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ |  | ||||||
| 	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ |  | ||||||
| 	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ |  | ||||||
| 	    if test -f $$ifile; then \ |  | ||||||
| 	      echo "$$ifile"; \ |  | ||||||
| 	    else : ; fi; \ |  | ||||||
| 	  done; \ |  | ||||||
| 	done | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ |  | ||||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done |  | ||||||
| 	@$(POST_INSTALL) |  | ||||||
| 	@if $(am__can_run_installinfo); then \ |  | ||||||
| 	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ |  | ||||||
| 	  for file in $$list; do \ |  | ||||||
| 	    relfile=`echo "$$file" | sed 's|^.*/||'`; \ |  | ||||||
| 	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ |  | ||||||
| 	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ |  | ||||||
| 	  done; \ |  | ||||||
| 	else : ; fi |  | ||||||
| install-man: install-man1 |  | ||||||
|  |  | ||||||
| install-pdf: install-pdf-am |  | ||||||
|  |  | ||||||
| install-pdf-am: $(PDFS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ |  | ||||||
| 	  echo "$$d$$p"; \ |  | ||||||
| 	done | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ |  | ||||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done |  | ||||||
| install-ps: install-ps-am |  | ||||||
|  |  | ||||||
| install-ps-am: $(PSS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list='$(PSS)'; test -n "$(psdir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for p in $$list; do \ |  | ||||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ |  | ||||||
| 	  echo "$$d$$p"; \ |  | ||||||
| 	done | $(am__base_list) | \ |  | ||||||
| 	while read files; do \ |  | ||||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ |  | ||||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done |  | ||||||
| installcheck-am: |  | ||||||
|  |  | ||||||
| maintainer-clean: maintainer-clean-am |  | ||||||
| 	-rm -f Makefile |  | ||||||
| maintainer-clean-am: distclean-am maintainer-clean-aminfo \ |  | ||||||
| 	maintainer-clean-generic |  | ||||||
|  |  | ||||||
| mostlyclean: mostlyclean-am |  | ||||||
|  |  | ||||||
| mostlyclean-am: mostlyclean-aminfo mostlyclean-generic |  | ||||||
|  |  | ||||||
| pdf: pdf-am |  | ||||||
|  |  | ||||||
| pdf-am: $(PDFS) |  | ||||||
|  |  | ||||||
| ps: ps-am |  | ||||||
|  |  | ||||||
| ps-am: $(PSS) |  | ||||||
|  |  | ||||||
| uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ |  | ||||||
| 	uninstall-man uninstall-pdf-am uninstall-ps-am |  | ||||||
|  |  | ||||||
| uninstall-man: uninstall-man1 |  | ||||||
|  |  | ||||||
| .MAKE: install-am install-strip |  | ||||||
|  |  | ||||||
| .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ |  | ||||||
| 	cscopelist-am ctags-am dist-info 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-man1 install-pdf install-pdf-am install-ps \ |  | ||||||
| 	install-ps-am install-strip installcheck installcheck-am \ |  | ||||||
| 	installdirs maintainer-clean maintainer-clean-aminfo \ |  | ||||||
| 	maintainer-clean-generic mostlyclean mostlyclean-aminfo \ |  | ||||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ |  | ||||||
| 	uninstall-am uninstall-dvi-am uninstall-html-am \ |  | ||||||
| 	uninstall-info-am uninstall-man uninstall-man1 \ |  | ||||||
| 	uninstall-pdf-am uninstall-ps-am |  | ||||||
|  |  | ||||||
| .PRECIOUS: Makefile |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. |  | ||||||
| # Otherwise a system limit (for SysV at least) may be exceeded. |  | ||||||
| .NOEXPORT: |  | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| .TH MBOXGREP 1 "24 Mar 2023" | .TH MBOXGREP 1 "23 September 2024" | ||||||
| .SH NAME | .SH NAME | ||||||
| mboxgrep \- displays email messages matching a pattern | mboxgrep \- displays email messages matching a pattern | ||||||
| .SH SYNOPSIS | .SH SYNOPSIS | ||||||
| @@ -10,7 +10,7 @@ mboxgrep \- displays email messages matching a pattern | |||||||
| This manual page refers to | This manual page refers to | ||||||
| .B mboxgrep | .B mboxgrep | ||||||
| version | version | ||||||
| .BR 0.7.11 . | .BR 0.7.12a . | ||||||
| .PP | .PP | ||||||
| .B mboxgrep | .B mboxgrep | ||||||
| scans a | scans a | ||||||
| @@ -72,8 +72,8 @@ Do not lock files.  This option is meaningful only if a mbox folder (see below) | |||||||
| is scanned. | is scanned. | ||||||
| .IP "-c, --count" | .IP "-c, --count" | ||||||
| Suppress normal output and print a count of matching messages. | Suppress normal output and print a count of matching messages. | ||||||
| .IP "-o, --output=FOLDER" | .IP "-o, --output=MAILBOX" | ||||||
| Suppress normal output and write messages to destination folder FOLDER instead. | Suppress normal output and write messages to destination MAILBOX instead. | ||||||
| .IP "-p, --pipe=COMMAND" | .IP "-p, --pipe=COMMAND" | ||||||
| Pipe each found message to COMMAND | Pipe each found message to COMMAND | ||||||
| .IP "-d, --delete" | .IP "-d, --delete" | ||||||
| @@ -97,10 +97,26 @@ Search $MAIL for messages from Dirty Harry: | |||||||
| mboxgrep '^From:.*callahan@sanfranciscopolice\\.org' $MAIL | mboxgrep '^From:.*callahan@sanfranciscopolice\\.org' $MAIL | ||||||
| .TP | .TP | ||||||
| \(bu | \(bu | ||||||
|  | Re-mail to George messages that mention his name: | ||||||
|  | .PP | ||||||
|  | mboxgrep --pipe="/usr/lib/sendmail george" --ignore-case george ~/Mail/* | ||||||
|  | .TP | ||||||
|  | \(bu | ||||||
| Display all messages contained in folder ~/Mail/incoming, except those | Display all messages contained in folder ~/Mail/incoming, except those | ||||||
| that appear to originate from AOL: | that appear to originate from AOL: | ||||||
| .PP | .PP | ||||||
| mboxgrep -v 'Received:.*aol\\.com' ~/Mail/incoming | mboxgrep -v 'Received:.*aol\\.com' ~/Mail/incoming | ||||||
|  | .TP | ||||||
|  | \(bu | ||||||
|  | Do a case-insensitive scan of ~/Mail/incoming for messages with subject | ||||||
|  | ``Weekly News'' and write them to folder ~/Mail/archive: | ||||||
|  | .PP | ||||||
|  | mboxgrep -o ~/Mail/archive -H -i '^Subject: Weekly News' ~/Mail/incoming | ||||||
|  | .TP | ||||||
|  | \(bu | ||||||
|  | Count all messages stored in folder spam, ignoring duplicates: | ||||||
|  | .PP | ||||||
|  | mboxgrep -nd -c . spam | ||||||
| .SH BUGS | .SH BUGS | ||||||
| Report them to address below. | Report them to address below. | ||||||
| .SH SEE ALSO | .SH SEE ALSO | ||||||
| @@ -108,7 +124,8 @@ grep(1), | |||||||
| regex(7), | regex(7), | ||||||
| perlre(1), | perlre(1), | ||||||
| mbox(5), | mbox(5), | ||||||
| RFC 2822 | RFC 2822, | ||||||
|  | RFC 4155 | ||||||
| .SH DEDICATION | .SH DEDICATION | ||||||
| Mboxgrep is dedicated in loving memory of Vicky, my cat who died of | Mboxgrep is dedicated in loving memory of Vicky, my cat who died of | ||||||
| tumor on Sep 12, 2002.   | tumor on Sep 12, 2002.   | ||||||
| @@ -116,7 +133,11 @@ tumor on Sep 12, 2002. | |||||||
| You haven't been long with us, but you gave us a lot of joy and all your | You haven't been long with us, but you gave us a lot of joy and all your | ||||||
| big heart that stopped ticking too early.  I will never forget you.  Sleep | big heart that stopped ticking too early.  I will never forget you.  Sleep | ||||||
| well, little friend. | well, little friend. | ||||||
| .SH URL | .SH HOMEPAGE | ||||||
| http://www.mboxgrep.org/ | https://www.mboxgrep.org/ | ||||||
|  | .SH GIT | ||||||
|  | https://git.datatipp.se/dspiljar/mboxgrep | ||||||
|  | .PP | ||||||
|  | https://github.com/dspiljar/mboxgrep | ||||||
| .SH AUTHOR | .SH AUTHOR | ||||||
| Daniel Spiljar <dspiljar AT datatipp.se> | Daniel Spiljar <dspiljar@datatipp.se> | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| This is mboxgrep.info, produced by makeinfo version 6.7 from | This is mboxgrep.info, produced by makeinfo version 6.8 from | ||||||
| mboxgrep.texi. | mboxgrep.texi. | ||||||
|  |  | ||||||
| INFO-DIR-SECTION Mail | INFO-DIR-SECTION Mail | ||||||
| @@ -9,10 +9,10 @@ END-INFO-DIR-ENTRY | |||||||
|  |  | ||||||
| File: mboxgrep.info,  Node: Top,  Up: (dir) | File: mboxgrep.info,  Node: Top,  Up: (dir) | ||||||
|  |  | ||||||
| This file documents 'mboxgrep' (version 0.7.11), a mailbox scanning | This file documents 'mboxgrep' (version 0.7.12a), a mailbox scanning | ||||||
| utility. | utility. | ||||||
|  |  | ||||||
|    Copyright (C) 2000, 2001, 2002, 2003 Daniel Spiljar |    Copyright (C) 2000 - 2003, 2024 Daniel Spiljar | ||||||
|  |  | ||||||
| * Menu: | * Menu: | ||||||
|  |  | ||||||
| @@ -151,10 +151,10 @@ options below change such behavior. | |||||||
| '-nd' | '-nd' | ||||||
|      Ignore duplicate messages. |      Ignore duplicate messages. | ||||||
|  |  | ||||||
| '--output=FOLDER' | '--output=MAILBOX' | ||||||
| '-o FOLDER' | '-o MAILBOX' | ||||||
|      Suppress normal output and write messages to destination folder |      Suppress normal output and write messages to destination MAILBOX | ||||||
|      FOLDER instead. |      instead. | ||||||
|  |  | ||||||
|      Note that 'mboxgrep' assumes the output folder is of the same |      Note that 'mboxgrep' assumes the output folder is of the same | ||||||
|      format as the input folder.  Currently there is no possibility to |      format as the input folder.  Currently there is no possibility to | ||||||
| @@ -250,17 +250,17 @@ Sleep well, little friend. | |||||||
|  |  | ||||||
| Tag Table: | Tag Table: | ||||||
| Node: Top197 | Node: Top197 | ||||||
| Node: Introduction596 | Node: Introduction592 | ||||||
| Node: Invoking1465 | Node: Invoking1461 | ||||||
| Node: Miscellaneous1827 | Node: Miscellaneous1823 | ||||||
| Node: File locking2112 | Node: File locking2108 | ||||||
| Node: Regexp selection2749 | Node: Regexp selection2745 | ||||||
| Node: Output control3301 | Node: Output control3297 | ||||||
| Node: Search scope selection4345 | Node: Search scope selection4337 | ||||||
| Node: Mailbox type selection4586 | Node: Mailbox type selection4578 | ||||||
| Node: Examples4907 | Node: Examples4899 | ||||||
| Node: Bugs5731 | Node: Bugs5723 | ||||||
| Node: To Vicky6149 | Node: To Vicky6141 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,8 +5,8 @@ | |||||||
| @setchapternewpage odd | @setchapternewpage odd | ||||||
|  |  | ||||||
| @set EDITION 0.7 | @set EDITION 0.7 | ||||||
| @set VERSION 0.7.11 | @set VERSION 0.7.12a | ||||||
| @set UPDATED 24 Mar 2023 | @set UPDATED 23 September 2024 | ||||||
|  |  | ||||||
| @dircategory Mail | @dircategory Mail | ||||||
| @direntry | @direntry | ||||||
| @@ -19,7 +19,7 @@ | |||||||
| This file documents @code{mboxgrep} (version @value{VERSION}), a | This file documents @code{mboxgrep} (version @value{VERSION}), a | ||||||
| mailbox scanning utility. | mailbox scanning utility. | ||||||
|  |  | ||||||
| Copyright (C) 2000, 2001, 2002, 2003 Daniel Spiljar | Copyright (C) 2000 - 2003, 2024 Daniel Spiljar | ||||||
| @end ifinfo | @end ifinfo | ||||||
|  |  | ||||||
| @menu | @menu | ||||||
| @@ -171,10 +171,9 @@ Use with extreme caution. | |||||||
| @itemx -nd | @itemx -nd | ||||||
| Ignore duplicate messages. | Ignore duplicate messages. | ||||||
|  |  | ||||||
| @item --output=FOLDER | @item --output=MAILBOX | ||||||
| @itemx -o FOLDER | @itemx -o MAILBOX | ||||||
| Suppress normal output and write messages to destination folder FOLDER | Suppress normal output and write messages to destination MAILBOX instead. | ||||||
| instead.  |  | ||||||
|  |  | ||||||
| Note that @code{mboxgrep} assumes the output folder is of the same format  | Note that @code{mboxgrep} assumes the output folder is of the same format  | ||||||
| as the input folder.  Currently there is no possibility to convert folders. | as the input folder.  Currently there is no possibility to convert folders. | ||||||
|   | |||||||
							
								
								
									
										251
									
								
								install-sh
									
									
									
									
									
								
							
							
						
						
									
										251
									
								
								install-sh
									
									
									
									
									
								
							| @@ -1,251 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| # |  | ||||||
| # install - install a program, script, or datafile |  | ||||||
| # This comes from X11R5 (mit/util/scripts/install.sh). |  | ||||||
| # |  | ||||||
| # Copyright 1991 by the Massachusetts Institute of Technology |  | ||||||
| # |  | ||||||
| # Permission to use, copy, modify, distribute, and sell this software and its |  | ||||||
| # documentation for any purpose is hereby granted without fee, provided that |  | ||||||
| # the above copyright notice appear in all copies and that both that |  | ||||||
| # copyright notice and this permission notice appear in supporting |  | ||||||
| # documentation, and that the name of M.I.T. not be used in advertising or |  | ||||||
| # publicity pertaining to distribution of the software without specific, |  | ||||||
| # written prior permission.  M.I.T. makes no representations about the |  | ||||||
| # suitability of this software for any purpose.  It is provided "as is" |  | ||||||
| # without express or implied warranty. |  | ||||||
| # |  | ||||||
| # Calling this script install-sh is preferred over install.sh, to prevent |  | ||||||
| # `make' implicit rules from creating a file called install from it |  | ||||||
| # when there is no Makefile. |  | ||||||
| # |  | ||||||
| # This script is compatible with the BSD install script, but was written |  | ||||||
| # from scratch.  It can only install one file at a time, a restriction |  | ||||||
| # shared with many OS's install programs. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # set DOITPROG to echo to test this script |  | ||||||
|  |  | ||||||
| # Don't use :- since 4.3BSD and earlier shells don't like it. |  | ||||||
| doit="${DOITPROG-}" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # put in absolute paths if you don't have them in your path; or use env. vars. |  | ||||||
|  |  | ||||||
| mvprog="${MVPROG-mv}" |  | ||||||
| cpprog="${CPPROG-cp}" |  | ||||||
| chmodprog="${CHMODPROG-chmod}" |  | ||||||
| chownprog="${CHOWNPROG-chown}" |  | ||||||
| chgrpprog="${CHGRPPROG-chgrp}" |  | ||||||
| stripprog="${STRIPPROG-strip}" |  | ||||||
| rmprog="${RMPROG-rm}" |  | ||||||
| mkdirprog="${MKDIRPROG-mkdir}" |  | ||||||
|  |  | ||||||
| transformbasename="" |  | ||||||
| transform_arg="" |  | ||||||
| instcmd="$mvprog" |  | ||||||
| chmodcmd="$chmodprog 0755" |  | ||||||
| chowncmd="" |  | ||||||
| chgrpcmd="" |  | ||||||
| stripcmd="" |  | ||||||
| rmcmd="$rmprog -f" |  | ||||||
| mvcmd="$mvprog" |  | ||||||
| src="" |  | ||||||
| dst="" |  | ||||||
| dir_arg="" |  | ||||||
|  |  | ||||||
| while [ x"$1" != x ]; do |  | ||||||
|     case $1 in |  | ||||||
| 	-c) instcmd="$cpprog" |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-d) dir_arg=true |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-m) chmodcmd="$chmodprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-o) chowncmd="$chownprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-g) chgrpcmd="$chgrpprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-s) stripcmd="$stripprog" |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-t=*) transformarg=`echo $1 | sed 's/-t=//'` |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-b=*) transformbasename=`echo $1 | sed 's/-b=//'` |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	*)  if [ x"$src" = x ] |  | ||||||
| 	    then |  | ||||||
| 		src=$1 |  | ||||||
| 	    else |  | ||||||
| 		# this colon is to work around a 386BSD /bin/sh bug |  | ||||||
| 		: |  | ||||||
| 		dst=$1 |  | ||||||
| 	    fi |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|     esac |  | ||||||
| done |  | ||||||
|  |  | ||||||
| if [ x"$src" = x ] |  | ||||||
| then |  | ||||||
| 	echo "install:	no input file specified" |  | ||||||
| 	exit 1 |  | ||||||
| else |  | ||||||
| 	true |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ x"$dir_arg" != x ]; then |  | ||||||
| 	dst=$src |  | ||||||
| 	src="" |  | ||||||
| 	 |  | ||||||
| 	if [ -d $dst ]; then |  | ||||||
| 		instcmd=: |  | ||||||
| 		chmodcmd="" |  | ||||||
| 	else |  | ||||||
| 		instcmd=mkdir |  | ||||||
| 	fi |  | ||||||
| else |  | ||||||
|  |  | ||||||
| # Waiting for this to be detected by the "$instcmd $src $dsttmp" command |  | ||||||
| # might cause directories to be created, which would be especially bad  |  | ||||||
| # if $src (and thus $dsttmp) contains '*'. |  | ||||||
|  |  | ||||||
| 	if [ -f $src -o -d $src ] |  | ||||||
| 	then |  | ||||||
| 		true |  | ||||||
| 	else |  | ||||||
| 		echo "install:  $src does not exist" |  | ||||||
| 		exit 1 |  | ||||||
| 	fi |  | ||||||
| 	 |  | ||||||
| 	if [ x"$dst" = x ] |  | ||||||
| 	then |  | ||||||
| 		echo "install:	no destination specified" |  | ||||||
| 		exit 1 |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # If destination is a directory, append the input filename; if your system |  | ||||||
| # does not like double slashes in filenames, you may need to add some logic |  | ||||||
|  |  | ||||||
| 	if [ -d $dst ] |  | ||||||
| 	then |  | ||||||
| 		dst="$dst"/`basename $src` |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| ## this sed command emulates the dirname command |  | ||||||
| dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` |  | ||||||
|  |  | ||||||
| # Make sure that the destination directory exists. |  | ||||||
| #  this part is taken from Noah Friedman's mkinstalldirs script |  | ||||||
|  |  | ||||||
| # Skip lots of stat calls in the usual case. |  | ||||||
| if [ ! -d "$dstdir" ]; then |  | ||||||
| defaultIFS='	 |  | ||||||
| ' |  | ||||||
| IFS="${IFS-${defaultIFS}}" |  | ||||||
|  |  | ||||||
| oIFS="${IFS}" |  | ||||||
| # Some sh's can't handle IFS=/ for some reason. |  | ||||||
| IFS='%' |  | ||||||
| set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` |  | ||||||
| IFS="${oIFS}" |  | ||||||
|  |  | ||||||
| pathcomp='' |  | ||||||
|  |  | ||||||
| while [ $# -ne 0 ] ; do |  | ||||||
| 	pathcomp="${pathcomp}${1}" |  | ||||||
| 	shift |  | ||||||
|  |  | ||||||
| 	if [ ! -d "${pathcomp}" ] ; |  | ||||||
|         then |  | ||||||
| 		$mkdirprog "${pathcomp}" |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	pathcomp="${pathcomp}/" |  | ||||||
| done |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ x"$dir_arg" != x ] |  | ||||||
| then |  | ||||||
| 	$doit $instcmd $dst && |  | ||||||
|  |  | ||||||
| 	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi |  | ||||||
| else |  | ||||||
|  |  | ||||||
| # If we're going to rename the final executable, determine the name now. |  | ||||||
|  |  | ||||||
| 	if [ x"$transformarg" = x ]  |  | ||||||
| 	then |  | ||||||
| 		dstfile=`basename $dst` |  | ||||||
| 	else |  | ||||||
| 		dstfile=`basename $dst $transformbasename |  |  | ||||||
| 			sed $transformarg`$transformbasename |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # don't allow the sed command to completely eliminate the filename |  | ||||||
|  |  | ||||||
| 	if [ x"$dstfile" = x ]  |  | ||||||
| 	then |  | ||||||
| 		dstfile=`basename $dst` |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # Make a temp file name in the proper directory. |  | ||||||
|  |  | ||||||
| 	dsttmp=$dstdir/#inst.$$# |  | ||||||
|  |  | ||||||
| # Move or copy the file name to the temp name |  | ||||||
|  |  | ||||||
| 	$doit $instcmd $src $dsttmp && |  | ||||||
|  |  | ||||||
| 	trap "rm -f ${dsttmp}" 0 && |  | ||||||
|  |  | ||||||
| # and set any options; do chmod last to preserve setuid bits |  | ||||||
|  |  | ||||||
| # If any of these fail, we abort the whole thing.  If we want to |  | ||||||
| # ignore errors from any of these, just make sure not to ignore |  | ||||||
| # errors from the above "$doit $instcmd $src $dsttmp" command. |  | ||||||
|  |  | ||||||
| 	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && |  | ||||||
|  |  | ||||||
| # Now rename the file to the real destination. |  | ||||||
|  |  | ||||||
| 	$doit $rmcmd -f $dstdir/$dstfile && |  | ||||||
| 	$doit $mvcmd $dsttmp $dstdir/$dstfile  |  | ||||||
|  |  | ||||||
| fi && |  | ||||||
|  |  | ||||||
|  |  | ||||||
| exit 0 |  | ||||||
							
								
								
									
										215
									
								
								missing
									
									
									
									
									
								
							
							
						
						
									
										215
									
								
								missing
									
									
									
									
									
								
							| @@ -1,215 +0,0 @@ | |||||||
| #! /bin/sh |  | ||||||
| # Common wrapper for a few potentially missing GNU programs. |  | ||||||
|  |  | ||||||
| scriptversion=2018-03-07.03; # UTC |  | ||||||
|  |  | ||||||
| # Copyright (C) 1996-2020 Free Software Foundation, Inc. |  | ||||||
| # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |  | ||||||
|  |  | ||||||
| # This program is free software; you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU General Public License as published by |  | ||||||
| # the Free Software Foundation; either version 2, or (at your option) |  | ||||||
| # any later version. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| # GNU General Public License for more details. |  | ||||||
|  |  | ||||||
| # You should have received a copy of the GNU General Public License |  | ||||||
| # along with this program.  If not, see <https://www.gnu.org/licenses/>. |  | ||||||
|  |  | ||||||
| # As a special exception to the GNU General Public License, if you |  | ||||||
| # distribute this file as part of a program that contains a |  | ||||||
| # configuration script generated by Autoconf, you may include it under |  | ||||||
| # the same distribution terms that you use for the rest of that program. |  | ||||||
|  |  | ||||||
| if test $# -eq 0; then |  | ||||||
|   echo 1>&2 "Try '$0 --help' for more information" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| case $1 in |  | ||||||
|  |  | ||||||
|   --is-lightweight) |  | ||||||
|     # Used by our autoconf macros to check whether the available missing |  | ||||||
|     # script is modern enough. |  | ||||||
|     exit 0 |  | ||||||
|     ;; |  | ||||||
|  |  | ||||||
|   --run) |  | ||||||
|     # Back-compat with the calling convention used by older automake. |  | ||||||
|     shift |  | ||||||
|     ;; |  | ||||||
|  |  | ||||||
|   -h|--h|--he|--hel|--help) |  | ||||||
|     echo "\ |  | ||||||
| $0 [OPTION]... PROGRAM [ARGUMENT]... |  | ||||||
|  |  | ||||||
| Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due |  | ||||||
| to PROGRAM being missing or too old. |  | ||||||
|  |  | ||||||
| Options: |  | ||||||
|   -h, --help      display this help and exit |  | ||||||
|   -v, --version   output version information and exit |  | ||||||
|  |  | ||||||
| Supported PROGRAM values: |  | ||||||
|   aclocal   autoconf  autoheader   autom4te  automake  makeinfo |  | ||||||
|   bison     yacc      flex         lex       help2man |  | ||||||
|  |  | ||||||
| Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and |  | ||||||
| 'g' are ignored when checking the name. |  | ||||||
|  |  | ||||||
| Send bug reports to <bug-automake@gnu.org>." |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
|  |  | ||||||
|   -v|--v|--ve|--ver|--vers|--versi|--versio|--version) |  | ||||||
|     echo "missing $scriptversion (GNU Automake)" |  | ||||||
|     exit $? |  | ||||||
|     ;; |  | ||||||
|  |  | ||||||
|   -*) |  | ||||||
|     echo 1>&2 "$0: unknown '$1' option" |  | ||||||
|     echo 1>&2 "Try '$0 --help' for more information" |  | ||||||
|     exit 1 |  | ||||||
|     ;; |  | ||||||
|  |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| # Run the given program, remember its exit status. |  | ||||||
| "$@"; st=$? |  | ||||||
|  |  | ||||||
| # If it succeeded, we are done. |  | ||||||
| test $st -eq 0 && exit 0 |  | ||||||
|  |  | ||||||
| # Also exit now if we it failed (or wasn't found), and '--version' was |  | ||||||
| # passed; such an option is passed most likely to detect whether the |  | ||||||
| # program is present and works. |  | ||||||
| case $2 in --version|--help) exit $st;; esac |  | ||||||
|  |  | ||||||
| # Exit code 63 means version mismatch.  This often happens when the user |  | ||||||
| # tries to use an ancient version of a tool on a file that requires a |  | ||||||
| # minimum version. |  | ||||||
| if test $st -eq 63; then |  | ||||||
|   msg="probably too old" |  | ||||||
| elif test $st -eq 127; then |  | ||||||
|   # Program was missing. |  | ||||||
|   msg="missing on your system" |  | ||||||
| else |  | ||||||
|   # Program was found and executed, but failed.  Give up. |  | ||||||
|   exit $st |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| perl_URL=https://www.perl.org/ |  | ||||||
| flex_URL=https://github.com/westes/flex |  | ||||||
| gnu_software_URL=https://www.gnu.org/software |  | ||||||
|  |  | ||||||
| program_details () |  | ||||||
| { |  | ||||||
|   case $1 in |  | ||||||
|     aclocal|automake) |  | ||||||
|       echo "The '$1' program is part of the GNU Automake package:" |  | ||||||
|       echo "<$gnu_software_URL/automake>" |  | ||||||
|       echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" |  | ||||||
|       echo "<$gnu_software_URL/autoconf>" |  | ||||||
|       echo "<$gnu_software_URL/m4/>" |  | ||||||
|       echo "<$perl_URL>" |  | ||||||
|       ;; |  | ||||||
|     autoconf|autom4te|autoheader) |  | ||||||
|       echo "The '$1' program is part of the GNU Autoconf package:" |  | ||||||
|       echo "<$gnu_software_URL/autoconf/>" |  | ||||||
|       echo "It also requires GNU m4 and Perl in order to run:" |  | ||||||
|       echo "<$gnu_software_URL/m4/>" |  | ||||||
|       echo "<$perl_URL>" |  | ||||||
|       ;; |  | ||||||
|   esac |  | ||||||
| } |  | ||||||
|  |  | ||||||
| give_advice () |  | ||||||
| { |  | ||||||
|   # Normalize program name to check for. |  | ||||||
|   normalized_program=`echo "$1" | sed ' |  | ||||||
|     s/^gnu-//; t |  | ||||||
|     s/^gnu//; t |  | ||||||
|     s/^g//; t'` |  | ||||||
|  |  | ||||||
|   printf '%s\n' "'$1' is $msg." |  | ||||||
|  |  | ||||||
|   configure_deps="'configure.ac' or m4 files included by 'configure.ac'" |  | ||||||
|   case $normalized_program in |  | ||||||
|     autoconf*) |  | ||||||
|       echo "You should only need it if you modified 'configure.ac'," |  | ||||||
|       echo "or m4 files included by it." |  | ||||||
|       program_details 'autoconf' |  | ||||||
|       ;; |  | ||||||
|     autoheader*) |  | ||||||
|       echo "You should only need it if you modified 'acconfig.h' or" |  | ||||||
|       echo "$configure_deps." |  | ||||||
|       program_details 'autoheader' |  | ||||||
|       ;; |  | ||||||
|     automake*) |  | ||||||
|       echo "You should only need it if you modified 'Makefile.am' or" |  | ||||||
|       echo "$configure_deps." |  | ||||||
|       program_details 'automake' |  | ||||||
|       ;; |  | ||||||
|     aclocal*) |  | ||||||
|       echo "You should only need it if you modified 'acinclude.m4' or" |  | ||||||
|       echo "$configure_deps." |  | ||||||
|       program_details 'aclocal' |  | ||||||
|       ;; |  | ||||||
|    autom4te*) |  | ||||||
|       echo "You might have modified some maintainer files that require" |  | ||||||
|       echo "the 'autom4te' program to be rebuilt." |  | ||||||
|       program_details 'autom4te' |  | ||||||
|       ;; |  | ||||||
|     bison*|yacc*) |  | ||||||
|       echo "You should only need it if you modified a '.y' file." |  | ||||||
|       echo "You may want to install the GNU Bison package:" |  | ||||||
|       echo "<$gnu_software_URL/bison/>" |  | ||||||
|       ;; |  | ||||||
|     lex*|flex*) |  | ||||||
|       echo "You should only need it if you modified a '.l' file." |  | ||||||
|       echo "You may want to install the Fast Lexical Analyzer package:" |  | ||||||
|       echo "<$flex_URL>" |  | ||||||
|       ;; |  | ||||||
|     help2man*) |  | ||||||
|       echo "You should only need it if you modified a dependency" \ |  | ||||||
|            "of a man page." |  | ||||||
|       echo "You may want to install the GNU Help2man package:" |  | ||||||
|       echo "<$gnu_software_URL/help2man/>" |  | ||||||
|     ;; |  | ||||||
|     makeinfo*) |  | ||||||
|       echo "You should only need it if you modified a '.texi' file, or" |  | ||||||
|       echo "any other file indirectly affecting the aspect of the manual." |  | ||||||
|       echo "You might want to install the Texinfo package:" |  | ||||||
|       echo "<$gnu_software_URL/texinfo/>" |  | ||||||
|       echo "The spurious makeinfo call might also be the consequence of" |  | ||||||
|       echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" |  | ||||||
|       echo "want to install GNU make:" |  | ||||||
|       echo "<$gnu_software_URL/make/>" |  | ||||||
|       ;; |  | ||||||
|     *) |  | ||||||
|       echo "You might have modified some files without having the proper" |  | ||||||
|       echo "tools for further handling them.  Check the 'README' file, it" |  | ||||||
|       echo "often tells you about the needed prerequisites for installing" |  | ||||||
|       echo "this package.  You may also peek at any GNU archive site, in" |  | ||||||
|       echo "case some other package contains this missing '$1' program." |  | ||||||
|       ;; |  | ||||||
|   esac |  | ||||||
| } |  | ||||||
|  |  | ||||||
| give_advice "$1" | sed -e '1s/^/WARNING: /' \ |  | ||||||
|                        -e '2,$s/^/         /' >&2 |  | ||||||
|  |  | ||||||
| # Propagate the correct exit status (expected to be 127 for a program |  | ||||||
| # not found, 63 for a program that failed due to version mismatch). |  | ||||||
| exit $st |  | ||||||
|  |  | ||||||
| # Local variables: |  | ||||||
| # eval: (add-hook 'before-save-hook 'time-stamp) |  | ||||||
| # time-stamp-start: "scriptversion=" |  | ||||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" |  | ||||||
| # time-stamp-time-zone: "UTC0" |  | ||||||
| # time-stamp-end: "; # UTC" |  | ||||||
| # End: |  | ||||||
| @@ -1,4 +1,6 @@ | |||||||
| bin_PROGRAMS = mboxgrep | bin_PROGRAMS = mboxgrep | ||||||
| mboxgrep_SOURCES = getopt1.c getopt.c info.c maildir.c main.c mbox.c md5.c mh.c misc.c re.c scan.c wrap.c | mboxgrep_SOURCES = info.c info.h maildir.c maildir.h main.c mbox.c mbox.h \ | ||||||
| mboxgrep_LDADD = $(LIBOBJS) | 									 mboxgrep.h md5.c md5.h message.h misc.c misc.h mh.c mh.h \ | ||||||
|  | 									 getopt.c getopt1.c getopt.h re.c re.h scan.c scan.h wrap.c wrap.h | ||||||
|  |  | ||||||
|  | mboxgrep_LDADD = $(LIBOBJS) | ||||||
|   | |||||||
							
								
								
									
										631
									
								
								src/Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										631
									
								
								src/Makefile.in
									
									
									
									
									
								
							| @@ -1,631 +0,0 @@ | |||||||
| # Makefile.in generated by automake 1.16.3 from Makefile.am. |  | ||||||
| # @configure_input@ |  | ||||||
|  |  | ||||||
| # Copyright (C) 1994-2020 Free Software Foundation, Inc. |  | ||||||
|  |  | ||||||
| # This Makefile.in is free software; the Free Software Foundation |  | ||||||
| # gives unlimited permission to copy and/or distribute it, |  | ||||||
| # with or without modifications, as long as this notice is preserved. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without |  | ||||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |  | ||||||
| # PARTICULAR PURPOSE. |  | ||||||
|  |  | ||||||
| @SET_MAKE@ |  | ||||||
|  |  | ||||||
| VPATH = @srcdir@ |  | ||||||
| am__is_gnu_make = { \ |  | ||||||
|   if test -z '$(MAKELEVEL)'; then \ |  | ||||||
|     false; \ |  | ||||||
|   elif test -n '$(MAKE_HOST)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ |  | ||||||
|     true; \ |  | ||||||
|   else \ |  | ||||||
|     false; \ |  | ||||||
|   fi; \ |  | ||||||
| } |  | ||||||
| am__make_running_with_option = \ |  | ||||||
|   case $${target_option-} in \ |  | ||||||
|       ?) ;; \ |  | ||||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ |  | ||||||
|               "target option '$${target_option-}' specified" >&2; \ |  | ||||||
|          exit 1;; \ |  | ||||||
|   esac; \ |  | ||||||
|   has_opt=no; \ |  | ||||||
|   sane_makeflags=$$MAKEFLAGS; \ |  | ||||||
|   if $(am__is_gnu_make); then \ |  | ||||||
|     sane_makeflags=$$MFLAGS; \ |  | ||||||
|   else \ |  | ||||||
|     case $$MAKEFLAGS in \ |  | ||||||
|       *\\[\ \	]*) \ |  | ||||||
|         bs=\\; \ |  | ||||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |  | ||||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ |  | ||||||
|     esac; \ |  | ||||||
|   fi; \ |  | ||||||
|   skip_next=no; \ |  | ||||||
|   strip_trailopt () \ |  | ||||||
|   { \ |  | ||||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |  | ||||||
|   }; \ |  | ||||||
|   for flg in $$sane_makeflags; do \ |  | ||||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *=*|--*) continue;; \ |  | ||||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ |  | ||||||
|       -*I?*) strip_trailopt 'I';; \ |  | ||||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ |  | ||||||
|       -*O?*) strip_trailopt 'O';; \ |  | ||||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ |  | ||||||
|       -*l?*) strip_trailopt 'l';; \ |  | ||||||
|       -[dEDm]) skip_next=yes;; \ |  | ||||||
|       -[JT]) skip_next=yes;; \ |  | ||||||
|     esac; \ |  | ||||||
|     case $$flg in \ |  | ||||||
|       *$$target_option*) has_opt=yes; break;; \ |  | ||||||
|     esac; \ |  | ||||||
|   done; \ |  | ||||||
|   test $$has_opt = yes |  | ||||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |  | ||||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |  | ||||||
| pkgdatadir = $(datadir)/@PACKAGE@ |  | ||||||
| pkgincludedir = $(includedir)/@PACKAGE@ |  | ||||||
| pkglibdir = $(libdir)/@PACKAGE@ |  | ||||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ |  | ||||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |  | ||||||
| install_sh_DATA = $(install_sh) -c -m 644 |  | ||||||
| install_sh_PROGRAM = $(install_sh) -c |  | ||||||
| install_sh_SCRIPT = $(install_sh) -c |  | ||||||
| INSTALL_HEADER = $(INSTALL_DATA) |  | ||||||
| transform = $(program_transform_name) |  | ||||||
| NORMAL_INSTALL = : |  | ||||||
| PRE_INSTALL = : |  | ||||||
| POST_INSTALL = : |  | ||||||
| NORMAL_UNINSTALL = : |  | ||||||
| PRE_UNINSTALL = : |  | ||||||
| POST_UNINSTALL = : |  | ||||||
| bin_PROGRAMS = mboxgrep$(EXEEXT) |  | ||||||
| subdir = src |  | ||||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |  | ||||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac |  | ||||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |  | ||||||
| 	$(ACLOCAL_M4) |  | ||||||
| DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) |  | ||||||
| mkinstalldirs = $(install_sh) -d |  | ||||||
| CONFIG_HEADER = config.h |  | ||||||
| CONFIG_CLEAN_FILES = |  | ||||||
| CONFIG_CLEAN_VPATH_FILES = |  | ||||||
| am__installdirs = "$(DESTDIR)$(bindir)" |  | ||||||
| PROGRAMS = $(bin_PROGRAMS) |  | ||||||
| am_mboxgrep_OBJECTS = getopt1.$(OBJEXT) getopt.$(OBJEXT) \ |  | ||||||
| 	info.$(OBJEXT) maildir.$(OBJEXT) main.$(OBJEXT) mbox.$(OBJEXT) \ |  | ||||||
| 	md5.$(OBJEXT) mh.$(OBJEXT) misc.$(OBJEXT) re.$(OBJEXT) \ |  | ||||||
| 	scan.$(OBJEXT) wrap.$(OBJEXT) |  | ||||||
| mboxgrep_OBJECTS = $(am_mboxgrep_OBJECTS) |  | ||||||
| mboxgrep_DEPENDENCIES = $(LIBOBJS) |  | ||||||
| AM_V_P = $(am__v_P_@AM_V@) |  | ||||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |  | ||||||
| am__v_P_0 = false |  | ||||||
| am__v_P_1 = : |  | ||||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) |  | ||||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |  | ||||||
| am__v_GEN_0 = @echo "  GEN     " $@; |  | ||||||
| am__v_GEN_1 =  |  | ||||||
| AM_V_at = $(am__v_at_@AM_V@) |  | ||||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |  | ||||||
| am__v_at_0 = @ |  | ||||||
| am__v_at_1 =  |  | ||||||
| DEFAULT_INCLUDES = -I.@am__isrc@ |  | ||||||
| depcomp = $(SHELL) $(top_srcdir)/depcomp |  | ||||||
| am__maybe_remake_depfiles = depfiles |  | ||||||
| am__depfiles_remade = ./$(DEPDIR)/getopt.Po ./$(DEPDIR)/getopt1.Po \ |  | ||||||
| 	./$(DEPDIR)/info.Po ./$(DEPDIR)/maildir.Po ./$(DEPDIR)/main.Po \ |  | ||||||
| 	./$(DEPDIR)/mbox.Po ./$(DEPDIR)/md5.Po ./$(DEPDIR)/mh.Po \ |  | ||||||
| 	./$(DEPDIR)/misc.Po ./$(DEPDIR)/re.Po ./$(DEPDIR)/scan.Po \ |  | ||||||
| 	./$(DEPDIR)/wrap.Po |  | ||||||
| am__mv = mv -f |  | ||||||
| COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |  | ||||||
| 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |  | ||||||
| AM_V_CC = $(am__v_CC_@AM_V@) |  | ||||||
| am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |  | ||||||
| am__v_CC_0 = @echo "  CC      " $@; |  | ||||||
| am__v_CC_1 =  |  | ||||||
| CCLD = $(CC) |  | ||||||
| LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ |  | ||||||
| AM_V_CCLD = $(am__v_CCLD_@AM_V@) |  | ||||||
| am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |  | ||||||
| am__v_CCLD_0 = @echo "  CCLD    " $@; |  | ||||||
| am__v_CCLD_1 =  |  | ||||||
| SOURCES = $(mboxgrep_SOURCES) |  | ||||||
| DIST_SOURCES = $(mboxgrep_SOURCES) |  | ||||||
| am__can_run_installinfo = \ |  | ||||||
|   case $$AM_UPDATE_INFO_DIR in \ |  | ||||||
|     n|no|NO) false;; \ |  | ||||||
|     *) (install-info --version) >/dev/null 2>&1;; \ |  | ||||||
|   esac |  | ||||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ |  | ||||||
| 	config.h.in |  | ||||||
| # Read a list of newline-separated strings from the standard input, |  | ||||||
| # and print each of them once, without duplicates.  Input order is |  | ||||||
| # *not* preserved. |  | ||||||
| am__uniquify_input = $(AWK) '\ |  | ||||||
|   BEGIN { nonempty = 0; } \ |  | ||||||
|   { items[$$0] = 1; nonempty = 1; } \ |  | ||||||
|   END { if (nonempty) { for (i in items) print i; }; } \ |  | ||||||
| ' |  | ||||||
| # Make sure the list of sources is unique.  This is necessary because, |  | ||||||
| # e.g., the same source file might be shared among _SOURCES variables |  | ||||||
| # for different programs/libraries. |  | ||||||
| am__define_uniq_tagged_files = \ |  | ||||||
|   list='$(am__tagged_files)'; \ |  | ||||||
|   unique=`for i in $$list; do \ |  | ||||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |  | ||||||
|   done | $(am__uniquify_input)` |  | ||||||
| ETAGS = etags |  | ||||||
| CTAGS = ctags |  | ||||||
| am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ |  | ||||||
| 	$(top_srcdir)/depcomp |  | ||||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |  | ||||||
| ACLOCAL = @ACLOCAL@ |  | ||||||
| AMTAR = @AMTAR@ |  | ||||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |  | ||||||
| AUTOCONF = @AUTOCONF@ |  | ||||||
| AUTOHEADER = @AUTOHEADER@ |  | ||||||
| AUTOMAKE = @AUTOMAKE@ |  | ||||||
| AWK = @AWK@ |  | ||||||
| CC = @CC@ |  | ||||||
| CCDEPMODE = @CCDEPMODE@ |  | ||||||
| CFLAGS = @CFLAGS@ |  | ||||||
| CPP = @CPP@ |  | ||||||
| CPPFLAGS = @CPPFLAGS@ |  | ||||||
| CYGPATH_W = @CYGPATH_W@ |  | ||||||
| DEFS = @DEFS@ |  | ||||||
| DEPDIR = @DEPDIR@ |  | ||||||
| ECHO_C = @ECHO_C@ |  | ||||||
| ECHO_N = @ECHO_N@ |  | ||||||
| ECHO_T = @ECHO_T@ |  | ||||||
| EGREP = @EGREP@ |  | ||||||
| EXEEXT = @EXEEXT@ |  | ||||||
| GREP = @GREP@ |  | ||||||
| INSTALL = @INSTALL@ |  | ||||||
| INSTALL_DATA = @INSTALL_DATA@ |  | ||||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |  | ||||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ |  | ||||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |  | ||||||
| LDFLAGS = @LDFLAGS@ |  | ||||||
| LIBOBJS = @LIBOBJS@ |  | ||||||
| LIBS = @LIBS@ |  | ||||||
| LTLIBOBJS = @LTLIBOBJS@ |  | ||||||
| MAKEINFO = @MAKEINFO@ |  | ||||||
| MKDIR_P = @MKDIR_P@ |  | ||||||
| OBJEXT = @OBJEXT@ |  | ||||||
| PACKAGE = @PACKAGE@ |  | ||||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |  | ||||||
| PACKAGE_NAME = @PACKAGE_NAME@ |  | ||||||
| PACKAGE_STRING = @PACKAGE_STRING@ |  | ||||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ |  | ||||||
| PACKAGE_URL = @PACKAGE_URL@ |  | ||||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ |  | ||||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ |  | ||||||
| PCRE_CONFIG = @PCRE_CONFIG@ |  | ||||||
| SET_MAKE = @SET_MAKE@ |  | ||||||
| SHELL = @SHELL@ |  | ||||||
| STRIP = @STRIP@ |  | ||||||
| VERSION = @VERSION@ |  | ||||||
| abs_builddir = @abs_builddir@ |  | ||||||
| abs_srcdir = @abs_srcdir@ |  | ||||||
| abs_top_builddir = @abs_top_builddir@ |  | ||||||
| abs_top_srcdir = @abs_top_srcdir@ |  | ||||||
| ac_ct_CC = @ac_ct_CC@ |  | ||||||
| am__include = @am__include@ |  | ||||||
| am__leading_dot = @am__leading_dot@ |  | ||||||
| am__quote = @am__quote@ |  | ||||||
| am__tar = @am__tar@ |  | ||||||
| am__untar = @am__untar@ |  | ||||||
| bindir = @bindir@ |  | ||||||
| build_alias = @build_alias@ |  | ||||||
| builddir = @builddir@ |  | ||||||
| datadir = @datadir@ |  | ||||||
| datarootdir = @datarootdir@ |  | ||||||
| docdir = @docdir@ |  | ||||||
| dvidir = @dvidir@ |  | ||||||
| exec_prefix = @exec_prefix@ |  | ||||||
| host_alias = @host_alias@ |  | ||||||
| htmldir = @htmldir@ |  | ||||||
| includedir = @includedir@ |  | ||||||
| infodir = @infodir@ |  | ||||||
| install_sh = @install_sh@ |  | ||||||
| libdir = @libdir@ |  | ||||||
| libexecdir = @libexecdir@ |  | ||||||
| localedir = @localedir@ |  | ||||||
| localstatedir = @localstatedir@ |  | ||||||
| mandir = @mandir@ |  | ||||||
| mkdir_p = @mkdir_p@ |  | ||||||
| oldincludedir = @oldincludedir@ |  | ||||||
| pdfdir = @pdfdir@ |  | ||||||
| prefix = @prefix@ |  | ||||||
| program_transform_name = @program_transform_name@ |  | ||||||
| psdir = @psdir@ |  | ||||||
| runstatedir = @runstatedir@ |  | ||||||
| sbindir = @sbindir@ |  | ||||||
| sharedstatedir = @sharedstatedir@ |  | ||||||
| srcdir = @srcdir@ |  | ||||||
| sysconfdir = @sysconfdir@ |  | ||||||
| target_alias = @target_alias@ |  | ||||||
| top_build_prefix = @top_build_prefix@ |  | ||||||
| top_builddir = @top_builddir@ |  | ||||||
| top_srcdir = @top_srcdir@ |  | ||||||
| mboxgrep_SOURCES = getopt1.c getopt.c info.c maildir.c main.c mbox.c md5.c mh.c misc.c re.c scan.c wrap.c |  | ||||||
| mboxgrep_LDADD = $(LIBOBJS) |  | ||||||
| all: config.h |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) 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 src/Makefile'; \ |  | ||||||
| 	$(am__cd) $(top_srcdir) && \ |  | ||||||
| 	  $(AUTOMAKE) --foreign src/Makefile |  | ||||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |  | ||||||
| 	@case '$?' in \ |  | ||||||
| 	  *config.status*) \ |  | ||||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |  | ||||||
| 	  *) \ |  | ||||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ |  | ||||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ |  | ||||||
| 	esac; |  | ||||||
|  |  | ||||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |  | ||||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |  | ||||||
|  |  | ||||||
| $(top_srcdir)/configure:  $(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): |  | ||||||
|  |  | ||||||
| config.h: stamp-h1 |  | ||||||
| 	@test -f $@ || rm -f stamp-h1 |  | ||||||
| 	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 |  | ||||||
|  |  | ||||||
| stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status |  | ||||||
| 	@rm -f stamp-h1 |  | ||||||
| 	cd $(top_builddir) && $(SHELL) ./config.status src/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 |  | ||||||
| install-binPROGRAMS: $(bin_PROGRAMS) |  | ||||||
| 	@$(NORMAL_INSTALL) |  | ||||||
| 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ |  | ||||||
| 	if test -n "$$list"; then \ |  | ||||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ |  | ||||||
| 	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ |  | ||||||
| 	fi; \ |  | ||||||
| 	for p in $$list; do echo "$$p $$p"; done | \ |  | ||||||
| 	sed 's/$(EXEEXT)$$//' | \ |  | ||||||
| 	while read p p1; do if test -f $$p \ |  | ||||||
| 	  ; 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) |  | ||||||
|  |  | ||||||
| mboxgrep$(EXEEXT): $(mboxgrep_OBJECTS) $(mboxgrep_DEPENDENCIES) $(EXTRA_mboxgrep_DEPENDENCIES)  |  | ||||||
| 	@rm -f mboxgrep$(EXEEXT) |  | ||||||
| 	$(AM_V_CCLD)$(LINK) $(mboxgrep_OBJECTS) $(mboxgrep_LDADD) $(LIBS) |  | ||||||
|  |  | ||||||
| mostlyclean-compile: |  | ||||||
| 	-rm -f *.$(OBJEXT) |  | ||||||
|  |  | ||||||
| distclean-compile: |  | ||||||
| 	-rm -f *.tab.c |  | ||||||
|  |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maildir.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbox.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mh.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/re.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scan.Po@am__quote@ # am--include-marker |  | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wrap.Po@am__quote@ # am--include-marker |  | ||||||
|  |  | ||||||
| $(am__depfiles_remade): |  | ||||||
| 	@$(MKDIR_P) $(@D) |  | ||||||
| 	@echo '# dummy' >$@-t && $(am__mv) $@-t $@ |  | ||||||
|  |  | ||||||
| am--depfiles: $(am__depfiles_remade) |  | ||||||
|  |  | ||||||
| .c.o: |  | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |  | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |  | ||||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |  | ||||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |  | ||||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |  | ||||||
|  |  | ||||||
| .c.obj: |  | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |  | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |  | ||||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |  | ||||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |  | ||||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |  | ||||||
|  |  | ||||||
| ID: $(am__tagged_files) |  | ||||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique |  | ||||||
| tags: tags-am |  | ||||||
| TAGS: tags |  | ||||||
|  |  | ||||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |  | ||||||
| 	set x; \ |  | ||||||
| 	here=`pwd`; \ |  | ||||||
| 	$(am__define_uniq_tagged_files); \ |  | ||||||
| 	shift; \ |  | ||||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |  | ||||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ |  | ||||||
| 	  if test $$# -gt 0; then \ |  | ||||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |  | ||||||
| 	      "$$@" $$unique; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |  | ||||||
| 	      $$unique; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	fi |  | ||||||
| ctags: ctags-am |  | ||||||
|  |  | ||||||
| CTAGS: ctags |  | ||||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |  | ||||||
| 	$(am__define_uniq_tagged_files); \ |  | ||||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ |  | ||||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |  | ||||||
| 	     $$unique |  | ||||||
|  |  | ||||||
| GTAGS: |  | ||||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ |  | ||||||
| 	  && $(am__cd) $(top_srcdir) \ |  | ||||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" |  | ||||||
| cscopelist: cscopelist-am |  | ||||||
|  |  | ||||||
| cscopelist-am: $(am__tagged_files) |  | ||||||
| 	list='$(am__tagged_files)'; \ |  | ||||||
| 	case "$(srcdir)" in \ |  | ||||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |  | ||||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for i in $$list; do \ |  | ||||||
| 	  if test -f "$$i"; then \ |  | ||||||
| 	    echo "$(subdir)/$$i"; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    echo "$$sdir/$$i"; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done >> $(top_builddir)/cscope.files |  | ||||||
|  |  | ||||||
| distclean-tags: |  | ||||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |  | ||||||
|  |  | ||||||
| distdir: $(BUILT_SOURCES) |  | ||||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am |  | ||||||
|  |  | ||||||
| distdir-am: $(DISTFILES) |  | ||||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |  | ||||||
| 	list='$(DISTFILES)'; \ |  | ||||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ |  | ||||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ |  | ||||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |  | ||||||
| 	case $$dist_files in \ |  | ||||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ |  | ||||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |  | ||||||
| 			   sort -u` ;; \ |  | ||||||
| 	esac; \ |  | ||||||
| 	for file in $$dist_files; do \ |  | ||||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |  | ||||||
| 	  if test -d $$d/$$file; then \ |  | ||||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |  | ||||||
| 	    if test -d "$(distdir)/$$file"; then \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |  | ||||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |  | ||||||
| 	    fi; \ |  | ||||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |  | ||||||
| 	  else \ |  | ||||||
| 	    test -f "$(distdir)/$$file" \ |  | ||||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ |  | ||||||
| 	    || exit 1; \ |  | ||||||
| 	  fi; \ |  | ||||||
| 	done |  | ||||||
| check-am: all-am |  | ||||||
| check: check-am |  | ||||||
| all-am: Makefile $(PROGRAMS) config.h |  | ||||||
| installdirs: |  | ||||||
| 	for dir in "$(DESTDIR)$(bindir)"; do \ |  | ||||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |  | ||||||
| 	done |  | ||||||
| install: install-am |  | ||||||
| install-exec: install-exec-am |  | ||||||
| install-data: install-data-am |  | ||||||
| uninstall: uninstall-am |  | ||||||
|  |  | ||||||
| install-am: all-am |  | ||||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |  | ||||||
|  |  | ||||||
| installcheck: installcheck-am |  | ||||||
| install-strip: |  | ||||||
| 	if test -z '$(STRIP)'; then \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	      install; \ |  | ||||||
| 	else \ |  | ||||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |  | ||||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |  | ||||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |  | ||||||
| 	fi |  | ||||||
| mostlyclean-generic: |  | ||||||
|  |  | ||||||
| clean-generic: |  | ||||||
|  |  | ||||||
| distclean-generic: |  | ||||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |  | ||||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |  | ||||||
|  |  | ||||||
| maintainer-clean-generic: |  | ||||||
| 	@echo "This command is intended for maintainers to use" |  | ||||||
| 	@echo "it deletes files that may require special tools to rebuild." |  | ||||||
| clean: clean-am |  | ||||||
|  |  | ||||||
| clean-am: clean-binPROGRAMS clean-generic mostlyclean-am |  | ||||||
|  |  | ||||||
| distclean: distclean-am |  | ||||||
| 		-rm -f ./$(DEPDIR)/getopt.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/getopt1.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/info.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/maildir.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/main.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/mbox.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/md5.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/mh.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/misc.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/re.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/scan.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/wrap.Po |  | ||||||
| 	-rm -f Makefile |  | ||||||
| distclean-am: clean-am distclean-compile distclean-generic \ |  | ||||||
| 	distclean-hdr distclean-tags |  | ||||||
|  |  | ||||||
| dvi: dvi-am |  | ||||||
|  |  | ||||||
| dvi-am: |  | ||||||
|  |  | ||||||
| html: html-am |  | ||||||
|  |  | ||||||
| html-am: |  | ||||||
|  |  | ||||||
| info: info-am |  | ||||||
|  |  | ||||||
| info-am: |  | ||||||
|  |  | ||||||
| install-data-am: |  | ||||||
|  |  | ||||||
| install-dvi: install-dvi-am |  | ||||||
|  |  | ||||||
| install-dvi-am: |  | ||||||
|  |  | ||||||
| install-exec-am: install-binPROGRAMS |  | ||||||
|  |  | ||||||
| install-html: install-html-am |  | ||||||
|  |  | ||||||
| install-html-am: |  | ||||||
|  |  | ||||||
| install-info: install-info-am |  | ||||||
|  |  | ||||||
| install-info-am: |  | ||||||
|  |  | ||||||
| install-man: |  | ||||||
|  |  | ||||||
| install-pdf: install-pdf-am |  | ||||||
|  |  | ||||||
| install-pdf-am: |  | ||||||
|  |  | ||||||
| install-ps: install-ps-am |  | ||||||
|  |  | ||||||
| install-ps-am: |  | ||||||
|  |  | ||||||
| installcheck-am: |  | ||||||
|  |  | ||||||
| maintainer-clean: maintainer-clean-am |  | ||||||
| 		-rm -f ./$(DEPDIR)/getopt.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/getopt1.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/info.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/maildir.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/main.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/mbox.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/md5.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/mh.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/misc.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/re.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/scan.Po |  | ||||||
| 	-rm -f ./$(DEPDIR)/wrap.Po |  | ||||||
| 	-rm -f Makefile |  | ||||||
| maintainer-clean-am: distclean-am maintainer-clean-generic |  | ||||||
|  |  | ||||||
| mostlyclean: mostlyclean-am |  | ||||||
|  |  | ||||||
| mostlyclean-am: mostlyclean-compile mostlyclean-generic |  | ||||||
|  |  | ||||||
| pdf: pdf-am |  | ||||||
|  |  | ||||||
| pdf-am: |  | ||||||
|  |  | ||||||
| ps: ps-am |  | ||||||
|  |  | ||||||
| ps-am: |  | ||||||
|  |  | ||||||
| uninstall-am: uninstall-binPROGRAMS |  | ||||||
|  |  | ||||||
| .MAKE: all install-am install-strip |  | ||||||
|  |  | ||||||
| .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ |  | ||||||
| 	clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ |  | ||||||
| 	distclean distclean-compile distclean-generic distclean-hdr \ |  | ||||||
| 	distclean-tags distdir dvi dvi-am html html-am info info-am \ |  | ||||||
| 	install install-am install-binPROGRAMS install-data \ |  | ||||||
| 	install-data-am install-dvi install-dvi-am install-exec \ |  | ||||||
| 	install-exec-am install-html install-html-am install-info \ |  | ||||||
| 	install-info-am install-man install-pdf install-pdf-am \ |  | ||||||
| 	install-ps install-ps-am install-strip installcheck \ |  | ||||||
| 	installcheck-am installdirs maintainer-clean \ |  | ||||||
| 	maintainer-clean-generic mostlyclean mostlyclean-compile \ |  | ||||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ |  | ||||||
| 	uninstall-am uninstall-binPROGRAMS |  | ||||||
|  |  | ||||||
| .PRECIOUS: Makefile |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. |  | ||||||
| # Otherwise a system limit (for SysV at least) may be exceeded. |  | ||||||
| .NOEXPORT: |  | ||||||
| @@ -1,76 +0,0 @@ | |||||||
| /* src/config.h.in.  Generated from configure.ac by autoheader.  */ |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. |  | ||||||
|    */ |  | ||||||
| #undef HAVE_DIRENT_H |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `fcntl' function. */ |  | ||||||
| #undef HAVE_FCNTL |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `flock' function. */ |  | ||||||
| #undef HAVE_FLOCK |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `fts_open' function. */ |  | ||||||
| #undef HAVE_FTS_OPEN |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `ftw' function. */ |  | ||||||
| #undef HAVE_FTW |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `bz2' library (-lbz2). */ |  | ||||||
| #undef HAVE_LIBBZ2 |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ |  | ||||||
| #undef HAVE_LIBDMALLOC |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `garfield' library (-lgarfield). */ |  | ||||||
| #undef HAVE_LIBGARFIELD |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `pcre' library (-lpcre). */ |  | ||||||
| #undef HAVE_LIBPCRE |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `z' library (-lz). */ |  | ||||||
| #undef HAVE_LIBZ |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ |  | ||||||
| #undef HAVE_NDIR_H |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `regcomp' function. */ |  | ||||||
| #undef HAVE_REGCOMP |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the `strptime' function. */ |  | ||||||
| #undef HAVE_STRPTIME |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. |  | ||||||
|    */ |  | ||||||
| #undef HAVE_SYS_DIR_H |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. |  | ||||||
|    */ |  | ||||||
| #undef HAVE_SYS_NDIR_H |  | ||||||
|  |  | ||||||
| /* Name of package */ |  | ||||||
| #undef PACKAGE |  | ||||||
|  |  | ||||||
| /* Define to the address where bug reports for this package should be sent. */ |  | ||||||
| #undef PACKAGE_BUGREPORT |  | ||||||
|  |  | ||||||
| /* Define to the full name of this package. */ |  | ||||||
| #undef PACKAGE_NAME |  | ||||||
|  |  | ||||||
| /* Define to the full name and version of this package. */ |  | ||||||
| #undef PACKAGE_STRING |  | ||||||
|  |  | ||||||
| /* Define to the one symbol short name of this package. */ |  | ||||||
| #undef PACKAGE_TARNAME |  | ||||||
|  |  | ||||||
| /* Define to the home page for this package. */ |  | ||||||
| #undef PACKAGE_URL |  | ||||||
|  |  | ||||||
| /* Define to the version of this package. */ |  | ||||||
| #undef PACKAGE_VERSION |  | ||||||
|  |  | ||||||
| /* Define to 1 if you have the ANSI C header files. */ |  | ||||||
| #undef STDC_HEADERS |  | ||||||
|  |  | ||||||
| /* Version number of package */ |  | ||||||
| #undef VERSION |  | ||||||
							
								
								
									
										49
									
								
								src/info.c
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								src/info.c
									
									
									
									
									
								
							| @@ -22,19 +22,22 @@ | |||||||
|  |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  |  | ||||||
| #include "mboxgrep.h" | #include "mboxgrep.h" | ||||||
|  |  | ||||||
|  |  | ||||||
| void | void | ||||||
| print_wrap (char *str, int len, int *n) | print_wrap (char *str) | ||||||
| { | { | ||||||
|   *n += len; |   static int n = 0; | ||||||
|  |  | ||||||
|  |   n += strlen (str); | ||||||
|   fprintf (stdout, "%s", str); |   fprintf (stdout, "%s", str); | ||||||
|   if (*n >= 50) |   if (n >= 50) | ||||||
|     { |     { | ||||||
|       fprintf (stdout, "\n"); |       fprintf (stdout, "\n"); | ||||||
|       *n = 0; |       n = 0; | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
|     fprintf (stdout, " "); |     fprintf (stdout, " "); | ||||||
| @@ -43,8 +46,6 @@ print_wrap (char *str, int len, int *n) | |||||||
| void | void | ||||||
| version (void) | version (void) | ||||||
| { | { | ||||||
|   int n = 0; |  | ||||||
|  |  | ||||||
|   fprintf (stdout, "%s %s\n\n" |   fprintf (stdout, "%s %s\n\n" | ||||||
|            "Copyright (C) 2000 - 2004, 2006, 2010, 2023  Daniel Spiljar\n" |            "Copyright (C) 2000 - 2004, 2006, 2010, 2023  Daniel Spiljar\n" | ||||||
|            "This program is free software; you can redistribute it and/or " |            "This program is free software; you can redistribute it and/or " | ||||||
| @@ -54,51 +55,51 @@ version (void) | |||||||
|            APPNAME, VERSION); |            APPNAME, VERSION); | ||||||
|   fprintf (stdout, "Compilation options:\n"); |   fprintf (stdout, "Compilation options:\n"); | ||||||
| #ifdef HAVE_DIRENT_H | #ifdef HAVE_DIRENT_H | ||||||
|   print_wrap ("HAVE_DIRENT_H", 13, &n); |   print_wrap ("HAVE_DIRENT_H"); | ||||||
| #endif /* HAVE_DIRENT_H */ | #endif /* HAVE_DIRENT_H */ | ||||||
| #ifdef HAVE_FCNTL | #ifdef HAVE_FCNTL | ||||||
|   print_wrap ("HAVE_FCNTL", 10, &n); |   print_wrap ("HAVE_FCNTL"); | ||||||
| #endif /* HAVE_FCNTL */ | #endif /* HAVE_FCNTL */ | ||||||
| #ifdef HAVE_FLOCK | #ifdef HAVE_FLOCK | ||||||
|   print_wrap ("HAVE_FLOCK", 10, &n); |   print_wrap ("HAVE_FLOCK"); | ||||||
| #endif /* HAVE_FLOCK */ | #endif /* HAVE_FLOCK */ | ||||||
| #ifdef HAVE_FTS_OPEN | #ifdef HAVE_FTS_OPEN | ||||||
|   print_wrap ("HAVE_FTS_OPEN", 13, &n); |   print_wrap ("HAVE_FTS_OPEN"); | ||||||
| #else | #else | ||||||
| #  ifdef HAVE_FTW | #  ifdef HAVE_FTW | ||||||
|   print_wrap ("HAVE_FTW", 8, &n); |   print_wrap ("HAVE_FTW"); | ||||||
| #  endif | #  endif | ||||||
|        /* HAVE_FTW */ |        /* HAVE_FTW */ | ||||||
| #endif /* HAVE_FTS_OPEN */ | #endif /* HAVE_FTS_OPEN */ | ||||||
| /* | /* | ||||||
|   fprintf (stdout, "HAVE_LIBLOCKFILE "); |   fprintf (stdout, "HAVE_LIBLOCKFILE "); | ||||||
| */ | */ | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
|   print_wrap ("HAVE_LIBPCRE", 12, &n); |   print_wrap ("HAVE_LIBPCRE2"); | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
| #ifdef HAVE_LIBZ | #ifdef HAVE_LIBZ | ||||||
|   print_wrap ("HAVE_LIBZ", 9, &n); |   print_wrap ("HAVE_LIBZ"); | ||||||
| #endif /* HAVE_LIBZ */ | #endif /* HAVE_LIBZ */ | ||||||
| #ifdef HAVE_LIBBZ2 | #ifdef HAVE_LIBBZ2 | ||||||
|   print_wrap ("HAVE_LIBBZ2", 11, &n); |   print_wrap ("HAVE_LIBBZ2"); | ||||||
| #endif /* HAVE_LIBBZ2 */ | #endif /* HAVE_LIBBZ2 */ | ||||||
| #ifdef HAVE_NDIR_H | #ifdef HAVE_NDIR_H | ||||||
|   print_wrap ("HAVE_NDIR_H", 11, &n); |   print_wrap ("HAVE_NDIR_H"); | ||||||
| #endif /* HAVE_NDIR_H */ | #endif /* HAVE_NDIR_H */ | ||||||
| #ifdef HAVE_SYS_DIR_H | #ifdef HAVE_SYS_DIR_H | ||||||
|   print_wrap ("HAVE_SYS_DIR_H", 14, &n); |   print_wrap ("HAVE_SYS_DIR_H"); | ||||||
| #endif /* HAVE_SYS_DIR_H */ | #endif /* HAVE_SYS_DIR_H */ | ||||||
| #ifdef HAVE_SYS_NDIR_H | #ifdef HAVE_SYS_NDIR_H | ||||||
|   print_wrap ("HAVE_SYS_NDIR_H", 15, &n); |   print_wrap ("HAVE_SYS_NDIR_H"); | ||||||
| #endif /* HAVE_SYS_NDIR_H */ | #endif /* HAVE_SYS_NDIR_H */ | ||||||
| #ifdef HAVE_STRPTIME | #ifdef HAVE_STRPTIME | ||||||
|   print_wrap ("HAVE_STRPTIME", 15, &n); |   print_wrap ("HAVE_STRPTIME"); | ||||||
| #endif /* HAVE_STRPTIME */ | #endif /* HAVE_STRPTIME */ | ||||||
| #ifdef HAVE_REGCOMP | #ifdef HAVE_REGCOMP | ||||||
|   print_wrap ("HAVE_REGCOMP", 15, &n); |   print_wrap ("HAVE_REGCOMP"); | ||||||
| #endif /* HAVE_REGCOMP */ | #endif /* HAVE_REGCOMP */ | ||||||
| #ifdef HAVE_LIBDMALLOC | #ifdef HAVE_LIBDMALLOC | ||||||
|   print_wrap ("HAVE_LIBDMALLOC", 15, &n); |   print_wrap ("HAVE_LIBDMALLOC"); | ||||||
| #endif /* HAVE_LIBDMALLOC */ | #endif /* HAVE_LIBDMALLOC */ | ||||||
|   fprintf (stdout, "\n"); |   fprintf (stdout, "\n"); | ||||||
|  |  | ||||||
| @@ -127,10 +128,10 @@ help (void) | |||||||
|            "Matching criteria:\n\n" |            "Matching criteria:\n\n" | ||||||
|            "  -E,  --extended-regexp\tPATTERN is an extended regular expression\n" |            "  -E,  --extended-regexp\tPATTERN is an extended regular expression\n" | ||||||
|            "  -G,  --basic-regexp\t\tPATTERN is a basic regular expression\n"); |            "  -G,  --basic-regexp\t\tPATTERN is a basic regular expression\n"); | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
|   fprintf (stdout, |   fprintf (stdout, | ||||||
|            "  -P,  --perl-regexp\t\tPATTERN is a Perl regular expression\n"); |            "  -P,  --perl-regexp\t\tPATTERN is a Perl regular expression\n"); | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
|   fprintf (stdout, |   fprintf (stdout, | ||||||
|            "  -e,  --regexp=PATTERN\t\tUse PATTERN as a regular expression\n" |            "  -e,  --regexp=PATTERN\t\tUse PATTERN as a regular expression\n" | ||||||
|            "  -i,  --ignore-case\t\tIgnore case distinctions\n" |            "  -i,  --ignore-case\t\tIgnore case distinctions\n" | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ | |||||||
| #ifndef INFO_H | #ifndef INFO_H | ||||||
| #  define INFO_H | #  define INFO_H | ||||||
|  |  | ||||||
| void print_wrap (char *str, int len, int *n); | void print_wrap (char *str); | ||||||
| void version (void); | void version (void); | ||||||
| void help (void); | void help (void); | ||||||
| void usage (void); | void usage (void); | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								src/main.c
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| /* | /* | ||||||
|   mboxgrep - scan mailbox for messages matching a regular expression |   mboxgrep - scan mailbox for messages matching a regular expression | ||||||
|   Copyright (C) 2000 - 2004, 2006, 2023  Daniel Spiljar |   Copyright (C) 2000 - 2004, 2006, 2023 - 2024  Daniel Spiljar | ||||||
|  |  | ||||||
|   Mboxgrep is free software; you can redistribute it and/or modify it  |   Mboxgrep is free software; you can redistribute it and/or modify it  | ||||||
|   under the terms of the GNU General Public License as published by |   under the terms of the GNU General Public License as published by | ||||||
| @@ -24,7 +24,6 @@ | |||||||
| #include <sys/types.h> | #include <sys/types.h> | ||||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <unistd.h> |  | ||||||
| #ifdef HAVE_LIBZ | #ifdef HAVE_LIBZ | ||||||
| #  include <zlib.h> | #  include <zlib.h> | ||||||
| #endif /* HAVE_LIBZ */ | #endif /* HAVE_LIBZ */ | ||||||
| @@ -81,21 +80,11 @@ main (int argc, char **argv) | |||||||
|     {0, 0, 0, 0} |     {0, 0, 0, 0} | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   set_default_options (); |   init_options (); | ||||||
|  |  | ||||||
|   get_runtime_options (&argc, argv, long_options); |   get_options (&argc, argv, long_options); | ||||||
|  |  | ||||||
|   if ((config.body == 0) && (config.headers == 0)) |   check_options (); | ||||||
|     { |  | ||||||
|       config.body = 1; |  | ||||||
|       config.headers = 1; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   if (config.format == MAILDIR && config.action == WRITE) |  | ||||||
|     { |  | ||||||
|       gethostname (config.hostname, HOST_NAME_SIZE); |  | ||||||
|       config.pid = (int) getpid (); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   runtime.cs = (checksum_t *) xmalloc (sizeof (checksum_t)); |   runtime.cs = (checksum_t *) xmalloc (sizeof (checksum_t)); | ||||||
|   runtime.cs->md5 = (char **) xcalloc (1, sizeof (char **)); |   runtime.cs->md5 = (char **) xcalloc (1, sizeof (char **)); | ||||||
| @@ -110,11 +99,11 @@ main (int argc, char **argv) | |||||||
|  |  | ||||||
|   if (config.haveregex) |   if (config.haveregex) | ||||||
|     { |     { | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
|       if (config.perl) |       if (config.regextype == REGEX_PERL) | ||||||
|         pcre_init (); |         pcre_init (); | ||||||
|       else |       else | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
|         regex_init (); |         regex_init (); | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
| @@ -125,10 +114,10 @@ main (int argc, char **argv) | |||||||
|  |  | ||||||
|   while (optind < argc) |   while (optind < argc) | ||||||
|     { |     { | ||||||
|       if (config.action == DELETE) |       if (config.action == ACTION_DELETE) | ||||||
|         { |         { | ||||||
|           tmpmbox_create (argv[optind]); |           tmpmbox_create (argv[optind]); | ||||||
|           runtime.tmp_mbox = (mbox_t *) mbox_open (config.tmpfilename, "w"); |           runtime.tmp_mbox = (mbox_t *) mbox_open (config.tmpfilename, w); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       config.boxname = xstrdup (argv[optind]); |       config.boxname = xstrdup (argv[optind]); | ||||||
| @@ -140,7 +129,7 @@ main (int argc, char **argv) | |||||||
|  |  | ||||||
|       havemailbox = 1; |       havemailbox = 1; | ||||||
|  |  | ||||||
|       if (config.action == COUNT) |       if (config.action == ACTION_COUNT) | ||||||
|         { |         { | ||||||
|           if (singlefile) |           if (singlefile) | ||||||
|             fprintf (stdout, "%i\n", runtime.count); |             fprintf (stdout, "%i\n", runtime.count); | ||||||
| @@ -152,19 +141,20 @@ main (int argc, char **argv) | |||||||
|                 fprintf (stdout, "%s:%i\n", argv[optind], runtime.count); |                 fprintf (stdout, "%s:%i\n", argv[optind], runtime.count); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|       if (config.action == DELETE) |       if (config.action == ACTION_DELETE) | ||||||
|         { |         { | ||||||
|           mbox_close (runtime.tmp_mbox); |           mbox_close (runtime.tmp_mbox); | ||||||
|           rename (config.tmpfilename, argv[optind]); |           rename (config.tmpfilename, argv[optind]); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       ++optind; |       ++optind; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   if (!havemailbox) |   if (!havemailbox) | ||||||
|     { |     { | ||||||
|       config.format = MBOX; |       config.format = FORMAT_MBOX; | ||||||
|       scan_mailbox ("-"); |       scan_mailbox ("-"); | ||||||
|       if (config.action == COUNT) |       if (config.action == ACTION_COUNT) | ||||||
|         fprintf (stdout, "%i\n", runtime.count); |         fprintf (stdout, "%i\n", runtime.count); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										289
									
								
								src/mbox.c
									
									
									
									
									
								
							
							
						
						
									
										289
									
								
								src/mbox.c
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| /* | /* | ||||||
|    mboxgrep - scan mailbox for messages matching a regular expression |    mboxgrep - scan mailbox for messages matching a regular expression | ||||||
|    Copyright (C) 2000, 2001, 2002, 2003, 2004, 2006  Daniel Spiljar |    Copyright (C) 2000 - 2004, 2006, 2023 - 2024  Daniel Spiljar | ||||||
|  |  | ||||||
|    Mboxgrep is free software; you can redistribute it and/or modify it  |    Mboxgrep is free software; you can redistribute it and/or modify it  | ||||||
|    under the terms of the GNU General Public License as published by |    under the terms of the GNU General Public License as published by | ||||||
| @@ -50,180 +50,61 @@ | |||||||
| #endif /* HAVE_LIBDMALLOC */ | #endif /* HAVE_LIBDMALLOC */ | ||||||
|  |  | ||||||
| mbox_t * | mbox_t * | ||||||
| mbox_open (const char *path, const char *mode) | mbox_open (const char *path, const mbox_mode_t mbox_mode) | ||||||
| { | { | ||||||
|   mbox_t *mp; |   mbox_t *mp; | ||||||
|   static int fd; |   static int fd; | ||||||
| #ifndef HAVE_FLOCK | #ifndef HAVE_FLOCK | ||||||
|   struct flock lck; |   struct flock lck; | ||||||
| #endif /* HAVE_FLOCK */ | #endif /* HAVE_FLOCK */ | ||||||
|   char buffer[BUFSIZ]; |  | ||||||
|  |  | ||||||
|   mp = (mbox_t *) xmalloc (sizeof (mbox_t)); |   mp = (mbox_t *) xmalloc (sizeof (mbox_t)); | ||||||
|   mp->postmark_cache = (char *) xmalloc (BUFSIZ * sizeof (char)); |   mp->postmark_cache = NULL; | ||||||
|  |  | ||||||
|   if (0 == strcmp ("-", path)) |   if (0 == strcmp ("-", path)) | ||||||
|     mp->fp = stdin; |     mp->fp = stdin; | ||||||
|   else |   else | ||||||
|     { |     { | ||||||
|       if (mode[0] == 'r') |       if (mbox_mode == w) | ||||||
|         fd = m_open (path, O_RDONLY, 0); |  | ||||||
|       else if (mode[0] == 'w') |  | ||||||
|         fd = m_open (path, (O_WRONLY | O_CREAT | O_APPEND), |         fd = m_open (path, (O_WRONLY | O_CREAT | O_APPEND), | ||||||
|                      (S_IWUSR | S_IRUSR)); |                      (S_IWUSR | S_IRUSR)); | ||||||
|       else |       else | ||||||
|         { |         fd = m_open (path, O_RDONLY, 0); | ||||||
|           fprintf (stderr, "%s: mbox.c: Unknown mode %c.  You shouldn't " |  | ||||||
|                    "get this error...", APPNAME, mode[0]); |  | ||||||
|           exit (2); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|       if (fd == -1) |       if (fd == -1) | ||||||
|         { |         { | ||||||
|           if (config.merr) |  | ||||||
|             { |  | ||||||
|               fprintf (stderr, "%s: %s: ", APPNAME, path); |  | ||||||
|               perror (NULL); |  | ||||||
|             } |  | ||||||
|           errno = 0; |           errno = 0; | ||||||
|           return NULL; |           return NULL; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       if (config.lock) |       if (config.lock > LOCK_NONE) | ||||||
|         { |         mbox_lock (fd, path, mbox_mode); | ||||||
| #ifdef HAVE_FLOCK |  | ||||||
|           int op; |  | ||||||
|  |  | ||||||
|           if (mode[0] == 'r') |       mp->fp = mbox_fdopen (fd, path, mbox_mode); | ||||||
|             op = LOCK_SH; |  | ||||||
|           else |  | ||||||
|             op = LOCK_EX; |  | ||||||
|           if (-1 == flock (fd, op)) |  | ||||||
| #else |  | ||||||
|           memset (&lck, 0, sizeof (struct flock)); |  | ||||||
|           lck.l_whence = SEEK_SET; |  | ||||||
|           if (mode[0] == 'r') |  | ||||||
|             lck.l_type = F_RDLCK; |  | ||||||
|           else |  | ||||||
|             lck.l_type = F_WRLCK; |  | ||||||
|  |  | ||||||
|           if (-1 == fcntl (fd, F_SETLK, &lck)) |  | ||||||
| #endif /* HAVE_FLOCK */ |  | ||||||
|             { |  | ||||||
|               if (config.merr) |  | ||||||
|                 { |  | ||||||
|                   fprintf (stderr, "%s: %s: ", APPNAME, path); |  | ||||||
|                   perror (NULL); |  | ||||||
|     } |     } | ||||||
|               errno = 0; |  | ||||||
|               close (fd); |   if (mbox_mode == r) | ||||||
|  |     { | ||||||
|  |       mp->postmark_cache = mbox_check_postmark (mp, path); | ||||||
|  |  | ||||||
|  |       if (! mp->postmark_cache) | ||||||
|         return NULL; |         return NULL; | ||||||
|     } |     } | ||||||
|         } |  | ||||||
|  |  | ||||||
|       if (mode[0] == 'r') |  | ||||||
|         { |  | ||||||
|           if (config.format == MBOX) |  | ||||||
|             mp->fp = (FILE *) m_fdopen (fd, "r"); |  | ||||||
| #ifdef HAVE_LIBZ |  | ||||||
|           else if (config.format == ZMBOX) |  | ||||||
|             mp->fp = (gzFile *) m_gzdopen (fd, "rb"); |  | ||||||
| #endif /* HAVE_LIBZ */ |  | ||||||
| #ifdef HAVE_LIBBZ2 |  | ||||||
|           else if (config.format == BZ2MBOX) |  | ||||||
|             mp->fp = (BZFILE *) BZ2_bzdopen (fd, "rb"); |  | ||||||
| #endif /* HAVE_LIBBZ2 */ |  | ||||||
|         } |  | ||||||
|       else if (mode[0] == 'w') |  | ||||||
|         { |  | ||||||
|           if (config.format == MBOX) |  | ||||||
|             mp->fp = (FILE *) m_fdopen (fd, "w"); |  | ||||||
| #ifdef HAVE_LIBZ |  | ||||||
|           else if (config.format == ZMBOX) |  | ||||||
|             mp->fp = (gzFile *) m_gzdopen (fd, "wb"); |  | ||||||
| #endif /* HAVE_LIBZ */ |  | ||||||
| #ifdef HAVE_LIBBZ2 |  | ||||||
|           else if (config.format == BZ2MBOX) |  | ||||||
|             mp->fp = (BZFILE *) BZ2_bzdopen (fd, "wb"); |  | ||||||
| #endif /* HAVE_LIBBZ2 */ |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|       if (mp->fp == NULL) |  | ||||||
|         { |  | ||||||
|           if (config.merr) |  | ||||||
|             { |  | ||||||
|               fprintf (stderr, "%s: %s: ", APPNAME, path); |  | ||||||
|               perror (NULL); |  | ||||||
|             } |  | ||||||
|           errno = 0; |  | ||||||
|           close (fd); |  | ||||||
|           return NULL; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   if (mode[0] == 'r') |  | ||||||
|     { |  | ||||||
|       if (config.format == MBOX) |  | ||||||
|         fgets (buffer, BUFSIZ, mp->fp); |  | ||||||
| #ifdef HAVE_LIBZ |  | ||||||
|       else if (config.format == ZMBOX) |  | ||||||
|         gzgets (mp->fp, buffer, BUFSIZ); |  | ||||||
| #endif /* HAVE_LIBZ */ |  | ||||||
| #ifdef HAVE_LIBBZ2 |  | ||||||
|       else if (config.format == BZ2MBOX) |  | ||||||
|         { |  | ||||||
|           char c[1] = "\0"; |  | ||||||
|           int n = 0; |  | ||||||
|  |  | ||||||
|           while (c[0] != '\n' && n < BUFSIZ) |  | ||||||
|             { |  | ||||||
|               BZ2_bzread (mp->fp, c, 1); |  | ||||||
|               buffer[n] = c[0]; |  | ||||||
|               n++; |  | ||||||
|             } |  | ||||||
|           buffer[n] = '\0'; |  | ||||||
|         } |  | ||||||
| #endif /* HAVE_LIBBZ2 */ |  | ||||||
|  |  | ||||||
|       if (0 != strncmp ("From ", buffer, 5)) |  | ||||||
|         { |  | ||||||
|           if (config.merr) |  | ||||||
|             { |  | ||||||
|               if (0 == strcmp ("-", path)) |  | ||||||
|                 fprintf (stderr, "%s: (standard input): Not a mbox folder\n", |  | ||||||
|                          APPNAME); |  | ||||||
|               else |  | ||||||
|                 fprintf (stderr, "%s: %s: Not a mbox folder\n", APPNAME, |  | ||||||
|                          path); |  | ||||||
|             } |  | ||||||
|           if (config.format == MBOX) |  | ||||||
|             fclose (mp->fp); |  | ||||||
| #ifdef HAVE_LIBZ |  | ||||||
|           else if (config.format == ZMBOX) |  | ||||||
|             gzclose (mp->fp); |  | ||||||
| #endif /* HAVE_LIBZ */ |  | ||||||
| #ifdef HAVE_LIBBZ2 |  | ||||||
|           else if (config.format == BZ2MBOX) |  | ||||||
|             BZ2_bzclose (mp->fp); |  | ||||||
| #endif /* HAVE_LIBBZ2 */ |  | ||||||
|           return NULL; |  | ||||||
|         } |  | ||||||
|       strcpy (mp->postmark_cache, buffer); |  | ||||||
|     } |  | ||||||
|   return mp; |   return mp; | ||||||
| } | } | ||||||
|  |  | ||||||
| void | void | ||||||
| mbox_close (mbox_t * mp) | mbox_close (mbox_t * mp) | ||||||
| { | { | ||||||
|   if (config.format == MBOX) |   if (config.format == FORMAT_MBOX) | ||||||
|     fclose (mp->fp); |     fclose (mp->fp); | ||||||
| #ifdef HAVE_LIBZ | #ifdef HAVE_LIBZ | ||||||
|   else if (config.format == ZMBOX) |   else if (config.format == FORMAT_ZMBOX) | ||||||
|     gzclose (mp->fp); |     gzclose (mp->fp); | ||||||
| #endif /* HAVE_LIBZ */ | #endif /* HAVE_LIBZ */ | ||||||
| #ifdef HAVE_LIBBZ2 | #ifdef HAVE_LIBBZ2 | ||||||
|   else if (config.format == BZ2MBOX) |   else if (config.format == FORMAT_BZ2MBOX) | ||||||
|     BZ2_bzclose (mp->fp); |     BZ2_bzclose (mp->fp); | ||||||
| #endif /* HAVE_LIBBZ2 */ | #endif /* HAVE_LIBBZ2 */ | ||||||
|  |  | ||||||
| @@ -249,7 +130,7 @@ mbox_read_message (mbox_t * mp) | |||||||
|  |  | ||||||
|   for (;;) |   for (;;) | ||||||
|     { |     { | ||||||
|       if (config.format == MBOX) |       if (config.format == FORMAT_MBOX) | ||||||
|         { |         { | ||||||
|           if (fgets (buffer, BUFSIZ, mp->fp) == NULL) |           if (fgets (buffer, BUFSIZ, mp->fp) == NULL) | ||||||
|             { |             { | ||||||
| @@ -261,7 +142,7 @@ mbox_read_message (mbox_t * mp) | |||||||
|         } |         } | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBZ | #ifdef HAVE_LIBZ | ||||||
|       else if (config.format == ZMBOX) |       else if (config.format == FORMAT_ZMBOX) | ||||||
|         { |         { | ||||||
|           if (gzgets (mp->fp, buffer, BUFSIZ) == NULL) |           if (gzgets (mp->fp, buffer, BUFSIZ) == NULL) | ||||||
|             { |             { | ||||||
| @@ -274,7 +155,7 @@ mbox_read_message (mbox_t * mp) | |||||||
| #endif /* HAVE_LIBZ */ | #endif /* HAVE_LIBZ */ | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBBZ2 | #ifdef HAVE_LIBBZ2 | ||||||
|       else if (config.format == BZ2MBOX) |       else if (config.format == FORMAT_BZ2MBOX) | ||||||
|         { |         { | ||||||
|           char c[1] = "\0"; |           char c[1] = "\0"; | ||||||
|           int n = 0; |           int n = 0; | ||||||
| @@ -370,10 +251,10 @@ tmpfile_name (const char *path) | |||||||
| void | void | ||||||
| mbox_write_message (message_t * msg, mbox_t * mbox) | mbox_write_message (message_t * msg, mbox_t * mbox) | ||||||
| { | { | ||||||
|   if (config.format == MBOX) |   if (config.format == FORMAT_MBOX) | ||||||
|     fprintf (mbox->fp, "%s\n%s", msg->headers, msg->body); |     fprintf (mbox->fp, "%s\n%s", msg->headers, msg->body); | ||||||
| #ifdef HAVE_LIBZ | #ifdef HAVE_LIBZ | ||||||
|   else if (config.format == ZMBOX) |   else if (config.format == FORMAT_ZMBOX) | ||||||
|     { |     { | ||||||
|       gzwrite_loop (mbox->fp, msg->headers); |       gzwrite_loop (mbox->fp, msg->headers); | ||||||
|       gzwrite (mbox->fp, "\n", 1); |       gzwrite (mbox->fp, "\n", 1); | ||||||
| @@ -381,7 +262,7 @@ mbox_write_message (message_t * msg, mbox_t * mbox) | |||||||
|     } |     } | ||||||
| #endif /* HAVE_LIBZ */ | #endif /* HAVE_LIBZ */ | ||||||
| #ifdef HAVE_LIBBZ2 | #ifdef HAVE_LIBBZ2 | ||||||
|   else if (config.format == BZ2MBOX) |   else if (config.format == FORMAT_BZ2MBOX) | ||||||
|     { |     { | ||||||
|       bzwrite_loop (mbox->fp, msg->headers); |       bzwrite_loop (mbox->fp, msg->headers); | ||||||
|       BZ2_bzwrite (mbox->fp, "\n", 1); |       BZ2_bzwrite (mbox->fp, "\n", 1); | ||||||
| @@ -431,3 +312,127 @@ tmpfile_create (void) | |||||||
|     } |     } | ||||||
|   return fd; |   return fd; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void | ||||||
|  | mbox_lock (int fd, const char *path, const mbox_mode_t mbox_mode) | ||||||
|  | { | ||||||
|  | #ifdef HAVE_FLOCK | ||||||
|  |   int op; | ||||||
|  |  | ||||||
|  |   if (mbox_mode == r) | ||||||
|  |     op = LOCK_SH; | ||||||
|  |   else | ||||||
|  |     op = LOCK_EX; | ||||||
|  |   if (-1 == flock (fd, op)) | ||||||
|  | #else | ||||||
|  |   memset (&lck, 0, sizeof (struct flock)); | ||||||
|  |   lck.l_whence = SEEK_SET; | ||||||
|  |   if (mode[0] == 'r') | ||||||
|  |     lck.l_type = F_RDLCK; | ||||||
|  |   else | ||||||
|  |     lck.l_type = F_WRLCK; | ||||||
|  |  | ||||||
|  |   if (-1 == fcntl (fd, F_SETLK, &lck)) | ||||||
|  | #endif /* HAVE_FLOCK */ | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         { | ||||||
|  |           fprintf (stderr, "%s: %s: ", APPNAME, path); | ||||||
|  |           perror (NULL); | ||||||
|  |           exit (2); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void * | ||||||
|  | mbox_fdopen (int fd, const char *path, const mbox_mode_t mbox_mode) | ||||||
|  | { | ||||||
|  |   void *f; | ||||||
|  |   char *file_mode; | ||||||
|  |  | ||||||
|  |   if (mbox_mode == w) | ||||||
|  |     file_mode = xstrdup("wb"); | ||||||
|  |   else | ||||||
|  |     file_mode = xstrdup("rb"); | ||||||
|  |  | ||||||
|  |   if (config.format == FORMAT_MBOX) | ||||||
|  |     f = (FILE *) m_fdopen (fd, file_mode); | ||||||
|  | #ifdef HAVE_LIBZ | ||||||
|  |   else if (config.format == FORMAT_ZMBOX) | ||||||
|  |     f = (gzFile *) m_gzdopen (fd, file_mode); | ||||||
|  | #endif /* HAVE_LIBZ */ | ||||||
|  | #ifdef HAVE_LIBBZ2 | ||||||
|  |   else if (config.format == FORMAT_BZ2MBOX) | ||||||
|  |     f = (BZFILE *) BZ2_bzdopen (fd, file_mode); | ||||||
|  | #endif /* HAVE_LIBBZ2 */ | ||||||
|  |  | ||||||
|  |   if (f == NULL) | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         { | ||||||
|  |           fprintf (stderr, "%s: %s: ", APPNAME, path); | ||||||
|  |           perror (NULL); | ||||||
|  |         } | ||||||
|  |       errno = 0; | ||||||
|  |       close (fd); | ||||||
|  |       return NULL; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   return f; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | char * | ||||||
|  | mbox_check_postmark(mbox_t *mp, const char *path) | ||||||
|  | { | ||||||
|  |   char *buffer; | ||||||
|  |  | ||||||
|  |   buffer = (char *) xmalloc (BUFSIZ * sizeof (char)); | ||||||
|  |   memset (buffer, 0, BUFSIZ); | ||||||
|  |  | ||||||
|  |   if (config.format == FORMAT_MBOX) | ||||||
|  |     fgets (buffer, BUFSIZ, mp->fp); | ||||||
|  | #ifdef HAVE_LIBZ | ||||||
|  |   else if (config.format == FORMAT_ZMBOX) | ||||||
|  |     gzgets (mp->fp, buffer, BUFSIZ); | ||||||
|  | #endif /* HAVE_LIBZ */ | ||||||
|  | #ifdef HAVE_LIBBZ2 | ||||||
|  |   else if (config.format == FORMAT_BZ2MBOX) | ||||||
|  |     { | ||||||
|  |       char c[1] = "\0"; | ||||||
|  |       int n = 0; | ||||||
|  |  | ||||||
|  |       while (c[0] != '\n' && n < BUFSIZ) | ||||||
|  |         { | ||||||
|  |           BZ2_bzread (mp->fp, c, 1); | ||||||
|  |           buffer[n] = c[0]; | ||||||
|  |           n++; | ||||||
|  |         } | ||||||
|  |       buffer[n] = '\0'; | ||||||
|  |     } | ||||||
|  | #endif /* HAVE_LIBBZ2 */ | ||||||
|  |  | ||||||
|  |   if (0 != strncmp ("From ", buffer, 5)) | ||||||
|  |     { | ||||||
|  |       if ((config.merr) && (buffer[0] != '\0')) | ||||||
|  |         { | ||||||
|  |           if (0 == strcmp ("-", path)) | ||||||
|  |             fprintf (stderr, "%s: (standard input): Not an mbox folder\n", | ||||||
|  |                      APPNAME); | ||||||
|  |           else | ||||||
|  |             fprintf (stderr, "%s: %s: Not an mbox folder\n", APPNAME, | ||||||
|  |                      path); | ||||||
|  |         } | ||||||
|  |       if (config.format == FORMAT_MBOX) | ||||||
|  |         fclose (mp->fp); | ||||||
|  | #ifdef HAVE_LIBZ | ||||||
|  |       else if (config.format == FORMAT_ZMBOX) | ||||||
|  |         gzclose (mp->fp); | ||||||
|  | #endif /* HAVE_LIBZ */ | ||||||
|  | #ifdef HAVE_LIBBZ2 | ||||||
|  |       else if (config.format == FORMAT_BZ2MBOX) | ||||||
|  |         BZ2_bzclose (mp->fp); | ||||||
|  | #endif /* HAVE_LIBBZ2 */ | ||||||
|  |       return NULL; | ||||||
|  |     } | ||||||
|  |   return buffer; | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								src/mbox.h
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/mbox.h
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| /* | /* | ||||||
|    mboxgrep - scan mailbox for messages matching a regular expression |    mboxgrep - scan mailbox for messages matching a regular expression | ||||||
|    Copyright (C) 2000 - 2004, 2023  Daniel Spiljar |    Copyright (C) 2000 - 2004, 2023 - 2024 Daniel Spiljar | ||||||
|     |     | ||||||
|    Mboxgrep is free software; you can redistribute it and/or modify it  |    Mboxgrep is free software; you can redistribute it and/or modify it  | ||||||
|    under the terms of the GNU General Public License as published by |    under the terms of the GNU General Public License as published by | ||||||
| @@ -19,9 +19,7 @@ | |||||||
|  |  | ||||||
| #ifndef MBOX_H | #ifndef MBOX_H | ||||||
| #  define MBOX_H 1 | #  define MBOX_H 1 | ||||||
|  |  | ||||||
| #  include <config.h> | #  include <config.h> | ||||||
|  |  | ||||||
| #  include "message.h" | #  include "message.h" | ||||||
|  |  | ||||||
| typedef struct | typedef struct | ||||||
| @@ -31,8 +29,14 @@ typedef struct | |||||||
|   char *postmark_cache; |   char *postmark_cache; | ||||||
| } mbox_t; | } mbox_t; | ||||||
|  |  | ||||||
|  | typedef enum | ||||||
|  | { | ||||||
|  |   r, | ||||||
|  |   w, | ||||||
|  | } mbox_mode_t; | ||||||
|  |  | ||||||
| mbox_t *mbox_open (const char *path, const char *mode); |  | ||||||
|  | mbox_t *mbox_open (const char *path, const mbox_mode_t mbox_mode); | ||||||
| void tmpmbox_create (const char *path); | void tmpmbox_create (const char *path); | ||||||
| void tmpfile_name (const char *path); | void tmpfile_name (const char *path); | ||||||
| void tmpfile_mod_own (const int fd, const char *path); | void tmpfile_mod_own (const int fd, const char *path); | ||||||
| @@ -40,5 +44,8 @@ int tmpfile_create (void); | |||||||
| void mbox_close (mbox_t * mbp); | void mbox_close (mbox_t * mbp); | ||||||
| message_t *mbox_read_message (mbox_t * mp); | message_t *mbox_read_message (mbox_t * mp); | ||||||
| void mbox_write_message (message_t * m, mbox_t * mbox); | void mbox_write_message (message_t * m, mbox_t * mbox); | ||||||
|  | void mbox_lock (int fd, const char *path, const mbox_mode_t mbox_mode); | ||||||
|  | void *mbox_fdopen (int fd, const char *path, const mbox_mode_t mbox_mode); | ||||||
|  | char *mbox_check_postmark(mbox_t *mp, const char *path); | ||||||
|  |  | ||||||
| #endif /* MBOX_H */ | #endif /* MBOX_H */ | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ | |||||||
| #define MBOXGREP_H | #define MBOXGREP_H | ||||||
|  |  | ||||||
| #define APPNAME "mboxgrep" | #define APPNAME "mboxgrep" | ||||||
| #define VERSION "0.7.11" | #define VERSION "0.7.12a" | ||||||
| #define BUGREPORT_ADDR "dspiljar AT datatipp.se" | #define BUGREPORT_ADDR "dspiljar AT datatipp.se" | ||||||
|  |  | ||||||
| #define HOST_NAME_SIZE 256 | #define HOST_NAME_SIZE 256 | ||||||
| @@ -46,34 +46,46 @@ | |||||||
|  |  | ||||||
| typedef enum | typedef enum | ||||||
|   { |   { | ||||||
|     MBOX, |     FORMAT_UNDEF, | ||||||
|     ZMBOX, |     FORMAT_MBOX, | ||||||
|     MH, |     FORMAT_ZMBOX, | ||||||
|     NNML, |     FORMAT_MH, | ||||||
|     NNMH, |     FORMAT_NNML, | ||||||
|     MAILDIR, |     FORMAT_NNMH, | ||||||
|     BZ2MBOX |     FORMAT_MAILDIR, | ||||||
|  |     FORMAT_BZ2MBOX | ||||||
|   } |   } | ||||||
| format_t; | format_t; | ||||||
|  |  | ||||||
| typedef enum | typedef enum | ||||||
|   { |   { | ||||||
|     NONE, |     LOCK_UNDEF, | ||||||
|     FCNTL, |     LOCK_NONE, | ||||||
|     FLOCK |     LOCK_FCNTL, | ||||||
|  |     LOCK_FLOCK | ||||||
|   } |   } | ||||||
| lockmethod_t; | lockmethod_t; | ||||||
|  |  | ||||||
| typedef enum | typedef enum | ||||||
|   { |   { | ||||||
|     DISPLAY, |     ACTION_UNDEF, | ||||||
|     WRITE, |     ACTION_DISPLAY, | ||||||
|     COUNT, |     ACTION_WRITE, | ||||||
|     DELETE, |     ACTION_COUNT, | ||||||
|     PIPE |     ACTION_DELETE, | ||||||
|  |     ACTION_PIPE | ||||||
|   } |   } | ||||||
| action_t; | action_t; | ||||||
|  |  | ||||||
|  | typedef enum | ||||||
|  |   { | ||||||
|  |     REGEX_UNDEF, | ||||||
|  |     REGEX_BASIC, | ||||||
|  |     REGEX_EXTENDED, | ||||||
|  |     REGEX_PERL | ||||||
|  |   } | ||||||
|  | regextype_t; | ||||||
|  |  | ||||||
| typedef struct | typedef struct | ||||||
| { | { | ||||||
|   FILE *fp; |   FILE *fp; | ||||||
| @@ -93,9 +105,6 @@ checksum_t; | |||||||
|  |  | ||||||
| typedef struct | typedef struct | ||||||
| { | { | ||||||
|   int extended; |  | ||||||
|   int perl; |  | ||||||
|    |  | ||||||
|   int body; |   int body; | ||||||
|   int headers; |   int headers; | ||||||
|   int dedup; |   int dedup; | ||||||
| @@ -111,12 +120,13 @@ typedef struct | |||||||
|   char hostname[HOST_NAME_SIZE]; |   char hostname[HOST_NAME_SIZE]; | ||||||
|   char *boxname, *outboxname, *pipecmd, *tmpfilename, *regex_s; |   char *boxname, *outboxname, *pipecmd, *tmpfilename, *regex_s; | ||||||
|  |  | ||||||
|   void *pcre_pattern, *pcre_hints, *posix_pattern; |   void *pcre_pattern, *posix_pattern, *match_data; | ||||||
|   int res1, res2; |   int res1, res2; | ||||||
|  |  | ||||||
|   action_t action; |   action_t action; | ||||||
|   format_t format; |   format_t format; | ||||||
|   lockmethod_t lock; |   lockmethod_t lock; | ||||||
|  |   regextype_t regextype; | ||||||
| } | } | ||||||
| option_t; | option_t; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								src/mh.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								src/mh.c
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| /* -*- C -*-  | /* -*- C -*-  | ||||||
|   mboxgrep - scan mailbox for messages matching a regular expression |   mboxgrep - scan mailbox for messages matching a regular expression | ||||||
|   Copyright (C) 2000, 2001, 2002, 2003, 2006  Daniel Spiljar |   Copyright (C) 2000, 2001, 2002, 2003, 2006, 2023  Daniel Spiljar | ||||||
|  |  | ||||||
|   Mboxgrep is free software; you can redistribute it and/or modify it  |   Mboxgrep is free software; you can redistribute it and/or modify it  | ||||||
|   under the terms of the GNU General Public License as published by |   under the terms of the GNU General Public License as published by | ||||||
| @@ -129,7 +129,7 @@ mh_read_message (DIR * dp) | |||||||
|  |  | ||||||
|       fgets (buffer, BUFSIZ, fp); |       fgets (buffer, BUFSIZ, fp); | ||||||
|  |  | ||||||
| /*       if (config.format == NNML || config.format == NNMH) */ | /*       if (config.format == FORMAT_NNML || config.format == FORMAT_NNMH) */ | ||||||
| /* 	{ */ | /* 	{ */ | ||||||
| /* 	  if (0 != strncmp ("X-From-Line: ", buffer, 13)) */ | /* 	  if (0 != strncmp ("X-From-Line: ", buffer, 13)) */ | ||||||
| /* 	    { */ | /* 	    { */ | ||||||
|   | |||||||
							
								
								
									
										186
									
								
								src/misc.c
									
									
									
									
									
								
							
							
						
						
									
										186
									
								
								src/misc.c
									
									
									
									
									
								
							| @@ -18,7 +18,7 @@ | |||||||
| */ | */ | ||||||
|  |  | ||||||
| #define _XOPEN_SOURCE           /* Pull in strptime(3) from time.h */ | #define _XOPEN_SOURCE           /* Pull in strptime(3) from time.h */ | ||||||
| #define _BSD_SOURCE             /* Compensate for _XOPEN_SOURCE to pull in strdup(3) | #define _DEFAULT_SOURCE         /* Compensate for _XOPEN_SOURCE to pull in strdup(3) | ||||||
|                                  * from string.h. */ |                                  * from string.h. */ | ||||||
|  |  | ||||||
| #include <config.h> | #include <config.h> | ||||||
| @@ -28,62 +28,76 @@ | |||||||
| #include <errno.h> | #include <errno.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  | #include <unistd.h> | ||||||
|  |  | ||||||
| #include "mboxgrep.h" | #include "mboxgrep.h" | ||||||
|  | #include "misc.h" | ||||||
| #include "wrap.h" | #include "wrap.h" | ||||||
| #include "getopt.h" | #include "getopt.h" | ||||||
| #include "info.h" | #include "info.h" | ||||||
| #include "message.h" | #include "message.h" | ||||||
|  |  | ||||||
| format_t | /* Determine the folder format passed to -m. */ | ||||||
| folder_format (const char *name) |  | ||||||
|  | void | ||||||
|  | set_folder_format (const char *name) | ||||||
| { | { | ||||||
|   format_t f; |   if (config.format > 0) | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         fprintf (stderr, "%s: multiple mailbox types specified\n", APPNAME); | ||||||
|  |       exit (2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|   if (0 == strncasecmp (name, "mbox", 4)) |   if (0 == strncasecmp (name, "mbox", 4)) | ||||||
|     f = MBOX; |     config.format = FORMAT_MBOX; | ||||||
|   else if (0 == strncasecmp (name, "zmbox", 5)) |   else if (0 == strncasecmp (name, "zmbox", 5)) | ||||||
|     f = ZMBOX; |     config.format = FORMAT_ZMBOX; | ||||||
|   else if (0 == strncasecmp (name, "gzmbox", 6)) |   else if (0 == strncasecmp (name, "gzmbox", 6)) | ||||||
|     f = ZMBOX; |     config.format = FORMAT_ZMBOX; | ||||||
|   else if (0 == strncasecmp (name, "bzmbox", 5)) |   else if (0 == strncasecmp (name, "bzmbox", 5)) | ||||||
|     f = BZ2MBOX; |     config.format = FORMAT_BZ2MBOX; | ||||||
|   else if (0 == strncasecmp (name, "bz2mbox", 5)) |   else if (0 == strncasecmp (name, "bz2mbox", 5)) | ||||||
|     f = BZ2MBOX; |     config.format = FORMAT_BZ2MBOX; | ||||||
|   else if (0 == strncasecmp (name, "mh", 2)) |   else if (0 == strncasecmp (name, "mh", 2)) | ||||||
|     f = MH; |     config.format = FORMAT_MH; | ||||||
|   else if (0 == strncasecmp (name, "nnml", 4)) |   else if (0 == strncasecmp (name, "nnml", 4)) | ||||||
|     f = NNML; |     config.format = FORMAT_NNML; | ||||||
|   else if (0 == strncasecmp (name, "nnmh", 4)) |   else if (0 == strncasecmp (name, "nnmh", 4)) | ||||||
|     f = NNMH; |     config.format = FORMAT_NNMH; | ||||||
|   else if (0 == strncasecmp (name, "maildir", 7)) |   else if (0 == strncasecmp (name, "maildir", 7)) | ||||||
|     f = MAILDIR; |     config.format = FORMAT_MAILDIR; | ||||||
|   else |   else | ||||||
|     { |     { | ||||||
|       if (config.merr) |       if (config.merr) | ||||||
|         fprintf (stderr, "%s: %s: unknown folder type\n", APPNAME, name); |         fprintf (stderr, "%s: %s: unknown folder type\n", APPNAME, name); | ||||||
|       exit (2); |       exit (2); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   return f; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| lockmethod_t | /* Determine the file locking method passed to -l. */ | ||||||
| lock_method (const char *name) |  | ||||||
|  | void | ||||||
|  | set_lock_method (const char *name) | ||||||
| { | { | ||||||
|   lockmethod_t l; |   if (config.lock > 0) | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         fprintf (stderr, "%s: conflicting file locking options specified\n", APPNAME); | ||||||
|  |       exit (2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|   if (0 == strncasecmp (name, "none", 4)) |   if (0 == strncasecmp (name, "none", 4)) | ||||||
|     l = NONE; |     config.lock = LOCK_NONE; | ||||||
|   else if (0 == strncasecmp (name, "off", 3)) |   else if (0 == strncasecmp (name, "off", 3)) | ||||||
|     l = NONE; |     config.lock = LOCK_NONE; | ||||||
| #ifdef HAVE_FCNTL | #ifdef HAVE_FCNTL | ||||||
|   else if (0 == strncasecmp (name, "fcntl", 5)) |   else if (0 == strncasecmp (name, "fcntl", 5)) | ||||||
|     l = FCNTL; |     config.lock = LOCK_FCNTL; | ||||||
| #endif /* HAVE_FCNTL */ | #endif /* HAVE_FCNTL */ | ||||||
| #ifdef HAVE_FLOCK | #ifdef HAVE_FLOCK | ||||||
|   else if (0 == strncasecmp (name, "flock", 5)) |   else if (0 == strncasecmp (name, "flock", 5)) | ||||||
|     l = FLOCK; |     config.lock = LOCK_FLOCK; | ||||||
| #endif /* HAVE_FLOCK */ | #endif /* HAVE_FLOCK */ | ||||||
|   else |   else | ||||||
|     { |     { | ||||||
| @@ -91,10 +105,10 @@ lock_method (const char *name) | |||||||
|         fprintf (stderr, "mboxgrep: %s: unknown file locking method\n", name); |         fprintf (stderr, "mboxgrep: %s: unknown file locking method\n", name); | ||||||
|       exit (2); |       exit (2); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   return l; |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* Dead code */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
| time_t parse_date(char *datestr) | time_t parse_date(char *datestr) | ||||||
| { | { | ||||||
| @@ -170,26 +184,29 @@ postmark_print (message_t * msg) | |||||||
|     fprintf (stdout, "From nobody  %s\n", date_str); |     fprintf (stdout, "From nobody  %s\n", date_str); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* Initialize the option_t struct. */ | ||||||
|  |  | ||||||
| void | void | ||||||
| set_default_options (void) | init_options (void) | ||||||
| { | { | ||||||
|   config.perl = 0; |   config.regextype = REGEX_UNDEF; | ||||||
|   config.extended = 1; |  | ||||||
|   config.invert = 0; |   config.invert = 0; | ||||||
|   config.headers = 0; |   config.headers = 0; | ||||||
|   config.body = 0; |   config.body = 0; | ||||||
|   config.action = DISPLAY; |   config.action = ACTION_UNDEF; | ||||||
|   config.dedup = 0; |   config.dedup = 0; | ||||||
|   config.recursive = 0; |   config.recursive = 0; | ||||||
|   config.ignorecase = 0; |   config.ignorecase = 0; | ||||||
|   config.format = MBOX;         /* default mailbox format */ |   config.format = FORMAT_UNDEF; | ||||||
|   config.lock = FCNTL;          /* default file locking method */ |   config.lock = LOCK_UNDEF;     /* default file locking method */ | ||||||
|   config.merr = 1;              /* report errors by default */ |   config.merr = 1;              /* report errors by default */ | ||||||
|   config.debug = 0; |   config.debug = 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* Parse command-line arguments and assign values to option_t. */ | ||||||
|  |  | ||||||
| void | void | ||||||
| get_runtime_options (int *argc, char **argv, struct option *long_options) | get_options (int *argc, char **argv, struct option *long_options) | ||||||
| { | { | ||||||
|   int option_index = 0, c; |   int option_index = 0, c; | ||||||
|  |  | ||||||
| @@ -206,35 +223,26 @@ get_runtime_options (int *argc, char **argv, struct option *long_options) | |||||||
|         case '?': |         case '?': | ||||||
|           usage (); |           usage (); | ||||||
|         case 'c': |         case 'c': | ||||||
|           config.action = COUNT; |           set_option_action (ACTION_COUNT, NULL); | ||||||
|           break; |           break; | ||||||
|         case 'd': |         case 'd': | ||||||
|           config.action = DELETE; |           set_option_action (ACTION_DELETE, NULL); | ||||||
|           break; |           break; | ||||||
|         case 'e': |         case 'e': | ||||||
|           config.regex_s = xstrdup (optarg); |           config.regex_s = xstrdup (optarg); | ||||||
|           config.haveregex = 1; |           config.haveregex = 1; | ||||||
|           break; |           break; | ||||||
|         case 'o': |         case 'o': | ||||||
|           config.outboxname = xstrdup (optarg); |           set_option_action (ACTION_WRITE, optarg); | ||||||
|           config.action = WRITE; |  | ||||||
|           break; |           break; | ||||||
|         case 'E': |         case 'E': | ||||||
|           config.extended = 1; |           set_option_regextype (REGEX_EXTENDED); | ||||||
|           break; |           break; | ||||||
|         case 'G': |         case 'G': | ||||||
|           config.extended = 0; |           set_option_regextype (REGEX_BASIC); | ||||||
|           break; |           break; | ||||||
|         case 'P': |         case 'P': | ||||||
| #ifdef HAVE_LIBPCRE |           set_option_regextype (REGEX_PERL); | ||||||
|           config.extended = 0; |  | ||||||
|           config.perl = 1; |  | ||||||
| #else |  | ||||||
|           fprintf (stderr, |  | ||||||
|                    "%s: Support for Perl regular expressions not " |  | ||||||
|                    "compiled in\n", APPNAME); |  | ||||||
|           exit (2); |  | ||||||
| #endif /* HAVE_LIBPCRE */ |  | ||||||
|           break; |           break; | ||||||
|         case 'h': |         case 'h': | ||||||
|           help (); |           help (); | ||||||
| @@ -243,14 +251,13 @@ get_runtime_options (int *argc, char **argv, struct option *long_options) | |||||||
|           config.ignorecase = 1; |           config.ignorecase = 1; | ||||||
|           break; |           break; | ||||||
|         case 'm': |         case 'm': | ||||||
|           config.format = folder_format (optarg); |           set_folder_format (optarg); | ||||||
|           break; |           break; | ||||||
|         case 'l': |         case 'l': | ||||||
|           config.lock = lock_method (optarg); |           set_lock_method (optarg); | ||||||
|           break; |           break; | ||||||
|         case 'p': |         case 'p': | ||||||
|           config.action = PIPE; |           set_option_action (ACTION_PIPE, optarg); | ||||||
|           config.pipecmd = xstrdup (optarg); |  | ||||||
|           break; |           break; | ||||||
|         case 'V': |         case 'V': | ||||||
|           version (); |           version (); | ||||||
| @@ -289,7 +296,7 @@ get_runtime_options (int *argc, char **argv, struct option *long_options) | |||||||
|                 config.dedup = 1; |                 config.dedup = 1; | ||||||
|                 break; |                 break; | ||||||
|               case 'l': |               case 'l': | ||||||
|                 config.lock = 0; |                 set_lock_method ("none"); | ||||||
|                 break; |                 break; | ||||||
|               default: |               default: | ||||||
|                 fprintf (stderr, "%s: invalid option -- n%c\n", |                 fprintf (stderr, "%s: invalid option -- n%c\n", | ||||||
| @@ -300,3 +307,80 @@ get_runtime_options (int *argc, char **argv, struct option *long_options) | |||||||
|         }                       /* switch */ |         }                       /* switch */ | ||||||
|     }                           /* while */ |     }                           /* while */ | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* Check the state of command-line options after parsing them. | ||||||
|  |  * Raise error on conflicting options and set uninitialized ones to default values. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | void | ||||||
|  | check_options (void) | ||||||
|  | { | ||||||
|  |   gethostname (config.hostname, HOST_NAME_SIZE); | ||||||
|  |   config.pid = (int) getpid (); | ||||||
|  |  | ||||||
|  |   if (config.action == ACTION_UNDEF) | ||||||
|  |     { | ||||||
|  |       config.action = ACTION_DISPLAY; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   if (config.format == FORMAT_UNDEF) | ||||||
|  |     { | ||||||
|  |       config.format = FORMAT_MBOX;  /* default mailbox format */ | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   if (config.regextype == REGEX_UNDEF) | ||||||
|  |     { | ||||||
|  |       config.regextype = REGEX_EXTENDED;  /* default regex type */ | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   if ((config.body == 0) && (config.headers == 0)) | ||||||
|  |     { | ||||||
|  |       config.body = 1; | ||||||
|  |       config.headers = 1; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void | ||||||
|  | set_option_action (action_t action, char *path) | ||||||
|  | { | ||||||
|  |   if (config.action > 0) | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         fprintf (stderr, "%s: conflicting actions specified\n", APPNAME); | ||||||
|  |       exit (2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   config.action = action; | ||||||
|  |  | ||||||
|  |   if (action == ACTION_WRITE) | ||||||
|  |     { | ||||||
|  |       config.outboxname = xstrdup (path); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   if (action == ACTION_PIPE) | ||||||
|  |     { | ||||||
|  |       config.pipecmd = xstrdup (optarg); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void | ||||||
|  | set_option_regextype (regextype_t regextype) | ||||||
|  | { | ||||||
|  |   if (config.regextype > 0) | ||||||
|  |     { | ||||||
|  |       if (config.merr) | ||||||
|  |         fprintf (stderr, "%s: conflicting matchers specified\n", APPNAME); | ||||||
|  |       exit (2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | #ifndef HAVE_LIBPCRE2 | ||||||
|  |   if (regextype == REGEX_PERL); | ||||||
|  |     { | ||||||
|  |       fprintf (stderr, | ||||||
|  |               "%s: Support for Perl regular expressions not compiled in\n", | ||||||
|  |               APPNAME); | ||||||
|  |       exit (2); | ||||||
|  |     } | ||||||
|  | #endif /* HAVE_LIBPCRE2 */ | ||||||
|  |   config.regextype = regextype; | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								src/misc.h
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/misc.h
									
									
									
									
									
								
							| @@ -25,14 +25,17 @@ | |||||||
| #  include "message.h" | #  include "message.h" | ||||||
| /* #include <time.h> */ | /* #include <time.h> */ | ||||||
|  |  | ||||||
| format_t folder_format (const char *name); | void set_folder_format (const char *name); | ||||||
| lockmethod_t lock_method (const char *name); | void set_lock_method (const char *name); | ||||||
| /* time_t parse_date(char *datestr); */ | /* time_t parse_date(char *datestr); */ | ||||||
| char *parse_return_path (char *rpath); | char *parse_return_path (char *rpath); | ||||||
| void *allocate_message (void); | void *allocate_message (void); | ||||||
| void postmark_print (message_t * msg); | void postmark_print (message_t * msg); | ||||||
| void set_default_options (void); | void init_options (void); | ||||||
| void get_runtime_options (int *argc, char **argv, | void get_options (int *argc, char **argv, | ||||||
|                           struct option *long_options); |                           struct option *long_options); | ||||||
|  | void check_options (void); | ||||||
|  | void set_option_action (action_t action, char *path); | ||||||
|  | void set_option_regextype (regextype_t regextype); | ||||||
|  |  | ||||||
| #endif /* MISC_H */ | #endif /* MISC_H */ | ||||||
|   | |||||||
							
								
								
									
										46
									
								
								src/re.c
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								src/re.c
									
									
									
									
									
								
							| @@ -21,52 +21,58 @@ | |||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <regex.h> | #include <regex.h> | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
| #  include <pcre.h> | #  define PCRE2_CODE_UNIT_WIDTH 32 | ||||||
| #endif /* HAVE_LIBPCRE */ | #  include <pcre2.h> | ||||||
|  | #endif /* HAVE_LIBPCRE2 */ | ||||||
| #include "mboxgrep.h" | #include "mboxgrep.h" | ||||||
| #include "message.h" | #include "message.h" | ||||||
| #include "wrap.h"               /* xcalloc() et cetera */ | #include "wrap.h"               /* xcalloc() et cetera */ | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
| void | void | ||||||
| pcre_init (void) | pcre_init (void) | ||||||
| { | { | ||||||
|   int errptr; |   int errornumber; | ||||||
|   const char *error; |   PCRE2_SIZE erroroffset; | ||||||
|  |  | ||||||
|   config.pcre_pattern = |   config.pcre_pattern = | ||||||
|     (pcre *) pcre_compile (config.regex_s, |     (pcre2_code *) pcre2_compile ((PCRE2_SPTR) config.regex_s, (PCRE2_SIZE) strlen (config.regex_s), | ||||||
|                            (config.ignorecase ? PCRE_CASELESS : 0), |                                   (config.ignorecase ? PCRE2_CASELESS : 0), | ||||||
|                            &error, &errptr, NULL); |                                   &errornumber, &erroroffset, NULL); | ||||||
|   if (config.pcre_pattern == NULL) |   if (config.pcre_pattern == NULL) | ||||||
|     { |     { | ||||||
|       if (config.merr) |       if (config.merr) | ||||||
|         fprintf (stderr, "%s: %s: %s\n", APPNAME, config.regex_s, error); |         { | ||||||
|  |           PCRE2_UCHAR buffer[256]; | ||||||
|  |  | ||||||
|  |           pcre2_get_error_message (errornumber, buffer, sizeof(buffer)); | ||||||
|  |           fprintf (stderr, "%s: PCRE2 compilation failed at offset %d: %s\n", | ||||||
|  |               APPNAME, (int) erroroffset, (char *) buffer); | ||||||
|  |         } | ||||||
|       exit (2); |       exit (2); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |   config.match_data = | ||||||
|  |     (pcre2_match_data* ) pcre2_match_data_create_from_pattern (config.pcre_pattern, NULL); | ||||||
| } | } | ||||||
|  |  | ||||||
| void | void | ||||||
| pcre_match (message_t * msg) | pcre_match (message_t * msg) | ||||||
| { | { | ||||||
|   int of[BUFSIZ]; |  | ||||||
|  |  | ||||||
|   if (config.headers) |   if (config.headers) | ||||||
|     config.res1 = |     config.res1 = | ||||||
|       pcre_exec ((pcre *) config.pcre_pattern, |       pcre2_match ((pcre2_code *) config.pcre_pattern, | ||||||
|                  (pcre_extra *) config.pcre_hints, |                    (PCRE2_SPTR) msg->headers, (int) strlen (msg->headers), 0, 0, config.match_data, NULL); | ||||||
|                  msg->headers, (int) strlen (msg->headers), 0, 0, of, BUFSIZ); |  | ||||||
|   if (config.body) |   if (config.body) | ||||||
|     config.res2 = |     config.res2 = | ||||||
|       pcre_exec ((pcre *) config.pcre_pattern, |       pcre2_match ((pcre2_code *) config.pcre_pattern, | ||||||
|                  (pcre_extra *) config.pcre_hints, |                    (PCRE2_SPTR) msg->body, (int) strlen (msg->body), 0, 0, config.match_data, NULL); | ||||||
|                  msg->body, (int) strlen (msg->body), 0, 0, of, BUFSIZ); |  | ||||||
|  |  | ||||||
|   config.res1 = config.res1 ^ 1; |   config.res1 = config.res1 ^ 1; | ||||||
|   config.res2 = config.res2 ^ 1; |   config.res2 = config.res2 ^ 1; | ||||||
| } | } | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
|  |  | ||||||
| void | void | ||||||
| regex_init (void) | regex_init (void) | ||||||
| @@ -77,7 +83,7 @@ regex_init (void) | |||||||
|  |  | ||||||
|   if (config.ignorecase) |   if (config.ignorecase) | ||||||
|     flag1 = REG_ICASE; |     flag1 = REG_ICASE; | ||||||
|   if (config.extended) |   if (config.regextype == REGEX_EXTENDED) | ||||||
|     flag2 = REG_EXTENDED; |     flag2 = REG_EXTENDED; | ||||||
|  |  | ||||||
|   config.posix_pattern = (regex_t *) xmalloc (sizeof (regex_t)); |   config.posix_pattern = (regex_t *) xmalloc (sizeof (regex_t)); | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								src/re.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								src/re.h
									
									
									
									
									
								
							| @@ -19,9 +19,9 @@ | |||||||
|  |  | ||||||
| #include "mboxgrep.h" | #include "mboxgrep.h" | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
| void pcre_init (void); | void pcre_init (void); | ||||||
| void pcre_match (message_t * msg); | void pcre_match (message_t * msg); | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
| void regex_init (void); | void regex_init (void); | ||||||
| void regex_match (message_t * msg); | void regex_match (message_t * msg); | ||||||
|   | |||||||
							
								
								
									
										78
									
								
								src/scan.c
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								src/scan.c
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| /* | /* | ||||||
|    mboxgrep - scan mailbox for messages matching a regular expression |    mboxgrep - scan mailbox for messages matching a regular expression | ||||||
|    Copyright (C) 2000 - 2004, 2006, 2023  Daniel Spiljar |    Copyright (C) 2000 - 2004, 2006, 2023 - 2024  Daniel Spiljar | ||||||
|     |     | ||||||
|    Mboxgrep is free software; you can redistribute it and/or modify it  |    Mboxgrep is free software; you can redistribute it and/or modify it  | ||||||
|    under the terms of the GNU General Public License as published by |    under the terms of the GNU General Public License as published by | ||||||
| @@ -83,7 +83,7 @@ scan_mailbox (char path[]) | |||||||
|   int delete = 0; |   int delete = 0; | ||||||
|   int isdup = 0; |   int isdup = 0; | ||||||
|  |  | ||||||
|   if (config.format == MAILDIR && config.action == WRITE) |   if (config.format == FORMAT_MAILDIR && config.action == ACTION_WRITE) | ||||||
|     { |     { | ||||||
|       foo = opendir (config.outboxname);        /* do NOT change this to m_opendir! */ |       foo = opendir (config.outboxname);        /* do NOT change this to m_opendir! */ | ||||||
|       if (foo == NULL && errno == ENOENT) |       if (foo == NULL && errno == ENOENT) | ||||||
| @@ -101,24 +101,24 @@ scan_mailbox (char path[]) | |||||||
|     } |     } | ||||||
|  |  | ||||||
|   runtime.count = 0; |   runtime.count = 0; | ||||||
|   if (config.action == DELETE) |   if (config.action == ACTION_DELETE) | ||||||
|     delete = 1; |     delete = 1; | ||||||
|  |  | ||||||
|   if ((config.format == MBOX) || (config.format == ZMBOX) |   if ((config.format == FORMAT_MBOX) || (config.format == FORMAT_ZMBOX) | ||||||
|       || (config.format == BZ2MBOX)) |       || (config.format == FORMAT_BZ2MBOX)) | ||||||
|     { |     { | ||||||
|       mbox = (mbox_t *) mbox_open (path, "r"); |       mbox = (mbox_t *) mbox_open (path, r); | ||||||
|       if (mbox == NULL) |       if (mbox == NULL) | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|   else if ((config.format == MH) || (config.format == NNMH) |   else if ((config.format == FORMAT_MH) || (config.format == FORMAT_NNMH) | ||||||
|            || (config.format == NNML)) |            || (config.format == FORMAT_NNML)) | ||||||
|     { |     { | ||||||
|       boxd = mh_open (path); |       boxd = mh_open (path); | ||||||
|       if (boxd == NULL) |       if (boxd == NULL) | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|   else if (config.format == MAILDIR) |   else if (config.format == FORMAT_MAILDIR) | ||||||
|     { |     { | ||||||
|       maildird = maildir_open (path); |       maildird = maildir_open (path); | ||||||
|  |  | ||||||
| @@ -131,13 +131,13 @@ scan_mailbox (char path[]) | |||||||
|       config.res1 = 1; |       config.res1 = 1; | ||||||
|       config.res2 = 1; |       config.res2 = 1; | ||||||
|  |  | ||||||
|       if ((config.format == MBOX) || (config.format == ZMBOX) |       if ((config.format == FORMAT_MBOX) || (config.format == FORMAT_ZMBOX) | ||||||
|           || (config.format == BZ2MBOX)) |           || (config.format == FORMAT_BZ2MBOX)) | ||||||
|         msg = (message_t *) mbox_read_message (mbox); |         msg = (message_t *) mbox_read_message (mbox); | ||||||
|       else if ((config.format == MH) || (config.format == NNMH) |       else if ((config.format == FORMAT_MH) || (config.format == FORMAT_NNMH) | ||||||
|                || (config.format == NNML)) |                || (config.format == FORMAT_NNML)) | ||||||
|         msg = (message_t *) mh_read_message (boxd); |         msg = (message_t *) mh_read_message (boxd); | ||||||
|       else if (config.format == MAILDIR) |       else if (config.format == FORMAT_MAILDIR) | ||||||
|         msg = (message_t *) maildir_read_message (maildird); |         msg = (message_t *) maildir_read_message (maildird); | ||||||
|  |  | ||||||
|       if (msg == NULL) |       if (msg == NULL) | ||||||
| @@ -146,11 +146,11 @@ scan_mailbox (char path[]) | |||||||
|       if (msg->from == NULL) |       if (msg->from == NULL) | ||||||
|         msg->from = (char *) xstrdup ("nobody"); |         msg->from = (char *) xstrdup ("nobody"); | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBPCRE | #ifdef HAVE_LIBPCRE2 | ||||||
|       if (config.perl) |       if (config.regextype == REGEX_PERL) | ||||||
|         pcre_match (msg); |         pcre_match (msg); | ||||||
|       else |       else | ||||||
| #endif /* HAVE_LIBPCRE */ | #endif /* HAVE_LIBPCRE2 */ | ||||||
|         regex_match (msg); |         regex_match (msg); | ||||||
|  |  | ||||||
|       if (config.dedup) |       if (config.dedup) | ||||||
| @@ -160,32 +160,32 @@ scan_mailbox (char path[]) | |||||||
|           ((config.invert ^ delete)) && |           ((config.invert ^ delete)) && | ||||||
|           ((config.dedup && !isdup) || !config.dedup)) |           ((config.dedup && !isdup) || !config.dedup)) | ||||||
|         { |         { | ||||||
|           if (config.action == DISPLAY) |           if (config.action == ACTION_DISPLAY) | ||||||
|             { |             { | ||||||
|               if (config.format != MBOX && config.format != ZMBOX |               if (config.format != FORMAT_MBOX && config.format != FORMAT_ZMBOX | ||||||
|                   && config.format != BZ2MBOX |                   && config.format != FORMAT_BZ2MBOX | ||||||
|                   && 0 != strncmp ("From ", msg->headers, 5)) |                   && 0 != strncmp ("From ", msg->headers, 5)) | ||||||
|                 postmark_print (msg); |                 postmark_print (msg); | ||||||
|  |  | ||||||
|               fprintf (stdout, "%s\n%s", msg->headers, msg->body); |               fprintf (stdout, "%s\n%s", msg->headers, msg->body); | ||||||
|             } |             } | ||||||
|           else if (config.action == WRITE) |           else if (config.action == ACTION_WRITE) | ||||||
|             { |             { | ||||||
|               if (config.format == MAILDIR) |               if (config.format == FORMAT_MAILDIR) | ||||||
|                 maildir_write_message (msg, config.outboxname); |                 maildir_write_message (msg, config.outboxname); | ||||||
|               else if (config.format == MH || config.format == NNMH |               else if (config.format == FORMAT_MH || config.format == FORMAT_NNMH | ||||||
|                        || config.format == NNML) |                        || config.format == FORMAT_NNML) | ||||||
|                 mh_write_message (msg, config.outboxname); |                 mh_write_message (msg, config.outboxname); | ||||||
|               else if ((config.format == MBOX) || (config.format == ZMBOX) |               else if ((config.format == FORMAT_MBOX) || (config.format == FORMAT_ZMBOX) | ||||||
|                        || (config.format == BZ2MBOX)) |                        || (config.format == FORMAT_BZ2MBOX)) | ||||||
|                 { |                 { | ||||||
|                   out = mbox_open (config.outboxname, "w"); |                   out = mbox_open (config.outboxname, w); | ||||||
|                   /* fprintf (out->fp, "%s\n%s", msg->headers, msg->body); */ |                   /* fprintf (out->fp, "%s\n%s", msg->headers, msg->body); */ | ||||||
|                   mbox_write_message (msg, out); |                   mbox_write_message (msg, out); | ||||||
|                   mbox_close (out); |                   mbox_close (out); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|           else if (config.action == PIPE) |           else if (config.action == ACTION_PIPE) | ||||||
|             { |             { | ||||||
|               outf = popen (config.pipecmd, "w"); |               outf = popen (config.pipecmd, "w"); | ||||||
|               if (outf == NULL) |               if (outf == NULL) | ||||||
| @@ -200,19 +200,19 @@ scan_mailbox (char path[]) | |||||||
|               fprintf (outf, "%s\n%s", msg->headers, msg->body); |               fprintf (outf, "%s\n%s", msg->headers, msg->body); | ||||||
|               pclose (outf); |               pclose (outf); | ||||||
|             } |             } | ||||||
|           else if (config.action == COUNT) |           else if (config.action == ACTION_COUNT) | ||||||
|             runtime.count++; |             runtime.count++; | ||||||
|           else if (config.action == DELETE && |           else if (config.action == ACTION_DELETE && | ||||||
|                    ((config.format == MBOX) || (config.format == ZMBOX) |                    ((config.format == FORMAT_MBOX) || (config.format == FORMAT_ZMBOX) | ||||||
|                     || (config.format == BZ2MBOX))) |                     || (config.format == FORMAT_BZ2MBOX))) | ||||||
|             mbox_write_message (msg, runtime.tmp_mbox); |             mbox_write_message (msg, runtime.tmp_mbox); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       else |       else | ||||||
|         if (((((config.res1 == 0) | (config.res2 == 0)) ^ config.invert) |         if (((((config.res1 == 0) | (config.res2 == 0)) ^ config.invert) | ||||||
|              && delete) && ((config.format == MH) || (config.format == NNMH) |              && delete) && ((config.format == FORMAT_MH) || (config.format == FORMAT_NNMH) | ||||||
|                             || (config.format == NNML) |                             || (config.format == FORMAT_NNML) | ||||||
|                             || (config.format == MAILDIR))) |                             || (config.format == FORMAT_MAILDIR))) | ||||||
|         m_unlink (msg->filename); |         m_unlink (msg->filename); | ||||||
|  |  | ||||||
|       free (msg->body); |       free (msg->body); | ||||||
| @@ -220,11 +220,11 @@ scan_mailbox (char path[]) | |||||||
|       free (msg); |       free (msg); | ||||||
|     }                           /* for */ |     }                           /* for */ | ||||||
|  |  | ||||||
|   if ((config.format == MBOX) || (config.format == ZMBOX) |   if ((config.format == FORMAT_MBOX) || (config.format == FORMAT_ZMBOX) | ||||||
|       || (config.format == BZ2MBOX)) |       || (config.format == FORMAT_BZ2MBOX)) | ||||||
|     mbox_close (mbox); |     mbox_close (mbox); | ||||||
|   else if ((config.format == MH) || (config.format == NNMH) |   else if ((config.format == FORMAT_MH) || (config.format == FORMAT_NNMH) | ||||||
|            || (config.format == NNML)) |            || (config.format == FORMAT_NNML)) | ||||||
|     mh_close (boxd); |     mh_close (boxd); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user