[grisbi-cvs] [SCM] grisbi branch, master, updated. 1879dc1f238b320e5ef624f93511c5b2998107c7

Pierre Biava nobody at users.sourceforge.net
Sat Jun 19 21:13:46 CEST 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grisbi".

The branch, master has been updated
       via  1879dc1f238b320e5ef624f93511c5b2998107c7 (commit)
       via  ec6785c498e7af276dba517c08bbb670e4513350 (commit)
       via  44f2bdc22392c09bd3946a2b2ca4ea3ecbf15060 (commit)
       via  d7acbd2101ddfa74233771dcb88f32f0a31a2106 (commit)
       via  37324a38223eff58f78a19e6a8aa48ee877b740a (commit)
       via  4fdeb971eee93614f486dc4d957936633cc7deac (commit)
      from  f29ee0a471e631011a17c4042df0ab639c098f12 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1879dc1f238b320e5ef624f93511c5b2998107c7
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 21:12:37 2010 +0200

    remove functions gtk_combofix_append_text () and gtk_combofix_remove_text ()

commit ec6785c498e7af276dba517c08bbb670e4513350
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 21:05:01 2010 +0200

    Adding functions gtk_combofix_append_text () and gtk_combofix_remove_text ()

commit 44f2bdc22392c09bd3946a2b2ca4ea3ecbf15060
Merge: 4fdeb971eee93614f486dc4d957936633cc7deac d7acbd2101ddfa74233771dcb88f32f0a31a2106
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 07:36:57 2010 +0200

    Merge branch 'pbiava-gtk_combofix'

commit d7acbd2101ddfa74233771dcb88f32f0a31a2106
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 07:12:36 2010 +0200

    minor adjustment gtk_combofix

commit 37324a38223eff58f78a19e6a8aa48ee877b740a
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 00:00:00 2010 +0200

    Changes to use the GObject model for the gtk_combofix

commit 4fdeb971eee93614f486dc4d957936633cc7deac
Author: pbiava <pierre.biava at nerim.net>
Date:   Sat Jun 19 07:22:58 2010 +0200

    standardizes the creation of today's date

-----------------------------------------------------------------------

Changes:
diff --git a/src/etats_calculs.c b/src/etats_calculs.c
index ed752ee..b32760c 100644
--- a/src/etats_calculs.c
+++ b/src/etats_calculs.c
@@ -724,10 +724,7 @@ GSList *recupere_opes_etat ( gint report_number )
 			GDate *date_jour;
 			GDate *date_tmp;
 
-			date_jour = g_date_new ();
-			g_date_set_time_t ( date_jour,
-					  time ( NULL ));
-
+			date_jour = gdate_today ( );
 
 			switch ( gsb_data_report_get_date_type (report_number))
 			{
diff --git a/src/etats_support.c b/src/etats_support.c
index d97e5a8..b3d5ab2 100644
--- a/src/etats_support.c
+++ b/src/etats_support.c
@@ -280,9 +280,7 @@ gchar *etats_titre ( gint report_number)
 	    case 9:
 		/* 30 derniers jours */
 
-		date_tmp = g_date_new ();
-		g_date_set_time_t ( date_tmp,
-				  time ( NULL ));
+		date_tmp = gdate_today ( );
 
 		g_date_subtract_days ( date_tmp,
 				       30 );
@@ -298,9 +296,7 @@ gchar *etats_titre ( gint report_number)
 	    case 10:
 		/* 3 derniers mois */
 
-		date_tmp = g_date_new ();
-		g_date_set_time_t ( date_tmp,
-				  time ( NULL ));
+		date_tmp = gdate_today ( );
 		g_date_subtract_months ( date_tmp,
 					 3 );
 		g_date_strftime ( buffer_date_2,
@@ -327,9 +323,7 @@ gchar *etats_titre ( gint report_number)
 	    case 11:
 		/* 6 derniers mois */
 
-		date_tmp = g_date_new ();
-		g_date_set_time_t ( date_tmp,
-				  time ( NULL ));
+		date_tmp = gdate_today ( );
 		g_date_subtract_months ( date_tmp,
 					 6 );
 		g_date_strftime ( buffer_date_2,
@@ -357,9 +351,7 @@ gchar *etats_titre ( gint report_number)
 	    case 12:
 		/* 12 derniers mois */
 
-		date_tmp = g_date_new ();
-		g_date_set_time_t ( date_tmp,
-				  time ( NULL ));
+		date_tmp = gdate_today ( );
 		g_date_subtract_months ( date_tmp,
 					 12 );
 		g_date_strftime ( buffer_date_2,
diff --git a/src/gsb_data_account.c b/src/gsb_data_account.c
index d00df7e..f887aed 100644
--- a/src/gsb_data_account.c
+++ b/src/gsb_data_account.c
@@ -1021,7 +1021,7 @@ gboolean gsb_data_account_set_balances_are_dirty ( gint account_number )
 gsb_real gsb_data_account_calculate_current_and_marked_balances ( gint account_number )
 {
     struct_account *account;
-    GDate *date_jour = g_date_new ( );
+    GDate *date_jour;
     GSList *tmp_list;
     gsb_real current_balance;
 	gsb_real current_balance_later = null_real;
@@ -1042,7 +1042,7 @@ gsb_real gsb_data_account_calculate_current_and_marked_balances ( gint account_n
     marked_balance = gsb_real_adjust_exponent ( account -> init_balance,
 						floating_point );
 
-    g_date_set_time_t (date_jour, time (NULL));
+    date_jour = gdate_today ( );
 
     tmp_list = gsb_data_transaction_get_complete_transactions_list ();
 
@@ -2755,7 +2755,7 @@ gsb_real gsb_data_account_calculate_current_day_balance ( gint account_number,
                         GDate *day )
 {
     struct_account *account;
-    GDate *date_jour = g_date_new ( );
+    GDate *date_jour;
     GSList *tmp_list;
     gsb_real current_balance;
 	gsb_real current_balance_later = null_real;
diff --git a/src/gtk_combofix.c b/src/gtk_combofix.c
index dcd0397..2d8c29d 100644
--- a/src/gtk_combofix.c
+++ b/src/gtk_combofix.c
@@ -28,9 +28,11 @@
 
 /*START_INCLUDE*/
 #include "gtk_combofix.h"
-#include "erreur.h"
 /*END_INCLUDE*/
 
+ 
+G_DEFINE_TYPE ( GtkComboFix, gtk_combofix, GTK_TYPE_HBOX );
+
 #define GTK_COMBOFIX_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_COMBOFIX, GtkComboFixPrivate))
 
 struct _GtkComboFixPrivate
@@ -48,12 +50,10 @@ struct _GtkComboFixPrivate
     gboolean case_sensitive;
     /* TRUE if the entry content must belong to the list  */
     gboolean force;
-
     /* TRUE mix the different list, FALSE separate them */
     gboolean mixed_sort;
     /* 0 to show all the items */
     gint max_items;
-
     gint visible_items;
 };
 
@@ -86,6 +86,17 @@ static gboolean gtk_combofix_button_release_event ( GtkWidget *popup,
 static gboolean gtk_combofix_button_press ( GtkWidget *popup,
                         GdkEventButton *ev,
                         GtkComboFix *combofix );
+static void gtk_combofix_dispose ( GObject *combofix );
+static gboolean gtk_combofix_fill_iter_child ( GtkTreeStore *store,
+                        GtkTreeIter *iter_parent,
+                        const gchar *string,
+                        const gchar *real_string,
+                        gint list_number );
+static gboolean gtk_combofix_fill_iter_parent ( GtkTreeStore *store,
+                        GtkTreeIter *iter_parent,
+                        const gchar *string,
+                        gint list_number );
+static void gtk_combofix_finalize ( GObject *combofix );
 static gboolean  gtk_combofix_focus_out ( GtkWidget *entry,
                         GdkEvent *ev,
                         GtkComboFix *combofix );
@@ -141,31 +152,6 @@ enum combofix_key_direction {
 
 /* *********************** the first part contains all the extern functions ******************************************** */
 
-guint gtk_combofix_get_type ( void )
-{
-    static guint gtk_combofix_type = 0;
-
-    if ( !gtk_combofix_type )
-    {
-        static const GtkTypeInfo gtk_combofix_info = {
-            "GtkComboFix",
-            sizeof (GtkComboFix),
-            sizeof (GtkComboFixClass),
-            (GtkClassInitFunc) gtk_combofix_class_init,
-            (GtkObjectInitFunc) gtk_combofix_init,
-            NULL,
-            NULL,
-            (GtkClassInitFunc) NULL
-	    };
-
-	    gtk_combofix_type = gtk_type_unique ( gtk_hbox_get_type(),
-					      &gtk_combofix_info );
-    }
-
-    return ( gtk_combofix_type );
-}
-
-
 /**
  * create a combofix, with several list set one after the others
  * by default, force is not set, no max items
@@ -180,16 +166,10 @@ guint gtk_combofix_get_type ( void )
  * */
 GtkWidget *gtk_combofix_new ( GSList *list )
 {
-    GtkComboFixPrivate *priv;
-
-    GtkComboFix *combofix = GTK_COMBOFIX ( gtk_type_new ( gtk_combofix_get_type ( ) ) );
-    priv = combofix -> priv;
-
-    /* set the fields of the combofix */
-    priv -> force = FALSE;
-    priv -> max_items = 0;
-    priv -> case_sensitive = FALSE;
-    priv -> visible_items = 0;
+    //~ GtkComboFixPrivate *priv;
+    GtkComboFix *combofix = g_object_new ( GTK_TYPE_COMBOFIX, NULL );
+ 
+    //~ priv = combofix -> priv;
 
     gtk_combofix_set_list (combofix, list);
 
@@ -224,14 +204,14 @@ const gchar *gtk_combofix_get_text ( GtkComboFix *combofix )
  * */
 void gtk_combofix_set_text ( GtkComboFix *combofix, const gchar *text )
 {
-    g_return_if_fail (combofix);
-    g_return_if_fail (GTK_IS_COMBOFIX (combofix));
+    g_return_if_fail ( combofix );
+    g_return_if_fail ( GTK_IS_COMBOFIX ( combofix ) );
 
-    g_signal_handlers_block_by_func ( G_OBJECT (combofix -> entry),
-                        G_CALLBACK (gtk_combofix_entry_insert),
+    g_signal_handlers_block_by_func ( G_OBJECT ( combofix -> entry ),
+                        G_CALLBACK ( gtk_combofix_entry_insert ),
                         combofix );
-    g_signal_handlers_block_by_func ( G_OBJECT (combofix -> entry),
-                        G_CALLBACK (gtk_combofix_entry_delete),
+    g_signal_handlers_block_by_func ( G_OBJECT (combofix -> entry ),
+                        G_CALLBACK ( gtk_combofix_entry_delete ),
                         combofix );
 
     if ( text && strlen ( text ) > 0 )
@@ -239,11 +219,11 @@ void gtk_combofix_set_text ( GtkComboFix *combofix, const gchar *text )
     else
         gtk_entry_set_text ( GTK_ENTRY ( combofix -> entry ), "" );
 
-    g_signal_handlers_unblock_by_func ( G_OBJECT (combofix -> entry),
-                        G_CALLBACK (gtk_combofix_entry_insert),
+    g_signal_handlers_unblock_by_func ( G_OBJECT ( combofix -> entry ),
+                        G_CALLBACK ( gtk_combofix_entry_insert ),
                         combofix );
-    g_signal_handlers_unblock_by_func ( G_OBJECT (combofix -> entry),
-                        G_CALLBACK (gtk_combofix_entry_delete),
+    g_signal_handlers_unblock_by_func ( G_OBJECT ( combofix -> entry ),
+                        G_CALLBACK ( gtk_combofix_entry_delete ),
                         combofix );
 }
 
@@ -410,6 +390,7 @@ gboolean gtk_combofix_set_list ( GtkComboFix *combofix, GSList *list )
 
     g_return_val_if_fail (combofix, FALSE );
     g_return_val_if_fail (GTK_IS_COMBOFIX (combofix), FALSE);
+    g_return_val_if_fail (list, FALSE);
 
     gtk_tree_store_clear ( priv -> store );
 
@@ -452,20 +433,28 @@ void gtk_combofix_set_selection_callback ( GtkComboFix *combofix,
                         data );
 }
 
-/* *********************** the second part contains all the static functions ******************************************** */
+
+/* *********************** the second part contains the construct object functions ******************************************** */
+
+/**
+* called when create a new combofix
+*
+* \param combofix
+*
+* \return
+* */
 static void gtk_combofix_class_init ( GtkComboFixClass *klass )
 {
     GObjectClass *object_class;
+    GtkWidgetClass *widget_class;
 
-/*   GtkWidgetClass *widget_class; */
-/*   GtkObjectClass *gtk_object_class; */
+    object_class = G_OBJECT_CLASS (klass);
+    object_class -> dispose = gtk_combofix_dispose;
+    object_class -> finalize = gtk_combofix_finalize;
 
-/*   widget_class = (GtkWidgetClass *)klass; */
-/*   gtk_object_class = (GtkObjectClass *)klass; */
-/*   gtk_object_class->destroy = gtk_combofix_destroy; */
-    object_class = ( GObjectClass *) klass;
+    widget_class = GTK_WIDGET_CLASS (klass);
 
-    g_type_class_add_private ( object_class, sizeof ( GtkComboFixPrivate ) );
+    g_type_class_add_private ( klass, sizeof ( GtkComboFixPrivate ) );
 }
 
 
@@ -488,6 +477,12 @@ static void gtk_combofix_init ( GtkComboFix *combofix )
 
     combofix -> priv = priv;
 
+    /* set the fields of the combofix */
+    priv -> force = FALSE;
+    priv -> max_items = 0;
+    priv -> case_sensitive = FALSE;
+    priv -> visible_items = 0;
+
     /* the combofix is a vbox */
     vbox = gtk_vbox_new ( FALSE, 0 );
     gtk_container_add ( GTK_CONTAINER ( combofix ), vbox );
@@ -629,6 +624,34 @@ static void gtk_combofix_init ( GtkComboFix *combofix )
 
 
 /**
+* called when destroy a combofix
+*
+* \param combofix
+*
+* \return
+* */
+static void gtk_combofix_dispose ( GObject *combofix )
+{
+    G_OBJECT_CLASS ( gtk_combofix_parent_class ) -> dispose ( combofix );
+}
+
+
+/**
+* called when destroy combofix
+*
+* \param combofix
+*
+* \return
+* */
+static void gtk_combofix_finalize ( GObject *combofix )
+{
+    G_OBJECT_CLASS ( gtk_combofix_parent_class ) -> finalize ( combofix );
+}
+
+
+/* *********************** the third part contains all the static functions ******************************************** */
+
+/**
 * fill the model of the combofix given in param
 * with the list given in param
 * carreful : the list is not cleared, so if needed, must do it before
@@ -645,7 +668,6 @@ static gboolean gtk_combofix_fill_store ( GtkComboFix *combofix,
 {
     GSList *tmp_list;
     GtkTreeIter iter_parent;
-    GtkTreeIter iter_child;
     gchar *last_parent = NULL;
     GtkComboFixPrivate *priv = combofix -> priv;
 
@@ -655,13 +677,12 @@ static gboolean gtk_combofix_fill_store ( GtkComboFix *combofix,
     /* normally the list cannot begin by a child, but we check here to
      * avoid a big crash */
 
-    if ( list -> data
-	 &&
-	 ((gchar *)(list -> data))[0] == '\t' )
+    if ( list -> data && ( (gchar *) (list -> data))[0] == '\t' )
     {
-        devel_debug ( "GtkComboFix error : the first entry in the list is a child, "
-                        "cannot fill the combofix\n" );
-        return FALSE;
+        gboolean FAILED = TRUE;
+
+        g_print ( "GtkComboFix error : the first entry in the list is a child, cannot fill the combofix\n" );
+        g_return_val_if_fail ( FAILED, FALSE );
     }
 
     tmp_list = list;
@@ -669,7 +690,7 @@ static gboolean gtk_combofix_fill_store ( GtkComboFix *combofix,
     while (tmp_list)
     {
         gchar *string;
-        gchar* tmpstr;
+        gchar* tmp_str;
 
         string = tmp_list -> data;
 
@@ -679,32 +700,20 @@ static gboolean gtk_combofix_fill_store ( GtkComboFix *combofix,
             if ( string[0] == '\t' )
             {
                 /* it's a child */
-                tmpstr = g_strconcat ( last_parent, " : ", string + 1, NULL );
-
-                gtk_tree_store_append ( priv -> store, &iter_child, &iter_parent );
-                gtk_tree_store_set ( priv -> store,
-                            &iter_child,
-                            COMBOFIX_COL_VISIBLE_STRING, string + 1,
-                            COMBOFIX_COL_REAL_STRING, tmpstr,
-                            COMBOFIX_COL_VISIBLE, TRUE,
-                            COMBOFIX_COL_LIST_NUMBER, list_number,
-                            -1 );
-                g_free ( tmpstr );
+                tmp_str = g_strconcat ( last_parent, " : ", string + 1, NULL );
+
+                gtk_combofix_fill_iter_child ( priv -> store, &iter_parent, string + 1, tmp_str, list_number );
+
+                g_free ( tmp_str );
             }
             else
             {
                 /* it's a parent */
-                gtk_tree_store_append ( priv -> store, &iter_parent, NULL );
-                gtk_tree_store_set ( priv -> store,
-                            &iter_parent,
-                            COMBOFIX_COL_VISIBLE_STRING, string,
-                            COMBOFIX_COL_REAL_STRING, string,
-                            COMBOFIX_COL_VISIBLE, TRUE,
-                            COMBOFIX_COL_LIST_NUMBER, list_number,
-                            -1 );
+                gtk_combofix_fill_iter_parent ( priv -> store, &iter_parent, string, list_number );
                 last_parent = string;
             }
         }
+
         tmp_list = tmp_list -> next;
     }
 
@@ -714,6 +723,65 @@ static gboolean gtk_combofix_fill_store ( GtkComboFix *combofix,
 }
 
 
+/**
+* fill a parent_iter of the model given in param
+* with the string given in param
+*
+* \param store
+* \param parent_iter
+* \param string
+* \param list_number 	the number of the list
+*
+* \return TRUE
+* */
+static gboolean gtk_combofix_fill_iter_parent ( GtkTreeStore *store,
+                        GtkTreeIter *iter_parent,
+                        const gchar *string,
+                        gint list_number )
+{
+    gtk_tree_store_append ( store, iter_parent, NULL );
+    gtk_tree_store_set ( store,
+                iter_parent,
+                COMBOFIX_COL_VISIBLE_STRING, string,
+                COMBOFIX_COL_REAL_STRING, string,
+                COMBOFIX_COL_VISIBLE, TRUE,
+                COMBOFIX_COL_LIST_NUMBER, list_number,
+                -1 );
+
+    return TRUE;
+}
+
+
+/**
+* fill a child_iter of the model given in param
+* with the string given in param
+*
+* \param store
+* \param parent_iter
+* \param string
+* \param list_number 	the number of the list
+*
+* \return TRUE
+* */
+static gboolean gtk_combofix_fill_iter_child ( GtkTreeStore *store,
+                        GtkTreeIter *iter_parent,
+                        const gchar *string,
+                        const gchar *real_string,
+                        gint list_number )
+{
+    GtkTreeIter iter_child;
+
+    gtk_tree_store_append ( store, &iter_child, iter_parent );
+    gtk_tree_store_set ( store,
+                        &iter_child,
+                        COMBOFIX_COL_VISIBLE_STRING, string,
+                        COMBOFIX_COL_REAL_STRING, real_string,
+                        COMBOFIX_COL_VISIBLE, TRUE,
+                        COMBOFIX_COL_LIST_NUMBER, list_number,
+                        -1 );
+
+    return TRUE;
+}
 
 
 /**
@@ -761,7 +829,7 @@ static gboolean gtk_combofix_entry_changed ( GtkComboFix *combofix, gboolean ins
     GtkComboFixPrivate *priv = combofix -> priv;
 
     entry_string = gtk_entry_get_text ( GTK_ENTRY ( combofix -> entry ) );
-
+g_print ("gtk_combofix_entry_changed = %s\n", entry_string );
     if ( strlen ( entry_string ) )
     {
         completed_string = gtk_combofix_update_visible_rows ( combofix,
@@ -896,7 +964,6 @@ static gchar *gtk_combofix_update_visible_rows ( GtkComboFix *combofix,
     gboolean separator = FALSE;
     GtkComboFixPrivate *priv = combofix -> priv;
 
-    //~ devel_debug ( string);
     if (!combofix
 	||
 	!string )
diff --git a/src/gtk_combofix.h b/src/gtk_combofix.h
index e2efa89..75880d9 100644
--- a/src/gtk_combofix.h
+++ b/src/gtk_combofix.h
@@ -23,46 +23,38 @@
 
 
 #include <gtk/gtk.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gtk/gtkeditable.h>
 
+#define GTK_TYPE_COMBOFIX           ( gtk_combofix_get_type ( ) )
+#define GTK_COMBOFIX(obj)           ( G_TYPE_CHECK_INSTANCE_CAST ( (obj), GTK_TYPE_COMBOFIX, GtkComboFix ) )
+#define GTK_COMBOFIX_CLASS(klass)   ( G_TYPE_CHECK_CLASS_CAST ( (klass),  GTK_TYPE_COMBOFIX, GtkComboFixClass ) )
+#define GTK_IS_COMBOFIX(obj)        ( G_TYPE_CHECK_INSTANCE_TYPE ( (obj), GTK_TYPE_COMBOFIX ) )
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
 
-
-#define GTK_TYPE_COMBOFIX             ( gtk_combofix_get_type ( ) )
-#define GTK_COMBOFIX(obj) GTK_CHECK_CAST(obj, gtk_combofix_get_type(), GtkComboFix )
-#define GTK_COMBOFIX_CLASS(klass) GTK_CHECK_CLASS_CAST( klass, gtk_combofix_get_type(), GtkComboFixClass )
-#define GTK_IS_COMBOFIX(obj) GTK_CHECK_TYPE ( obj, gtk_combofix_get_type() )
-
-
-typedef struct _GtkComboFix GtkComboFix;
-typedef struct _GtkComboFixClass GtkComboFixClass;
-typedef struct _GtkComboFixPrivate GtkComboFixPrivate;
+typedef struct _GtkComboFix         GtkComboFix;
+typedef struct _GtkComboFixClass    GtkComboFixClass;
+typedef struct _GtkComboFixPrivate  GtkComboFixPrivate;
 
 
 /* structure of the ComboFix */
 struct _GtkComboFix
 {
-    GtkVBox vbox;
+    GtkHBox parent;
 
     /* entry of the combofix */
     GtkWidget *entry;
+
     /* *** private entries *** */
     GtkComboFixPrivate *GSEAL (priv);
 };
 
 struct _GtkComboFixClass
 {
-    GtkVBoxClass parent_class;
+    GtkHBoxClass parent_class;
 };
 
 
 /* construction */
-guint gtk_combofix_get_type ( void );
+GType gtk_combofix_get_type ( void ) G_GNUC_CONST;
 GtkWidget *gtk_combofix_new ( GSList *list );
 
 /* text */
@@ -85,8 +77,4 @@ void gtk_combofix_set_selection_callback ( GtkComboFix *combofix,
 						GCallback func,
 					    gpointer data );
 
-#ifdef __cplusplus
-}
-#endif				/* __cplusplus */
-
 #endif				/* __GTK_COMBOFIX_H__ */
diff --git a/src/utils_dates.c b/src/utils_dates.c
index f844916..961353a 100644
--- a/src/utils_dates.c
+++ b/src/utils_dates.c
@@ -138,8 +138,7 @@ GDate *gsb_date_tomorrow ( void )
 {
     GDate *date;
 
-    date = g_date_new ( );
-    g_date_set_time_t (  date, time ( NULL ) );
+    date = gdate_today ( );
     g_date_add_days ( date, 1);
 
     return ( date );


hooks/post-receive
-- 
grisbi


More information about the cvs mailing list