Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2014-10-09 18:13:25 +0000
committerEugene Tarassov2014-10-09 18:13:25 +0000
commit6a28c9aeb793a43213078ba22b219d5d1332e793 (patch)
tree24326f61f10d5fe13f888f2de7b10e1677c5b404
parent38c66a3a9d7e75d3de9c3acb3cc2efc0028ecb0a (diff)
downloadorg.eclipse.tcf.agent-6a28c9aeb793a43213078ba22b219d5d1332e793.tar.gz
org.eclipse.tcf.agent-6a28c9aeb793a43213078ba22b219d5d1332e793.tar.xz
org.eclipse.tcf.agent-6a28c9aeb793a43213078ba22b219d5d1332e793.zip
Bug 446428 - Can't apply PathMap with a module path without slash and lower case drive letter
-rw-r--r--agent/tcf/services/pathmap.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/agent/tcf/services/pathmap.c b/agent/tcf/services/pathmap.c
index eb665ecf..68734dbe 100644
--- a/agent/tcf/services/pathmap.c
+++ b/agent/tcf/services/pathmap.c
@@ -35,11 +35,10 @@ static int is_separator(const char c) {
}
char * canonic_path_map_file_name(const char * fnm) {
- char * buf;
size_t buf_pos = 0;
size_t buf_max = 0x100;
+ char * buf = (char *)tmp_alloc(buf_max);
- buf = (char *)tmp_alloc(buf_max);
for (;;) {
char ch = *fnm++;
if (ch == 0) break;
@@ -65,7 +64,7 @@ char * canonic_path_map_file_name(const char * fnm) {
}
}
if (buf_pos == 0 && ch >= 'a' && ch <= 'z' && *fnm == ':') {
- ch = (char) (ch - 'a' + 'A');
+ ch = (char)(ch - 'a' + 'A');
}
if (buf_pos + 1 >= buf_max) {
buf_max += 0x100;
@@ -358,7 +357,7 @@ static char * map_file_name(Context * ctx, PathMap * m, char * fnm, int mode) {
}
if (r->query != NULL && !context_query(ctx, r->query)) continue;
src = canonic_path_map_file_name(r->src);
- k = (unsigned int) strlen(src);
+ k = (unsigned)strlen(src);
if (strncmp(src, fnm, k)) continue;
if (fnm[k] == 0) {
@@ -392,12 +391,13 @@ static char * map_file_name(Context * ctx, PathMap * m, char * fnm, int mode) {
}
char * apply_path_map(Channel * c, Context * ctx, char * fnm, int mode) {
+ char * cnm = canonic_path_map_file_name(fnm);
if (c == NULL) {
LINK * l = maps.next;
while (l != &maps) {
PathMap * m = maps2map(l);
- char * lnm = map_file_name(ctx, m, fnm, mode);
- if (lnm != fnm) return lnm;
+ char * lnm = map_file_name(ctx, m, cnm, mode);
+ if (lnm != cnm) return lnm;
l = l->next;
}
}
@@ -408,15 +408,15 @@ char * apply_path_map(Channel * c, Context * ctx, char * fnm, int mode) {
if (h != NULL) {
m = find_map(h);
if (m != NULL) {
- char * lnm = map_file_name(ctx, m, fnm, mode);
- if (lnm != fnm) return lnm;
+ char * lnm = map_file_name(ctx, m, cnm, mode);
+ if (lnm != cnm) return lnm;
}
}
#endif
m = find_map(c);
if (m != NULL) {
- char * lnm = map_file_name(ctx, m, fnm, mode);
- if (lnm != fnm) return lnm;
+ char * lnm = map_file_name(ctx, m, cnm, mode);
+ if (lnm != cnm) return lnm;
}
}
return fnm;

Back to the top