Index: ports/devel/subversion/Makefile =================================================================== RCS file: /home/ncvs/ports/devel/subversion/Makefile,v retrieving revision 1.106 diff -u -r1.106 Makefile --- ports/devel/subversion/Makefile 13 Sep 2006 10:20:27 -0000 1.106 +++ ports/devel/subversion/Makefile 25 Sep 2006 11:53:49 -0000 @@ -221,6 +221,10 @@ PLIST_SUB+= ASVN="@comment " .endif +.if defined(WITH_KEYWORD_ALIAS_PATCH) +EXTRA_PATCHES+= ${PATCHDIR}/subversion-keyword-alias.patch +.endif + SCRIPTS= SCRIPTS_DATA= Index: ports/devel/subversion/files/subversion-keyword-alias.patch =================================================================== RCS file: ports/devel/subversion/files/subversion-keyword-alias.patch diff -N ports/devel/subversion/files/subversion-keyword-alias.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ports/devel/subversion/files/subversion-keyword-alias.patch 24 Oct 2006 06:26:58 -0000 @@ -0,0 +1,139 @@ +Index: subversion/libsvn_subr/subst.c +=================================================================== +--- subversion/libsvn_subr/subst.c (revision 19) ++++ subversion/libsvn_subr/subst.c (revision 23) +@@ -374,6 +374,19 @@ + for (i = 0; i < keyword_tokens->nelts; ++i) + { + const char *keyword = APR_ARRAY_IDX(keyword_tokens, i, const char *); ++ const char *eq; ++ char *realkeyword; ++ ++ eq = strchr(keyword, '='); ++ if (eq != NULL) ++ { ++ realkeyword = apr_pstrmemdup(pool, keyword, eq - keyword); ++ keyword = eq + 1; ++ } ++ else ++ { ++ realkeyword = NULL; ++ } + + if ((! strcmp(keyword, SVN_KEYWORD_REVISION_LONG)) + || (! strcmp(keyword, SVN_KEYWORD_REVISION_MEDIUM)) +@@ -382,12 +395,20 @@ + svn_string_t *revision_val; + + revision_val = keyword_printf("%r", rev, url, date, author, pool); +- apr_hash_set(*kw, SVN_KEYWORD_REVISION_LONG, +- APR_HASH_KEY_STRING, revision_val); +- apr_hash_set(*kw, SVN_KEYWORD_REVISION_MEDIUM, +- APR_HASH_KEY_STRING, revision_val); +- apr_hash_set(*kw, SVN_KEYWORD_REVISION_SHORT, +- APR_HASH_KEY_STRING, revision_val); ++ if (realkeyword == NULL) ++ { ++ apr_hash_set (*kw, SVN_KEYWORD_REVISION_LONG, ++ APR_HASH_KEY_STRING, revision_val); ++ apr_hash_set (*kw, SVN_KEYWORD_REVISION_MEDIUM, ++ APR_HASH_KEY_STRING, revision_val); ++ apr_hash_set (*kw, SVN_KEYWORD_REVISION_SHORT, ++ APR_HASH_KEY_STRING, revision_val); ++ } ++ else ++ { ++ apr_hash_set (*kw, realkeyword, ++ APR_HASH_KEY_STRING, revision_val); ++ } + } + else if ((! strcmp(keyword, SVN_KEYWORD_DATE_LONG)) + || (! strcasecmp(keyword, SVN_KEYWORD_DATE_SHORT))) +@@ -395,10 +416,18 @@ + svn_string_t *date_val; + + date_val = keyword_printf("%D", rev, url, date, author, pool); +- apr_hash_set(*kw, SVN_KEYWORD_DATE_LONG, +- APR_HASH_KEY_STRING, date_val); +- apr_hash_set(*kw, SVN_KEYWORD_DATE_SHORT, +- APR_HASH_KEY_STRING, date_val); ++ if (realkeyword == NULL) ++ { ++ apr_hash_set (*kw, SVN_KEYWORD_DATE_LONG, ++ APR_HASH_KEY_STRING, date_val); ++ apr_hash_set (*kw, SVN_KEYWORD_DATE_SHORT, ++ APR_HASH_KEY_STRING, date_val); ++ } ++ else ++ { ++ apr_hash_set (*kw, realkeyword, ++ APR_HASH_KEY_STRING, date_val); ++ } + } + else if ((! strcmp(keyword, SVN_KEYWORD_AUTHOR_LONG)) + || (! strcasecmp(keyword, SVN_KEYWORD_AUTHOR_SHORT))) +@@ -406,10 +435,18 @@ + svn_string_t *author_val; + + author_val = keyword_printf("%a", rev, url, date, author, pool); +- apr_hash_set(*kw, SVN_KEYWORD_AUTHOR_LONG, +- APR_HASH_KEY_STRING, author_val); +- apr_hash_set(*kw, SVN_KEYWORD_AUTHOR_SHORT, +- APR_HASH_KEY_STRING, author_val); ++ if (realkeyword == NULL) ++ { ++ apr_hash_set (*kw, SVN_KEYWORD_AUTHOR_LONG, ++ APR_HASH_KEY_STRING, author_val); ++ apr_hash_set (*kw, SVN_KEYWORD_AUTHOR_SHORT, ++ APR_HASH_KEY_STRING, author_val); ++ } ++ else ++ { ++ apr_hash_set (*kw, realkeyword, ++ APR_HASH_KEY_STRING, author_val); ++ } + } + else if ((! strcmp(keyword, SVN_KEYWORD_URL_LONG)) + || (! strcasecmp(keyword, SVN_KEYWORD_URL_SHORT))) +@@ -417,10 +454,18 @@ + svn_string_t *url_val; + + url_val = keyword_printf("%u", rev, url, date, author, pool); +- apr_hash_set(*kw, SVN_KEYWORD_URL_LONG, +- APR_HASH_KEY_STRING, url_val); +- apr_hash_set(*kw, SVN_KEYWORD_URL_SHORT, +- APR_HASH_KEY_STRING, url_val); ++ if (realkeyword == NULL) ++ { ++ apr_hash_set (*kw, SVN_KEYWORD_URL_LONG, ++ APR_HASH_KEY_STRING, url_val); ++ apr_hash_set (*kw, SVN_KEYWORD_URL_SHORT, ++ APR_HASH_KEY_STRING, url_val); ++ } ++ else ++ { ++ apr_hash_set (*kw, realkeyword, ++ APR_HASH_KEY_STRING, url_val); ++ } + } + else if ((! strcasecmp(keyword, SVN_KEYWORD_ID))) + { +@@ -428,8 +473,16 @@ + + id_val = keyword_printf("%b %r %d %a", rev, url, date, author, + pool); +- apr_hash_set(*kw, SVN_KEYWORD_ID, +- APR_HASH_KEY_STRING, id_val); ++ if (realkeyword == NULL) ++ { ++ apr_hash_set (*kw, SVN_KEYWORD_ID, ++ APR_HASH_KEY_STRING, id_val); ++ } ++ else ++ { ++ apr_hash_set (*kw, realkeyword, ++ APR_HASH_KEY_STRING, id_val); ++ } + } + } +