markus schnalke [Fri, 9 Dec 2011 15:34:57 +0000 (16:34 +0100)]
Completely reworked the path convertion functions
Moved everything (from sbr/getfolder.c and sbr/m_maildir.c) into
sbr/path.c, but actually replaced the code almost completely.
See h/prototypes.h for the function changes.
sbr/path.c provides explaining comments on the functions.
None of them allocates memory automatically.
Additionally:
- Like for other ``files'', `inc -audit file' places file relative
to the cwd, not relative to the mh-dir. This is for consistency.
- Replaced add(foo, NULL) with getcpy(foo), which ist clearer.
markus schnalke [Sun, 20 Nov 2011 11:38:17 +0000 (12:38 +0100)]
The existence of the profile entry Path is already enforced by context_read().
Hence, removed the obscure ``free(path("./", TFOLDER));'' calls.
Still I don't see the sense in these lines, but they won't get executed,
as the condition is checked before (and the program aborts then).
Probably that's obsolete stuff that remained through several reworks.
markus schnalke [Sat, 5 Nov 2011 16:56:07 +0000 (17:56 +0100)]
Introduced FDEF and FCUR for speaking arguments to getfolder().
Maybe it would be better to two separate functions, but I cannot
imagine good names for them ... :-(
markus schnalke [Sat, 5 Nov 2011 13:04:02 +0000 (14:04 +0100)]
Renamed r1bindex() to mhbasename(), to make its function becomes clear.
All calls to r1bindex() had '/' as second argument. For everything else
one can use strrchr(3) instead of r1bindex().
markus schnalke [Tue, 1 Nov 2011 08:29:08 +0000 (09:29 +0100)]
Don't call writev() anymore.
It might be a sexy syscall, but it's not portable and more complex than
the mainstream solution. For sexy source program, go elsewhere!
markus schnalke [Sun, 30 Oct 2011 10:35:54 +0000 (11:35 +0100)]
Removed the draft message in favor for a consistent draft folder facility
- reworked sbr/m_draft.c (of course)
- removed the -draftfolder/-draftmessage/-nodraftfolder switches
- removed the -draft switch from anno and refile
- no more need to question on existing draft message - yay!
Everything is more consistent now. Cornercases went away. :-)
(Also fixed the switch numbering, as already done for other files earlier.)
markus schnalke [Sun, 16 Oct 2011 09:48:09 +0000 (11:48 +0200)]
Removed the whom program, which relayed on post(8) functionality.
We can later add one again, which only expands aliases but does not
require the MTA to support -bv.
markus schnalke [Sun, 16 Oct 2011 08:47:04 +0000 (10:47 +0200)]
Removed the split feature of send.
It would split large messages into several partial ones, using MIME.
But if a message contains one large file attached, it won't solve the
problem. We better go without this feature and leave it to the user.
markus schnalke [Fri, 7 Oct 2011 06:35:27 +0000 (08:35 +0200)]
Rearranged whitespace (and comments) in all the code!
The primary goal was to only indent with tabs and not mix them with spaces.
Also, no more tabs should appear past the first printable char on each line.
Now editing the sources will be much easier, no matter which editor one uses,
and rearranging won't break aligned code.
(Beware, the changeset is huge, but the `diff -w' changes are moderate.)
markus schnalke [Wed, 5 Oct 2011 17:09:27 +0000 (19:09 +0200)]
Removed msh, vmh and wmh.
The latter ones were long time obsolete; now they went away.
Msh has hardly to do with everyday mmh usage, and we don't support bboards
anymore.
This one changeset saves us about 7,000 lines of code. *yay*
markus schnalke [Wed, 5 Oct 2011 09:28:46 +0000 (11:28 +0200)]
Removed --with-{editor,pager} configure options.
We keep defaulting to vi and more, but search in PATH at run time.
Nowadays, both programs should be available via PATH everywhere.
Otherwise, the the path in the profile.
markus schnalke [Tue, 4 Oct 2011 16:36:14 +0000 (18:36 +0200)]
Removed the MTS and post; now we always use /usr/sbin/sendmail -t
Mmh won't talk SMTP (nor POP).
Also moved OfficialName() from /mts/smtp/hosts.c to sbr/addrsbr.c.
Peter Maydell [Tue, 21 Dec 2010 16:50:24 +0000 (16:50 +0000)]
Clean up code in inc.c
Clean up the confusing use of a variable 'i' in inc.c.
The case where it was being used as 'an error occurred
which means we should not truncate the mailspool' is now
called 'incerr' and merged with the equivalent 'p' variable
used in the POP-specific code. Cases where it was being
used as a random temporary are still called 'i' but now
declared with a much more restricted scope.
This fixes a compilation warning for some compilers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Peter Maydell [Mon, 20 Dec 2010 21:13:32 +0000 (21:13 +0000)]
Suppress tsort diagnostic waffle
tsort produces waffle to standard error if it detects loops in its input.
For our purposes in ordering object files this is harmless, so just send
it all to /dev/null.
Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Peter Maydell [Mon, 20 Dec 2010 21:13:32 +0000 (21:13 +0000)]
Fix unused-function warnings in lex output
Fix the unused-function warnings in the output of lex. In particular, we
silence a warning about yyunput being static but unused by exposing it as
a global function. This costs us a few hundred bytes in the binary but
the other available solutions are flex-specific or more complicated.
YY_NO_UNPUT used to silence this but no longer works in recent flex.
On the other hand YY_NO_INPUT does work to silence warnings about input().
Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Peter Maydell [Mon, 20 Dec 2010 21:13:32 +0000 (21:13 +0000)]
Fix used-uninitialised warning in fmt_rfc2047.c
Fix a used-uninitialised warning in fmt_rfc2047.c.
I don't think it can actually be used uninitialised, but the
code is too complicated for the compiler to realise this.
Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Peter Maydell [Mon, 20 Dec 2010 21:13:32 +0000 (21:13 +0000)]
Fix used-uninitialised warning in new.c
Fix a used-uninitialised warning in new.c by having the check_folders()
routine return first=last=NULL for empty folder lists. This is a more
sensible API anyway. (It would not actually have been possible for
the code to try to use last while it was uninitialised, as it happens.)
Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Peter Maydell [Mon, 20 Dec 2010 19:54:43 +0000 (19:54 +0000)]
Fix warning in sbr/folder_addmsg.c by code cleanup
Clean up some rather oddly written code in folder_addmsg()
so it is easier to understand for both humans and for the
compiler (and the compiler thus stops complaining about an
uninitialised variable).
Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>
David Levine [Wed, 8 Dec 2010 16:47:03 +0000 (10:47 -0600)]
man/send.man: added name= portion to Content-Type
headers to reflect 2006-10-24 change to uip/sendsbr.c.
That change allowed mhstore to use the (file)name when
extracting attachments.
Ken Hornstein [Fri, 19 Nov 2010 20:13:39 +0000 (20:13 +0000)]
(Minor) cleanup of some of the autoconf code with respect to the handling
of compiler flags for SASL, and also rototill (and simplify) the autoconf
handling for the same.
Peter Maydell [Fri, 12 Nov 2010 23:28:26 +0000 (23:28 +0000)]
man/slocal.man: fix formatting error that meant a subsection heading
wasn't displayed as such. Followon cleanup: since the new heading is too
wide to fit in the margin, tidy the margin to 4 characters wide so we
are consistent with how all the headings are displayed.
Earl Hood [Sat, 6 Feb 2010 07:45:47 +0000 (07:45 +0000)]
Fixed variable declaration so older compilers will not complain.
I.e. Older compilers may not support C99, so variables must be
declared at the beginning of a block.
Earl Hood [Thu, 4 Feb 2010 01:39:21 +0000 (01:39 +0000)]
* Bug #15213, #18635: The use of the insecure m_scratch() and
m_tmpfil() functions have been replaced by m_mktemp()
or m_mktemp2() functions (defined in sbr/m_mktemp.c).
The new functions use mkstemp() to securely create
temporary files to avoid the numerous race conditions
that exist with the old functions. This does assume
that mkstemp() is available. Unsure if we need to
create an alternative implementation if mkstemp() is
not available. More information about new temp file
functions in m_mktemp.c, including the support for
MHTMPDIR, TMPDIR, and TMP envvars.
NOTE: The files sbr/m_scratch.c and sbr/m_tmpfil.c should be removed.
Until more testing verifies changes to support new functions have not
broken functionality, the files are be left in the tree, but comments
have been added stating the functions in them should not be called.
Earl Hood [Wed, 3 Feb 2010 05:56:56 +0000 (05:56 +0000)]
* mts/smtp/smtp.c: added SASL support if mts configuration
setting is set to "sendmail". This is useful if sendmail
conf option is to a custom script that creates a proxy
connection to an smtp server.
* sbr/mts.c: added support for MHMTSCONF and MHMTSUSERCONF
envvars. The former specifies an alternative system
mts.conf to use. The later specifies a user-specific
mts.conf to use. This one will be read after the system
conf, so the user's conf only needs to set options they
want to override. The MHMTSUSERCONF allows a user to set
personal alternative mail submission methods w/o affecting
other users on the system.
* uip/whom.c: added SASL-based options so address checking
can work against a server that requires SASL.
David Levine [Wed, 30 Dec 2009 01:42:45 +0000 (01:42 +0000)]
* uip/mhlistsbr.c, uip/mhlsbr.c, uip/picksbr.c: cast
pointers to unsigned long before casting to unsigned int
to avoid warnings on 64-bit about casting from pointer
to int of different size.
David Levine [Fri, 25 Dec 2009 14:47:39 +0000 (14:47 +0000)]
* uip/inc.c: gcc 4.4.1 noticed that maildir could have been
used before initialization. In fact, if that code was ever
reached, maildir would never have been initialized. It's in
an adios call, so replaced with NULL.
David Levine [Mon, 21 Dec 2009 17:18:04 +0000 (17:18 +0000)]
* mts/smtp/smtp.c: In sm_auth_sasl (), removed zeroing of
sasl_inbuffer because it could be used in sm_fget (). Also,
removed allocation of sasl_inbuffer because that was done in
either smtp_init () or sendmail_init ().