=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/m4/eval.c,v retrieving revision 1.36 retrieving revision 1.37 diff -c -r1.36 -r1.37 *** src/usr.bin/m4/eval.c 2001/09/19 13:14:18 1.36 --- src/usr.bin/m4/eval.c 2001/09/27 11:40:33 1.37 *************** *** 1,4 **** ! /* $OpenBSD: eval.c,v 1.36 2001/09/19 13:14:18 espie Exp $ */ /* $NetBSD: eval.c,v 1.7 1996/11/10 21:21:29 pk Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: eval.c,v 1.37 2001/09/27 11:40:33 espie Exp $ */ /* $NetBSD: eval.c,v 1.7 1996/11/10 21:21:29 pk Exp $ */ /* *************** *** 41,47 **** #if 0 static char sccsid[] = "@(#)eval.c 8.2 (Berkeley) 4/27/95"; #else ! static char rcsid[] = "$OpenBSD: eval.c,v 1.36 2001/09/19 13:14:18 espie Exp $"; #endif #endif /* not lint */ --- 41,47 ---- #if 0 static char sccsid[] = "@(#)eval.c 8.2 (Berkeley) 4/27/95"; #else ! static char rcsid[] = "$OpenBSD: eval.c,v 1.37 2001/09/27 11:40:33 espie Exp $"; #endif #endif /* not lint */ *************** *** 70,75 **** --- 70,76 ---- static void dodefn __P((const char *)); static void dopushdef __P((const char *, const char *)); static void dodump __P((const char *[], int)); + static void dotrace __P((const char *[], int, int)); static void doifelse __P((const char *[], int)); static int doincl __P((const char *)); static int dopaste __P((const char *)); *************** *** 169,174 **** --- 170,183 ---- dodump(argv, argc); break; + case TRACEONTYPE: + dotrace(argv, argc, 1); + break; + + case TRACEOFFTYPE: + dotrace(argv, argc, 0); + break; + case EXPRTYPE: /* * doexpr - evaluate arithmetic *************** *** 673,678 **** --- 682,705 ---- for (p = hashtab[n]; p != nil; p = p->nxtptr) dump_one_def(p); } + } + + /* + * dotrace - mark some macros as traced/untraced depending upon on. + */ + static void + dotrace(argv, argc, on) + const char *argv[]; + int argc; + int on; + { + int n; + + if (argc > 2) { + for (n = 2; n < argc; n++) + mark_traced(argv[n], on); + } else + mark_traced(NULL, on); } /*