Index: trunk/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 19639)
+++ trunk/ippTools/src/difftool.c	(revision 19677)
@@ -44,4 +44,5 @@
 static bool pendingcleanupskyfileMode(pxConfig *config);
 static bool donecleanupMode(pxConfig *config);
+static bool updatediffskyfileMode(pxConfig *config);
 
 static bool setdiffRunState(pxConfig *config, psS64 diff_id, const char *state);
@@ -78,4 +79,5 @@
         MODECASE(DIFFTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileMode);
         MODECASE(DIFFTOOL_MODE_DONECLEANUP,           donecleanupMode);
+        MODECASE(DIFFTOOL_MODE_UPDATEDIFFSKYFILE,     updatediffskyfileMode);
         default:
             psAbort("invalid option (this should not happen)");
@@ -495,5 +497,4 @@
                            uri,
                            path_base,
-                           "full",      // data_state
                            bg,
                            bg_stdev,
@@ -1218,2 +1219,22 @@
     return true;
 }
+
+static bool updatediffskyfileMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    PXOPT_LOOKUP_S16(code, config->args, "-code", true, false);
+
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_S64(config->args, where, "-diff_id",   "diff_id",   "==");
+
+    if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, code)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
+        psFree (where);
+        return false;
+    }
+    psFree (where);
+
+    return true;
+}
+
