aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/local/camel-spool-store.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-10-02 02:09:53 +0800
committerDan Winship <danw@src.gnome.org>2001-10-02 02:09:53 +0800
commit0b2cc6633c190b8433ea0c5ef818697ffdf51744 (patch)
tree908d2e69cad1bef000cb90de68b35a9401a8ee24 /camel/providers/local/camel-spool-store.c
parent505c37cb92dffa5c27d465bc597420367e272880 (diff)
downloadgsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar.gz
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar.bz2
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar.lz
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar.xz
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.tar.zst
gsoc2013-evolution-0b2cc6633c190b8433ea0c5ef818697ffdf51744.zip
Don't munge the URL; CamelSession's caching relies on it not changing.
* providers/local/camel-local-store.c (construct): Don't munge the URL; CamelSession's caching relies on it not changing. Instead, add a toplevel_dir field to CamelLocalStore, and set that to the path, but always ending with /. (camel_local_store_finalize): Free toplevel_dir (camel_local_store_get_toplevel_dir): Return toplevel_dir rather than url->path. * providers/local/*: Lots of s/url->path/toplevel_dir/ * providers/local/camel-spool-store.c (construct): Likewise, don't try to strip a trailing / from url->path here, but I didn't make the corresponding toplevel_dir change, because there's no good reason someone should expect "/var/spool/mail/danw/" to work since that's not a directory. svn path=/trunk/; revision=13264
Diffstat (limited to 'camel/providers/local/camel-spool-store.c')
-rw-r--r--camel/providers/local/camel-spool-store.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/camel/providers/local/camel-spool-store.c b/camel/providers/local/camel-spool-store.c
index c10c0f252d..ac857c0928 100644
--- a/camel/providers/local/camel-spool-store.c
+++ b/camel/providers/local/camel-spool-store.c
@@ -96,8 +96,6 @@ camel_spool_store_get_type (void)
static void
construct (CamelService *service, CamelSession *session, CamelProvider *provider, CamelURL *url, CamelException *ex)
{
- int len;
- char *path, *name;
struct stat st;
d(printf("constructing store of type %s '%s:%s'\n",
@@ -113,25 +111,10 @@ construct (CamelService *service, CamelSession *session, CamelProvider *provider
return;
}
- len = strlen (service->url->path);
- if (len > 0 && service->url->path[len - 1] == '/') {
- service->url->path = g_realloc (service->url->path, len + 2);
- service->url->path[len-1] = 0;
- }
-
- path = service->url->path;
- len = strlen(path);
- name = path;
-#if 0
- name = alloca(len+1);
- strcpy(name, path);
- name[len-1] = 0;
-#endif
-
- if (stat(name, &st) == -1 || !S_ISREG(st.st_mode)) {
+ if (stat(service->url->path, &st) == -1 || !S_ISREG(st.st_mode)) {
camel_exception_setv(ex, CAMEL_EXCEPTION_STORE_NO_FOLDER,
_("Spool `%s' does not exist or is not a regular file"),
- path);
+ service->url->path);
return;
}
}