diff doc/pick.me @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/pick.me	Mon Apr 18 23:46:02 2005 +0900
@@ -0,0 +1,300 @@
+.\"	This file is automatically generated.  Do not edit!
+.\" @(#)$Id$
+.SC PICK 1
+.NA
+pick \- select messages by content
+.SY
+.ie t \{\
+.ta .4i 1.8i
+.nf
+.in .5i
+^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help]
+^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field]
+^^^\0\-from~^
+^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace]
+^^^\0\-subject~^
+^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero]
+^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist]
+.fi
+.re
+.in 1i
+.\}
+.el \{\
+.ti .5i
+pick
+\%[+folder] \%[msgs]
+\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace]
+\%[\-\|\-component\ pattern]
+\%[\-cc\ pattern]
+\%[\-date\ pattern]
+\%[\-from\ pattern]
+\%[\-search\ pattern]
+\%[\-subject\ pattern]
+\%[\-to\ pattern]
+\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field]
+\%[\-sequence\ name\ ...]
+\%[\-public] \%[\-nopublic]
+\%[\-zero] \%[\-nozero]
+\%[\-list] \%[\-nolist]
+\%[\-help]
+.\}
+
+.ti .5i
+typically:
+.br
+scan\0`pick\0\-from\0jones`
+.br
+pick\0\-to\0holloway\0\-sequence\0select
+.br
+show\0`pick\0\-before\0friday`
+.DE
+\fIPick\fR searches messages within a folder for the specified
+contents, and then identifies those messages.
+Two types of search primitives are available:
+pattern matching and date constraint operations.
+
+A modified \fIgrep\fR(1) is used to perform the matching, so the
+full regular expression (see \fIed\fR(1)) facility is available
+within `pattern'.
+With `\-search', `pattern' is used directly,
+and with the others, the grep pattern constructed is:
+
+.ti +.5i
+\*(lqcomponent[ \\t]*:\&.*pattern\*(rq
+
+This means that the pattern specified for a `\-search' will be
+found everywhere in the message, including the header and the body,
+while the other pattern matching requests are limited to the single
+specified component.
+The expression
+
+.ti +.5i
+`\-\|\-component\ pattern'
+
+is a shorthand for specifying
+
+.ti +.5i
+`\-search \*(lqcomponent[ \\t]*:\&.*pattern\*(rq\ '
+
+It is used to pick a component which is not one of
+\*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqDate:\*(rq, \*(lqFrom:\*(rq,
+or \*(lqSubject:\*(rq.
+An example is `pick\0\-\|\-reply\-to\0pooh'.
+
+Pattern matching is performed on a per\-line basis.
+Within the header of
+the message, each component is treated as one long line, but in
+the body, each line is separate.
+Lower\-case letters in the
+search pattern will match either lower or upper case in the
+message, while upper case will match only upper case.
+
+Note that since the `\-date' switch is a pattern matching operation (as 
+described above),
+to find messages sent on a certain date
+the pattern string must match the text of the
+\*(lqDate:\*(rq field of the message.
+
+Independent of any pattern matching operations requested,
+the switches `\-after date' or `\-before date' may also be used
+to introduce date/time contraints on all of the messages.
+By default, the \*(lqDate:\*(rq field is consulted,
+but if another date yielding field
+(such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq) should be used,
+the `\-datefield\ field' switch may be used.
+
+With `\-before' and `\-after',
+\fIpick\fR will actually parse the date fields in each of the messages
+specified in `msgs'
+and compare them to the date/time specified.
+If `\-after' is given,
+then only those messages whose \*(lqDate:\*(rq field value
+is chronologically after
+the date specified will be considered.
+The `\-before' switch specifies the complimentary action.
+
+Both the `\-after' and `\-before' switches take legal 822\-style date
+specifications as arguments.
+\fIPick\fR will default certain missing fields so that the entire date
+need not be specified.
+These fields are (in order of defaulting):
+timezone, time and timezone, date, date and timezone.
+All defaults are taken from the current date, time, and timezone.
+
+In addition to 822\-style dates,
+\fIpick\fR will also recognize any of the days of the week
+(\*(lqsunday\*(rq, \*(lqmonday\*(rq, and so on),
+and the special dates
+\*(lqtoday\*(rq, \*(lqyesterday\*(rq (24 hours ago),
+and \*(lqtomorrow\*(rq (24 hours from now).
+All days of the week are judged to refer to a day in the past
+(e.g., telling \fIpick\fR \*(lqsaturday\*(rq on
+a \*(lqtuesday\*(rq means \*(lqlast\ saturday\*(rq
+not \*(lqthis\ saturday\*(rq).
+
+Finally, in addition to these special specifications,
+\fIpick\fR will also honor a specification of the form \*(lq\-dd\*(rq,
+which means \*(lqdd days ago\*(rq.
+
+\fIPick\fR supports complex boolean operations on the searching primitives
+with the `\-and', `\-or', `\-not', and `\-lbrace\ ...\ \-rbrace' switches.
+For example,
+
+.ti +.5i
+.ie t \{\
+pick\0\-after\0yesterday\0\-and\0\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace
+.\}
+.el \{\
+pick\0\-after\0yesterday\0\-and
+.br
+.ti +1i
+\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace
+.\}
+
+identifies messages recently sent by \*(lqfrieda\*(rq or \*(lqfear\*(rq.
+
+The matching primitives take precedence over the `\-not' switch,
+which in turn takes precedence over `\-and'
+which in turn takes precedence over `\-or'.
+To override the default precedence,
+the `\-lbrace' and `\-rbrace' switches are provided,
+which act just like opening and closing parentheses in logical expressions.
+
+If no search criteria are given, all the messages
+specified on the command
+line are selected (this defaults to \*(lqall\*(rq).
+
+Once the search has been performed,
+if the `\-list' switch is given,
+the message numbers of the selected messages are written to the standard
+output separated by newlines.
+This is \fIextremely\fR useful for quickly generating arguments for other
+\fIMH\fR programs by using the \*(lqbackquoting\*(rq syntax of the shell.
+For example,
+the command
+
+.ti +.5i
+scan\0`pick\0+todo\0\-after\0\*(lq31 Mar 83 0123 PST\*(rq`
+
+says to \fIscan\fR those messages in the indicated folder which meet the
+appropriate criterion.
+Note that since \fIpick\fR\0's context changes are written out prior to
+\fIscan\fR\0's invocation,
+you need not give the folder argument to \fIscan\fR as well.
+
+Regardless of the operation of the `\-list' switch,
+the `\-sequence name' switch may be given once for each sequence the user
+wishes to define.
+For each sequence named,
+that sequence will be defined to mean exactly those messages selected by
+\fIpick\fR.
+For example,
+
+.ti +.5i
+pick\0\-from\0frated\0\-seq\0fred
+
+defines a new message sequence for the current folder called \*(lqfred\*(rq
+which contains exactly those messages that were selected.
+
+Note that whenever \fIpick\fR processes a `\-sequence\ name' switch,
+it sets `\-nolist'.
+
+By default, \fIpick\fR will zero the sequence before adding it.
+This action can be disabled with the `\-nozero' switch,
+which means that the messages selected by \fIpick\fR will be added to the
+sequence, if it already exists, and any messages already a part of that
+sequence will remain so.
+
+The `\-public' and `\-nopublic' switches are used by \fIpick\fR in the same
+way \fImark\fR uses them.
+.Fi
+^$HOME/\&.mh\(ruprofile~^The user profile
+.Pr
+^Path:~^To determine the user's MH directory
+.Ps
+^Current\-Folder:~^To find the default current folder
+.Sa
+mark(1)
+.De
+`+folder' defaults to the current folder
+.Ds
+`msgs' defaults to all
+.Ds
+`\-datefield date'
+.Ds
+`\-nopublic' if the folder is read\-only, `\-public' otherwise
+.Ds
+`\-zero'
+.Ds
+`\-list' is the default if no `\-sequence', `\-nolist' otherwise
+.Co
+If a folder is given, it will become the current folder.
+.Hi
+In previous versions of \fIMH\fR,
+the \fIpick\fR command would \fIshow\fR, \fIscan\fR, or \fIrefile\fR the
+selected messages.
+This was rather \*(lqinverted logic\*(rq from the UNIX point of view,
+so \fIpick\fR was changed to define sequences and output those sequences.
+Hence, \fIpick\fR can be used to generate the arguments for all other
+\fIMH\fR commands,
+instead of giving \fIpick\fR endless switches for invoking those commands
+itself.
+
+Also, previous versions of \fIpick\fR balked if you didn't specify a search
+string or a date/time constraint.
+The current version does not, and merely matches the messages you specify.
+This lets you type something like:
+
+.ti +.5i
+show\0`pick\0last:20\0\-seq\0fear`
+
+instead of typing
+
+.in +.5i
+.nf
+mark\0\-add\0\-nozero\0\-seq\0fear\0last:20
+show\0fear
+.fi
+.in -.5i
+
+Finally,
+timezones used to be ignored when comparing dates:
+they aren't any more.
+.Hh
+Use \*(lqpick sequence \-list\*(rq
+to enumerate the messages in a sequence (such as for use 
+by a shell script).
+.Bu
+The argument to the `\-after' and `\-before' switches must be interpreted
+as a single token by the shell that invokes \fIpick\fR.
+Therefore,
+one must usually place the argument to this switch inside double\-quotes.
+Furthermore,
+any occurance of `\-datefield' must occur prior to the `\-after'
+or `\-before' switch it applies to.
+
+If \fIpick\fR is used in a back\-quoted operation,
+such as
+
+.ti +.5i
+scan\0`pick\0\-from\0jones`
+
+and \fIpick\fR selects no messages
+(e.g., no messages are from \*(lqjones\*(rq),
+then the shell will still run the outer command (e.g., \*(lqscan\*(rq).
+Since no messages were matched,
+\fIpick\fR produced no output,
+and the argument given to the outer command as a result of backquoting
+\fIpick\fR is empty.
+In the case of \fIMH\fR programs,
+the outer command now acts as if the default `msg' or `msgs' should be used
+(e.g., \*(lqall\*(rq in the case of \fIscan\fR\0).
+To prevent this unexpected behavior,
+if `\-list' was given,
+and if its standard output is not a tty,
+then \fIpick\fR outputs the illegal message number \*(lq0\*(rq when it fails.
+This lets the outer command fail gracefully as well.
+.sp
+The pattern syntax \*(lq[l-r]\*(rq is not supported; each letter
+to be matched must be included within the square brackets.
+.En