Index: trunk/ippTools/src/addtool.c
===================================================================
--- trunk/ippTools/src/addtool.c	(revision 39528)
+++ trunk/ippTools/src/addtool.c	(revision 40803)
@@ -138,4 +138,7 @@
     PXOPT_LOOKUP_BOOL(destreaked, config->args, "-destreaked", false);
     PXOPT_LOOKUP_BOOL(uncensored, config->args, "-uncensored", false);
+
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+
     PXOPT_LOOKUP_BOOL(pretend,    config->args, "-pretend", false);
     PXOPT_LOOKUP_BOOL(simple,     config->args, "-simple", false);
@@ -421,4 +424,12 @@
       psStringAppend(&query, " GROUP BY ff_id ");  //needs to be checked, but should be fine: want 1 ff summary cmf.
     }
+
+    // treat limit == 0 as "no limit"
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
     psError(PS_ERR_UNKNOWN, false, "query: %s\n", query);
 
@@ -1209,4 +1220,5 @@
       PXOPT_COPY_STR(config->args, where, "-stage", "addRun.stage","==");
       PXOPT_COPY_S64(config->args, where, "-stage_id", "addRun.stage_id", "==");
+
       //PXOPT_LOOKUP_S64(stage_id, config->args, "-stage_id", false, false);
     } else {
@@ -1231,4 +1243,13 @@
     psFree(where);
     
+    if (multiadd) {
+      // optional -stage_extra1_list extra1,extra1,extra1 to restrict
+      PXOPT_LOOKUP_STR(stage_extra1_list, config->args, "-stage_extra1_list", false, false);
+      if (stage_extra1_list) {
+	psStringAppend(&query, " AND stage_extra1 IN (%s)", stage_extra1_list);
+      }
+    }
+
+
     //if (multiadd) {
     //  psStringAppend(&query, "group by  %s", "stage_extra1");
