Index: apps/gui/bitmap/list-skinned.c
===================================================================
--- apps/gui/bitmap/list-skinned.c	(Revision 30520)
+++ apps/gui/bitmap/list-skinned.c	(Arbeitskopie)
@@ -82,6 +82,12 @@
         item = item % current_list->nb_items;
     return item;
 }
+
+int skinlist_get_item_number()
+{
+    return current_drawing_line;
+}
+
 const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size)
 {
     int item = offset_to_item(offset, wrap);
Index: apps/gui/skin_engine/skin_parser.c
===================================================================
--- apps/gui/skin_engine/skin_parser.c	(Revision 30520)
+++ apps/gui/skin_engine/skin_parser.c	(Arbeitskopie)
@@ -704,6 +704,8 @@
         lif->op = IF_GREATERTHAN;
     else if (!strncmp(op, "<", 1))
         lif->op = IF_LESSTHAN;
+    else if (!strncmp(op, "/?", 2))
+        lif->op = IF_DIVISIBLE;
     
     memcpy(&lif->operand, &element->params[2], sizeof(lif->operand));
     if (element->params_count > 3)
Index: apps/gui/skin_engine/skin_tokens.c
===================================================================
--- apps/gui/skin_engine/skin_tokens.c	(Revision 30520)
+++ apps/gui/skin_engine/skin_tokens.c	(Arbeitskopie)
@@ -788,6 +788,8 @@
             return a > b ? "gt" : NULL;
         case IF_GREATERTHAN_EQ:
             return a >= b ? "gte" : NULL;
+        case IF_DIVISIBLE:
+            return (a % b) == 0 ? "div" : NULL;
     }
     return NULL;
 }
@@ -932,6 +934,11 @@
             struct listitem *li = (struct listitem *)token->value.data;
             return skinlist_get_item_text(li->offset, li->wrap, buf, buf_size);
         }
+        case SKIN_TOKEN_LIST_ITEM_NUMBER:
+            if (intval)
+                *intval = skinlist_get_item_number();
+            snprintf(buf, buf_size, "%d",skinlist_get_item_number());
+            return buf;
         case SKIN_TOKEN_LIST_ITEM_IS_SELECTED:
             return skinlist_is_selected_item()?"s":"";
         case SKIN_TOKEN_LIST_ITEM_ICON:
Index: apps/gui/skin_engine/wps_internals.h
===================================================================
--- apps/gui/skin_engine/wps_internals.h	(Revision 30520)
+++ apps/gui/skin_engine/wps_internals.h	(Arbeitskopie)
@@ -282,7 +282,8 @@
         IF_LESSTHAN, /* < */
         IF_LESSTHAN_EQ, /* <= */
         IF_GREATERTHAN, /* > */
-        IF_GREATERTHAN_EQ /* >= */
+        IF_GREATERTHAN_EQ, /* >= */
+        IF_DIVISIBLE /* /? */
     } op;
     struct skin_tag_parameter operand;
     int num_options;
Index: apps/gui/list.h
===================================================================
--- apps/gui/list.h	(Revision 30520)
+++ apps/gui/list.h	(Arbeitskopie)
@@ -190,6 +190,7 @@
 void skinlist_set_cfg(enum screen_type screen,
                       struct listitem_viewport_cfg *cfg);
 const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size);
+int skinlist_get_item_number(void);
 enum themable_icons skinlist_get_item_icon(int offset, bool wrap);
 bool skinlist_needs_scrollbar(enum screen_type screen);
 void skinlist_get_scrollbar(int* nb_item, int* first_shown, int* last_shown);
Index: lib/skin_parser/tag_table.c
===================================================================
--- lib/skin_parser/tag_table.c	(Revision 30520)
+++ lib/skin_parser/tag_table.c	(Arbeitskopie)
@@ -189,6 +189,7 @@
     { SKIN_TOKEN_VIEWPORT_CUSTOMLIST,   "Vp" , "IC", SKIN_REFRESH_DYNAMIC|NOBREAK },
     { SKIN_TOKEN_LIST_TITLE_TEXT,       "Lt" , "", SKIN_REFRESH_DYNAMIC },
     { SKIN_TOKEN_LIST_ITEM_TEXT,        "LT", "|IS",  SKIN_REFRESH_DYNAMIC },
+    { SKIN_TOKEN_LIST_ITEM_NUMBER,      "Ln", "",  SKIN_REFRESH_DYNAMIC },
     { SKIN_TOKEN_LIST_TITLE_ICON,       "Li" , "", SKIN_REFRESH_DYNAMIC },
     { SKIN_TOKEN_LIST_ITEM_ICON,        "LI", "|IS",  SKIN_REFRESH_DYNAMIC },
     { SKIN_TOKEN_LIST_ITEM_CFG,         "Lb" , "Sii|S", SKIN_REFRESH_STATIC },
Index: lib/skin_parser/tag_table.h
===================================================================
--- lib/skin_parser/tag_table.h	(Revision 30520)
+++ lib/skin_parser/tag_table.h	(Arbeitskopie)
@@ -216,6 +216,7 @@
     SKIN_TOKEN_LIST_SELECTED_ITEM_CFG,
     SKIN_TOKEN_LIST_ITEM_IS_SELECTED,
     SKIN_TOKEN_LIST_ITEM_TEXT,
+    SKIN_TOKEN_LIST_ITEM_NUMBER,
     SKIN_TOKEN_LIST_ITEM_ICON,
     SKIN_TOKEN_LIST_NEEDS_SCROLLBAR,
     SKIN_TOKEN_LIST_SCROLLBAR,
