- Convert negative logic, so code is easyer to read.
authorMax Okumoto <okumoto@dragonflybsd.org>
Mon, 31 Jan 2005 08:30:51 +0000 (08:30 +0000)
committerMax Okumoto <okumoto@dragonflybsd.org>
Mon, 31 Jan 2005 08:30:51 +0000 (08:30 +0000)
- Start using Buffer objects, instead of c strings.  That way we
  can pass back one object, instead of passing back seperate length
  and character arrays.

usr.bin/make/arch.c
usr.bin/make/compat.c
usr.bin/make/for.c
usr.bin/make/job.c
usr.bin/make/main.c
usr.bin/make/parse.c
usr.bin/make/suff.c
usr.bin/make/var.c
usr.bin/make/var.h

index c7be905..391d769 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.26 2005/01/09 23:03:28 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/arch.c,v 1.27 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -96,6 +96,7 @@
 #include <utime.h>
 
 #include "arch.h"
+#include "buf.h"
 #include "config.h"
 #include "dir.h"
 #include "globals.h"
@@ -185,7 +186,11 @@ Arch_ParseArchive(char **linePtr, Lst *nodeLst, GNode *ctxt)
 
     *cp++ = '\0';
     if (subLibName) {
-       libName = Var_Subst(NULL, libName, ctxt, TRUE);
+       Buffer  *buf;
+
+       buf = Var_Subst(NULL, libName, ctxt, TRUE);
+       libName = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
     }
 
 
@@ -260,12 +265,15 @@ Arch_ParseArchive(char **linePtr, Lst *nodeLst, GNode *ctxt)
         * later.
         */
        if (doSubst) {
-           char    *buf;
-           char    *sacrifice;
-           char    *oldMemName = memName;
-           size_t   sz;
-
-           memName = Var_Subst(NULL, memName, ctxt, TRUE);
+           char        *buf;
+           char        *sacrifice;
+           char        *oldMemName = memName;
+           size_t      sz;
+           Buffer      *buf1;
+
+           buf1 = Var_Subst(NULL, memName, ctxt, TRUE);
+           memName = Buf_GetAll(buf1, NULL);
+           Buf_Destroy(buf1, FALSE);
 
            /*
             * Now form an archive spec and recurse to deal with nested
index 68032c1..a77db32 100644 (file)
@@ -38,7 +38,7 @@
  *
  * @(#)compat.c        8.2 (Berkeley) 3/19/94
  * $FreeBSD: src/usr.bin/make/compat.c,v 1.16.2.2 2000/07/01 12:24:21 ps Exp $
- * $DragonFly: src/usr.bin/make/Attic/compat.c,v 1.25 2005/01/22 11:28:03 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/Attic/compat.c,v 1.26 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -63,6 +63,7 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "buf.h"
 #include "compat.h"
 #include "config.h"
 #include "dir.h"
@@ -227,20 +228,21 @@ shellneed(char *cmd)
 int
 Compat_RunCommand(void *cmdp, void *gnp)
 {
-    char         *cmdStart;    /* Start of expanded command */
-    char         *cp;
-    Boolean      silent,       /* Don't print command */
-                 doit,         /* Execute even in -n */
-                 errCheck;     /* Check errors */
-    int          reason;       /* Reason for child's death */
-    int                  status;       /* Description of child's death */
-    int                  cpid;         /* Child actually found */
-    ReturnStatus  rstat;       /* Status of fork */
-    LstNode      *cmdNode;     /* Node where current command is located */
-    char         **av;         /* Argument vector for thing to exec */
-    int                  internal;     /* Various values.. */
-    char         *cmd = cmdp;
-    GNode        *gn = gnp;
+    char       *cmdStart;      /* Start of expanded command */
+    char       *cp;
+    Boolean    silent;         /* Don't print command */
+    Boolean    doit;           /* Execute even in -n */
+    Boolean    errCheck;       /* Check errors */
+    int                reason;         /* Reason for child's death */
+    int                status;         /* Description of child's death */
+    int                cpid;           /* Child actually found */
+    ReturnStatus       rstat;  /* Status of fork */
+    LstNode    *cmdNode;       /* Node where current command is located */
+    char       **av;           /* Argument vector for thing to exec */
+    int                internal;       /* Various values.. */
+    char       *cmd = cmdp;
+    GNode      *gn = gnp;
+    Buffer     *buf;
 
     /*
      * Avoid clobbered variable warnings by forcing the compiler
@@ -255,7 +257,10 @@ Compat_RunCommand(void *cmdp, void *gnp)
     doit = FALSE;
 
     cmdNode = Lst_Member(&gn->commands, cmd);
-    cmdStart = Var_Subst(NULL, cmd, gn, FALSE);
+
+    buf = Var_Subst(NULL, cmd, gn, FALSE);
+    cmdStart = Buf_GetAll(buf, NULL);
+    Buf_Destroy(buf, FALSE);
 
     /*
      * brk_string will return an argv with a NULL in av[0], thus causing
index c404d05..99f8d59 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)for.c   8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/make/for.c,v 1.10 1999/09/11 13:08:01 hoek Exp $
- * $DragonFly: src/usr.bin/make/for.c,v 1.27 2005/01/27 02:30:19 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/for.c,v 1.28 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -177,7 +177,13 @@ For_Eval(char *line)
         */
        Lst_Init(&forLst);
        buf = Buf_Init(0);
-       sub = Var_Subst(NULL, ptr, VAR_CMD, FALSE);
+       {
+           Buffer *buf1;
+
+           buf1 = Var_Subst(NULL, ptr, VAR_CMD, FALSE);
+           sub = Buf_GetAll(buf1, NULL);
+           Buf_Destroy(buf1, FALSE);
+       }
 
        for (ptr = sub; *ptr && isspace((unsigned char)*ptr); ptr++)
            continue;
@@ -254,13 +260,20 @@ For_Eval(char *line)
 static int
 ForExec(void *namep, void *argp)
 {
-    char *name = namep;
-    For *arg = argp;
+    char       *name = namep;
+    For                *arg = argp;
+    Buffer     *buf;
+    char       *str;
 
     Var_Set(arg->var, name, VAR_GLOBAL);
     DEBUGF(FOR, ("--- %s = %s\n", arg->var, name));
-    Parse_FromString(Var_Subst(arg->var, (char *)Buf_GetAll(arg->buf, NULL),
-                              VAR_GLOBAL, FALSE), arg->lineno);
+
+    buf = Var_Subst(arg->var,
+                   (char *)Buf_GetAll(arg->buf, NULL), VAR_GLOBAL, FALSE);
+    str = Buf_GetAll(buf, NULL);
+    Buf_Destroy(buf, FALSE);
+
+    Parse_FromString(str, arg->lineno);
     Var_Delete(arg->var, VAR_GLOBAL);
 
     return (0);
index 88e7892..060323e 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.39 2005/01/08 21:58:23 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/job.c,v 1.40 2005/01/31 08:30:51 okumoto Exp $
  */
 
 #ifndef OLD_JOKE
 #endif
 
 #include "arch.h"
+#include "buf.h"
 #include "compat.h"
 #include "dir.h"
 #include "globals.h"
@@ -509,7 +510,13 @@ JobPrintCommand(void *cmdp, void *jobp)
      * the variables in the command.
      */
     cmdNode = Lst_Member(&job->node->commands, cmd);
-    cmdStart = cmd = Var_Subst(NULL, cmd, job->node, FALSE);
+    {
+       Buffer *buf;
+       buf = Var_Subst(NULL, cmd, job->node, FALSE);
+       cmd = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
+       cmdStart = cmd;
+    }
     Lst_Replace(cmdNode, cmdStart);
 
     cmdTemplate = "%s\n";
@@ -644,9 +651,14 @@ JobPrintCommand(void *cmdp, void *jobp)
 static int
 JobSaveCommand(void *cmd, void *gn)
 {
+    Buffer     *buf;
+    char       *str;
+
+    buf = Var_Subst(NULL, cmd, gn, FALSE);
+    str = Buf_GetAll(buf, NULL);
+    Buf_Destroy(buf, FALSE);
 
-    cmd = Var_Subst(NULL, cmd, gn, FALSE);
-    Lst_AtEnd(&postCommands->commands, cmd);
+    Lst_AtEnd(&postCommands->commands, str);
     return (0);
 }
 
index c1e41db..7b723af 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.49 2005/01/27 10:25:19 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/main.c,v 1.50 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -805,7 +805,12 @@ main(int argc, char **argv)
                 */
                static char VPATH[] = "${VPATH}";
 
-               vpath = Var_Subst(NULL, VPATH, VAR_CMD, FALSE);
+               {
+                   Buffer *buf;
+                   buf = Var_Subst(NULL, VPATH, VAR_CMD, FALSE);
+                   vpath = Buf_GetAll(buf, NULL);
+                   Buf_Destroy(buf, FALSE);
+               }
                path = vpath;
                do {
                        /* skip to end of directory */
@@ -843,7 +848,12 @@ main(int argc, char **argv)
                                p1 = emalloc(strlen(Lst_Datum(ln)) + 1 + 3);
                                /* This sprintf is safe, because of the malloc above */
                                sprintf(p1, "${%s}", (char *)Lst_Datum(ln));
-                               value = Var_Subst(NULL, p1, VAR_GLOBAL, FALSE);
+                               {
+                                   Buffer *buf;
+                                   buf = Var_Subst(NULL, p1, VAR_GLOBAL, FALSE);
+                                   value = Buf_GetAll(buf, NULL);
+                                   Buf_Destroy(buf, FALSE);
+                               }
                        } else {
                                value = Var_Value(Lst_Datum(ln),
                                                  VAR_GLOBAL, &p1);
index 39f2ef2..d8033b8 100644 (file)
@@ -37,7 +37,7 @@
  *
  * @(#)parse.c 8.3 (Berkeley) 3/19/94
  * $FreeBSD: src/usr.bin/make/parse.c,v 1.22.2.2 2004/07/10 08:14:42 eik Exp $
- * $DragonFly: src/usr.bin/make/parse.c,v 1.41 2005/01/27 10:25:19 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/parse.c,v 1.42 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -1424,7 +1424,12 @@ Parse_DoVar(char *line, GNode *ctxt)
        if (!Var_Exists(line, ctxt))
            Var_Set(line, "", ctxt);
 
-       cp = Var_Subst(NULL, cp, ctxt, FALSE);
+       {
+           Buffer *buf;
+           buf = Var_Subst(NULL, cp, ctxt, FALSE);
+           cp = Buf_GetAll(buf, NULL);
+           Buf_Destroy(buf, FALSE);
+       }
        oldVars = oldOldVars;
 
        Var_Set(line, cp, ctxt);
@@ -1441,7 +1446,12 @@ Parse_DoVar(char *line, GNode *ctxt)
             * expansion on the whole thing. The resulting string will need
             * freeing when we're done, so set freeCmd to TRUE.
             */
-           cp = Var_Subst(NULL, cp, VAR_CMD, TRUE);
+           {
+               Buffer *buf1;
+               buf1 = Var_Subst(NULL, cp, VAR_CMD, TRUE);
+               cp = Buf_GetAll(buf1, NULL);
+               Buf_Destroy(buf1, FALSE);
+           }
            freeCmd = TRUE;
        }
 
@@ -1556,7 +1566,12 @@ ParseDoError(char *errmsg)
        while (isspace((unsigned char)*errmsg))
                errmsg++;
 
-       errmsg = Var_Subst(NULL, errmsg, VAR_GLOBAL, FALSE);
+       {
+           Buffer *buf;
+           buf = Var_Subst(NULL, errmsg, VAR_GLOBAL, FALSE);
+           errmsg = Buf_GetAll(buf, NULL);
+           Buf_Destroy(buf, FALSE);
+       }
 
        Parse_Error(PARSE_FATAL, "%s", errmsg);
        /* Terminate immediately. */
@@ -1586,7 +1601,12 @@ ParseDoWarning(char *warnmsg)
        while (isspace((unsigned char)*warnmsg))
                warnmsg++;
 
-       warnmsg = Var_Subst(NULL, warnmsg, VAR_GLOBAL, FALSE);
+       {
+           Buffer *buf;
+           buf = Var_Subst(NULL, warnmsg, VAR_GLOBAL, FALSE);
+           warnmsg = Buf_GetAll(buf, NULL);
+           Buf_Destroy(buf, FALSE);
+       }
 
        Parse_Error(PARSE_WARNING, "%s", warnmsg);
 }
@@ -1663,7 +1683,12 @@ ParseDoInclude(char *file)
      * Substitute for any variables in the file name before trying to
      * find the thing.
      */
-    file = Var_Subst(NULL, file, VAR_CMD, FALSE);
+    {
+       Buffer *buf;
+       buf = Var_Subst(NULL, file, VAR_CMD, FALSE);
+       file = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
+    }
 
     /*
      * Now we know the file's name and its search path, we attempt to
@@ -1851,7 +1876,12 @@ ParseTraditionalInclude(char *file)
      * Substitute for any variables in the file name before trying to
      * find the thing.
      */
-    file = Var_Subst(NULL, file, VAR_CMD, FALSE);
+    {
+       Buffer *buf;
+       buf = Var_Subst(NULL, file, VAR_CMD, FALSE);
+       file = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
+    }
 
     /*
      * Now we know the file's name, we attempt to find the durn thing.
@@ -2416,7 +2446,12 @@ Parse_File(const char *name, FILE *stream)
                    goto nextLine;
                } else if (strncmp(cp, "undef", 5) == 0) {
                    cp = stripvarname(cp + 5);
-                   cp = Var_Subst(NULL, cp, VAR_CMD, FALSE);
+                   {
+                       Buffer *buf;
+                       buf = Var_Subst(NULL, cp, VAR_CMD, FALSE);
+                       cp = Buf_GetAll(buf, NULL);
+                       Buf_Destroy(buf, FALSE);
+                   }
                    Var_Delete(cp, VAR_GLOBAL);
                    goto nextLine;
                } else if (strncmp(cp, "makeenv", 7) == 0) {
@@ -2489,7 +2524,12 @@ Parse_File(const char *name, FILE *stream)
 
                ParseFinishLine();
 
-               cp = Var_Subst(NULL, line, VAR_CMD, TRUE);
+               {
+                   Buffer *buf;
+                   buf = Var_Subst(NULL, line, VAR_CMD, TRUE);
+                   cp = Buf_GetAll(buf, NULL);
+                   Buf_Destroy(buf, FALSE);
+               }
                free(line);
                line = cp;
 
index 0072f49..0f32276 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.29 2005/01/22 11:34:41 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/suff.c,v 1.30 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -93,6 +93,7 @@
 #include <stdlib.h>
 
 #include "arch.h"
+#include "buf.h"
 #include "config.h"
 #include "dir.h"
 #include "globals.h"
@@ -1310,7 +1311,12 @@ SuffExpandChildren(void *cgnp, void *pgnp)
      */
     if (strchr(cgn->name, '$') != NULL) {
        DEBUGF(SUFF, ("Expanding \"%s\"...", cgn->name));
-       cp = Var_Subst(NULL, cgn->name, pgn, TRUE);
+       {
+           Buffer      *buf;
+           buf = Var_Subst(NULL, cgn->name, pgn, TRUE);
+           cp = Buf_GetAll(buf, NULL);
+           Buf_Destroy(buf, FALSE);
+       }
 
        if (cp != NULL) {
            Lst members = Lst_Initializer(members);
index a5ecd57..53bf736 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.52 2005/01/30 07:20:59 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/var.c,v 1.53 2005/01/31 08:30:51 okumoto Exp $
  */
 
 /*-
@@ -183,10 +183,18 @@ VarCmp(const void *v, const void *name)
 static char *
 VarPossiblyExpand(const char *name, GNode *ctxt)
 {
-    if (strchr(name, '$') != NULL)
-        return Var_Subst(NULL, name, ctxt, 0);
-    else
-        return estrdup(name);
+    if (strchr(name, '$') != NULL) {
+       Buffer  *buf;
+       char    *str;
+
+       buf = Var_Subst(NULL, name, ctxt, 0);
+       str = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
+
+       return(str);
+    } else {
+       return(estrdup(name));
+    }
 }
 
 /*-
@@ -1125,8 +1133,13 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr, Boolean *freeP
      * return.
      */
     str = (char *)Buf_GetAll(v->val, (size_t *)NULL);
-    if (strchr(str, '$') != (char *)NULL) {
-       str = Var_Subst(NULL, str, ctxt, err);
+    if (strchr(str, '$') != NULL) {
+       Buffer  *buf;
+
+       buf = Var_Subst(NULL, str, ctxt, err);
+       str = Buf_GetAll(buf, NULL);
+       Buf_Destroy(buf, FALSE);
+
        *freePtr = TRUE;
     }
 
@@ -1727,22 +1740,19 @@ Var_Parse(char *str, GNode *ctxt, Boolean err, size_t *lengthPtr, Boolean *freeP
  *     None. The old string must be freed by the caller
  *-----------------------------------------------------------------------
  */
-char *
+Buffer *
 Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
 {
-    Buffer     *buf;   /* Buffer for forming things */
-    char       *val;   /* Value to substitute for a variable */
-    size_t     length; /* Length of the variable invocation */
-    Boolean    doFree; /* Set true if val should be freed */
-    char       *result;
+    Boolean    errorReported;
+    Buffer     *buf;           /* Buffer for forming things */
 
-    static Boolean errorReported;      /* Set true if an error has already
-                                        * been reported to prevent a plethora
-                                        * of messages when recursing */
-
-    buf = Buf_Init(0);
+    /*
+     * Set TRUE if an error has already been reported to prevent a
+     * plethora of messages when recursing.
+     */
     errorReported = FALSE;
 
+    buf = Buf_Init(0);
     while (*str) {
        if (var == NULL && (str[0] == '$') && (str[1] == '$')) {
            /*
@@ -1753,36 +1763,17 @@ Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
            Buf_AddByte(buf, (Byte)str[0]);
            str += 2;
 
-       } else if (str[0] != '$') {
-           /*
-            * Skip as many characters as possible -- either to the end of
-            * the string or to the next dollar sign (variable invocation).
-            */
-           const char  *cp = str;
-
-           do {
-               str++;
-           } while (str[0] != '$' && str[0] != '\0');
-
-           Buf_AppendRange(buf, cp, str);
-
-       } else {
+       } else if (str[0] == '$') {
+           char        *val;   /* Value to substitute for a variable */
+           size_t      length; /* Length of the variable invocation */
+           Boolean     doFree; /* Set true if val should be freed */
            /*
             * Variable invocation.
             */
            if (var != NULL) {
                int expand;
                for (;;) {
-                   if (str[1] != OPEN_PAREN && str[1] != OPEN_BRACKET) {
-                       if (str[1] != var[0] || var[1] != '\0') {
-                           Buf_AddBytes(buf, 2, (const Byte *)str);
-                           str += 2;
-                           expand = FALSE;
-                       } else {
-                           expand = TRUE;
-                       }
-                       break;
-                   } else {
+                   if (str[1] == OPEN_PAREN || str[1] == OPEN_BRACKET) {
                        const char *p = str + 2;
 
                        /*
@@ -1795,6 +1786,7 @@ Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
                               *p != '$') {
                            ++p;
                        }
+
                        /*
                         * A variable inside the variable. We cannot expand
                         * the external variable yet, so we try again with
@@ -1806,22 +1798,34 @@ Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
                            continue;
                        }
 
-                       if (strncmp(var, str + 2, p - str - 2) != 0 ||
-                           var[p - str - 2] != '\0') {
+                       if (var[p - (str + 2)] == '\0' && strncmp(var, str + 2, p - (str + 2)) == 0) {
+                           expand = TRUE;
+                       } else {
                            /*
                             * Not the variable we want to expand, scan
                             * until the next variable
                             */
-                           for (;*p != '$' && *p != '\0'; p++)
-                               continue;
+                           while (*p != '$' && *p != '\0')
+                               ++p;
+
                            Buf_AppendRange(buf, str, p);
                            str = p;
                            expand = FALSE;
-                       } else {
+                       }
+
+                   } else {
+                       /*
+                        * Single letter variable name.
+                        */
+                       if (var[1] == '\0' && str[1] == var[0]) {
                            expand = TRUE;
+                       } else {
+                           Buf_AddBytes(buf, 2, (const Byte *)str);
+                           str += 2;
+                           expand = FALSE;
                        }
-                       break;
                    }
+                   break;
                }
                if (!expand)
                    continue;
@@ -1876,13 +1880,23 @@ Var_Subst(const char *var, const char *str, GNode *ctxt, Boolean undefErr)
                    free(val);
                }
            }
+
+       } else {
+           /*
+            * Skip as many characters as possible -- either to the end of
+            * the string or to the next dollar sign (variable invocation).
+            */
+           const char  *cp = str;
+
+           do {
+               str++;
+           } while (str[0] != '$' && str[0] != '\0');
+
+           Buf_AppendRange(buf, cp, str);
        }
     }
 
-    //Buf_AddByte(buf, '\0');
-    result = (char *)Buf_GetAll(buf, (size_t *)NULL);
-    Buf_Destroy(buf, FALSE);
-    return (result);
+    return (buf);
 }
 
 /*-
index 34bc1b4..1c1fc03 100644 (file)
@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/usr.bin/make/var.h,v 1.1 2002/10/28 23:33:57 jmallett Exp $
- * $DragonFly: src/usr.bin/make/var.h,v 1.9 2005/01/08 12:38:32 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/var.h,v 1.10 2005/01/31 08:30:51 okumoto Exp $
  */
 
 #include <regex.h>
@@ -119,7 +119,7 @@ Boolean Var_Exists(const char *, struct GNode *);
 char *Var_Value(const char *, struct GNode *, char **);
 char *Var_Quote(const char *);
 char *Var_Parse(char *, struct GNode *, Boolean, size_t *, Boolean *);
-char *Var_Subst(const char *, const char *, struct GNode *, Boolean);
+struct Buffer *Var_Subst(const char *, const char *, struct GNode *, Boolean);
 char *Var_GetTail(char *);
 char *Var_GetHead(char *);
 void Var_Init(void);