diff options
author | Dan Winship <danw@src.gnome.org> | 2001-10-02 02:09:53 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-10-02 02:09:53 +0800 |
commit | 0b2cc6633c190b8433ea0c5ef818697ffdf51744 (patch) | |
tree | 908d2e69cad1bef000cb90de68b35a9401a8ee24 /camel/providers/local/camel-spool-store.c | |
parent | 505c37cb92dffa5c27d465bc597420367e272880 (diff) | |
download | gsoc2013-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.c | 21 |
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; } } |