Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: 3.1.5-pws-8++: set -x for ((...)), functions



Here is more set -x stuff for two more common cases, namely function calls
and ((...)) evaluations.  Also, I was reminded about prompt4 since the last
patch.

--- Src/exec.c.xtr2	Tue Feb 16 18:15:15 1999
+++ Src/exec.c	Fri Feb 19 18:12:36 1999
@@ -2529,7 +2529,7 @@
 {
     int stat;
     if (isset(XTRACE)) {
-	fprintf(stderr, "+ [[");
+	fprintf(stderr, "%s[[", prompt4 ? prompt4 : "");
 	tracingcond++;
     }
     stat = !evalcond(cmd->u.cond);
@@ -2550,8 +2550,17 @@
     char *e;
     long val = 0;
 
-    while ((e = (char *) ugetnode(cmd->args)))
+    if (isset(XTRACE))
+	fprintf(stderr, "%s((", prompt4 ? prompt4 : "");
+    while ((e = (char *) ugetnode(cmd->args))) {
+	if (isset(XTRACE))
+	    fprintf(stderr, " %s", e);
 	val = matheval(e);
+    }
+    if (isset(XTRACE)) {
+	fprintf(stderr, " ))\n", stderr);
+	fflush(stderr);
+    }
     errflag = 0;
     return !val;
 }
@@ -2624,6 +2633,18 @@
 	last_file_list = jobtab[thisjob].filelist;
 	jobtab[thisjob].filelist = NULL;
 	deletejob(jobtab + thisjob);
+    }
+
+    if (isset(XTRACE)) {
+	LinkNode lptr;
+	fprintf(stderr, "%s", prompt4 ? prompt4 : prompt4);
+	for (lptr = firstnode(cmd->args); lptr; incnode(lptr)) {
+	    if (lptr != firstnode(cmd->args))
+		fputc(' ', stderr);
+	    fprintf(stderr, "%s", (char *)getdata(lptr));
+	}
+	fputc('\n', stderr);
+	fflush(stderr);
     }
 
     doshfunc(shf->nam, shf->funcdef, cmd->args, shf->flags, 0);

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy



Messages sorted by: Reverse Date, Date, Thread, Author