updated for version 7.0017
diff --git a/src/eval.c b/src/eval.c
index df83da5..492feba 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -8526,46 +8526,46 @@
     unsigned	len;
 
     oldval = vimvars[VV_CMDARG].val;
-    if (eap != NULL)
+    if (eap == NULL)
     {
-	if (eap->force_bin == FORCE_BIN)
-	    len = 6;
-	else if (eap->force_bin == FORCE_NOBIN)
-	    len = 8;
-	else
-	    len = 0;
-	if (eap->force_ff != 0)
-	    len += (unsigned)STRLEN(eap->cmd + eap->force_ff) + 6;
-# ifdef FEAT_MBYTE
-	if (eap->force_enc != 0)
-	    len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
-# endif
-
-	newval = alloc(len + 1);
-	if (newval == NULL)
-	    return NULL;
-
-	if (eap->force_bin == FORCE_BIN)
-	    sprintf((char *)newval, " ++bin");
-	else if (eap->force_bin == FORCE_NOBIN)
-	    sprintf((char *)newval, " ++nobin");
-	else
-	    *newval = NUL;
-	if (eap->force_ff != 0)
-	    sprintf((char *)newval + STRLEN(newval), " ++ff=%s",
-						    eap->cmd + eap->force_ff);
-# ifdef FEAT_MBYTE
-	if (eap->force_enc != 0)
-	    sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
-						   eap->cmd + eap->force_enc);
-# endif
-	vimvars[VV_CMDARG].val = newval;
-	return oldval;
+	vim_free(oldval);
+	vimvars[VV_CMDARG].val = oldarg;
+	return NULL;
     }
 
-    vim_free(oldval);
-    vimvars[VV_CMDARG].val = oldarg;
-    return NULL;
+    if (eap->force_bin == FORCE_BIN)
+	len = 6;
+    else if (eap->force_bin == FORCE_NOBIN)
+	len = 8;
+    else
+	len = 0;
+    if (eap->force_ff != 0)
+	len += (unsigned)STRLEN(eap->cmd + eap->force_ff) + 6;
+# ifdef FEAT_MBYTE
+    if (eap->force_enc != 0)
+	len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
+# endif
+
+    newval = alloc(len + 1);
+    if (newval == NULL)
+	return NULL;
+
+    if (eap->force_bin == FORCE_BIN)
+	sprintf((char *)newval, " ++bin");
+    else if (eap->force_bin == FORCE_NOBIN)
+	sprintf((char *)newval, " ++nobin");
+    else
+	*newval = NUL;
+    if (eap->force_ff != 0)
+	sprintf((char *)newval + STRLEN(newval), " ++ff=%s",
+						eap->cmd + eap->force_ff);
+# ifdef FEAT_MBYTE
+    if (eap->force_enc != 0)
+	sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
+					       eap->cmd + eap->force_enc);
+# endif
+    vimvars[VV_CMDARG].val = newval;
+    return oldval;
 }
 #endif