[evolution-data-server] Add e_book_backend_sexp_text().



commit a5bf5d0d29716c6207107dcec18875c7ba210fb7
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sat Oct 13 07:48:51 2012 -0400

    Add e_book_backend_sexp_text().
    
    Similar to e_cal_backend_sexp_text(), returns the original textual
    expression used to build the EBookBackendSExp object.

 addressbook/libedata-book/e-book-backend-sexp.c    |   22 +++++++++++++++++++-
 addressbook/libedata-book/e-book-backend-sexp.h    |    1 +
 .../libedata-book/libedata-book-sections.txt       |    1 +
 3 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend-sexp.c b/addressbook/libedata-book/e-book-backend-sexp.c
index 3947712..a701c9b 100644
--- a/addressbook/libedata-book/e-book-backend-sexp.c
+++ b/addressbook/libedata-book/e-book-backend-sexp.c
@@ -32,6 +32,7 @@ typedef struct _SearchContext SearchContext;
 
 struct _EBookBackendSExpPrivate {
 	ESExp *search_sexp;
+	gchar *text;
 	SearchContext *search_context;
 };
 
@@ -1022,6 +1023,7 @@ e_book_backend_sexp_new (const gchar *text)
 	gint i;
 
 	sexp->priv->search_sexp = e_sexp_new ();
+	sexp->priv->text = g_strdup (text);
 
 	for (i = 0; i < G_N_ELEMENTS (symbols); i++) {
 		if (symbols[i].type == 1) {
@@ -1045,6 +1047,24 @@ e_book_backend_sexp_new (const gchar *text)
 	return sexp;
 }
 
+/**
+ * e_book_backend_sexp_text:
+ * @sexp: an #EBookBackendSExp
+ *
+ * Retrieve the text expression for the given #EBookBackendSExp object.
+ *
+ * Returns: the text expression
+ *
+ * Since: 3.8
+ **/
+const gchar *
+e_book_backend_sexp_text (EBookBackendSExp *sexp)
+{
+	g_return_val_if_fail (E_IS_BOOK_BACKEND_SEXP (sexp), NULL);
+
+	return sexp->priv->text;
+}
+
 static void
 e_book_backend_sexp_finalize (GObject *object)
 {
@@ -1053,7 +1073,7 @@ e_book_backend_sexp_finalize (GObject *object)
 	priv = E_BOOK_BACKEND_SEXP_GET_PRIVATE (object);
 
 	e_sexp_unref (priv->search_sexp);
-
+	g_free (priv->text);
 	g_free (priv->search_context);
 
 	/* Chain up to parent's finalize() method. */
diff --git a/addressbook/libedata-book/e-book-backend-sexp.h b/addressbook/libedata-book/e-book-backend-sexp.h
index d511ba0..cf98bbf 100644
--- a/addressbook/libedata-book/e-book-backend-sexp.h
+++ b/addressbook/libedata-book/e-book-backend-sexp.h
@@ -67,6 +67,7 @@ struct _EBookBackendSExpClass {
 GType		e_book_backend_sexp_get_type	(void) G_GNUC_CONST;
 EBookBackendSExp *
 		e_book_backend_sexp_new		(const gchar *text);
+const gchar *	e_book_backend_sexp_text	(EBookBackendSExp *sexp);
 gboolean	e_book_backend_sexp_match_vcard	(EBookBackendSExp *sexp,
 						 const gchar *vcard);
 gboolean	e_book_backend_sexp_match_contact
diff --git a/docs/reference/addressbook/libedata-book/libedata-book-sections.txt b/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
index 7dfc7f9..d0b989e 100644
--- a/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
+++ b/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
@@ -128,6 +128,7 @@ e_book_backend_factory_get_type
 <TITLE>EBookBackendSExp</TITLE>
 EBookBackendSExp
 e_book_backend_sexp_new
+e_book_backend_sexp_text
 e_book_backend_sexp_match_vcard
 e_book_backend_sexp_match_contact
 <SUBSECTION Standard>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]