xartigas pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9c52484cafbb52a293e1048362b877ec7e43a81f

commit 9c52484cafbb52a293e1048362b877ec7e43a81f
Author: Yeongjong Lee <yj34....@samsung.com>
Date:   Tue Aug 27 12:46:03 2019 +0200

    efl_pack_table: rename table_position to cell_column, cell_row
    
    Summary:
    Rename ambiguous `table_position` property. it is actually related to child
    column, row.
    
    ref T7900
    
    Reviewers: segfaultxavi, zmike
    
    Reviewed By: segfaultxavi
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl_api
    
    Maniphest Tasks: T7900
    
    Differential Revision: https://phab.enlightenment.org/D9611
---
 src/bin/elementary/test_ui_table.c             |  6 +-
 src/bin/elementary/test_ui_table_static.c      |  6 +-
 src/lib/edje/edje_part_invalid.c               |  5 +-
 src/lib/edje/edje_part_table.c                 | 40 +++++++++--
 src/lib/edje/efl_canvas_layout_part_invalid.eo |  3 +-
 src/lib/edje/efl_canvas_layout_part_table.eo   |  3 +-
 src/lib/efl/interfaces/efl_pack_table.eo       | 17 ++++-
 src/lib/elementary/efl_ui_layout_pack.c        | 49 ++++++++++++--
 src/lib/elementary/efl_ui_layout_part_table.eo |  3 +-
 src/lib/elementary/efl_ui_table.c              | 92 ++++++++++++++++++++++++--
 src/lib/elementary/efl_ui_table.eo             |  3 +-
 src/tests/edje/edje_test_container.c           |  3 +-
 12 files changed, 202 insertions(+), 28 deletions(-)

diff --git a/src/bin/elementary/test_ui_table.c 
b/src/bin/elementary/test_ui_table.c
index 43b4c9cdb0..67f7067657 100644
--- a/src/bin/elementary/test_ui_table.c
+++ b/src/bin/elementary/test_ui_table.c
@@ -138,7 +138,8 @@ child_evt_cb(void *data, const Efl_Event *event)
    int col, row, colspan, rowspan;
    char buf[64];
 
-   efl_pack_table_position_get(event->object, it, &col, &row, &colspan, 
&rowspan);
+   efl_pack_table_cell_column_get(event->object, it, &col, &colspan);
+   efl_pack_table_cell_row_get(event->object, it, &row, &rowspan);
    if (event->desc == EFL_CONTAINER_EVENT_CONTENT_ADDED)
      sprintf(buf, "pack %d,%d %dx%d", col, row, colspan, rowspan);
    else
@@ -168,7 +169,8 @@ _custom_layout_update(Eo *pack, void *_pd EINA_UNUSED)
    it = efl_content_iterate(pack);
    EINA_ITERATOR_FOREACH(it, item)
      {
-        if (efl_pack_table_position_get(pack, item, &c, &r, &cs, &rs))
+        if (efl_pack_table_cell_column_get(pack, item, &c, &cs) &&
+            efl_pack_table_cell_row_get(pack, item, &r, &rs))
           {
              Eina_Rect m;
 
diff --git a/src/bin/elementary/test_ui_table_static.c 
b/src/bin/elementary/test_ui_table_static.c
index 3e5ff789c4..7656bbc6a4 100644
--- a/src/bin/elementary/test_ui_table_static.c
+++ b/src/bin/elementary/test_ui_table_static.c
@@ -86,10 +86,8 @@ _ch_table(void *data, const Efl_Event *ev)
    Eo *table = data;
    int x, y, w, h;
 
-   // FIXME: old elm_table API doesn't need table object
-   //elm_grid_pack_get(obj, &x, &y, &w, &h);
-   //elm_grid_pack_set(obj, x - 1, y - 1, w + 2, h + 2);
-   efl_pack_table_position_get(table, ev->object, &x, &y, &w, &h);
+   efl_pack_table_cell_column_get(table, ev->object, &x, &w);
+   efl_pack_table_cell_row_get(table, ev->object, &y, &h);
    efl_pack_table(table, ev->object, x - 1, y - 1, w + 2, h + 2);
 }
 
diff --git a/src/lib/edje/edje_part_invalid.c b/src/lib/edje/edje_part_invalid.c
index 6403109b1c..4c62204709 100644
--- a/src/lib/edje/edje_part_invalid.c
+++ b/src/lib/edje/edje_part_invalid.c
@@ -95,7 +95,10 @@ EDJE_PART_INVALID_CONST(Efl_Ui_Layout_Orientation, 0, 
efl_ui_layout_orientation_
 EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_table, 
_efl_canvas_layout_part_invalid_efl_pack_table_pack_table, Efl_Gfx_Entity 
*subobj, int col, int row, int colspan, int rowspan)
 EDJE_PART_INVALID(Efl_Gfx_Entity *, 0, efl_pack_table_content_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_content_get, int col, int 
row)
 EDJE_PART_INVALID(Eina_Iterator *, 0, efl_pack_table_contents_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_contents_get, int col, int 
row, Eina_Bool below)
-EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_position_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_position_get, 
Efl_Gfx_Entity *subobj, int *col, int *row, int *colspan, int *rowspan)
+EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_cell_column_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_cell_column_get, 
Efl_Gfx_Entity *subobj, int *col, int *colspan)
+EDJE_PART_INVALID_VOID(efl_pack_table_cell_column_set, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_cell_column_set, 
Efl_Gfx_Entity *subobj, int col, int colspan)
+EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_pack_table_cell_row_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_cell_row_get, 
Efl_Gfx_Entity *subobj, int *row, int *rowspan)
+EDJE_PART_INVALID_VOID(efl_pack_table_cell_row_set, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_cell_row_set, 
Efl_Gfx_Entity *subobj, int row, int rowspan)
 EDJE_PART_INVALID_VOID_CONST(efl_pack_table_size_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_size_get, int *cols, int 
*rows)
 EDJE_PART_INVALID_CONST(int, 0, efl_pack_table_columns_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_columns_get)
 EDJE_PART_INVALID_CONST(int, 0, efl_pack_table_rows_get, 
_efl_canvas_layout_part_invalid_efl_pack_table_table_rows_get)
diff --git a/src/lib/edje/edje_part_table.c b/src/lib/edje/edje_part_table.c
index e860d74e78..d3d27bff23 100644
--- a/src/lib/edje/edje_part_table.c
+++ b/src/lib/edje/edje_part_table.c
@@ -163,21 +163,53 @@ 
_efl_canvas_layout_part_table_efl_pack_table_table_contents_get(Eo *obj, void *_
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_layout_part_table_efl_pack_table_table_position_get(const Eo *obj, 
void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *col, int *row, int 
*colspan, int *rowspan)
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_column_get(const Eo 
*obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *col, int *colspan)
 {
-   unsigned short c, r, cs, rs;
+   unsigned short c, cs;
    Eina_Bool ret;
 
    PROXY_DATA_GET(obj, pd);
-   ret = evas_object_table_pack_get(pd->rp->object, subobj, &c, &r, &cs, &rs);
+   ret = evas_object_table_pack_get(pd->rp->object, subobj, &c, NULL, &cs, 
NULL);
    if (col) *col = c;
-   if (row) *row = r;
    if (colspan) *colspan = cs;
+
+   return ret;
+}
+
+EOLIAN static void
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_column_set(Eo *obj, 
void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int col, int colspan)
+{
+   unsigned short r, rs;
+
+   PROXY_DATA_GET(obj, pd);
+   evas_object_table_pack_get(pd->rp->object, subobj, NULL, &r, NULL, &rs);
+   evas_object_table_pack(pd->rp->object, subobj, col, r, colspan, rs);
+}
+
+EOLIAN static Eina_Bool
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_row_get(const Eo *obj, 
void *_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int *row, int *rowspan)
+{
+   unsigned short r, rs;
+   Eina_Bool ret;
+
+   PROXY_DATA_GET(obj, pd);
+   ret = evas_object_table_pack_get(pd->rp->object, subobj, NULL, &r, NULL, 
&rs);
+   if (row) *row = r;
    if (rowspan) *rowspan = rs;
 
    return ret;
 }
 
+EOLIAN static void
+_efl_canvas_layout_part_table_efl_pack_table_table_cell_row_set(Eo *obj, void 
*_pd EINA_UNUSED, Efl_Gfx_Entity * subobj, int row, int rowspan)
+{
+   unsigned short c, cs;
+
+   PROXY_DATA_GET(obj, pd);
+   evas_object_table_pack_get(pd->rp->object, subobj, &c, NULL, &cs, NULL);
+   evas_object_table_pack(pd->rp->object, subobj, c, row, cs, rowspan);
+}
+
 /* Legacy API implementation */
 
 #ifdef DEGUG
diff --git a/src/lib/edje/efl_canvas_layout_part_invalid.eo 
b/src/lib/edje/efl_canvas_layout_part_invalid.eo
index 48a4b7a589..62a1afcbe1 100644
--- a/src/lib/edje/efl_canvas_layout_part_invalid.eo
+++ b/src/lib/edje/efl_canvas_layout_part_invalid.eo
@@ -63,7 +63,8 @@ class @beta Efl.Canvas.Layout_Part_Invalid extends 
Efl.Canvas.Layout_Part implem
       Efl.Pack_Table.pack_table;
       Efl.Pack_Table.table_content_get;
       Efl.Pack_Table.table_contents_get;
-      Efl.Pack_Table.table_position { get; }
+      Efl.Pack_Table.table_cell_column { get; set; }
+      Efl.Pack_Table.table_cell_row { get; set; }
       Efl.Pack_Table.table_size { get; }
       Efl.Pack_Table.table_columns { get; }
       Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/edje/efl_canvas_layout_part_table.eo 
b/src/lib/edje/efl_canvas_layout_part_table.eo
index 2b9854cc6c..86dc0e7647 100644
--- a/src/lib/edje/efl_canvas_layout_part_table.eo
+++ b/src/lib/edje/efl_canvas_layout_part_table.eo
@@ -15,7 +15,8 @@ class @beta Efl.Canvas.Layout_Part_Table extends 
Efl.Canvas.Layout_Part implemen
       Efl.Pack_Table.pack_table;
       Efl.Pack_Table.table_content_get;
       Efl.Pack_Table.table_contents_get;
-      Efl.Pack_Table.table_position { get; }
+      Efl.Pack_Table.table_cell_column { get; set; }
+      Efl.Pack_Table.table_cell_row { get; set; }
       Efl.Pack_Table.table_size { get; }
       Efl.Pack_Table.table_columns { get; }
       Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/efl/interfaces/efl_pack_table.eo 
b/src/lib/efl/interfaces/efl_pack_table.eo
index 9214eb7c65..b2d4b31f1b 100644
--- a/src/lib/efl/interfaces/efl_pack_table.eo
+++ b/src/lib/efl/interfaces/efl_pack_table.eo
@@ -40,16 +40,27 @@ interface @beta Efl.Pack_Table extends Efl.Pack
             @in row: int; [[Row number]]
          }
       }
-      @property table_position {
-         [[Position and span of the $subobj in this container, may be modified 
to move the $subobj]]
+      @property table_cell_column {
+         [[column of the $subobj in this container.]]
+         set {}
          get { return: bool; [[Returns false if item is not a child]] }
          keys {
             subobj: Efl.Gfx.Entity; [[Child object]]
          }
          values {
             col: int; [[Column number]]
-            row: int; [[Row number]]
             colspan: int; [[Column span]]
+         }
+      }
+      @property table_cell_row {
+         [[row of the $subobj in this container.]]
+         set {}
+         get { return: bool; [[Returns false if item is not a child]] }
+         keys {
+            subobj: Efl.Gfx.Entity; [[Child object]]
+         }
+         values {
+            row: int; [[Row number]]
             rowspan: int; [[Row span]]
          }
       }
diff --git a/src/lib/elementary/efl_ui_layout_pack.c 
b/src/lib/elementary/efl_ui_layout_pack.c
index 6cd89f20a5..2c79d66266 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -322,24 +322,65 @@ 
_efl_ui_layout_part_table_efl_pack_table_table_contents_get(Eo *obj EINA_UNUSED,
 }
 
 EOLIAN static Eina_Bool
-_efl_ui_layout_part_table_efl_pack_table_table_position_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *col, 
int *row, int *colspan, int *rowspan)
+_efl_ui_layout_part_table_efl_pack_table_table_cell_column_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *col, 
int *colspan)
 {
-   unsigned short c, r, cs, rs;
+   unsigned short c, cs;
    Eina_Bool ret;
 
    edje_object_freeze(pd->obj);
    Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
    edje_object_thaw(pd->obj);
 
-   ret = evas_object_table_pack_get(pack, subobj, &c, &r, &cs, &rs);
+   ret = evas_object_table_pack_get(pack, subobj, &c, NULL, &cs, NULL);
    if (col) *col = c;
-   if (row) *row = r;
    if (colspan) *colspan = cs;
+
+   return ret;
+}
+
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_cell_column_set(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int col, 
int colspan)
+{
+   unsigned short r, rs;
+
+   edje_object_freeze(pd->obj);
+   Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+   edje_object_thaw(pd->obj);
+
+   evas_object_table_pack_get(pack, subobj, NULL, &r, NULL, &rs);
+   evas_object_table_pack(pack, subobj, col, r, colspan, rs);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_layout_part_table_efl_pack_table_table_cell_row_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int *row, 
int *rowspan)
+{
+   unsigned short r, rs;
+   Eina_Bool ret;
+
+   edje_object_freeze(pd->obj);
+   Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+   edje_object_thaw(pd->obj);
+
+   ret = evas_object_table_pack_get(pack, subobj, NULL, &r, NULL, &rs);
+   if (row) *row = r;
    if (rowspan) *rowspan = rs;
 
    return ret;
 }
 
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_cell_row_set(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity * subobj, int row, 
int rowspan)
+{
+   unsigned short c, cs;
+
+   edje_object_freeze(pd->obj);
+   Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+   edje_object_thaw(pd->obj);
+
+   evas_object_table_pack_get(pack, subobj, &c, NULL, &cs, NULL);
+   evas_object_table_pack(pack, subobj, c, row, cs, rowspan);
+}
+
 EOLIAN static void
 _efl_ui_layout_part_table_efl_pack_table_table_size_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, int *cols, int *rows)
 {
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo 
b/src/lib/elementary/efl_ui_layout_part_table.eo
index 2ffe6fae99..eca9fa43f9 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -27,7 +27,8 @@ class @beta Efl.Ui.Layout_Part_Table extends Efl.Object 
implements Efl.Pack_Tabl
       Efl.Pack_Table.pack_table;
       Efl.Pack_Table.table_content_get;
       Efl.Pack_Table.table_contents_get;
-      Efl.Pack_Table.table_position { get; }
+      Efl.Pack_Table.table_cell_column { get; set; }
+      Efl.Pack_Table.table_cell_row { get; set; }
       Efl.Pack_Table.table_size { get; }
       Efl.Pack_Table.table_columns { get; }
       Efl.Pack_Table.table_rows { get; }
diff --git a/src/lib/elementary/efl_ui_table.c 
b/src/lib/elementary/efl_ui_table.c
index ca2b5c009d..7ed1635db4 100644
--- a/src/lib/elementary/efl_ui_table.c
+++ b/src/lib/elementary/efl_ui_table.c
@@ -383,9 +383,9 @@ _efl_ui_table_efl_pack_table_pack_table(Eo *obj, 
Efl_Ui_Table_Data *pd,
 }
 
 EOLIAN static Eina_Bool
-_efl_ui_table_efl_pack_table_table_position_get(const Eo *obj, 
Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *col, int *row, int *colspan, 
int *rowspan)
+_efl_ui_table_efl_pack_table_table_cell_column_get(const Eo *obj, 
Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *col, int *colspan)
 {
-   int c = -1, r = -1, cs = 0, rs = 0;
+   int c = -1, cs = 0;
    Table_Item *gi;
    Eina_Bool ret = EINA_FALSE;
 
@@ -393,19 +393,101 @@ _efl_ui_table_efl_pack_table_table_position_get(const Eo 
*obj, Efl_Ui_Table_Data
    if (gi)
      {
         c = gi->col;
-        r = gi->row;
         cs = gi->col_span;
-        rs = gi->row_span;
         ret = EINA_TRUE;
      }
 
    if (col) *col = c;
-   if (row) *row = r;
    if (colspan) *colspan = cs;
+   return ret;
+}
+
+EOLIAN static void
+_efl_ui_table_efl_pack_table_table_cell_column_set(Eo *obj, Efl_Ui_Table_Data 
*pd, Evas_Object *subobj, int col, int colspan)
+{
+   Table_Item *gi;
+
+   gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+   if (!gi)
+     return;
+
+   if (col < 0) col = 0;
+   if (colspan < 1) colspan = 1;
+
+   if (((int64_t) col + (int64_t) colspan) > (int64_t) INT_MAX)
+     colspan = INT_MAX - col;
+
+   if (pd->req_cols && ((col + colspan) > pd->req_cols))
+     {
+        ERR("table requested size exceeded! packing in extra cell at "
+            "%d+%d (table cols: %d)", col, colspan, pd->req_cols);
+     }
+
+   gi->col = col;
+   gi->col_span = colspan;
+
+   if (gi->col > pd->last_col)
+     pd->linear_recalc = EINA_TRUE;
+
+   if (pd->cols < gi->col + gi->col_span)
+     pd->cols = gi->col + gi->col_span;
+
+   efl_pack_layout_request(obj);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_table_efl_pack_table_table_cell_row_get(const Eo *obj, 
Efl_Ui_Table_Data *pd, Evas_Object *subobj, int *row, int *rowspan)
+{
+   int r = -1, rs = 0;
+   Table_Item *gi;
+   Eina_Bool ret = EINA_FALSE;
+
+   gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+   if (gi)
+     {
+        r = gi->row;
+        rs = gi->row_span;
+        ret = EINA_TRUE;
+     }
+
+   if (row) *row = r;
    if (rowspan) *rowspan = rs;
    return ret;
 }
 
+EOLIAN static void
+_efl_ui_table_efl_pack_table_table_cell_row_set(Eo *obj, Efl_Ui_Table_Data 
*pd, Evas_Object *subobj, int row, int rowspan)
+{
+   Table_Item *gi;
+
+   gi = _efl_ui_table_item_date_get((Eo *)obj, pd, subobj);
+   if (!gi)
+     return;
+
+   if (row < 0) row = 0;
+   if (rowspan < 1) rowspan = 1;
+
+   if (((int64_t) row + (int64_t) rowspan) > (int64_t) INT_MAX)
+     rowspan = INT_MAX - row;
+
+   if (pd->req_rows && ((row + rowspan) > pd->req_rows))
+     {
+        ERR("table requested size exceeded! packing in extra cell at "
+            "%d+%d (table rows: %d)", row, rowspan, pd->req_rows);
+     }
+
+   gi->row = row;
+   gi->row_span = rowspan;
+
+   if (gi->row > pd->last_row)
+     pd->linear_recalc = EINA_TRUE;
+
+   if (pd->rows < gi->row + gi->row_span)
+     pd->rows = gi->row + gi->row_span;
+
+   efl_pack_layout_request(obj);
+}
+
 EOLIAN static Efl_Gfx_Entity *
 _efl_ui_table_efl_pack_table_table_content_get(Eo *obj EINA_UNUSED, 
Efl_Ui_Table_Data *pd, int col, int row)
 {
diff --git a/src/lib/elementary/efl_ui_table.eo 
b/src/lib/elementary/efl_ui_table.eo
index c0648dc1a9..d1466868a6 100644
--- a/src/lib/elementary/efl_ui_table.eo
+++ b/src/lib/elementary/efl_ui_table.eo
@@ -47,7 +47,8 @@ class Efl.Ui.Table extends Efl.Ui.Widget implements 
Efl.Pack_Table, Efl.Pack_Lay
       Efl.Pack_Table.pack_table;
       Efl.Pack_Table.table_content_get;
       Efl.Pack_Table.table_contents_get;
-      Efl.Pack_Table.table_position { get; }
+      Efl.Pack_Table.table_cell_column { get; set; }
+      Efl.Pack_Table.table_cell_row { get; set; }
       Efl.Pack_Table.table_size { get; set; }
       Efl.Pack_Table.table_columns { get; set; }
       Efl.Pack_Table.table_rows { get; set; }
diff --git a/src/tests/edje/edje_test_container.c 
b/src/tests/edje/edje_test_container.c
index 11fc195e09..1ddeb86985 100644
--- a/src/tests/edje/edje_test_container.c
+++ b/src/tests/edje/edje_test_container.c
@@ -236,7 +236,8 @@ EFL_START_TEST(edje_test_table_eoapi)
    it = efl_content_iterate(efl_part(obj, "table"));
    EINA_ITERATOR_FOREACH(it, sobj)
      {
-        efl_pack_table_position_get(efl_part(obj, "table"), sobj, &k, &l, &cs, 
&rs);
+        efl_pack_table_cell_column_get(efl_part(obj, "table"), sobj, &k, &cs);
+        efl_pack_table_cell_column_get(efl_part(obj, "table"), sobj, &l, &rs);
         fail_if(cs != 1);
         fail_if(rs != 1);
         if (l >= 2)

-- 


Reply via email to