Constify the arguments to the list compare function. This temporarily
authorMax Okumoto <okumoto@dragonflybsd.org>
Fri, 17 Dec 2004 07:53:57 +0000 (07:53 +0000)
committerMax Okumoto <okumoto@dragonflybsd.org>
Fri, 17 Dec 2004 07:53:57 +0000 (07:53 +0000)
requires to make a copy of the filename in ReadMakefile and to
duplicate two small functions in suff.c. This hopefully will go
away when everything is constified.

Taken-from: FreeBSD
Author: harti

usr.bin/make/arch.c
usr.bin/make/cond.c
usr.bin/make/dir.c
usr.bin/make/job.c
usr.bin/make/lst.h
usr.bin/make/lst.lib/lstFindFrom.c
usr.bin/make/main.c
usr.bin/make/suff.c
usr.bin/make/var.c

index 2d29484..1f2858d 100644 (file)
@@ -37,7 +37,7 @@
  *
  * @(#)arch.c  8.2 (Berkeley) 1/2/94
  * $FreeBSD: src/usr.bin/make/arch.c,v 1.15.2.1 2001/02/13 03:13:57 will Exp $
- * $DragonFly: src/usr.bin/make/arch.c,v 1.18 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/arch.c,v 1.19 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -112,7 +112,6 @@ typedef struct Arch {
     size_t       fnamesize;  /* Size of the string table */
 } Arch;
 
-static int ArchFindArchive(void *, void *);
 static void ArchFree(void *);
 static struct ar_hdr *ArchStatMember(char *, char *, Boolean);
 static FILE *ArchFindMember(char *, char *, struct ar_hdr *, char *);
@@ -431,9 +430,10 @@ Arch_ParseArchive(char **linePtr, Lst *nodeLst, GNode *ctxt)
  *-----------------------------------------------------------------------
  */
 static int
-ArchFindArchive(void *ar, void *archName)
+ArchFindArchive(const void *ar, const void *archName)
 {
-    return (strcmp((char *)archName, ((Arch *)ar)->name));
+
+       return (strcmp(archName, ((const Arch *)ar)->name));
 }
 
 /*-
index 3ae78d6..1ad34ef 100644 (file)
@@ -38,7 +38,7 @@
  *
  * @(#)cond.c  8.2 (Berkeley) 1/2/94
  * $FreeBSD: src/usr.bin/make/cond.c,v 1.12.2.1 2003/07/22 08:03:13 ru Exp $
- * $DragonFly: src/usr.bin/make/cond.c,v 1.15 2004/12/16 22:20:12 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/cond.c,v 1.16 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -98,7 +98,6 @@ typedef enum {
 static void CondPushBack(Token);
 static int CondGetArg(char **, char **, char *, Boolean);
 static Boolean CondDoDefined(int, char *);
-static int CondStrMatch(void *, void *);
 static Boolean CondDoMake(int, char *);
 static Boolean CondDoExists(int, char *);
 static Boolean CondDoTarget(int, char *);
@@ -306,10 +305,10 @@ CondDoDefined(int argLen, char *arg)
  *-----------------------------------------------------------------------
  */
 static int
-CondStrMatch(void *string, void *pattern)
+CondStrMatch(const void *string, const void *pattern)
 {
 
-    return (!Str_Match((char *)string, (char *)pattern));
+    return (!Str_Match(string, pattern));
 }
 
 /*-
index 6e9c67f..3c506b6 100644 (file)
@@ -38,7 +38,7 @@
  *
  * @(#)dir.c   8.2 (Berkeley) 1/2/94
  * $$FreeBSD: src/usr.bin/make/dir.c,v 1.10.2.2 2003/10/08 08:14:22 ru Exp $
- * $DragonFly: src/usr.bin/make/dir.c,v 1.22 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/dir.c,v 1.23 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -188,7 +188,6 @@ static Path *dot;       /* contents of current directory */
  */
 static Hash_Table mtimes;
 
-static int DirFindName(void *, void *);
 static int DirPrintWord(void *, void *);
 static int DirPrintDir(void *, void *);
 
@@ -282,10 +281,10 @@ Dir_End(void)
  *-----------------------------------------------------------------------
  */
 static int
-DirFindName(void *p, void *dname)
+DirFindName(const void *p, const void *dname)
 {
 
-       return (strcmp(((Path *)p)->name, dname));
+       return (strcmp(((const Path *)p)->name, dname));
 }
 
 /*-
index 30a9cf9..88cd405 100644 (file)
@@ -38,7 +38,7 @@
  *
  * @(#)job.c   8.2 (Berkeley) 3/19/94
  * $FreeBSD: src/usr.bin/make/job.c,v 1.17.2.2 2001/02/13 03:13:57 will Exp $
- * $DragonFly: src/usr.bin/make/job.c,v 1.31 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/job.c,v 1.32 2004/12/17 07:53:57 okumoto Exp $
  */
 
 #ifndef OLD_JOKE
@@ -283,7 +283,6 @@ static sig_atomic_t interrupted;
 
 static int JobCondPassSig(void *, void *);
 static void JobPassSig(int);
-static int JobCmpPid(void *, void *);
 static int JobPrintCommand(void *, void *);
 static int JobSaveCommand(void *, void *);
 static void JobClose(Job *);
@@ -423,10 +422,10 @@ JobPassSig(int signo)
  *-----------------------------------------------------------------------
  */
 static int
-JobCmpPid(void *job, void *pid)
+JobCmpPid(const void *job, const void *pid)
 {
 
-    return (*(int *)pid - ((Job *)job)->pid);
+    return (*(const int *)pid - ((const Job *)job)->pid);
 }
 
 /*-
index 2c3e7ba..0174e53 100644 (file)
@@ -38,7 +38,7 @@
  *
  *     from: @(#)lst.h 8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/make/lst.h,v 1.9 1999/08/28 01:03:32 peter Exp $
- * $DragonFly: src/usr.bin/make/lst.h,v 1.13 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/lst.h,v 1.14 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -92,7 +92,7 @@ struct Lst {
 };
 typedef        struct  Lst Lst;
 
-typedef        int CompareProc(void *, void *);
+typedef        int CompareProc(const void *, const void *);
 typedef        int DoProc(void *, void *);
 typedef        void *DuplicateProc(void *);
 typedef        void FreeProc(void *);
@@ -157,7 +157,7 @@ ReturnStatus        Lst_Concat(Lst *, Lst *, int);
 /* Find an element in a list */
 #define        Lst_Find(LST, D, FN)    (Lst_FindFrom((LST), Lst_First(LST), (D), (FN)))
 /* Find an element starting from somewhere */
-LstNode                *Lst_FindFrom(Lst *, LstNode *, void *, CompareProc *);
+LstNode                *Lst_FindFrom(Lst *, LstNode *, const void *, CompareProc *);
 /*
  * See if the given datum is on the list. Returns the LstNode containing
  * the datum
index 9d2bb0d..13db22d 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/usr.bin/make/lst.lib/lstFindFrom.c,v 1.7 1999/08/28 01:03:50 peter Exp $
- * $DragonFly: src/usr.bin/make/lst.lib/Attic/lstFindFrom.c,v 1.9 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/lst.lib/Attic/lstFindFrom.c,v 1.10 2004/12/17 07:53:57 okumoto Exp $
  *
  * @(#)lstFindFrom.c   8.1 (Berkeley) 6/6/93
  */
@@ -63,7 +63,7 @@
  *-----------------------------------------------------------------------
  */
 LstNode *
-Lst_FindFrom(Lst *l, LstNode *ln, void *d, CompareProc *cProc)
+Lst_FindFrom(Lst *l, LstNode *ln, const void *d, CompareProc *cProc)
 {
     LstNode *tln;
     Boolean    found = FALSE;
index 384bf95..2f26410 100644 (file)
@@ -38,7 +38,7 @@
  * @(#) Copyright (c) 1988, 1989, 1990, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)main.c  8.3 (Berkeley) 3/19/94
  * $FreeBSD: src/usr.bin/make/main.c,v 1.35.2.10 2003/12/16 08:34:11 des Exp $
- * $DragonFly: src/usr.bin/make/main.c,v 1.35 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/main.c,v 1.36 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -114,7 +114,7 @@ Boolean                     jobsRunning;    /* TRUE if the jobs might be running */
 
 static void            MainParseArgs(int, char **);
 char *                 chdir_verify_path(char *, char *);
-static int             ReadMakefile(void *, void *);
+static int             ReadMakefile(const void *, const void *);
 static void            usage(void);
 
 static char *curdir;                   /* startup directory */
@@ -899,7 +899,7 @@ main(int argc, char **argv)
  *     lots
  */
 static Boolean
-ReadMakefile(void *p, void *q __unused)
+ReadMakefile(const void *p, const void *q __unused)
 {
        char *fname;            /* makefile to read */
        FILE *stream;
@@ -907,7 +907,8 @@ ReadMakefile(void *p, void *q __unused)
        char *MAKEFILE;
        int setMAKEFILE;
 
-       fname = p;
+       /* XXX - remove this once constification is done */
+       fname = estrdup(p);
 
        if (!strcmp(fname, "-")) {
                Parse_File("(stdin)", stdin);
index afee5a6..b370b2c 100644 (file)
@@ -37,7 +37,7 @@
  *
  * @(#)suff.c  8.4 (Berkeley) 3/21/94
  * $FreeBSD: src/usr.bin/make/suff.c,v 1.12.2.2 2004/06/10 13:07:53 ru Exp $
- * $DragonFly: src/usr.bin/make/suff.c,v 1.18 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/suff.c,v 1.19 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -152,12 +152,6 @@ static Suff            *emptySuff; /* The empty suffix required for POSIX
                                 * single-suffix transformation rules */
 
 
-static char *SuffStrIsPrefix(char *, char *);
-static char *SuffSuffIsSuffix(Suff *, char *);
-static int SuffSuffIsSuffixP(void *, void *);
-static int SuffSuffHasNameP(void *, void *);
-static int SuffSuffIsPrefix(void *, void *);
-static int SuffGNHasNameP(void *, void *);
 static void SuffFree(void *);
 static void SuffInsert(Lst *, Suff *);
 static void SuffRemove(Lst *, Suff *);
@@ -190,8 +184,8 @@ static int SuffPrintTrans(void *, void *);
  *     None
  *-----------------------------------------------------------------------
  */
-static char    *
-SuffStrIsPrefix(char *pref, char *str)
+static char *
+SuffStrIsPrefix(const char *pref, char *str)
 {
 
     while (*str && *pref == *str) {
@@ -217,9 +211,9 @@ SuffStrIsPrefix(char *pref, char *str)
  *-----------------------------------------------------------------------
  */
 static char *
-SuffSuffIsSuffix(Suff *s, char *str)
+SuffSuffIsSuffix(const Suff *s, char *str)
 {
-    char          *p1;         /* Pointer into suffix name */
+    const char    *p1;         /* Pointer into suffix name */
     char          *p2;         /* Pointer into string being examined */
 
     p1 = s->name + s->nameLen;
@@ -245,13 +239,24 @@ SuffSuffIsSuffix(Suff *s, char *str)
  * Side Effects:
  *     None.
  *
+ * XXX use the function above once constification is complete.
  *-----------------------------------------------------------------------
  */
 static int
-SuffSuffIsSuffixP(void *s, void *str)
+SuffSuffIsSuffixP(const void *is, const void *str)
 {
+    const Suff *s = is;
+    const char *p1;            /* Pointer into suffix name */
+    const char *p2 = str;      /* Pointer into string being examined */
+
+    p1 = s->name + s->nameLen;
 
-    return (!SuffSuffIsSuffix(s, str));
+    while (p1 >= s->name && *p1 == *p2) {
+       p1--;
+       p2--;
+    }
+
+    return (p1 != s->name - 1);
 }
 
 /*-
@@ -268,10 +273,10 @@ SuffSuffIsSuffixP(void *s, void *str)
  *-----------------------------------------------------------------------
  */
 static int
-SuffSuffHasNameP(void *s, void *sname)
+SuffSuffHasNameP(const void *s, const void *sname)
 {
 
-    return (strcmp(sname, ((Suff *)s)->name));
+    return (strcmp(sname, ((const Suff *)s)->name));
 }
 
 /*-
@@ -287,13 +292,22 @@ SuffSuffHasNameP(void *s, void *sname)
  *
  * Side Effects:
  *     None
+ *
+ * XXX use the function above once constification is complete.
  *-----------------------------------------------------------------------
  */
 static int
-SuffSuffIsPrefix(void *s, void *str)
+SuffSuffIsPrefix(const void *s, const void *istr)
 {
+       const char *pref = ((const Suff *)s)->name;
+       const char *str = istr;
+
+       while (*str != '\0' && *pref == *str) {
+               pref++;
+               str++;
+       }
 
-    return (SuffStrIsPrefix(((Suff *)s)->name, str) == NULL ? 1 : 0);
+       return (*pref != '\0');
 }
 
 /*-
@@ -309,10 +323,10 @@ SuffSuffIsPrefix(void *s, void *str)
  *-----------------------------------------------------------------------
  */
 static int
-SuffGNHasNameP(void *gn, void *name)
+SuffGNHasNameP(const void *gn, const void *name)
 {
 
-    return (strcmp(name, ((GNode *)gn)->name));
+    return (strcmp(name, ((const GNode *)gn)->name));
 }
 
            /*********** Maintenance Functions ************/
index 024667d..4fe1350 100644 (file)
@@ -37,7 +37,7 @@
  *
  * @(#)var.c   8.3 (Berkeley) 3/19/94
  * $FreeBSD: src/usr.bin/make/var.c,v 1.16.2.3 2002/02/27 14:18:57 cjc Exp $
- * $DragonFly: src/usr.bin/make/var.c,v 1.24 2004/12/17 00:02:57 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/var.c,v 1.25 2004/12/17 07:53:57 okumoto Exp $
  */
 
 /*-
@@ -129,7 +129,6 @@ static Lst  *allVars;      /* List of all variables */
 #define FIND_GLOBAL    0x2   /* look in VAR_GLOBAL as well */
 #define FIND_ENV       0x4   /* look in the environment also */
 
-static int VarCmp(void *, void *);
 static void VarPossiblyExpand(char **, GNode *);
 static Var *VarFind(char *, GNode *, int);
 static void VarAdd(char *, char *, GNode *);
@@ -154,10 +153,10 @@ static int VarPrintVar(void *, void *);
  *-----------------------------------------------------------------------
  */
 static int
-VarCmp(void *v, void *name)
+VarCmp(const void *v, const void *name)
 {
 
-    return (strcmp(name, ((Var *)v)->name));
+    return (strcmp(name, ((const Var *)v)->name));
 }
 
 /*-