diff options
Diffstat (limited to 'devel/subversion/files/extra-patch-fbsd-template')
-rw-r--r-- | devel/subversion/files/extra-patch-fbsd-template | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/devel/subversion/files/extra-patch-fbsd-template b/devel/subversion/files/extra-patch-fbsd-template new file mode 100644 index 000000000000..f6ed26f3e98a --- /dev/null +++ b/devel/subversion/files/extra-patch-fbsd-template @@ -0,0 +1,121 @@ +diff -ruN subversion/svn/util.c subversion/svn/util.c +--- subversion/svn/util.c 2011-06-28 21:10:44.000000000 +0400 ++++ subversion/svn/util.c 2011-09-07 21:47:19.000000000 +0400 +@@ -682,6 +682,67 @@ + } + + ++/* ++ * Since we're adding freebsd-specific tokens to the log message, ++ * clean out any leftovers to avoid accidently sending them to other ++ * projects that won't be expecting them. ++ */ ++ ++#define NPREFIX 7 ++char *prefixes[NPREFIX] = { ++ "PR:", ++ "Submitted by:", ++ "Reviewed by:", ++ "Approved by:", ++ "Obtained from:", ++ "MFC after:", ++ "Security:", ++}; ++ ++void ++cleanmsg(apr_size_t *l, char *s) ++{ ++ int i; ++ char *pos; ++ char *kw; ++ char *p; ++ int empty; ++ ++ for (i = 0; i < NPREFIX; i++) { ++ pos = s; ++ while ((kw = strstr(pos, prefixes[i])) != NULL) { ++ /* Check to see if keyword is at start of line (or buffer) */ ++ if (!(kw == s || kw[-1] == '\r' || kw[-1] == '\n')) { ++ pos = kw + 1; ++ continue; ++ } ++ p = kw + strlen(prefixes[i]); ++ empty = 1; ++ while (1) { ++ if (*p == ' ' || *p == '\t') { ++ p++; ++ continue; ++ } ++ if (*p == '\0' || *p == '\r' || *p == '\n') ++ break; ++ empty = 0; ++ break; ++ } ++ if (empty && (*p == '\r' || *p == '\n')) { ++ memmove(kw, p + 1, strlen(p + 1) + 1); ++ if (l) ++ *l -= (p + 1 - kw); ++ } else if (empty) { ++ *kw = '\0'; ++ if (l) ++ *l -= (p - kw); ++ } else { ++ pos = p; ++ } ++ } ++ } ++} ++ + #define EDITOR_EOF_PREFIX _("--This line, and those below, will be ignored--") + + svn_error_t * +@@ -697,8 +758,26 @@ + + /* Set default message. */ + default_msg = svn_stringbuf_create(APR_EOL_STR, pool); ++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "PR:\t\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "Submitted by:\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "Reviewed by:\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "Approved by:\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "Obtained from:\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "MFC after:\t" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "Security:\t" APR_EOL_STR); + svn_stringbuf_appendcstr(default_msg, EDITOR_EOF_PREFIX); +- svn_stringbuf_appendcstr(default_msg, APR_EOL_STR APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Description of fields to fill in above: 76 columns --|" APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> PR: If a GNATS PR is affected by the change." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Submitted by: If someone else sent in the change." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Reviewed by: If someone else reviewed your modification." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Approved by: If you needed approval for this commit." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Obtained from: If the change is from a third party." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Security: Vulnerability reference (one per line) or description." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, "> Empty fields above will be automatically removed." APR_EOL_STR); ++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR); + + *tmp_file = NULL; + if (lmb->message) +@@ -710,6 +789,7 @@ + that follows it. */ + truncate_buffer_at_prefix(&(log_msg_buf->len), log_msg_buf->data, + EDITOR_EOF_PREFIX); ++ cleanmsg(NULL, (char*)log_msg_buf->data); + + /* Make a string from a stringbuf, sharing the data allocation. */ + log_msg_str->data = log_msg_buf->data; +@@ -830,6 +910,13 @@ + if (message) + truncate_buffer_at_prefix(&message->len, message->data, + EDITOR_EOF_PREFIX); ++ /* ++ * Since we're adding freebsd-specific tokens to the log message, ++ * clean out any leftovers to avoid accidently sending them to other ++ * projects that won't be expecting them. ++ */ ++ if (message) ++ cleanmsg(&message->len, message->data); + + if (message) + { |