Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): convert JobState and JobFlags to enum ...



details:   https://anonhg.NetBSD.org/src/rev/87d93d486a3b
branches:  trunk
changeset: 945168:87d93d486a3b
user:      rillig <rillig%NetBSD.org@localhost>
date:      Fri Oct 23 07:14:32 2020 +0000

description:
make(1): convert JobState and JobFlags to enum types

Both GCC and Clang complained when JobFindPid had its parameter "status"
as an int.  Strangely both compilers complained about a comparison
between unsigned and signed int, even though enums are defined to be
int, not unsigned.

diffstat:

 usr.bin/make/job.c |   6 +++---
 usr.bin/make/job.h |  38 ++++++++++++++++++++++++--------------
 2 files changed, 27 insertions(+), 17 deletions(-)

diffs (89 lines):

diff -r 4674bd4cf7ac -r 87d93d486a3b usr.bin/make/job.c
--- a/usr.bin/make/job.c        Fri Oct 23 06:57:41 2020 +0000
+++ b/usr.bin/make/job.c        Fri Oct 23 07:14:32 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: job.c,v 1.270 2020/10/23 05:27:33 rillig Exp $ */
+/*     $NetBSD: job.c,v 1.271 2020/10/23 07:14:32 rillig Exp $ */
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -143,7 +143,7 @@
 #include "trace.h"
 
 /*     "@(#)job.c      8.2 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: job.c,v 1.270 2020/10/23 05:27:33 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.271 2020/10/23 07:14:32 rillig Exp $");
 
 # define STATIC static
 
@@ -592,7 +592,7 @@
 }
 
 static Job *
-JobFindPid(int pid, int status, Boolean isJobs)
+JobFindPid(int pid, JobState status, Boolean isJobs)
 {
     Job *job;
 
diff -r 4674bd4cf7ac -r 87d93d486a3b usr.bin/make/job.h
--- a/usr.bin/make/job.h        Fri Oct 23 06:57:41 2020 +0000
+++ b/usr.bin/make/job.h        Fri Oct 23 07:14:32 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: job.h,v 1.56 2020/10/19 23:07:22 rillig Exp $  */
+/*     $NetBSD: job.h,v 1.57 2020/10/23 07:14:32 rillig Exp $  */
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -117,6 +117,27 @@
 # include "meta.h"
 #endif
 
+typedef enum JobState {
+    JOB_ST_FREE =      0,      /* Job is available */
+    JOB_ST_SETUP =     1,      /* Job is allocated but otherwise invalid */
+    JOB_ST_RUNNING =   3,      /* Job is running, pid valid */
+    JOB_ST_FINISHED =  4       /* Job is done (ie after SIGCHILD) */
+} JobState;
+
+typedef enum JobFlags {
+    /* Ignore non-zero exits */
+    JOB_IGNERR =       0x001,
+    /* no output */
+    JOB_SILENT =       0x002,
+    /* Target is a special one. i.e. run it locally
+     * if we can't export it and maxLocal is 0 */
+    JOB_SPECIAL =      0x004,
+    /* Ignore "..." lines when processing commands */
+    JOB_IGNDOTS        =       0x008,
+    /* we've sent 'set -x' */
+    JOB_TRACED =       0x400
+} JobFlags;
+
 /* A Job manages the shell commands that are run to create a single target.
  * Each job is run in a separate subprocess by a shell.  Several jobs can run
  * in parallel.
@@ -146,22 +167,11 @@
 
     int exit_status;           /* from wait4() in signal handler */
 
-    char job_state;            /* status of the job entry */
-#define JOB_ST_FREE    0       /* Job is available */
-#define JOB_ST_SETUP   1       /* Job is allocated but otherwise invalid */
-#define JOB_ST_RUNNING 3       /* Job is running, pid valid */
-#define JOB_ST_FINISHED        4       /* Job is done (ie after SIGCHILD) */
+    JobState job_state;                /* status of the job entry */
 
     char job_suspended;
 
-    int flags;                 /* Flags to control treatment of job */
-#define        JOB_IGNERR      0x001   /* Ignore non-zero exits */
-#define        JOB_SILENT      0x002   /* no output */
-#define JOB_SPECIAL    0x004   /* Target is a special one. i.e. run it locally
-                                * if we can't export it and maxLocal is 0 */
-#define JOB_IGNDOTS    0x008   /* Ignore "..." lines when processing
-                                * commands */
-#define JOB_TRACED     0x400   /* we've sent 'set -x' */
+    JobFlags flags;            /* Flags to control treatment of job */
 
     int inPipe;                        /* Pipe for reading output from job */
     int outPipe;               /* Pipe for writing control commands */



Home | Main Index | Thread Index | Old Index