Module Name:    othersrc
Committed By:   dholland
Date:           Sat Mar 23 18:02:58 UTC 2013

Modified Files:
        othersrc/usr.bin/dholland-make2: suff.c

Log Message:
Simplify the interface to SuffSuffIsSuffix().


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 othersrc/usr.bin/dholland-make2/suff.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: othersrc/usr.bin/dholland-make2/suff.c
diff -u othersrc/usr.bin/dholland-make2/suff.c:1.14 othersrc/usr.bin/dholland-make2/suff.c:1.15
--- othersrc/usr.bin/dholland-make2/suff.c:1.14	Sat Mar 23 17:56:58 2013
+++ othersrc/usr.bin/dholland-make2/suff.c	Sat Mar 23 18:02:58 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: suff.c,v 1.14 2013/03/23 17:56:58 dholland Exp $	*/
+/*	$NetBSD: suff.c,v 1.15 2013/03/23 18:02:58 dholland Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -131,7 +131,7 @@
 #include	  "hash.h"
 #include	  "dir.h"
 
-MAKE_RCSID("$NetBSD: suff.c,v 1.14 2013/03/23 17:56:58 dholland Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.15 2013/03/23 18:02:58 dholland Exp $");
 
 #define CLEANUP
 
@@ -159,14 +159,6 @@ typedef struct Suff {
 } Suff;
 
 /*
- * for SuffSuffIsSuffix
- */
-typedef struct {
-    const char	*ename;		/* The end of the name */
-    int		 len;		/* Length of the name */
-} SuffixCmpData;
-
-/*
  * Structure used in the search for implied sources.
  */
 
@@ -215,7 +207,7 @@ static Suff 	    *emptySuff;	/* The empt
 
 
 static const char *SuffStrIsPrefix(const char *, const char *);
-static const char *SuffSuffIsSuffix(const Suff *, const SuffixCmpData *);
+static const char *SuffSuffIsSuffix(const Suff *, const char *name);
 static void SuffUnRef(struct sufflist *, Suff *);
 static void SuffFree(void *);
 static void SuffInsert(struct sufflist *, Suff *);
@@ -284,16 +276,18 @@ SuffStrIsPrefix(const char *pref, const 
  *-----------------------------------------------------------------------
  */
 static const char *
-SuffSuffIsSuffix(const Suff *s, const SuffixCmpData *sd)
+SuffSuffIsSuffix(const Suff *s, const char *name)
 {
+    size_t namelen;
     const char  *p1;	    	/* Pointer into suffix name */
     const char  *p2;	    	/* Pointer into string being examined */
 
-    if (sd->len < s->nameLen)
+    namelen = strlen(name);
+    if (namelen < s->nameLen)
 	return NULL;		/* this string is shorter than the suffix */
 
     p1 = s->name + s->nameLen;
-    p2 = sd->ename;
+    p2 = name + namelen;
 
     while (p1 >= s->name && *p1 == *p2) {
 	p1--;
@@ -794,7 +788,6 @@ SuffRebuildGraph(GNode *transform, Suff 
 {
     const char 	*cp;
     Suff  	*s2;
-    SuffixCmpData sd;
     unsigned i, numsuffixes;
     size_t matchlen;
 
@@ -822,9 +815,7 @@ SuffRebuildGraph(GNode *transform, Suff 
     /*
      * Not from, maybe to?
      */
-    sd.len = strlen(transform->name);
-    sd.ename = transform->name + sd.len;
-    cp = SuffSuffIsSuffix(s, &sd);
+    cp = SuffSuffIsSuffix(s, transform->name);
     if (cp != NULL) {
 	/*
 	 * For reasons best known to whoever wrote it,
@@ -948,15 +939,11 @@ SuffFindBySuffix(struct sufflist *list, 
 {
 	unsigned i, num;
 	Suff *s;
-	SuffixCmpData sd;   /* Search string data */
-
-	sd.len = strlen(name);
-	sd.ename = name + sd.len;
 
 	num = sufflist_num(list);
 	for (i=0; i<num; i++) {
 		s = sufflist_get(list, i);
-		if (SuffSuffIsSuffix(s, &sd) != NULL) {
+		if (SuffSuffIsSuffix(s, name) != NULL) {
 			return s;
 		}
 	}
@@ -2078,13 +2065,11 @@ SuffFindNormalDeps(GNode *gn, struct src
     Src 	*src;	    /* General Src pointer */
     char    	*pref;	    /* Prefix to use */
     Src	    	*targ;	    /* General Src target pointer */
-    SuffixCmpData sd;	    /* Search string data */
     unsigned pos, i, num;
     Suff *suff;
 
 
-    sd.len = strlen(gn->name);
-    sd.ename = eoname = gn->name + sd.len;
+    eoname = gn->name + strlen(gn->name);
 
     sopref = gn->name;
 
@@ -2117,7 +2102,7 @@ SuffFindNormalDeps(GNode *gn, struct src
 
     for (pos = 0; pos < num; pos++) {
 	suff = sufflist_get(&sufflist, pos);
-	if (SuffSuffIsSuffix(suff, &sd)) {
+	if (SuffSuffIsSuffix(suff, gn->name)) {
 
 	    /*
 	     * Next possible suffix...

Reply via email to