2
# $Id: pickthis 1.11 1997/06/06 04:16:35 jpeek book4 $
3
### pickthis - search messages (default: all) for one with same subject
4
### Usage: pickthis [+search-folder|@search-folder] [msgs to search]
6
## pickthis GRABS THE Subject: HEADER FIELD FROM THE CURRENT MESSAGE,
7
## STRIPS OFF ANY Re:, RE:, ETC. FROM THE FRONT OF THE SUBJECT,
8
## THEN SEARCHES FOR OTHER MESSAGES WITH THAT SUBJECT.
9
## IT STORES THE LIST OF MESSAGES IN THE SEQUENCE NAMED picked
10
## (SO YOU CAN USE THEM LATER); IT scanS THE SEQUENCE BEFORE IT QUITS.
12
## BY DEFAULT, pickthis SEARCHES ALL MESSAGES IN THE CURRENT FOLDER.
13
## WITH A LIST OF MESSAGES (EXAMPLE: pickthis cur:50), IT'LL SEARCH THOSE.
14
## IF YOU NAME A FOLDER, IT'LL GET THE SUBJECT OF THE CURRENT MESSAGE
15
## IN THE *CURRENT* FOLDER, THEN SEARCH FOR THAT MESSAGE IN THE NAMED
16
## FOLDER. FOR EXAMPLE, IF THE CURRENT MESSAGE SUBJECT IS "bar baz",
17
## YOU CAN CHECK FOR MESSAGES WITH THE SAME SUBJECT IN YOUR "old"
18
## FOLDER BY TYPING pickthis +old -- IF THERE ARE MATCHES, pickthis
19
## WILL CHANGE YOUR CURRENT FOLDER TO +old, ELSE IT STAYS THE SAME.
21
## BUG: pick WILL FIND A MESSAGE SUBJECT *CONTAINING* THE SUBJECT YOU'RE
22
## LOOKING FOR. FOR EXAMPLE, IF THE CURRENT MESSAGE SUBJECT IS "exmh",
23
## pickthis WILL ALSO FIND MESSAGES WITH THE SUBJECT "xmh vs. exmh", ETC.
24
## I DON'T KNOW HOW TO CHANGE THE WAY THAT pick WORKS. :-(
26
# USE AT YOUR OWN RISK. SEEMS TO WORK, BUT IT'S YOUR RESPONSIBILITY!
27
# PLEASE TELL ME ABOUT BUGS AND FIXES: Jerry Peek, jpeek@jpeek.com
31
# BECAUSE THIS PROGRAM IS AVAILABLE FREE OF CHARGE, THERE IS NO WARRANTY
32
# FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
33
# OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
34
# PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
35
# OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
36
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
37
# TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
38
# PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
39
# REPAIR OR CORRECTION.
41
# IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
42
# WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
43
# REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
44
# INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
45
# OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
46
# TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
47
# YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
48
# PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
49
# POSSIBILITY OF SUCH DAMAGES.
52
myname="`basename $0`" # NAME OF THIS SCRIPT WITHOUT LEADING PATH
55
# IF mhpath RETURNED ZERO STATUS AND THE START OF A PATHNAME, OK.
59
*) echo "$myname quitting: can't get current message?" 1>&2
64
# GET SUBJECT OF THIS MESSAGE WITHOUT ANY Re: ON FRONT.
65
# scan SQUEEZES MULTIPLE SPACES TO ONE SPACE, SO WE CAN'T USE IT. :-(
66
# THIS DOESN'T HANDLE MULTI-LINE SUBJECTS...
67
# ESCAPE METACHARACTERS LIKE [, ], ETC. FOR pick:
70
/^[Ss][Uu][Bb][Jj][Ee][Cc][Tt]:[ ]*/ {
82
# IF sed RETURNED ZERO STATUS AND AT LEAST ONE CHARACTER IN $subj, OK.
85
*) echo "$myname quitting: can't find subject of current message?" 1>&2
90
# SEARCH FOR MESSAGE AND scan IF WE FOUND ANY. DEFAULT TO all MSGS IN FOLDER.
91
# (THE WEIRD ${1+"$@"} GETS ANY ARGS AND WORKS AROUND A PROBLEM IN EARLY sh'S.)
92
if pick -subject "$subj" ${1+"$@"} -seq picked
94
# THIS exitS WITH scan'S EXIT STATUS: