Files
mboxgrep/doc/mboxgrep.info

268 lines
6.7 KiB
Plaintext
Raw Normal View History

This is mboxgrep.info, produced by makeinfo version 6.7 from
mboxgrep.texi.
INFO-DIR-SECTION Mail
START-INFO-DIR-ENTRY
* mboxgrep: (mboxgrep). A mail folder scanning utility.
END-INFO-DIR-ENTRY

File: mboxgrep.info, Node: Top, Up: (dir)
This file documents 'mboxgrep' (version 0.7.10), a mailbox scanning
utility.
Copyright (C) 2000, 2001, 2002, 2003 Daniel Spiljar
* Menu:
* Introduction:: A short preface.
* Invoking:: Command-line arguments.
* Examples:: A few examples of usage.
* Bugs:: What to do with bugs and similar vermin.
* To Vicky:: Author's dedication.

File: mboxgrep.info, Node: Introduction, Next: Invoking, Up: Top
2018-10-04 22:32:37 +02:00
1 Introduction
**************
2018-10-04 22:32:37 +02:00
'mboxgrep' is a small, non-interactive utility that scans mail folders
Bump to version 0.7.10 and import of changes that have been made between 2003 and 2006 and haven't been tracked by any SCM. The changes are the following, in reverse order: * src/mboxgrep.h, src/main.c, src/mbox.c, src/mbox.h, src/scan.c: Temporary mbox file (used for deleting messages) is now created by tmpmbox_create(); tmpp global pointer is killed; portions of code in scan.c are replaced by single call of mbox_write_message(); scan.c no longer includes zlib.h and bzlib.h. * src/mboxgrep.h, src/main.c, src/maildir.c, src/scan.c: Got rid off tmpp and maildir_count global variables (code cleanup). * src/mboxgrep.h, src/main.c, src/scan.c: Introduction of the global runtime_t structure; mailbox counter, MD5 hash and other global variables are now part of it (code cleanup). * src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: Portions of scan_mailbox() have been moved to new functions, pcre_match() and regex_match() (code cleanup). * src/main.c, src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: main() has been partially uncluttered by moving portions of the code to functions pcre_init() and regex_init(). * src/main.c, src/mboxgrep.h, src/misc.c, src/misc.h: Variables regex_s and haveregex are now part of the option_t structure (code cleanup). * src/main.c, src/misc.c, src/misc.h: Parts of main() have been moved to set_default_options() and get_runtime_options() (code cleanup). * src/mbox.c, src/mbox.h: File mode and ownership-altering code has been moved to a separate function, tmpfile_mod_own (code cleanup). * src/mbox.c, src/mbox.h: Portions of the code from tmpfile_open moved to a new function, tmpfile_name (code cleanup). * src/maildir.c, src/mh.c: Removed some unused variables (have_return_path). * src/mboxgrep.h, src/maildir.c, src/mh.c, src/mbox.c, src/scan.c, src/main.c: boxname, outboxname, pipecmd and tmpfilename are now a part of the config_t structure and no longer global variables. * src/scan.c, src/misc.c, src/misc.h: Created postmark_print() to unclutter scan_mailbox(). * src/misc.c, src/misc.h, src/mbox.c, src/maildir.c, src/mh.c: Some repetitive code moved to malloc_message(). * src/mbox.c: Cleanup of mbox_write_message(); use of gzwrite_loop() and bzwrite_loop(). * src/scan.c, src/wrap.h, src/wrap.c: Wrote gzwrite_loop() and bzwrite_loop() to remove some repetitive code from scan.c. * src/scan.c: md5_check_message(): array b and cast in strncmp are no longer unsigned. * src/info.c, src/mboxgrep.h: Updated copyright information, changed author's email address to the one at Panix. * src/mbox.h, src/mbox.c, src/scan.c, src/main.c: mbox_write_message(); further fixes of message deletion code. * src/scan.c: Fixed deleting messages from mbox folders compressed with bzip2. * src/main.c, src/mbox.c: Moved James P. Dugal's ownership-preserving code from main() to tmpfile_open(). * src/info.c: If bzip2 support is compiled in, `--help' command should list `bz2mbox' as a valid option to `--mailbox-format='.
2018-10-04 22:07:27 +02:00
for messages matching regular expressions.
It supports basic and extended POSIX regular expressions.
2018-10-04 22:32:37 +02:00
'Perl'-style regular expressions are supported as well, if 'mboxgrep' is
linked with PCRE library.
Found messages can be either displayed on standard output, counted,
deleted, piped to a specified command, or copied to another mailbox.
It can read and write a variety of folder formats:
* mbox folders, either plain or compressed
* MH folders
* nnml and nnmh folders used by Gnus
2018-10-04 22:32:37 +02:00
* 'qmail'-style maildirs
Additionally, it can read mbox folders or output from another
2018-10-04 22:32:37 +02:00
'mboxgrep' process from standard input. It does so if a single dash (-)
is given as a file name.

File: mboxgrep.info, Node: Invoking, Next: Examples, Prev: Introduction, Up: Top
2018-10-04 22:32:37 +02:00
2 Command-Line Arguments
************************
2018-10-04 22:32:37 +02:00
The syntax of 'mboxgrep' invocation is:
mboxgrep [OPTIONS] PATTERN [MAILBOX]
* Menu:
* Miscellaneous::
* File locking::
* Regexp selection::
* Output control::
* Search scope selection::
* Mailbox type selection::

File: mboxgrep.info, Node: Miscellaneous, Next: File locking, Up: Invoking
2018-10-04 22:32:37 +02:00
'--help'
'-h'
Display a brief help screen and exit.
2018-10-04 22:32:37 +02:00
'--version'
'-V'
Display program version and copyright information and exit.
2018-10-04 22:32:37 +02:00
'--recursive'
'-r'
Descend into directories recursively.

File: mboxgrep.info, Node: File locking, Next: Regexp selection, Prev: Miscellaneous, Up: Invoking
2018-10-04 22:32:37 +02:00
When accessing mbox folders, 'mboxgrep' puts a shared lock on files by
default. Note that mbox folders normally should not be accessed without
locking.
2018-10-04 22:32:37 +02:00
'--file-lock=METHOD'
'-l METHOD'
Specify file locking METHOD. 'mboxgrep' supports 'flock' and
'fcntl' file locking. However, one of these methods may be
unimplemented on your operating system and thus not available in
2018-10-04 22:32:37 +02:00
'mboxgrep' at run time. To disable file locking, specify 'none'.
2018-10-04 22:32:37 +02:00
'--no-file-lock'
'-nl'
Do not attempt to lock mbox folder files.

File: mboxgrep.info, Node: Regexp selection, Next: Output control, Prev: File locking, Up: Invoking
2018-10-04 22:32:37 +02:00
'--extended-regexp'
'-E'
PATTERN is an extended regular expression.
2018-10-04 22:32:37 +02:00
'--basic-regexp'
'-G'
PATTERN is a basic regular expression.
2018-10-04 22:32:37 +02:00
'--perl-regexp'
'-P'
PATTERN is a Perl regular expression.
2018-10-04 22:32:37 +02:00
'--regexp=PATTERN'
'-e PATTERN'
Use PATTERN as a regular expression.
2018-10-04 22:32:37 +02:00
'--ignore-case'
'-i'
Perform case-insensitive search.
2018-10-04 22:32:37 +02:00
'--invert-match'
'-v'
Invert the sense of matching, i.e. select only non-matching
messages.

File: mboxgrep.info, Node: Output control, Next: Search scope selection, Prev: Regexp selection, Up: Invoking
2018-10-04 22:32:37 +02:00
By default, 'mboxgrep' writes found messages to standard output. The
options below change such behavior.
2018-10-04 22:32:37 +02:00
'--count'
'-c'
Suppress normal output and print the count of matching (or
2018-10-04 22:32:37 +02:00
non-matching, if used with the '-v' option) messages.
2018-10-04 22:32:37 +02:00
'--delete'
'-d'
Suppress normal output and delete selected messages.
Use with extreme caution.
2018-10-04 22:32:37 +02:00
'--no-duplicates'
'-nd'
Ignore duplicate messages.
2018-10-04 22:32:37 +02:00
'--output=FOLDER'
'-o FOLDER'
Suppress normal output and write messages to destination folder
FOLDER instead.
2018-10-04 22:32:37 +02:00
Note that 'mboxgrep' assumes the output folder is of the same
format as the input folder. Currently there is no possibility to
convert folders.
2018-10-04 22:32:37 +02:00
'--pipe=COMMAND'
'-p COMMAND'
Suppress normal output and pipe each selected message to a separate
instance of COMMAND.
2018-10-04 22:32:37 +02:00
'--no-messages'
'-s'
Suppress error messages.

File: mboxgrep.info, Node: Search scope selection, Next: Mailbox type selection, Prev: Output control, Up: Invoking
2018-10-04 22:32:37 +02:00
'--headers'
'-H'
Match PATTERN against message headers.
2018-10-04 22:32:37 +02:00
'--body'
'-B'
Match PATTERN against message body.

File: mboxgrep.info, Node: Mailbox type selection, Prev: Search scope selection, Up: Invoking
2018-10-04 22:32:37 +02:00
'--mailbox-format=FORMAT'
'-m FORMAT'
Specify mailbox FORMAT. Supported formats are 'mbox' (default),
'zmbox' (gzip compressed mbox), 'bz2mbox' (bzip2 compressed mbox)
'mh', 'nnml', 'nnmh', and 'maildir'.
Bump to version 0.7.10 and import of changes that have been made between 2003 and 2006 and haven't been tracked by any SCM. The changes are the following, in reverse order: * src/mboxgrep.h, src/main.c, src/mbox.c, src/mbox.h, src/scan.c: Temporary mbox file (used for deleting messages) is now created by tmpmbox_create(); tmpp global pointer is killed; portions of code in scan.c are replaced by single call of mbox_write_message(); scan.c no longer includes zlib.h and bzlib.h. * src/mboxgrep.h, src/main.c, src/maildir.c, src/scan.c: Got rid off tmpp and maildir_count global variables (code cleanup). * src/mboxgrep.h, src/main.c, src/scan.c: Introduction of the global runtime_t structure; mailbox counter, MD5 hash and other global variables are now part of it (code cleanup). * src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: Portions of scan_mailbox() have been moved to new functions, pcre_match() and regex_match() (code cleanup). * src/main.c, src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: main() has been partially uncluttered by moving portions of the code to functions pcre_init() and regex_init(). * src/main.c, src/mboxgrep.h, src/misc.c, src/misc.h: Variables regex_s and haveregex are now part of the option_t structure (code cleanup). * src/main.c, src/misc.c, src/misc.h: Parts of main() have been moved to set_default_options() and get_runtime_options() (code cleanup). * src/mbox.c, src/mbox.h: File mode and ownership-altering code has been moved to a separate function, tmpfile_mod_own (code cleanup). * src/mbox.c, src/mbox.h: Portions of the code from tmpfile_open moved to a new function, tmpfile_name (code cleanup). * src/maildir.c, src/mh.c: Removed some unused variables (have_return_path). * src/mboxgrep.h, src/maildir.c, src/mh.c, src/mbox.c, src/scan.c, src/main.c: boxname, outboxname, pipecmd and tmpfilename are now a part of the config_t structure and no longer global variables. * src/scan.c, src/misc.c, src/misc.h: Created postmark_print() to unclutter scan_mailbox(). * src/misc.c, src/misc.h, src/mbox.c, src/maildir.c, src/mh.c: Some repetitive code moved to malloc_message(). * src/mbox.c: Cleanup of mbox_write_message(); use of gzwrite_loop() and bzwrite_loop(). * src/scan.c, src/wrap.h, src/wrap.c: Wrote gzwrite_loop() and bzwrite_loop() to remove some repetitive code from scan.c. * src/scan.c: md5_check_message(): array b and cast in strncmp are no longer unsigned. * src/info.c, src/mboxgrep.h: Updated copyright information, changed author's email address to the one at Panix. * src/mbox.h, src/mbox.c, src/scan.c, src/main.c: mbox_write_message(); further fixes of message deletion code. * src/scan.c: Fixed deleting messages from mbox folders compressed with bzip2. * src/main.c, src/mbox.c: Moved James P. Dugal's ownership-preserving code from main() to tmpfile_open(). * src/info.c: If bzip2 support is compiled in, `--help' command should list `bz2mbox' as a valid option to `--mailbox-format='.
2018-10-04 22:07:27 +02:00

File: mboxgrep.info, Node: Examples, Next: Bugs, Prev: Invoking, Up: Top
2018-10-04 22:32:37 +02:00
3 Examples
**********
2018-10-04 22:32:37 +02:00
Scan '$MAIL' for messages from Dirty Harry:
2023-02-10 09:35:50 +01:00
mboxgrep -H '^From:.*callahan@sanfranciscopolice\.org' $MAIL
Re-mail to George messages that mention his name:
mboxgrep --pipe="/usr/lib/sendmail george" --ignore-case george ~/Mail/*
2018-10-04 22:32:37 +02:00
Display all messages in folder '~/Mail/incoming', except those that
appear to originate from AOL:
mboxgrep -v -H '^Received:.*aol\.com' ~/Mail/incoming
2018-10-04 22:32:37 +02:00
Do a case-insensitive scan of '~/Mail/incoming' for messages with
subject "Weekly News" and write them to folder '~/Mail/archive':
mboxgrep -o ~/Mail/archive -H -i '^Subject: Weekly News' ~/Mail/incoming
2018-10-04 22:32:37 +02:00
Count _all_ messages stored in folder 'spam', ignoring duplicates:
mboxgrep -nd -c . spam

File: mboxgrep.info, Node: Bugs, Next: To Vicky, Prev: Examples, Up: Top
2018-10-04 22:32:37 +02:00
4 Detecting Vermin
******************
2018-10-04 22:32:37 +02:00
Shortly, if 'mboxgrep' crashes and/or works differently than described
2023-02-10 09:35:50 +01:00
in this manual, you have found a bug.
2018-10-04 22:32:37 +02:00
Please report bugs to <dspiljar@datatipp.se>. Instructions how to
reproduce the bug or output from a debugger would be highly appreciated.
2023-02-10 09:35:50 +01:00
Please do not, however, send any core dumps.

File: mboxgrep.info, Node: To Vicky, Prev: Bugs, Up: Top
2018-10-04 22:32:37 +02:00
5 Author's Dedication
*********************
2018-10-04 22:32:37 +02:00
'Mboxgrep' is dedicated in loving memory of Vicky, my cat who died of
Bump to version 0.7.10 and import of changes that have been made between 2003 and 2006 and haven't been tracked by any SCM. The changes are the following, in reverse order: * src/mboxgrep.h, src/main.c, src/mbox.c, src/mbox.h, src/scan.c: Temporary mbox file (used for deleting messages) is now created by tmpmbox_create(); tmpp global pointer is killed; portions of code in scan.c are replaced by single call of mbox_write_message(); scan.c no longer includes zlib.h and bzlib.h. * src/mboxgrep.h, src/main.c, src/maildir.c, src/scan.c: Got rid off tmpp and maildir_count global variables (code cleanup). * src/mboxgrep.h, src/main.c, src/scan.c: Introduction of the global runtime_t structure; mailbox counter, MD5 hash and other global variables are now part of it (code cleanup). * src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: Portions of scan_mailbox() have been moved to new functions, pcre_match() and regex_match() (code cleanup). * src/main.c, src/mboxgrep.h, src/re.c, src/re.h, src/scan.c: main() has been partially uncluttered by moving portions of the code to functions pcre_init() and regex_init(). * src/main.c, src/mboxgrep.h, src/misc.c, src/misc.h: Variables regex_s and haveregex are now part of the option_t structure (code cleanup). * src/main.c, src/misc.c, src/misc.h: Parts of main() have been moved to set_default_options() and get_runtime_options() (code cleanup). * src/mbox.c, src/mbox.h: File mode and ownership-altering code has been moved to a separate function, tmpfile_mod_own (code cleanup). * src/mbox.c, src/mbox.h: Portions of the code from tmpfile_open moved to a new function, tmpfile_name (code cleanup). * src/maildir.c, src/mh.c: Removed some unused variables (have_return_path). * src/mboxgrep.h, src/maildir.c, src/mh.c, src/mbox.c, src/scan.c, src/main.c: boxname, outboxname, pipecmd and tmpfilename are now a part of the config_t structure and no longer global variables. * src/scan.c, src/misc.c, src/misc.h: Created postmark_print() to unclutter scan_mailbox(). * src/misc.c, src/misc.h, src/mbox.c, src/maildir.c, src/mh.c: Some repetitive code moved to malloc_message(). * src/mbox.c: Cleanup of mbox_write_message(); use of gzwrite_loop() and bzwrite_loop(). * src/scan.c, src/wrap.h, src/wrap.c: Wrote gzwrite_loop() and bzwrite_loop() to remove some repetitive code from scan.c. * src/scan.c: md5_check_message(): array b and cast in strncmp are no longer unsigned. * src/info.c, src/mboxgrep.h: Updated copyright information, changed author's email address to the one at Panix. * src/mbox.h, src/mbox.c, src/scan.c, src/main.c: mbox_write_message(); further fixes of message deletion code. * src/scan.c: Fixed deleting messages from mbox folders compressed with bzip2. * src/main.c, src/mbox.c: Moved James P. Dugal's ownership-preserving code from main() to tmpfile_open(). * src/info.c: If bzip2 support is compiled in, `--help' command should list `bz2mbox' as a valid option to `--mailbox-format='.
2018-10-04 22:07:27 +02:00
tumor on Sep 12, 2002.
You haven't been long with us, but you gave us a lot of joy and all
2018-10-04 22:32:37 +02:00
your big heart that stopped ticking too early. I will never forget you.
Sleep well, little friend.

Tag Table:
Node: Top197
Node: Introduction596
Node: Invoking1465
Node: Miscellaneous1827
Node: File locking2112
Node: Regexp selection2749
Node: Output control3301
Node: Search scope selection4292
Node: Mailbox type selection4533
Node: Examples4854
2023-02-10 09:35:50 +01:00
Node: Bugs5678
Node: To Vicky6096

End Tag Table

Local Variables:
coding: utf-8
End: