33 |
#include <mailutils/mailbox.h> |
#include <mailutils/mailbox.h> |
34 |
#include <mailutils/mutil.h> |
#include <mailutils/mutil.h> |
35 |
#include <mailutils/error.h> |
#include <mailutils/error.h> |
36 |
|
#include <mailutils/errno.h> |
37 |
|
|
38 |
const char *mu_path_maildir = MU_PATH_MAILDIR; |
const char *mu_path_maildir = MU_PATH_MAILDIR; |
39 |
|
|
59 |
len = p - file + 1; |
len = p - file + 1; |
60 |
else |
else |
61 |
len = strlen (file) + 1; |
len = strlen (file) + 1; |
|
|
|
|
*user = calloc (1, len); |
|
|
if (!*user) |
|
|
return ENOMEM; |
|
62 |
|
|
63 |
memcpy (*user, file, len); |
if (len == 1) |
64 |
(*user)[len-1] = 0; |
*user = NULL; |
65 |
|
else |
66 |
|
{ |
67 |
|
*user = calloc (1, len); |
68 |
|
if (!*user) |
69 |
|
return ENOMEM; |
70 |
|
|
71 |
|
memcpy (*user, file, len); |
72 |
|
(*user)[len-1] = 0; |
73 |
|
} |
74 |
file += len-1; |
file += len-1; |
75 |
if (file[0] == '/') |
if (file[0] == '/') |
76 |
file++; |
file++; |
195 |
if ((status = split_shortcut (file, "~", &user, &path))) |
if ((status = split_shortcut (file, "~", &user, &path))) |
196 |
return status; |
return status; |
197 |
|
|
|
if (!user) |
|
|
return ENOENT; |
|
198 |
if (!path) |
if (!path) |
199 |
{ |
{ |
200 |
free (user); |
if (user) |
201 |
|
free (user); |
202 |
return ENOENT; |
return ENOENT; |
203 |
} |
} |
204 |
|
|
207 |
{ |
{ |
208 |
free (user); |
free (user); |
209 |
free (path); |
free (path); |
210 |
return ENOENT; |
return MU_ERR_NO_SUCH_USER; |
211 |
} |
} |
212 |
|
|
213 |
free (user); /* not needed anymore */ |
free (user); /* not needed anymore */ |