- Accept "-" for msgfile (STDIN) and catfile (STDOUT)
- Merge msgfile into formatted catfile. The catfile is created if
it does not exist (current behavior). If the catfile exists,
its messages are included in the new catfile. Collisions between
set and message numbers cause the msgfile message text to replace
the existing message text.
(The $delset directive now makes more sense.)
Standards: The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
- Replace corrupt()/nomem() with errx(). The replaced routines
called local error() -> warning() which prints an input file line
number. This probably makes no sense for these conditions (it
is not a syntax error in msgfile). Line numbers are completely
nonsense when dealing with reading a formatted catfile.
- Modify warning() to only print line number when reading from a
message file. Also print the current file being processed.
- Don't issue a warning when processing a line with only a message
number and no trailing space. This is valid and will delete any
existing message with that number from the current set.
- Reset lineno for each msgfile processed.
that they conform to what the corresponding manual pages say. This makes all
the tests I recently introduced for these utilities pass.
pooka thinks this was time well spent ;-)
This adds reachover Makefiles to build and install the atf tools.
Some are public, thus installed in /usr/bin, and others are internal
and therefore installed in /usr/libexec.
- Add a "forward" command as requested by garbled@.
From the manpage:
forward
Takes a list of messages and prompts for an address (or
addresses) to forward each message to. If no message list is
specified, the current message is used. The mail editor is run
for each message allowing the user to enter a message that will
precede the forward message. The message is sent as a multi-
part/mixed MIME encoded message.
- Add the ability to match messages that do (or do not) contain a
header field. E.g., the command "f ! /Subject:" will display the
list of messages that are missing a "Subject" field.
- Teach savemail() to prefix fake headlines so the mbox doesn't get
broken.
- Fixed a couple of "bugs" in the attachment editing routine.
- Fix a memory leak in newgrp(). (Noted by ginsbach@.)
- If the new and old groups are the same, addgrp() does nothing so
exit early. (Noted by ginsbach@.)
- In newgrp(), if the new group isn't found in the in-core, check the
group membership list anyway as the in-core list may be full or
/etc/groups may have been edited since login. (Requested by
ginsbach@.)
- Deal with a full in-core group[] array in addgid() rather than
silently ignoring it and ending up with a group[] array that is
inconsistent with the current group.
- More explicit error handling in addgroup().
- Add a "bounce" command as requested by garbled@.
From the manpage:
bounce Takes a list of messages and prompts for an address to bounce the
messages to. All the original header fields are preserved except
for the ``Delivered-To'', ``X-Original-To'' and ``Status''
fields. The new ``To'' field contains the bounce address(es)
plus any addresses in the old ``To'' field minus the user's local
address and any on the alternates list. (See the alternates com-
mand.)
- Introduce date_to_tm() and hl_date_to_tm() to parse the date and
headline date a bit more efficiently.
- If 'tm_isdst' is determined, let strftime(3) handle the '%Z' and
'%z' formats. Otherwise, output "-0000" and "???", respectively, to
help preserve with alignment; strftime(3) will output an empty
string in these case.
- Change fail() to use the '-d' flag (which sets the 'debug' variable)
rather than the "debug" _environment_ variable. This is more
consistent with other warnings.
- Don't use gcc C extensions, e.g., "case LOW ... HIGH:".
- Define is_WSP() in def.h to be an inline function that for checks
whitespace (WSP = ' ' or '\t'), as defined in RFC 2822. Use it
consistently in place of isblank().
- For consistency, rename skip_blank() to skip_WSP().
- Add inline skip_space() to complement skip_blank() (now skip_WSP).
- Check all ctype(3) calls for argument range issues.
- Whitespace and comment cleanup/changes.
- general cleanup [e-funcs, lint fixes, exit values, more error checking]
- add the ability to change the primary group group as login:group, or :group
*disabled*, until it is discussed.
- remove krb4 code since there is no more krb4 code in the tree.
- also make the old su behave like the pam su: su to the same user, does
not ask for a password.
- split out shared code into a separate file.
to override the default shell:
* Rename _BASENAME_DEFSHELL to DEFSHELL_CUSTOM, because it's no longer
always a basename, it might be a full path;
* Rename DEFSHELL to DEFSHELL_INDEX, because it's actually an index into
an array;
* Provide symbolic names for the possible values if DEFSHELL_INDEX;
* Document how the build environment may set DEFSHELL_INDEX or
DEFSHELL_CUSTOM to choose the default shell;
* Move the fallback definition of DEFSHELL_INDEX from config.h to job.c,
because it's used only in job.c.
Discussed with sjg.