summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2005-07-26 12:38:02 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2005-07-26 12:38:02 +0000
commitc9977805b513f0fc12a050911e2b5056bd6502f7 (patch)
treee7c8b508f884ff9fc423c2d497dca102494f1a44
parentad2da232c775d5689707829930860575345e1f73 (diff)
downloadmailutils-c9977805b513f0fc12a050911e2b5056bd6502f7.tar.gz
mailutils-c9977805b513f0fc12a050911e2b5056bd6502f7.tar.bz2
(_is_scheme, registrar_lookup): Take three arguments. All callers updated.
Raised path_record priority to 1000.
-rw-r--r--include/mailutils/registrar.h13
-rw-r--r--mailbox/registrar.c22
2 files changed, 17 insertions, 18 deletions
diff --git a/include/mailutils/registrar.h b/include/mailutils/registrar.h
index 527a6f526..29d2d0f81 100644
--- a/include/mailutils/registrar.h
+++ b/include/mailutils/registrar.h
@@ -36,8 +36,8 @@ struct _record
int (*_folder) __PMT ((folder_t));
void *data; /* back pointer. */
- /* Stub functions to override. The defaut is to return the fields. */
- int (*_is_scheme) __PMT ((record_t, const char *));
+ /* Stub functions to override. The default is to return the fields. */
+ int (*_is_scheme) __PMT ((record_t, const char *, int));
int (*_get_url) __PMT ((record_t, int (*(*_url)) __PMT ((url_t))));
int (*_get_mailbox) __PMT ((record_t, int (*(*_mailbox)) __PMT ((mailbox_t))));
int (*_get_mailer) __PMT ((record_t, int (*(*_mailer)) __PMT ((mailer_t))));
@@ -48,15 +48,16 @@ struct _record
extern int registrar_get_iterator __P ((iterator_t *));
extern int registrar_get_list __P ((list_t *)) __attribute__ ((deprecated));
-extern int registrar_lookup __P ((const char *name, record_t *precord));
+extern int registrar_lookup __P ((const char *name, record_t *precord,
+ int flags));
extern int registrar_record __P ((record_t));
extern int unregistrar_record __P ((record_t));
/* Scheme. */
-extern int record_is_scheme __P ((record_t, const char *));
+extern int record_is_scheme __P ((record_t, const char *, int flags));
extern int record_set_scheme __P ((record_t, const char *));
extern int record_set_is_scheme __P ((record_t, int (*_is_scheme)
- __PMT ((record_t, const char *))));
+ __PMT ((record_t, const char *, int))));
/* Url. */
extern int record_get_url __P ((record_t, int (*(*)) __PMT ((url_t))));
@@ -110,7 +111,7 @@ extern record_t maildir_record;
#define MU_MH_PRIO 400
#define MU_MAILDIR_PRIO 500
#define MU_NNTP_PRIO 600
-#define MU_PATH_PRIO 0
+#define MU_PATH_PRIO 1000
#define MU_SMTP_PRIO 10000
#define MU_SENDMAIL_PRIO 10000
diff --git a/mailbox/registrar.c b/mailbox/registrar.c
index bbb5afdc7..edb0d8b13 100644
--- a/mailbox/registrar.c
+++ b/mailbox/registrar.c
@@ -89,23 +89,21 @@ registrar_get_iterator (iterator_t *pitr)
}
int
-registrar_lookup (const char *name, record_t *precord)
+registrar_lookup (const char *name, record_t *precord, int flags)
{
iterator_t iterator;
int status = registrar_get_iterator (&iterator);
if (status != 0)
return status;
- status = MU_ERR_NOENT;
- for (iterator_first (iterator); status != 0 && !iterator_is_done (iterator);
+ status = 0;
+ for (iterator_first (iterator); status == 0 && !iterator_is_done (iterator);
iterator_next (iterator))
{
record_t record;
iterator_current (iterator, (void **)&record);
- if (record_is_scheme (record, name))
- {
- status = 0;
- *precord = record;
- }
+ status = record_is_scheme (record, name, flags);
+ if (status)
+ *precord = record;
}
iterator_destroy (&iterator);
return status;
@@ -148,19 +146,19 @@ unregistrar_record (record_t record)
}
int
-record_is_scheme (record_t record, const char *scheme)
+record_is_scheme (record_t record, const char *scheme, int flags)
{
if (record == NULL)
return 0;
/* Overload. */
if (record->_is_scheme)
- return record->_is_scheme (record, scheme);
+ return record->_is_scheme (record, scheme, flags);
if (scheme
&& record->scheme
&& strncasecmp (record->scheme, scheme, strlen (record->scheme)) == 0)
- return 1;
+ return MU_FOLDER_ATTRIBUTE_ALL;
return 0;
}
@@ -176,7 +174,7 @@ record_set_scheme (record_t record, const char *scheme)
int
record_set_is_scheme (record_t record, int (*_is_scheme)
- __P ((record_t, const char *)))
+ __P ((record_t, const char *, int)))
{
if (record == NULL)
return EINVAL;

Return to:

Send suggestions and report system problems to the System administrator.