1/* $NetBSD: var.c,v 1.173 2013/02/24 19:43:37 christos Exp $ */ |
2 3/* 4 * Copyright (c) 1988, 1989, 1990, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * Adam de Boor. 9 * --- 54 unchanged lines hidden (view full) --- 64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 68 * SUCH DAMAGE. 69 */ 70 71#ifndef MAKE_NATIVE |
72static char rcsid[] = "$NetBSD: var.c,v 1.173 2013/02/24 19:43:37 christos Exp $"; |
73#else 74#include <sys/cdefs.h> 75#ifndef lint 76#if 0 77static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; 78#else |
79__RCSID("$NetBSD: var.c,v 1.173 2013/02/24 19:43:37 christos Exp $"); |
80#endif 81#endif /* not lint */ 82#endif 83 84/*- 85 * var.c -- 86 * Variable-handling functions 87 * --- 216 unchanged lines hidden (view full) --- 304static Boolean VarSubstitute(GNode *, Var_Parse_State *, 305 char *, Boolean, Buffer *, void *); 306static Boolean VarLoopExpand(GNode *, Var_Parse_State *, 307 char *, Boolean, Buffer *, void *); 308static char *VarGetPattern(GNode *, Var_Parse_State *, 309 int, const char **, int, int *, int *, 310 VarPattern *); 311static char *VarQuote(char *); |
312static char *VarHash(char *); 313static char *VarModify(GNode *, Var_Parse_State *, 314 const char *, 315 Boolean (*)(GNode *, Var_Parse_State *, char *, Boolean, Buffer *, void *), 316 void *); 317static char *VarOrder(const char *, const char); 318static char *VarUniq(const char *); 319static int VarWordCompare(const void *, const void *); --- 2024 unchanged lines hidden (view full) --- 2344 for (len = 0; len < 8; ++len) { 2345 Buf_AddByte(&buf, hexdigits[h & 15]); 2346 h >>= 4; 2347 } 2348 2349 return Buf_Destroy(&buf, FALSE); 2350} 2351 |
2352static char * |
2353VarStrftime(const char *fmt, int zulu) 2354{ 2355 char buf[BUFSIZ]; 2356 time_t utc; 2357 2358 time(&utc); 2359 if (!*fmt) 2360 fmt = "%c"; --- 659 unchanged lines hidden (view full) --- 3020 * Check for two-character options: 3021 * ":tu", ":tl" 3022 */ 3023 if (tstr[1] == 'A') { /* absolute path */ 3024 newStr = VarModify(ctxt, &parsestate, nstr, 3025 VarRealpath, NULL); 3026 cp = tstr + 2; 3027 termc = *cp; |
3028 } else if (tstr[1] == 'u') { 3029 char *dp = bmake_strdup(nstr); 3030 for (newStr = dp; *dp; dp++) 3031 *dp = toupper((unsigned char)*dp); |
3032 cp = tstr + 2; 3033 termc = *cp; |
3034 } else if (tstr[1] == 'l') { 3035 char *dp = bmake_strdup(nstr); 3036 for (newStr = dp; *dp; dp++) 3037 *dp = tolower((unsigned char)*dp); 3038 cp = tstr + 2; 3039 termc = *cp; |
3040 } else if (tstr[1] == 'W' || tstr[1] == 'w') { 3041 parsestate.oneBigWord = (tstr[1] == 'W'); 3042 newStr = nstr; 3043 cp = tstr + 2; 3044 termc = *cp; 3045 } else { 3046 /* Found ":t<unrecognised>:" or 3047 * ":t<unrecognised><endc>". */ --- 1127 unchanged lines hidden --- |