diff options
author | Stefan Eßer <se@FreeBSD.org> | 2020-09-23 12:24:21 +0000 |
---|---|---|
committer | Stefan Eßer <se@FreeBSD.org> | 2020-09-23 12:24:21 +0000 |
commit | 540662a45772c921857e51c29031d8bce7b18172 (patch) | |
tree | 57079510a401b60f2ba3f7cfb6971c3625d616b1 /mail/mboxgrep/files/patch-src_scan.c | |
parent | devel/golangci-lint: Update to 1.31.0 (diff) |
Fix build with -fno-common
Since files that are patched in legacy patch files are affected, all
patches are regenerated with make makepatch.
In order to have makepatch operate on only the patched sources without the
result of RE_INPLACE being integrated into the patch files, move the
in-place editing of sources from post-patch to pre-build.
Notes
Notes:
svn path=/head/; revision=549719
Diffstat (limited to 'mail/mboxgrep/files/patch-src_scan.c')
-rw-r--r-- | mail/mboxgrep/files/patch-src_scan.c | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/mail/mboxgrep/files/patch-src_scan.c b/mail/mboxgrep/files/patch-src_scan.c new file mode 100644 index 000000000000..2584f0c4408a --- /dev/null +++ b/mail/mboxgrep/files/patch-src_scan.c @@ -0,0 +1,122 @@ +--- src/scan.c.orig 2003-04-06 21:01:49 UTC ++++ src/scan.c +@@ -59,7 +59,7 @@ + #include "mh.h" + #include "maildir.h" + #include "wrap.h" +-#include "md5.h" ++#include <openssl/md5.h> + #ifdef HAVE_FTS_OPEN + # include <sys/stat.h> + # include <fts.h> +@@ -73,7 +73,10 @@ + #include <dmalloc.h> + #endif /* HAVE_LIBDMALLOC */ + +-void scan_mailbox (char path[]) ++static int md5_check_message (const char *body, size_t bbytes); ++ ++void ++scan_mailbox (const char path[]) + /* {{{ */ + { + static FILE *outf; +@@ -95,7 +98,6 @@ void scan_mailbox (char path[]) + int isdup = 0; + time_t tt; + struct tm *ct; +- extern checksum_t *cs; + + extern option_t config; + +@@ -144,12 +146,12 @@ void scan_mailbox (char path[]) + + if ((config.format == MBOX) || (config.format == ZMBOX) || + (config.format == BZ2MBOX)) +- msg = (message_t *) mbox_read_message (mbox); ++ msg = mbox_read_message (mbox); + else if ((config.format == MH) || (config.format == NNMH) || + (config.format == NNML)) +- msg = (message_t *) mh_read_message (boxd); ++ msg = mh_read_message (boxd); + else if (config.format == MAILDIR) +- msg = (message_t *) maildir_read_message (maildird); ++ msg = maildir_read_message (maildird); + + if (msg == NULL) break; + +@@ -178,7 +180,7 @@ void scan_mailbox (char path[]) + } + + if (config.dedup) +- isdup = md5_check_message (msg->body, cs); ++ isdup = md5_check_message (msg->body, msg->bbytes); + + if (((res1 == 0) | (res2 == 0)) ^ ((config.invert ^ delete)) && + ((config.dedup && !isdup) || !config.dedup)) +@@ -281,7 +283,8 @@ void scan_mailbox (char path[]) + } + /* }}} */ + +-void recursive_scan (char path[]) ++void ++recursive_scan (const char path[]) + /* {{{ */ + + { +@@ -312,37 +315,41 @@ void recursive_scan (char path[]) + fts_close (ftsfoo); + } + #else +- ftw (path, (void *) scan_mailbox, 1); ++ ftw (path, (int (*)(const char *, const struct *, int))scan_mailbox, 1); + #endif /* HAVE_FTS_OPEN */ + } + + /* }}} */ + +-int md5_check_message (char *body, checksum_t *chksum) ++static int ++md5_check_message (const char *body, size_t bbytes) + /* {{{ */ + { +- struct md5_ctx a; +- unsigned char b[16]; ++ MD5_CTX a; ++ md5_t b; + int i; ++ extern checksum_t *cs; + +- md5_init_ctx (&a); ++ MD5_Init(&a); + if (body == NULL) +- md5_process_bytes ("", 0, &a); ++ MD5_Update(&a, "", 0); + else +- md5_process_bytes (body, strlen(body), &a); +- md5_finish_ctx(&a, b); ++ MD5_Update(&a, body, bbytes); ++ MD5_Final(b.bytes, &a); + +- for (i = 0; i < chksum->n; i++) ++ for (i = 0; i < cs->n; i++) + { +- if (0 == strncmp (chksum->md5[i], b, 16)) ++ if (b.halves[0] == cs->md5s[i].halves[0] && ++ b.halves[1] == cs->md5s[i].halves[1]) + return 1; + } + +- chksum->md5 = +- (char **) xrealloc (chksum->md5, (1 + chksum->n) * sizeof (char *)); +- chksum->md5[chksum->n] = xstrdup (b); ++ cs = ++ xrealloc (cs, sizeof(checksum_t) + (i + 1) * sizeof (md5_t)); ++ cs->md5s[i].halves[0] = b.halves[0]; ++ cs->md5s[i].halves[1] = b.halves[1]; + +- (chksum->n)++; ++ cs->n++; + + return 0; + } |