=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/make/cond.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- src/usr.bin/make/cond.c 2007/09/17 08:36:57 1.37 +++ src/usr.bin/make/cond.c 2007/09/17 09:28:36 1.38 @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: cond.c,v 1.37 2007/09/17 08:36:57 espie Exp $ */ +/* $OpenBSD: cond.c,v 1.38 2007/09/17 09:28:36 espie Exp $ */ /* $NetBSD: cond.c,v 1.7 1996/11/06 17:59:02 christos Exp $ */ /* @@ -192,7 +192,7 @@ *----------------------------------------------------------------------- */ static bool -CondGetArg(const char **linePtr, struct Name *arg, const char *func, +CondGetArg(const char **linePtr, struct Name *arg, const char *func, bool parens) /* true if arg should be bounded by parens */ { const char *cp; @@ -869,7 +869,7 @@ return l; } -/* Evaluate conditional in line. +/* Evaluate conditional in line. * returns COND_SKIP, COND_PARSE, COND_INVALID, COND_ISFOR, COND_ISINCLUDE, * COND_ISUNDEF. * A conditional line looks like this: @@ -901,70 +901,70 @@ k = ohash_interval(line, &end); switch(k % MAGICSLOTS2) { case K_COND_IF % MAGICSLOTS2: - if (k == K_COND_IF && len == strlen(COND_IF) && + if (k == K_COND_IF && len == strlen(COND_IF) && strncmp(line, COND_IF, len) == 0) { ifp = ifs + COND_IF_INDEX; } else return COND_INVALID; break; case K_COND_IFDEF % MAGICSLOTS2: - if (k == K_COND_IFDEF && len == strlen(COND_IFDEF) && + if (k == K_COND_IFDEF && len == strlen(COND_IFDEF) && strncmp(line, COND_IFDEF, len) == 0) { ifp = ifs + COND_IFDEF_INDEX; } else return COND_INVALID; break; case K_COND_IFNDEF % MAGICSLOTS2: - if (k == K_COND_IFNDEF && len == strlen(COND_IFNDEF) && + if (k == K_COND_IFNDEF && len == strlen(COND_IFNDEF) && strncmp(line, COND_IFNDEF, len) == 0) { ifp = ifs + COND_IFNDEF_INDEX; } else return COND_INVALID; break; case K_COND_IFMAKE % MAGICSLOTS2: - if (k == K_COND_IFMAKE && len == strlen(COND_IFMAKE) && + if (k == K_COND_IFMAKE && len == strlen(COND_IFMAKE) && strncmp(line, COND_IFMAKE, len) == 0) { ifp = ifs + COND_IFMAKE_INDEX; } else return COND_INVALID; break; case K_COND_IFNMAKE % MAGICSLOTS2: - if (k == K_COND_IFNMAKE && len == strlen(COND_IFNMAKE) && + if (k == K_COND_IFNMAKE && len == strlen(COND_IFNMAKE) && strncmp(line, COND_IFNMAKE, len) == 0) { ifp = ifs + COND_IFNMAKE_INDEX; } else return COND_INVALID; break; case K_COND_ELIF % MAGICSLOTS2: - if (k == K_COND_ELIF && len == strlen(COND_ELIF) && + if (k == K_COND_ELIF && len == strlen(COND_ELIF) && strncmp(line, COND_ELIF, len) == 0) { ifp = ifs + COND_ELIF_INDEX; } else return COND_INVALID; break; case K_COND_ELIFDEF % MAGICSLOTS2: - if (k == K_COND_ELIFDEF && len == strlen(COND_ELIFDEF) && + if (k == K_COND_ELIFDEF && len == strlen(COND_ELIFDEF) && strncmp(line, COND_ELIFDEF, len) == 0) { ifp = ifs + COND_ELIFDEF_INDEX; } else return COND_INVALID; break; case K_COND_ELIFNDEF % MAGICSLOTS2: - if (k == K_COND_ELIFNDEF && len == strlen(COND_ELIFNDEF) && + if (k == K_COND_ELIFNDEF && len == strlen(COND_ELIFNDEF) && strncmp(line, COND_ELIFNDEF, len) == 0) { ifp = ifs + COND_ELIFNDEF_INDEX; } else return COND_INVALID; break; case K_COND_ELIFMAKE % MAGICSLOTS2: - if (k == K_COND_ELIFMAKE && len == strlen(COND_ELIFMAKE) && + if (k == K_COND_ELIFMAKE && len == strlen(COND_ELIFMAKE) && strncmp(line, COND_ELIFMAKE, len) == 0) { ifp = ifs + COND_ELIFMAKE_INDEX; } else return COND_INVALID; break; case K_COND_ELIFNMAKE % MAGICSLOTS2: - if (k == K_COND_ELIFNMAKE && len == strlen(COND_ELIFNMAKE) && + if (k == K_COND_ELIFNMAKE && len == strlen(COND_ELIFNMAKE) && strncmp(line, COND_ELIFNMAKE, len) == 0) { ifp = ifs + COND_ELIFNMAKE_INDEX; } else @@ -973,7 +973,7 @@ case K_COND_ELSE % MAGICSLOTS2: /* valid conditional whose value is the inverse * of the previous if we parsed. */ - if (k == K_COND_ELSE && len == strlen(COND_ELSE) && + if (k == K_COND_ELSE && len == strlen(COND_ELSE) && strncmp(line, COND_ELSE, len) == 0) { if (condTop == MAXIF) { Parse_Error(level, "if-less else"); @@ -987,7 +987,7 @@ return COND_INVALID; break; case K_COND_ENDIF % MAGICSLOTS2: - if (k == K_COND_ENDIF && len == strlen(COND_ENDIF) && + if (k == K_COND_ENDIF && len == strlen(COND_ENDIF) && strncmp(line, COND_ENDIF, len) == 0) { /* End of a conditional section. If skipIfLevel is non-zero, that * conditional was skipped, so lines following it should also be @@ -1094,7 +1094,7 @@ break; } } - + if (!ifp->isElse) condTop--; else if (skipIfLevel != 0 || condStack[condTop].value) { @@ -1128,7 +1128,7 @@ int i; if (condTop != MAXIF) { - Parse_Error(PARSE_FATAL, "%s%d open conditional%s", + Parse_Error(PARSE_FATAL, "%s%d open conditional%s", condTop == 0 ? "at least ": "", MAXIF-condTop, MAXIF-condTop == 1 ? "" : "s"); for (i = MAXIF-1; i >= condTop; i--) {