1074
svn_stream_set_read(svn_stream_t *stream,
1075
svn_read_fn_t read_fn)
1077
svn_stream_set_read2(stream, NULL /* only full read support */,
1082
svn_stream_read(svn_stream_t *stream,
1086
return svn_error_trace(svn_stream_read_full(stream, buffer, len));
1089
struct md5_stream_baton
1091
const unsigned char **read_digest;
1092
const unsigned char **write_digest;
1093
svn_checksum_t *read_checksum;
1094
svn_checksum_t *write_checksum;
1095
svn_stream_t *proxy;
1099
static svn_error_t *
1100
read_handler_md5(void *baton, char *buffer, apr_size_t *len)
1102
struct md5_stream_baton *btn = baton;
1103
return svn_error_trace(svn_stream_read2(btn->proxy, buffer, len));
1106
static svn_error_t *
1107
read_full_handler_md5(void *baton, char *buffer, apr_size_t *len)
1109
struct md5_stream_baton *btn = baton;
1110
return svn_error_trace(svn_stream_read_full(btn->proxy, buffer, len));
1113
static svn_error_t *
1114
skip_handler_md5(void *baton, apr_size_t len)
1116
struct md5_stream_baton *btn = baton;
1117
return svn_error_trace(svn_stream_skip(btn->proxy, len));
1120
static svn_error_t *
1121
write_handler_md5(void *baton, const char *buffer, apr_size_t *len)
1123
struct md5_stream_baton *btn = baton;
1124
return svn_error_trace(svn_stream_write(btn->proxy, buffer, len));
1127
static svn_error_t *
1128
close_handler_md5(void *baton)
1130
struct md5_stream_baton *btn = baton;
1132
SVN_ERR(svn_stream_close(btn->proxy));
1134
if (btn->read_digest)
1136
= apr_pmemdup(btn->pool, btn->read_checksum->digest,
1137
APR_MD5_DIGESTSIZE);
1139
if (btn->write_digest)
1141
= apr_pmemdup(btn->pool, btn->write_checksum->digest,
1142
APR_MD5_DIGESTSIZE);
1144
return SVN_NO_ERROR;
1149
svn_stream_checksummed(svn_stream_t *stream,
1150
const unsigned char **read_digest,
1151
const unsigned char **write_digest,
1152
svn_boolean_t read_all,
1156
struct md5_stream_baton *baton;
1158
if (! read_digest && ! write_digest)
1161
baton = apr_palloc(pool, sizeof(*baton));
1162
baton->read_digest = read_digest;
1163
baton->write_digest = write_digest;
1166
/* Set BATON->proxy to a stream that will fill in BATON->read_checksum
1167
* and BATON->write_checksum (if we want them) when it is closed. */
1169
= svn_stream_checksummed2(stream,
1170
read_digest ? &baton->read_checksum : NULL,
1171
write_digest ? &baton->write_checksum : NULL,
1175
/* Create a stream that will forward its read/write/close operations to
1176
* BATON->proxy and will fill in *READ_DIGEST and *WRITE_DIGEST (if we
1177
* want them) after it closes BATON->proxy. */
1178
s = svn_stream_create(baton, pool);
1179
svn_stream_set_read2(s, read_handler_md5, read_full_handler_md5);
1180
svn_stream_set_skip(s, skip_handler_md5);
1181
svn_stream_set_write(s, write_handler_md5);
1182
svn_stream_set_close(s, close_handler_md5);
1070
1186
/*** From path.c ***/
1381
svn_utf_cstring_from_utf8_ex(const char **dest,
1384
const char *convset_key,
1387
return svn_utf_cstring_from_utf8_ex2(dest, src, topage, pool);
1390
/*** From error.c ***/
1392
svn_handle_error(svn_error_t *err, FILE *stream, svn_boolean_t fatal)
1394
svn_handle_error2(err, stream, fatal, "svn: ");
1398
svn_handle_warning(FILE *stream, svn_error_t *err)
1400
svn_handle_warning2(stream, err, "svn: ");
1404
/*** From subst.c ***/
1263
1406
svn_subst_build_keywords(svn_subst_keywords_t *kw,
1264
1407
const char *keywords_val,
1265
1408
const char *rev,
1310
1453
return svn_ver_check_list2(my_version, checklist, svn_ver_compatible);
1456
/*** From win32_crypto.c ***/
1457
#if defined(WIN32) && !defined(__MINGW32__)
1459
svn_auth_get_windows_simple_provider(svn_auth_provider_object_t **provider,
1462
svn_auth__get_windows_simple_provider(provider, pool);
1466
svn_auth_get_windows_ssl_client_cert_pw_provider
1467
(svn_auth_provider_object_t **provider,
1470
svn_auth__get_windows_ssl_client_cert_pw_provider(provider, pool);
1474
svn_auth_get_windows_ssl_server_trust_provider
1475
(svn_auth_provider_object_t **provider, apr_pool_t *pool)
1477
svn_auth__get_windows_ssl_server_trust_provider(provider, pool);
1479
#endif /* WIN32 && !__MINGW32__ */
1481
/*** From macos_keychain.c ***/
1484
svn_auth_get_keychain_simple_provider(svn_auth_provider_object_t **provider,
1487
svn_auth__get_keychain_simple_provider(provider, pool);
1491
svn_auth_get_keychain_ssl_client_cert_pw_provider
1492
(svn_auth_provider_object_t **provider,
1495
svn_auth__get_keychain_ssl_client_cert_pw_provider(provider, pool);
1501
svn_auth_get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider,
1504
svn_auth__get_gpg_agent_simple_provider(provider, pool);
1509
svn_cmdline_create_auth_baton(svn_auth_baton_t **ab,
1510
svn_boolean_t non_interactive,
1511
const char *auth_username,
1512
const char *auth_password,
1513
const char *config_dir,
1514
svn_boolean_t no_auth_cache,
1515
svn_boolean_t trust_server_cert,
1517
svn_cancel_func_t cancel_func,
1521
return svn_error_trace(svn_cmdline_create_auth_baton2(ab,