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
|
--- plugins/document-manager/anjuta-docman.c.orig Thu Jun 7 14:56:53 2007
+++ plugins/document-manager/anjuta-docman.c Fri Aug 31 16:53:19 2007
@@ -902,6 +902,7 @@
const gchar *linenum;
glong lineno;
gboolean is_local_uri;
+ gchar normalized_path_buf[PATH_MAX];
gchar *normalized_path = NULL;
IAnjutaEditor *te;
@@ -926,9 +927,11 @@
/* Get the normalized file path for comparision */
is_local_uri = gnome_vfs_uri_is_local (vfs_uri);
if (is_local_uri)
- normalized_path = realpath (gnome_vfs_uri_get_path (vfs_uri), NULL);
- if (normalized_path == NULL)
- normalized_path = g_strdup (uri);
+ normalized_path = realpath (gnome_vfs_uri_get_path (vfs_uri), normalized_path_buf);
+ if (normalized_path == NULL) {
+ (void) strlcpy (normalized_path_buf, uri, PATH_MAX);
+ normalized_path = normalized_path_buf;
+ }
gnome_vfs_uri_unref (vfs_uri);
/* g_free(filename); */
@@ -942,6 +945,7 @@
AnjutaDocmanPage *page;
gboolean te_is_local_uri;
gchar *te_uri;
+ char te_normalized_path_buf[PATH_MAX];
gchar *te_normalized_path = NULL;
page = (AnjutaDocmanPage *) node->data;
@@ -959,9 +963,11 @@
te_is_local_uri = gnome_vfs_uri_is_local (vfs_uri);
if (te_is_local_uri)
te_normalized_path = realpath (gnome_vfs_uri_get_path (vfs_uri),
- NULL);
- if (te_normalized_path == NULL)
- te_normalized_path = g_strdup (te_uri);
+ te_normalized_path_buf);
+ if (te_normalized_path == NULL) {
+ (void) strlcpy (te_normalized_path_buf, te_uri, PATH_MAX);
+ te_normalized_path = te_normalized_path_buf;
+ }
gnome_vfs_uri_unref (vfs_uri);
if (strcmp (normalized_path, te_normalized_path) == 0)
@@ -982,12 +988,9 @@
an_file_history_push (te_uri, lineno);
g_free (uri);
g_free (te_uri);
- g_free (normalized_path);
- g_free (te_normalized_path);
return te;
}
g_free (te_uri);
- g_free (te_normalized_path);
node = g_list_next (node);
}
te = anjuta_docman_add_editor (docman, uri, NULL);
@@ -1006,7 +1009,6 @@
}
}
g_free (uri);
- g_free (normalized_path);
return te ;
}
|