Added a (get-size ) function to fix bug #38073. (search_get_size):

2003-02-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-search.c: Added a (get-size ) function to fix bug
	#38073.
	(search_get_size): Implemented.

svn path=/trunk/; revision=19915
This commit is contained in:
Jeffrey Stedfast
2003-02-14 21:44:28 +00:00
committed by Jeffrey Stedfast
parent 8b79f2dff4
commit aba27fbc03
3 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2003-02-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-search.c: Added a (get-size ) function to fix bug
#38073.
(search_get_size): Implemented.
2003-02-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-url-scanner.c (url_scanner_table_init): Mark chars with

View File

@ -70,6 +70,7 @@ static ESExpResult *search_system_flag(struct _ESExp *f, int argc, struct _ESExp
static ESExpResult *search_get_sent_date(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
static ESExpResult *search_get_received_date(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
static ESExpResult *search_get_current_date(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
static ESExpResult *search_get_size(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
static ESExpResult *search_uid(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
static ESExpResult *search_dummy(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *search);
@ -100,6 +101,7 @@ camel_folder_search_class_init (CamelFolderSearchClass *klass)
klass->get_sent_date = search_get_sent_date;
klass->get_received_date = search_get_received_date;
klass->get_current_date = search_get_current_date;
klass->get_size = search_get_size;
klass->uid = search_uid;
}
@ -199,6 +201,7 @@ struct {
{ "get-sent-date", CAMEL_STRUCT_OFFSET(CamelFolderSearchClass, get_sent_date), 1 },
{ "get-received-date", CAMEL_STRUCT_OFFSET(CamelFolderSearchClass, get_received_date), 1 },
{ "get-current-date", CAMEL_STRUCT_OFFSET(CamelFolderSearchClass, get_current_date), 1 },
{ "get-size", CAMEL_STRUCT_OFFSET(CamelFolderSearchClass, get_size), 1 },
{ "uid", CAMEL_STRUCT_OFFSET(CamelFolderSearchClass, uid), 1 },
};
@ -241,7 +244,7 @@ camel_folder_search_construct (CamelFolderSearch *search)
CamelFolderSearch *
camel_folder_search_new (void)
{
CamelFolderSearch *new = CAMEL_FOLDER_SEARCH ( camel_object_new (camel_folder_search_get_type ()));
CamelFolderSearch *new = CAMEL_FOLDER_SEARCH (camel_object_new (camel_folder_search_get_type ()));
camel_folder_search_construct(new);
return new;
@ -1123,6 +1126,25 @@ search_get_current_date(struct _ESExp *f, int argc, struct _ESExpResult **argv,
return r;
}
static ESExpResult *
search_get_size (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s)
{
ESExpResult *r;
r(printf("executing get-size\n"));
/* are we inside a match-all? */
if (s->current) {
r = e_sexp_result_new (f, ESEXP_RES_INT);
r->value.number = s->current->size / 1024;
} else {
r = e_sexp_result_new (f, ESEXP_RES_ARRAY_PTR);
r->value.ptrarray = g_ptr_array_new ();
}
return r;
}
static ESExpResult *
search_uid(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *search)
{

View File

@ -108,6 +108,9 @@ struct _CamelFolderSearchClass {
/* (get-current-date) Retrieve 'now' as a time_t */
ESExpResult * (*get_current_date)(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
/* (get-size) Retrieve message size as an int (in kilobytes) */
ESExpResult * (*get_size)(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
/* (uid "uid" ...) True if the uid is in the list */
ESExpResult * (*uid)(struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFolderSearch *s);
};