]> diplodocus.org Git - nmh/log
nmh
10 years agoUse HasPrefix() instead of strncmp().
Ralph Corderoy [Sun, 23 Oct 2016 17:56:33 +0000 (18:56 +0100)]
Use HasPrefix() instead of strncmp().

10 years agoAlter HasSuffixC()'s char * to be const.
Ralph Corderoy [Sun, 23 Oct 2016 11:08:31 +0000 (12:08 +0100)]
Alter HasSuffixC()'s char * to be const.

10 years agoutils.c: Add HasPrefix(s, prefix).
Ralph Corderoy [Sun, 23 Oct 2016 11:02:55 +0000 (12:02 +0100)]
utils.c: Add HasPrefix(s, prefix).

HasPrefix returns true if non-NULL s starts with non-NULL prefix.

10 years agoRename EndsWithC() to HasSuffixC().
Ralph Corderoy [Sun, 23 Oct 2016 00:18:49 +0000 (01:18 +0100)]
Rename EndsWithC() to HasSuffixC().

10 years agomh-folders.man: Remove empty `.I' immediately followed by `.IR'.
Ralph Corderoy [Sun, 23 Oct 2016 00:13:57 +0000 (01:13 +0100)]
mh-folders.man: Remove empty `.I' immediately followed by `.IR'.

10 years agobuild_nmh: If cloning with git, make a shallow clone.
Ralph Corderoy [Mon, 24 Oct 2016 08:59:44 +0000 (09:59 +0100)]
build_nmh: If cloning with git, make a shallow clone.

10 years agoshowbuildenv: Drop lsb_release(1); /etc/lsb_release tested earlier.
Ralph Corderoy [Mon, 24 Oct 2016 08:46:52 +0000 (09:46 +0100)]
showbuildenv: Drop lsb_release(1);  /etc/lsb_release tested earlier.

10 years agobuild_nmh: Use `gzip -d' rather than assume tar has -z.
Ralph Corderoy [Mon, 24 Oct 2016 08:33:56 +0000 (09:33 +0100)]
build_nmh: Use `gzip -d' rather than assume tar has -z.

10 years agobuild_nmh: Have a silent curl still show errors.
Ralph Corderoy [Mon, 24 Oct 2016 08:31:00 +0000 (09:31 +0100)]
build_nmh: Have a silent curl still show errors.

Arguably, -sS should be curl's defaults!

10 years agoFixed output of commit hash by git log command.
David Levine [Sun, 23 Oct 2016 21:16:31 +0000 (17:16 -0400)]
Fixed output of commit hash by git log command.

10 years agoCheck for existence of tools/showbuildenv.
David Levine [Sun, 23 Oct 2016 21:12:04 +0000 (17:12 -0400)]
Check for existence of tools/showbuildenv.

10 years agoRedirect verbose build_nmh messages so they're visible while running.
David Levine [Sun, 23 Oct 2016 20:25:00 +0000 (16:25 -0400)]
Redirect verbose build_nmh messages so they're visible while running.

10 years agoEnhanced build_nmh to support standalone use.
David Levine [Sun, 23 Oct 2016 20:03:11 +0000 (16:03 -0400)]
Enhanced build_nmh to support standalone use.

1) If not in nmh directory, download the nmh sources from savannah
   using git clone, wget, or curl.
2) Added -b branch option, for use when downloading.
3) Support -l -.
4) Capture build environment with tools/showbuildenv.

10 years agoman: Use lowercase for command name at start of sentence.
Ralph Corderoy [Sun, 23 Oct 2016 00:10:58 +0000 (01:10 +0100)]
man: Use lowercase for command name at start of sentence.

`Inc' is a different command to `inc'.

10 years agouprf(): Rewrite, using types rather than masking ints.
Ralph Corderoy [Sat, 22 Oct 2016 23:08:17 +0000 (00:08 +0100)]
uprf(): Rewrite, using types rather than masking ints.

10 years agoAdd comment describing uprf().
Ralph Corderoy [Sat, 22 Oct 2016 22:37:19 +0000 (23:37 +0100)]
Add comment describing uprf().

10 years agoUse ToLower() instead of loop.
Ralph Corderoy [Sat, 22 Oct 2016 18:56:52 +0000 (19:56 +0100)]
Use ToLower() instead of loop.

10 years agoUse ToUpper() instead of loop.
Ralph Corderoy [Sat, 22 Oct 2016 18:53:01 +0000 (19:53 +0100)]
Use ToUpper() instead of loop.

10 years agoUse ToUpper() instead of loop.
Ralph Corderoy [Sat, 22 Oct 2016 18:52:42 +0000 (19:52 +0100)]
Use ToUpper() instead of loop.

10 years agoAdd ToLower(s) and ToUpper(s).
Ralph Corderoy [Sat, 22 Oct 2016 18:43:12 +0000 (19:43 +0100)]
Add ToLower(s) and ToUpper(s).

10 years agoputcomp(): Use local to avoid repeating tautological ternary.
Ralph Corderoy [Sat, 22 Oct 2016 18:33:24 +0000 (19:33 +0100)]
putcomp(): Use local to avoid repeating tautological ternary.

10 years agoAlter netrc permissions error message to match code. Add test.
Ralph Corderoy [Sat, 22 Oct 2016 18:18:15 +0000 (19:18 +0100)]
Alter netrc permissions error message to match code.  Add test.

The code wants `go=', but the error message, and FAQ, said to clear read
permission from group and other.  Add test to inc/test-pop as that is
the existing netrc test location, but it might be better in its own test
file as other tests for netrc parsing could be added.

10 years agoFix netrc's token()'s bug if backslash escapes EOF.
Ralph Corderoy [Sat, 22 Oct 2016 17:09:02 +0000 (18:09 +0100)]
Fix netrc's token()'s bug if backslash escapes EOF.

Discard the whole token so the user hopefully investigates.

10 years agoFix netrc's token() bug of first character being backslash.
Ralph Corderoy [Sat, 22 Oct 2016 17:01:16 +0000 (18:01 +0100)]
Fix netrc's token() bug of first character being backslash.

10 years agoMerge .netrc's token() file-reading loops; quoted and not.
Ralph Corderoy [Sat, 22 Oct 2016 16:47:06 +0000 (17:47 +0100)]
Merge .netrc's token() file-reading loops;  quoted and not.

Check for ferror(3) as well as feof(3) on entry.
Comment on lack of definition of quoted-string syntax, e.g. «"foo""bar"»
is two tokens without needing a separator.
Add comments on bugs for first non-quote character of a token being
backslash, and if a backslash escapes EOF.

10 years agoHave ruserpass() return TOK_EOF and put "" in the token table.
Ralph Corderoy [Sat, 22 Oct 2016 15:17:42 +0000 (16:17 +0100)]
Have ruserpass() return TOK_EOF and put "" in the token table.

Gives 0 a name and removes a little logic.

10 years agoReplace getcpy() with mh_xstrdup() where the string isn't NULL.
Ralph Corderoy [Sat, 22 Oct 2016 15:04:58 +0000 (16:04 +0100)]
Replace getcpy() with mh_xstrdup() where the string isn't NULL.

10 years agoCheck advertise()'s iob[] isn't too short with assert(3).
Ralph Corderoy [Sat, 22 Oct 2016 14:53:51 +0000 (15:53 +0100)]
Check advertise()'s iob[] isn't too short with assert(3).

Using DIM(a) added to h/mh.h

10 years agoUse macros in advertise() to simplify source.
Ralph Corderoy [Sat, 22 Oct 2016 14:36:40 +0000 (15:36 +0100)]
Use macros in advertise() to simplify source.

Happens to remove strlen() of literals at the same time.

10 years agoDocument advise(), adios(), admonish(), and advertise().
Ralph Corderoy [Sat, 22 Oct 2016 13:43:11 +0000 (14:43 +0100)]
Document advise(), adios(), admonish(), and advertise().

It doesn't make their design any better.  Their "ad" prefix goes against
common advice of having distinguishable identifiers to avoid mix-ups,
and seems to be a theme that got out of hand.  The out-of-order
parameters to advertise seem due to lack of strerror(3) that's no longer
a problem.

Before:
    advertise("open", "continuing...", "couldn't read profile: %s",
        path);
Could be:
    error("couldn't read profile: %s: open: %s, continuing...\n",
        path, strerror(errno));
And the "open" is typically dropped as superfluous so there's a
repetitive leading NULL passed a lot.

10 years agoPOSIX, 2016 Ed, removes bcopy(3). Stop referring to it.
Ralph Corderoy [Sat, 22 Oct 2016 12:58:43 +0000 (13:58 +0100)]
POSIX, 2016 Ed, removes bcopy(3).  Stop referring to it.

Even though it's in a comment, it shows up in searches.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:35 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:24 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:22 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:19 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:16 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:45:11 +0000 (13:45 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:44:47 +0000 (13:44 +0100)]
Don't need to cast to `char *' for free(3) these days.

But still need a cast to discard the const.
Use `void *' as it saves needing to check the original type.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:42:52 +0000 (13:42 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:42:47 +0000 (13:42 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:42:45 +0000 (13:42 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:42:43 +0000 (13:42 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoDon't need to cast to `char *' for free(3) these days.
Ralph Corderoy [Sat, 22 Oct 2016 12:42:39 +0000 (13:42 +0100)]
Don't need to cast to `char *' for free(3) these days.

10 years agoMove smtp_init's last-ditch attempt for client inside first test.
Ralph Corderoy [Fri, 21 Oct 2016 23:45:09 +0000 (00:45 +0100)]
Move smtp_init's last-ditch attempt for client inside first test.

Didn't realise there was a second lot of similar code before the last
commit.

10 years agoMove smtp_init's last-ditch attempt for client inside first test.
Ralph Corderoy [Fri, 21 Oct 2016 23:41:44 +0000 (00:41 +0100)]
Move smtp_init's last-ditch attempt for client inside first test.

No point checking it twice in a row if it was false the first time.

10 years agoDon't `else' after return. Simplify control flow.
Ralph Corderoy [Fri, 21 Oct 2016 23:40:30 +0000 (00:40 +0100)]
Don't `else' after return.  Simplify control flow.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:58 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:54 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:51 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:48 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:42 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:29 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:22 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:27:16 +0000 (00:27 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:26:57 +0000 (00:26 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:26:54 +0000 (00:26 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:26:35 +0000 (00:26 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:26:02 +0000 (00:26 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:25:53 +0000 (00:25 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:21:16 +0000 (00:21 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:20:55 +0000 (00:20 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:20:49 +0000 (00:20 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:20:46 +0000 (00:20 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:54 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:50 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:43 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:39 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:32 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 23:18:26 +0000 (00:18 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoDon't test boundary in output_content() for NULL; it never is.
Ralph Corderoy [Fri, 21 Oct 2016 23:09:10 +0000 (00:09 +0100)]
Don't test boundary in output_content() for NULL;  it never is.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:21:30 +0000 (23:21 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:20:41 +0000 (23:20 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:20:06 +0000 (23:20 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:17:48 +0000 (23:17 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:16:11 +0000 (23:16 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:15:53 +0000 (23:15 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:15:47 +0000 (23:15 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 22:15:32 +0000 (23:15 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoReplace `if (p) free(p)' with `mh_xfree(p)'.
Ralph Corderoy [Fri, 21 Oct 2016 21:01:54 +0000 (22:01 +0100)]
Replace `if (p) free(p)' with `mh_xfree(p)'.

10 years agoAdd FIXME raising if iscntrl(3) test should be based on isprint(3)
Ralph Corderoy [Fri, 21 Oct 2016 20:18:38 +0000 (21:18 +0100)]
Add FIXME raising if iscntrl(3) test should be based on isprint(3)

!iscntrl blocks characters that could be isspace or isblank whereas
isprint would let them through unharmed.

10 years agoAssume POSIX ctype.h; don't vet toupper()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 20:18:16 +0000 (21:18 +0100)]
Assume POSIX ctype.h;  don't vet toupper()'s parameter.

10 years agoExplain isascii() test more in netsec_set_sasl_params().
Ralph Corderoy [Fri, 21 Oct 2016 20:14:24 +0000 (21:14 +0100)]
Explain isascii() test more in netsec_set_sasl_params().

It stops non-ASCII lower in the SASL mechanism being uppered, just in
case there is some.

10 years agoAssume POSIX ctype.h; don't vet toupper()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 20:10:42 +0000 (21:10 +0100)]
Assume POSIX ctype.h;  don't vet toupper()'s parameter.

10 years agoAssume POSIX ctype.h; don't vet tolower()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 19:39:11 +0000 (20:39 +0100)]
Assume POSIX ctype.h;  don't vet tolower()'s parameter.

10 years agoAssume POSIX ctype.h; don't vet tolower()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 19:37:32 +0000 (20:37 +0100)]
Assume POSIX ctype.h;  don't vet tolower()'s parameter.

10 years agoOops, stop showbuildenv reading from stdin when run from a TTY.
Ralph Corderoy [Fri, 21 Oct 2016 19:23:55 +0000 (20:23 +0100)]
Oops, stop showbuildenv reading from stdin when run from a TTY.

David spotted the problem I introduced with 8374c3c.  Alter offset to
process any arguments, falling back to stdin if none.

10 years agoAssume POSIX ctype.h; don't vet tolower()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 13:42:35 +0000 (14:42 +0100)]
Assume POSIX ctype.h;  don't vet tolower()'s parameter.

10 years agoAssume POSIX ctype.h; don't vet tolower()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 13:41:17 +0000 (14:41 +0100)]
Assume POSIX ctype.h;  don't vet tolower()'s parameter.

10 years agoAssume POSIX ctype.h; don't vet tolower()'s parameter.
Ralph Corderoy [Fri, 21 Oct 2016 13:35:47 +0000 (14:35 +0100)]
Assume POSIX ctype.h;  don't vet tolower()'s parameter.

10 years agoFixed MIME parser so it can read binary content.
David Levine [Fri, 21 Oct 2016 17:26:43 +0000 (13:26 -0400)]
Fixed MIME parser so it can read binary content.

Second of two-part fix.  Replaced use of strlen().

10 years agoHave m_getfld() pass back indication of missing blank line.
David Levine [Fri, 21 Oct 2016 17:22:22 +0000 (13:22 -0400)]
Have m_getfld() pass back indication of missing blank line.

This is part one of a two part fix to the MIME parser to
read binary content.  It should have no effect.

Also added start/finish test calls to test-header.

10 years agoFix warnings caused by recent edits; don't mix declarations and code.
Ralph Corderoy [Fri, 21 Oct 2016 08:53:45 +0000 (09:53 +0100)]
Fix warnings caused by recent edits;  don't mix declarations and code.
Quite right too, I prefer all the declarations, codeless, up front.  The
standard -Wall didn't pick this up.  David pointed it out, probably due
to his defaults of `-pedantic -ansi'.

10 years agoDon't `else' after goto. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 23:06:11 +0000 (00:06 +0100)]
Don't `else' after goto.  Simplify control flow.

10 years agoDon't `else' after goto. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 23:06:07 +0000 (00:06 +0100)]
Don't `else' after goto.  Simplify control flow.

10 years agoDon't `else' after goto. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 23:05:50 +0000 (00:05 +0100)]
Don't `else' after goto.  Simplify control flow.

10 years agoDon't `else' after goto. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 23:05:46 +0000 (00:05 +0100)]
Don't `else' after goto.  Simplify control flow.

10 years agoAdded test/mhshow/test-binary. The MIME parser doesn't
David Levine [Thu, 20 Oct 2016 23:38:01 +0000 (19:38 -0400)]
Added test/mhshow/test-binary.  The MIME parser doesn't
properly handle null bytes because it uses getline().

10 years agoDon't `else' after return. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 22:57:56 +0000 (23:57 +0100)]
Don't `else' after return.  Simplify control flow.

10 years agoDon't `else' after return. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 22:57:09 +0000 (23:57 +0100)]
Don't `else' after return.  Simplify control flow.

10 years agoDon't `else' after return. Simplify control flow.
Ralph Corderoy [Thu, 20 Oct 2016 22:30:39 +0000 (23:30 +0100)]
Don't `else' after return.  Simplify control flow.