NeoMutt  2025-12-11-694-ga89709
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
path_canon()

Canonicalise a Mailbox path. More...

+ Collaboration diagram for path_canon():

Functions

static int comp_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
int imap_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
int maildir_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
static int mbox_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
static int mh_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
static int nntp_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
static int nm_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 
static int pop_path_canon (struct Buffer *path)
 Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
 

Detailed Description

Canonicalise a Mailbox path.

Parameters
pathPath to modify
Return values
0Success
-1Failure
Precondition
path is not NULL

Function Documentation

◆ comp_path_canon()

static int comp_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 878 of file compress.c.

879{
880 mutt_path_canon(path, NeoMutt->home_dir, false);
881 return 0;
882}
bool mutt_path_canon(struct Buffer *path, const char *homedir, bool is_dir)
Create the canonical version of a path.
Definition path.c:248
Container for Accounts, Notifications.
Definition neomutt.h:41
char * home_dir
User's home directory.
Definition neomutt.h:56
+ Here is the call graph for this function:

◆ imap_path_canon()

int imap_path_canon ( struct Buffer * path)

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 2560 of file imap.c.

2561{
2562 struct Url *url = url_parse(buf_string(path));
2563 if (!url)
2564 return 0;
2565
2566 char tmp[PATH_MAX] = { 0 };
2567 char tmp2[PATH_MAX] = { 0 };
2568 if (url->path)
2569 {
2570 struct ImapAccountData *adata = NULL;
2571 if (imap_adata_find(buf_string(path), &adata, NULL) == 0)
2572 {
2573 imap_fix_path_with_delim(adata->delim, url->path, tmp, sizeof(tmp));
2574 }
2575 else
2576 {
2577 imap_fix_path(url->path, tmp, sizeof(tmp));
2578 }
2579 url->path = tmp;
2580 }
2581 url_tostring(url, tmp2, sizeof(tmp2), U_NO_FLAGS);
2582 buf_strcpy(path, tmp2);
2583 url_free(&url);
2584
2585 return 0;
2586}
size_t buf_strcpy(struct Buffer *buf, const char *s)
Copy a string into a Buffer.
Definition buffer.c:395
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition buffer.h:96
char * imap_fix_path(const char *mailbox, char *path, size_t plen)
Fix up the imap path.
Definition util.c:683
char * imap_fix_path_with_delim(char delim, const char *mailbox, char *path, size_t plen)
Fix up the imap path.
Definition util.c:715
int imap_adata_find(const char *path, struct ImapAccountData **adata, struct ImapMboxData **mdata)
Find the Account data for this path.
Definition util.c:72
#define PATH_MAX
Definition mutt.h:49
void * adata
Private data (for Mailbox backends)
Definition account.h:42
IMAP-specific Account data -.
Definition adata.h:40
A parsed URL proto://user:password@host:port/path?a=1&b=2
Definition url.h:69
char * path
Path.
Definition url.h:75
struct Url * url_parse(const char *src)
Fill in Url.
Definition url.c:239
void url_free(struct Url **ptr)
Free the contents of a URL.
Definition url.c:124
int url_tostring(const struct Url *url, char *dest, size_t len, uint8_t flags)
Output the URL string for a given Url object.
Definition url.c:423
#define U_NO_FLAGS
No flags are set for URL parsing.
Definition url.h:49
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ maildir_path_canon()

int maildir_path_canon ( struct Buffer * path)

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 44 of file path.c.

45{
46 mutt_path_canon(path, NeoMutt->home_dir, true);
47 return 0;
48}
+ Here is the call graph for this function:

◆ mbox_path_canon()

static int mbox_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 1610 of file mbox.c.

1611{
1612 mutt_path_canon(path, NeoMutt->home_dir, false);
1613 return 0;
1614}
+ Here is the call graph for this function:

◆ mh_path_canon()

static int mh_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 1192 of file mh.c.

1193{
1194 mutt_path_canon(path, NeoMutt->home_dir, true);
1195 return 0;
1196}
+ Here is the call graph for this function:

◆ nntp_path_canon()

static int nntp_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 2801 of file nntp.c.

2802{
2803 return 0;
2804}

◆ nm_path_canon()

static int nm_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 2526 of file notmuch.c.

2527{
2528 return 0;
2529}

◆ pop_path_canon()

static int pop_path_canon ( struct Buffer * path)
static

Canonicalise a Mailbox path - Implements MxOps::path_canon() -.

Definition at line 1176 of file pop.c.

1177{
1178 return 0;
1179}