1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
commit 74dec52749e3c3af2ac6492f50e2676128f35b27
Author: Milian Wolff <mail@milianw.de>
Date: Fri Nov 18 16:26:06 2011 +0100
fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style
this was suggested by Stephan Sperling
CCBUG: 284061
diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp
index eaa84c1..4dced08 100644
--- a/plugins/subversion/kdevsvncpp/path.cpp
+++ b/plugins/subversion/kdevsvncpp/path.cpp
@@ -24,6 +24,7 @@
// subversion api
#include "svn_path.h"
+#include "svn_dirent_uri.h"
// apr api
#include "apr_file_io.h"
@@ -63,8 +64,7 @@ namespace svn
m_path = "";
else
{
- const char * int_path =
- svn_path_internal_style(path, pool.pool());
+ const char * int_path = svn_dirent_canonicalize(path, pool);
m_path = int_path;
commit cc7f0798d314cdac14b90e427abe22e99c6bd591
Author: Milian Wolff <mail@milianw.de>
Date: Fri Nov 18 16:23:36 2011 +0100
properly initialize client context for compatibility with subversion API
this should hopefully fix the crash with svn 1.7 in kdevelop, please test
BUG: 284061
diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp
index d277591..ddbb657 100644
--- a/plugins/subversion/kdevsvncpp/context.cpp
+++ b/plugins/subversion/kdevsvncpp/context.cpp
@@ -65,7 +65,7 @@ public:
bool logIsSet;
int promptCounter;
Pool pool;
- svn_client_ctx_t ctx;
+ svn_client_ctx_t * ctx;
std::string username;
std::string password;
std::string logMessage;
@@ -205,26 +205,26 @@ public:
svn_auth_open(&ab, providers, pool);
// initialize ctx structure
- memset(&ctx, 0, sizeof(ctx));
+ svn_client_create_context(&ctx, pool);
// get the config based on the configDir passed in
- svn_config_get_config(&ctx.config, c_configDir, pool);
+ svn_config_get_config(&ctx->config, c_configDir, pool);
// tell the auth functions where the config is
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
c_configDir);
- ctx.auth_baton = ab;
- ctx.log_msg_func = onLogMsg;
- ctx.log_msg_baton = this;
- ctx.notify_func = onNotify;
- ctx.notify_baton = this;
- ctx.cancel_func = onCancel;
- ctx.cancel_baton = this;
+ ctx->auth_baton = ab;
+ ctx->log_msg_func = onLogMsg;
+ ctx->log_msg_baton = this;
+ ctx->notify_func = onNotify;
+ ctx->notify_baton = this;
+ ctx->cancel_func = onCancel;
+ ctx->cancel_baton = this;
#if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2)
- ctx.notify_func2 = onNotify2;
- ctx.notify_baton2 = this;
+ ctx->notify_func2 = onNotify2;
+ ctx->notify_baton2 = this;
#endif
}
@@ -234,7 +234,7 @@ public:
if (!value)
param = (void *)"1";
- svn_auth_set_parameter(ctx.auth_baton,
+ svn_auth_set_parameter(ctx->auth_baton,
SVN_AUTH_PARAM_NO_AUTH_CACHE,
param);
}
@@ -245,7 +245,7 @@ public:
username = usr;
password = pwd;
- svn_auth_baton_t * ab = ctx.auth_baton;
+ svn_auth_baton_t * ab = ctx->auth_baton;
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
username.c_str());
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
@@ -654,13 +654,13 @@ public:
Context::operator svn_client_ctx_t * ()
{
- return &(m->ctx);
+ return m->ctx;
}
svn_client_ctx_t *
Context::ctx()
{
- return &(m->ctx);
+ return m->ctx;
}
void
|