TAR = tar
GZIP = --best
+DEP_FILES = .deps/addrbook.P .deps/alias.P .deps/attach.P \
+.deps/browser.P .deps/buffy.P .deps/charset.P .deps/color.P \
+.deps/commands.P .deps/complete.P .deps/compose.P .deps/copy.P \
+.deps/curs_lib.P .deps/curs_main.P .deps/date.P .deps/dotlock.P \
+.deps/edit.P .deps/enter.P .deps/filter.P .deps/flags.P .deps/from.P \
+.deps/getdomain.P .deps/gnupgparse.P .deps/handler.P .deps/hash.P \
+.deps/hdrline.P .deps/headers.P .deps/help.P .deps/history.P \
+.deps/hook.P .deps/imap.P .deps/init.P .deps/keymap.P .deps/lib.P \
+.deps/main.P .deps/mbox.P .deps/menu.P .deps/mh.P .deps/mutt_dotlock \
+.deps/mutt_dotlock.P .deps/mx.P .deps/pager.P .deps/parse.P \
+.deps/pattern.P .deps/pgp.P .deps/pgpinvoke.P .deps/pgpkey.P \
+.deps/pgppubring.P .deps/pop.P .deps/postpone.P .deps/query.P \
+.deps/recvattach.P .deps/resize.P .deps/rfc1524.P .deps/rfc2047.P \
+.deps/rfc822.P .deps/score.P .deps/send.P .deps/sendlib.P \
+.deps/sha1dgst.P .deps/signal.P .deps/snprintf.P .deps/socket.P \
+.deps/sort.P .deps/status.P .deps/strcasecmp.P .deps/system.P \
+.deps/thread.P
SOURCES = mutt_dotlock.c $(mutt_SOURCES) $(EXTRA_mutt_SOURCES)
OBJECTS = mutt_dotlock.o $(mutt_OBJECTS)
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
+ cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
done
-.c.o:
- $(COMPILE) -c $<
-
.s.o:
$(COMPILE) -c $<
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
(cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+
+maintainer-clean-depend:
+ -rm -rf .deps
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
+ @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
+ < .deps/$(*F).p > .deps/$(*F).P
+ @-rm -f .deps/$(*F).p
info: info-recursive
dvi: dvi-recursive
check: all-am
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \
- mostlyclean-compile mostlyclean-tags \
+ mostlyclean-compile mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-tags \
- clean-generic mostlyclean-am
+ clean-depend clean-generic mostlyclean-am
distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile \
- distclean-tags distclean-generic clean-am
+ distclean-tags distclean-depend distclean-generic \
+ clean-am
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS \
maintainer-clean-compile maintainer-clean-tags \
- maintainer-clean-generic distclean-am
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean-am
mostlyclean: mostlyclean-recursive mostlyclean-am
all-recursive check-recursive installcheck-recursive info-recursive \
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
-installcheck all-recursive-am all-am install-exec-am uninstall-am \
-install-exec install-data install uninstall all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+distclean-tags clean-tags maintainer-clean-tags distdir \
+mostlyclean-depend distclean-depend clean-depend \
+maintainer-clean-depend info dvi installcheck all-recursive-am all-am \
+install-exec-am uninstall-am install-exec install-data install \
+uninstall all installdirs mostlyclean-generic distclean-generic \
+clean-generic maintainer-clean-generic clean mostlyclean distclean \
+maintainer-clean
mutt_dotlock.c: dotlock.c
pattern_t *tmp;
pattern_t *last = NULL;
int not = 0;
+ int alladdr = 0;
int or = 0;
int implicit = 1; /* used to detect logical AND operator */
struct pattern_flags *entry;
SKIPWS (ps.dptr);
switch (*ps.dptr)
{
+ case '^':
+ ps.dptr++;
+ alladdr = !alladdr;
+ break;
case '!':
ps.dptr++;
not = !not;
ps.dptr++;
implicit = 0;
not = 0;
+ alladdr = 0;
break;
case '~':
if (implicit && or)
tmp = new_pattern ();
tmp->not = not;
+ tmp->alladdr = alladdr;
not = 0;
+ alladdr=0;
if (last)
last->next = tmp;
curlist = tmp;
last = tmp;
tmp->not = not;
+ tmp->alladdr = alladdr;
not = 0;
+ alladdr = 0;
ps.dptr = p + 1; /* restore location */
break;
default:
return 0;
}
-static int match_adrlist (regex_t *rx, int match_personal, ADDRESS *a)
+static int match_adrlist (regex_t *rx, int match_personal, ADDRESS *a, short alladdr)
{
+ if (a==NULL)
+ return 0;
for (; a; a = a->next)
{
- if ((a->mailbox && regexec (rx, a->mailbox, 0, NULL, 0) == 0) ||
- (match_personal && a->personal && regexec (rx, a->personal, 0, NULL, 0) == 0))
- return 1;
+ if (alladdr^((a->mailbox && regexec (rx, a->mailbox, 0, NULL, 0) == 0) ||
+ (match_personal && a->personal && regexec (rx, a->personal, 0, NULL, 0) == 0)))
+ return alladdr^1;
}
- return 0;
+ return alladdr^0;
}
static int match_reference (regex_t *rx, LIST *refs)
case M_WHOLE_MSG:
return (pat->not ^ msg_search (ctx, pat->rx, buf, sizeof (buf), pat->op, h->msgno));
case M_SENDER:
- return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->sender));
+ return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->sender,pat->alladdr));
case M_FROM:
- return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->from));
+ return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->from,pat->alladdr));
case M_TO:
- return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to));
+ return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to,pat->alladdr));
case M_CC:
- return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc));
+ return (pat->not ^ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc,pat->alladdr));
case M_SUBJECT:
return (pat->not ^ (h->env->subject && regexec (pat->rx, h->env->subject, 0, NULL, 0) == 0));
case M_ID:
case M_REFERENCE:
return (pat->not ^ match_reference (pat->rx, h->env->references));
case M_ADDRESS:
- return (pat->not ^ (match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->from) ||
- match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->sender) ||
- match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to) ||
- match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc)));
+ return (pat->not ^ (match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->from,pat->alladdr) ||
+ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->sender,pat->alladdr) ||
+ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to,pat->alladdr) ||
+ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc,pat->alladdr)));
break;
case M_RECIPIENT:
- return (pat->not ^ (match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to) ||
- match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc)));
+ return (pat->not ^ (match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->to,pat->alladdr) ||
+ match_adrlist (pat->rx, flags & M_MATCH_FULL_ADDRESS, h->env->cc,pat->alladdr)));
break;
case M_LIST:
return (pat->not ^ (mutt_is_list_recipient (h->env->to) ||