From dba68890dc2f821a2767fe1773a14cfff3b41f2a Mon Sep 17 00:00:00 2001 From: espie Date: Mon, 19 Jul 2010 19:30:37 +0000 Subject: [PATCH] two small changes: - allow variables in SysV modifiers, as requested by matthieu@ (since recursive variables are an extension, this just extends the extension) - variation on :Q called :QL (quote list), which does quote every character EXCEPT for whitespace. e.g., toto: @for i in ${VAR:QL} ... --- usr.bin/make/arch.c | 2 +- usr.bin/make/arch.h | 2 +- usr.bin/make/buf.c | 2 +- usr.bin/make/buf.h | 2 +- usr.bin/make/cmd_exec.c | 2 +- usr.bin/make/cmd_exec.h | 2 +- usr.bin/make/compat.h | 2 +- usr.bin/make/cond.h | 2 +- usr.bin/make/cond_int.h | 2 +- usr.bin/make/config.h | 2 +- usr.bin/make/defines.h | 2 +- usr.bin/make/dir.c | 2 +- usr.bin/make/dir.h | 2 +- usr.bin/make/direxpand.c | 2 +- usr.bin/make/direxpand.h | 2 +- usr.bin/make/engine.h | 2 +- usr.bin/make/error.c | 2 +- usr.bin/make/error.h | 2 +- usr.bin/make/extern.h | 2 +- usr.bin/make/for.h | 2 +- usr.bin/make/garray.h | 2 +- usr.bin/make/generate.c | 2 +- usr.bin/make/gnode.h | 2 +- usr.bin/make/init.c | 2 +- usr.bin/make/init.h | 2 +- usr.bin/make/job.h | 2 +- usr.bin/make/lowparse.h | 2 +- usr.bin/make/lst.h | 2 +- usr.bin/make/lst_t.h | 2 +- usr.bin/make/main.h | 2 +- usr.bin/make/make.h | 2 +- usr.bin/make/memory.c | 2 +- usr.bin/make/memory.h | 2 +- usr.bin/make/node_int.h | 2 +- usr.bin/make/parse.h | 2 +- usr.bin/make/parsevar.c | 2 +- usr.bin/make/parsevar.h | 2 +- usr.bin/make/pathnames.h | 2 +- usr.bin/make/regress.c | 2 +- usr.bin/make/stats.c | 2 +- usr.bin/make/stats.h | 2 +- usr.bin/make/str.c | 2 +- usr.bin/make/suff.h | 2 +- usr.bin/make/symtable.h | 2 +- usr.bin/make/targ.c | 8 ++++- usr.bin/make/targ.h | 2 +- usr.bin/make/timestamp.c | 2 +- usr.bin/make/timestamp.h | 2 +- usr.bin/make/timestamp_t.h | 2 +- usr.bin/make/util.c | 2 +- usr.bin/make/varmodifiers.c | 58 ++++++++++++++++++++++++++++++------- usr.bin/make/varmodifiers.h | 2 +- usr.bin/make/varname.c | 2 +- usr.bin/make/varname.h | 2 +- 54 files changed, 106 insertions(+), 64 deletions(-) diff --git a/usr.bin/make/arch.c b/usr.bin/make/arch.c index 138a9729a21..0e65cd981eb 100644 --- a/usr.bin/make/arch.c +++ b/usr.bin/make/arch.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: arch.c,v 1.77 2010/02/03 20:45:44 miod Exp $ */ +/* $OpenBSD: arch.c,v 1.78 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: arch.c,v 1.17 1996/11/06 17:58:59 christos Exp $ */ /* diff --git a/usr.bin/make/arch.h b/usr.bin/make/arch.h index 1dca02cbbf1..0e7d8ecade9 100644 --- a/usr.bin/make/arch.h +++ b/usr.bin/make/arch.h @@ -1,7 +1,7 @@ #ifndef ARCH_H #define ARCH_H /* $OpenPackages$ */ -/* $OpenBSD: arch.h,v 1.4 2007/09/17 10:12:35 espie Exp $ */ +/* $OpenBSD: arch.h,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/buf.c b/usr.bin/make/buf.c index 4e373a0e144..b3eec470f5a 100644 --- a/usr.bin/make/buf.c +++ b/usr.bin/make/buf.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: buf.c,v 1.21 2007/07/24 21:09:07 espie Exp $ */ +/* $OpenBSD: buf.c,v 1.22 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: buf.c,v 1.9 1996/12/31 17:53:21 christos Exp $ */ /* diff --git a/usr.bin/make/buf.h b/usr.bin/make/buf.h index 40bbe4f3acf..df07c45eeb2 100644 --- a/usr.bin/make/buf.h +++ b/usr.bin/make/buf.h @@ -2,7 +2,7 @@ #define _BUF_H /* $OpenPackages$ */ -/* $OpenBSD: buf.h,v 1.17 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: buf.h,v 1.18 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: buf.h,v 1.7 1996/12/31 17:53:22 christos Exp $ */ /* diff --git a/usr.bin/make/cmd_exec.c b/usr.bin/make/cmd_exec.c index 7d068453c17..132677fc3db 100644 --- a/usr.bin/make/cmd_exec.c +++ b/usr.bin/make/cmd_exec.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: cmd_exec.c,v 1.6 2007/07/24 21:09:07 espie Exp $ */ +/* $OpenBSD: cmd_exec.c,v 1.7 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. * diff --git a/usr.bin/make/cmd_exec.h b/usr.bin/make/cmd_exec.h index a7be777f46c..3bca2d3c35f 100644 --- a/usr.bin/make/cmd_exec.h +++ b/usr.bin/make/cmd_exec.h @@ -1,7 +1,7 @@ #ifndef CMD_EXEC_H #define CMD_EXEC_H /* $OpenPackages$ */ -/* $OpenBSD: cmd_exec.h,v 1.2 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: cmd_exec.h,v 1.3 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/compat.h b/usr.bin/make/compat.h index df772d5a019..19b25046c24 100644 --- a/usr.bin/make/compat.h +++ b/usr.bin/make/compat.h @@ -1,7 +1,7 @@ #ifndef COMPAT_H #define COMPAT_H /* $OpenPackages$ */ -/* $OpenBSD: compat.h,v 1.1 2001/05/23 12:34:41 espie Exp $ */ +/* $OpenBSD: compat.h,v 1.2 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/cond.h b/usr.bin/make/cond.h index a9655240834..a9ffb0656df 100644 --- a/usr.bin/make/cond.h +++ b/usr.bin/make/cond.h @@ -1,7 +1,7 @@ #ifndef COND_H #define COND_H /* $OpenPackages$ */ -/* $OpenBSD: cond.h,v 1.3 2007/07/08 17:44:20 espie Exp $ */ +/* $OpenBSD: cond.h,v 1.4 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/cond_int.h b/usr.bin/make/cond_int.h index da762932eb9..a428f8bc7f6 100644 --- a/usr.bin/make/cond_int.h +++ b/usr.bin/make/cond_int.h @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: cond_int.h,v 1.4 2007/07/08 17:44:20 espie Exp $ */ +/* $OpenBSD: cond_int.h,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* List of all keywords recognized by the make parser */ #define COND_IF "if" diff --git a/usr.bin/make/config.h b/usr.bin/make/config.h index 4bde350f9ea..0e4f2846317 100644 --- a/usr.bin/make/config.h +++ b/usr.bin/make/config.h @@ -2,7 +2,7 @@ #define CONFIG_H /* $OpenPackages$ */ -/* $OpenBSD: config.h,v 1.16 2007/09/16 09:49:24 espie Exp $ */ +/* $OpenBSD: config.h,v 1.17 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: config.h,v 1.7 1996/11/06 17:59:03 christos Exp $ */ /* diff --git a/usr.bin/make/defines.h b/usr.bin/make/defines.h index b0df89d0f5f..2aecd8cd1e7 100644 --- a/usr.bin/make/defines.h +++ b/usr.bin/make/defines.h @@ -2,7 +2,7 @@ #define DEFINES_H /* $OpenPackages$ */ -/* $OpenBSD: defines.h,v 1.7 2008/11/04 07:22:35 espie Exp $ */ +/* $OpenBSD: defines.h,v 1.8 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/dir.c b/usr.bin/make/dir.c index 822cd1446a6..0574d2b697d 100644 --- a/usr.bin/make/dir.c +++ b/usr.bin/make/dir.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: dir.c,v 1.57 2009/08/16 09:53:43 espie Exp $ */ +/* $OpenBSD: dir.c,v 1.58 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: dir.c,v 1.14 1997/03/29 16:51:26 christos Exp $ */ /* diff --git a/usr.bin/make/dir.h b/usr.bin/make/dir.h index 4eb17781720..b72b7e40016 100644 --- a/usr.bin/make/dir.h +++ b/usr.bin/make/dir.h @@ -2,7 +2,7 @@ #define DIR_H /* $OpenPackages$ */ -/* $OpenBSD: dir.h,v 1.24 2008/11/04 07:22:35 espie Exp $ */ +/* $OpenBSD: dir.h,v 1.25 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: dir.h,v 1.4 1996/11/06 17:59:05 christos Exp $ */ /* diff --git a/usr.bin/make/direxpand.c b/usr.bin/make/direxpand.c index 2a6eb4fd0d0..1ce71951c5b 100644 --- a/usr.bin/make/direxpand.c +++ b/usr.bin/make/direxpand.c @@ -1,4 +1,4 @@ -/* $OpenBSD: direxpand.c,v 1.4 2007/09/17 12:22:52 espie Exp $ */ +/* $OpenBSD: direxpand.c,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1999,2007 Marc Espie. * diff --git a/usr.bin/make/direxpand.h b/usr.bin/make/direxpand.h index 7cbd13914f4..a0323126075 100644 --- a/usr.bin/make/direxpand.h +++ b/usr.bin/make/direxpand.h @@ -1,6 +1,6 @@ #ifndef DIREXPAND_H #define DIREXPAND_H -/* $OpenBSD: direxpand.h,v 1.1 2007/09/16 10:14:26 espie Exp $ */ +/* $OpenBSD: direxpand.h,v 1.2 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. * Copyright (c) 1988, 1989 by Adam de Boor diff --git a/usr.bin/make/engine.h b/usr.bin/make/engine.h index d6e3e7da241..046dd34e5b7 100644 --- a/usr.bin/make/engine.h +++ b/usr.bin/make/engine.h @@ -1,6 +1,6 @@ #ifndef ENGINE_H #define ENGINE_H -/* $OpenBSD: engine.h,v 1.8 2009/05/10 11:07:37 espie Exp $ */ +/* $OpenBSD: engine.h,v 1.9 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. diff --git a/usr.bin/make/error.c b/usr.bin/make/error.c index 30b19f7c391..e3c9484eea2 100644 --- a/usr.bin/make/error.c +++ b/usr.bin/make/error.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: error.c,v 1.17 2008/11/04 07:22:35 espie Exp $ */ +/* $OpenBSD: error.c,v 1.18 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/error.h b/usr.bin/make/error.h index 2e9905fb2f9..f6a18fbe55b 100644 --- a/usr.bin/make/error.h +++ b/usr.bin/make/error.h @@ -1,7 +1,7 @@ #ifndef ERROR_H #define ERROR_H /* $OpenPackages$ */ -/* $OpenBSD: error.h,v 1.9 2008/11/04 07:22:35 espie Exp $ */ +/* $OpenBSD: error.h,v 1.10 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/extern.h b/usr.bin/make/extern.h index 4ea798093aa..ecc63e023ce 100644 --- a/usr.bin/make/extern.h +++ b/usr.bin/make/extern.h @@ -2,7 +2,7 @@ #define EXTERN_H /* $OpenPackages$ */ -/* $OpenBSD: extern.h,v 1.41 2007/09/17 12:42:09 espie Exp $ */ +/* $OpenBSD: extern.h,v 1.42 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: nonints.h,v 1.12 1996/11/06 17:59:19 christos Exp $ */ /*- diff --git a/usr.bin/make/for.h b/usr.bin/make/for.h index 66479f2fb31..5a5e8cdec9a 100644 --- a/usr.bin/make/for.h +++ b/usr.bin/make/for.h @@ -1,7 +1,7 @@ #ifndef FOR_H #define FOR_H /* $OpenPackages$ */ -/* $OpenBSD: for.h,v 1.3 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: for.h,v 1.4 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. * diff --git a/usr.bin/make/garray.h b/usr.bin/make/garray.h index 91d085e26f7..2c98341d74c 100644 --- a/usr.bin/make/garray.h +++ b/usr.bin/make/garray.h @@ -2,7 +2,7 @@ #define GARRAY_H /* $OpenPackages$ */ -/* $OpenBSD: garray.h,v 1.4 2007/12/01 15:14:34 espie Exp $ */ +/* $OpenBSD: garray.h,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* Growable array implementation */ /* diff --git a/usr.bin/make/generate.c b/usr.bin/make/generate.c index b95547abaac..13a05588ee0 100644 --- a/usr.bin/make/generate.c +++ b/usr.bin/make/generate.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: generate.c,v 1.10 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: generate.c,v 1.11 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/gnode.h b/usr.bin/make/gnode.h index 3669dbfb74c..31e28241231 100644 --- a/usr.bin/make/gnode.h +++ b/usr.bin/make/gnode.h @@ -1,7 +1,7 @@ #ifndef GNODE_H #define GNODE_H /* $OpenPackages$ */ -/* $OpenBSD: gnode.h,v 1.15 2009/08/16 09:51:12 espie Exp $ */ +/* $OpenBSD: gnode.h,v 1.16 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/init.c b/usr.bin/make/init.c index 21d2c89ae26..0831ddfde0a 100644 --- a/usr.bin/make/init.c +++ b/usr.bin/make/init.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: init.c,v 1.4 2007/09/17 12:42:09 espie Exp $ */ +/* $OpenBSD: init.c,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/init.h b/usr.bin/make/init.h index 90863570b11..474ba16add0 100644 --- a/usr.bin/make/init.h +++ b/usr.bin/make/init.h @@ -1,7 +1,7 @@ #ifndef INIT_H #define INIT_H /* $OpenPackages$ */ -/* $OpenBSD: init.h,v 1.1 2001/05/23 12:34:44 espie Exp $ */ +/* $OpenBSD: init.h,v 1.2 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/job.h b/usr.bin/make/job.h index b27cedbe9ca..a9b3e1fdcca 100644 --- a/usr.bin/make/job.h +++ b/usr.bin/make/job.h @@ -2,7 +2,7 @@ #define _JOB_H_ /* $OpenPackages$ */ -/* $OpenBSD: job.h,v 1.23 2009/05/10 11:07:37 espie Exp $ */ +/* $OpenBSD: job.h,v 1.24 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: job.h,v 1.5 1996/11/06 17:59:10 christos Exp $ */ /* diff --git a/usr.bin/make/lowparse.h b/usr.bin/make/lowparse.h index 2fd910f848d..a011893717f 100644 --- a/usr.bin/make/lowparse.h +++ b/usr.bin/make/lowparse.h @@ -2,7 +2,7 @@ #define LOWPARSE_H /* $OpenPackages$ */ -/* $OpenBSD: lowparse.h,v 1.5 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: lowparse.h,v 1.6 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. diff --git a/usr.bin/make/lst.h b/usr.bin/make/lst.h index 789b49e3e20..f1c9b03f1f5 100644 --- a/usr.bin/make/lst.h +++ b/usr.bin/make/lst.h @@ -2,7 +2,7 @@ #define _LST_H_ /* $OpenPackages$ */ -/* $OpenBSD: lst.h,v 1.27 2008/01/12 13:08:59 espie Exp $ */ +/* $OpenBSD: lst.h,v 1.28 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: lst.h,v 1.7 1996/11/06 17:59:12 christos Exp $ */ /* diff --git a/usr.bin/make/lst_t.h b/usr.bin/make/lst_t.h index 69a4a3246d7..6c84cd967c8 100644 --- a/usr.bin/make/lst_t.h +++ b/usr.bin/make/lst_t.h @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: lst_t.h,v 1.1 2001/05/23 12:34:46 espie Exp $ */ +/* $OpenBSD: lst_t.h,v 1.2 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/main.h b/usr.bin/make/main.h index ce737a921a0..0220bd663ee 100644 --- a/usr.bin/make/main.h +++ b/usr.bin/make/main.h @@ -1,7 +1,7 @@ #ifndef MAIN_H #define MAIN_H /* $OpenPackages$ */ -/* $OpenBSD: main.h,v 1.3 2007/09/17 12:42:09 espie Exp $ */ +/* $OpenBSD: main.h,v 1.4 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/make.h b/usr.bin/make/make.h index fb7e8e12718..430bbaccc2a 100644 --- a/usr.bin/make/make.h +++ b/usr.bin/make/make.h @@ -2,7 +2,7 @@ #define _MAKE_H_ /* $OpenPackages$ */ -/* $OpenBSD: make.h,v 1.36 2007/12/01 15:14:34 espie Exp $ */ +/* $OpenBSD: make.h,v 1.37 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: make.h,v 1.15 1997/03/10 21:20:00 christos Exp $ */ /* diff --git a/usr.bin/make/memory.c b/usr.bin/make/memory.c index 9572f50b700..bb90c156d5b 100644 --- a/usr.bin/make/memory.c +++ b/usr.bin/make/memory.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: memory.c,v 1.6 2008/03/24 18:03:53 espie Exp $ */ +/* $OpenBSD: memory.c,v 1.7 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 diff --git a/usr.bin/make/memory.h b/usr.bin/make/memory.h index ff8bfd9e784..df9a15b2f73 100644 --- a/usr.bin/make/memory.h +++ b/usr.bin/make/memory.h @@ -2,7 +2,7 @@ #define MEMORY_H /* $OpenPackages$ */ -/* $OpenBSD: memory.h,v 1.5 2008/03/24 18:03:53 espie Exp $ */ +/* $OpenBSD: memory.h,v 1.6 2010/07/19 19:30:37 espie Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 diff --git a/usr.bin/make/node_int.h b/usr.bin/make/node_int.h index f80aec62a91..1f063c6cb15 100644 --- a/usr.bin/make/node_int.h +++ b/usr.bin/make/node_int.h @@ -1,4 +1,4 @@ -/* $OpenBSD: node_int.h,v 1.1 2007/09/16 10:20:17 espie Exp $ */ +/* $OpenBSD: node_int.h,v 1.2 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2007 Marc Espie. diff --git a/usr.bin/make/parse.h b/usr.bin/make/parse.h index eb2d73e8bc0..b7388d625b0 100644 --- a/usr.bin/make/parse.h +++ b/usr.bin/make/parse.h @@ -1,7 +1,7 @@ #ifndef PARSE_H #define PARSE_H /* $OpenPackages$ */ -/* $OpenBSD: parse.h,v 1.3 2007/09/17 11:11:30 espie Exp $ */ +/* $OpenBSD: parse.h,v 1.4 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. * diff --git a/usr.bin/make/parsevar.c b/usr.bin/make/parsevar.c index abd4f93946b..1de7b4f7304 100644 --- a/usr.bin/make/parsevar.c +++ b/usr.bin/make/parsevar.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: parsevar.c,v 1.12 2007/09/17 11:14:38 espie Exp $ */ +/* $OpenBSD: parsevar.c,v 1.13 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: parse.c,v 1.29 1997/03/10 21:20:04 christos Exp $ */ /* diff --git a/usr.bin/make/parsevar.h b/usr.bin/make/parsevar.h index b8a443a17b6..11e4df8faf7 100644 --- a/usr.bin/make/parsevar.h +++ b/usr.bin/make/parsevar.h @@ -1,7 +1,7 @@ #ifndef PARSEVAR_H #define PARSEVAR_H /* $OpenPackages$ */ -/* $OpenBSD: parsevar.h,v 1.3 2007/09/17 11:14:38 espie Exp $ */ +/* $OpenBSD: parsevar.h,v 1.4 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. * diff --git a/usr.bin/make/pathnames.h b/usr.bin/make/pathnames.h index 9fd6d112bc4..96d695a02e2 100644 --- a/usr.bin/make/pathnames.h +++ b/usr.bin/make/pathnames.h @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: pathnames.h,v 1.10 2003/06/03 02:56:12 millert Exp $ */ +/* $OpenBSD: pathnames.h,v 1.11 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: pathnames.h,v 1.6 1996/11/06 17:59:21 christos Exp $ */ /* diff --git a/usr.bin/make/regress.c b/usr.bin/make/regress.c index 4dfb7ceb504..35e9f496c1e 100644 --- a/usr.bin/make/regress.c +++ b/usr.bin/make/regress.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: regress.c,v 1.5 2004/04/07 13:11:36 espie Exp $ */ +/* $OpenBSD: regress.c,v 1.6 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. diff --git a/usr.bin/make/stats.c b/usr.bin/make/stats.c index 8d57044780c..fade35c555c 100644 --- a/usr.bin/make/stats.c +++ b/usr.bin/make/stats.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: stats.c,v 1.8 2004/05/05 09:10:47 espie Exp $ */ +/* $OpenBSD: stats.c,v 1.9 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. diff --git a/usr.bin/make/stats.h b/usr.bin/make/stats.h index f1f8520889c..26b4b08a222 100644 --- a/usr.bin/make/stats.h +++ b/usr.bin/make/stats.h @@ -1,7 +1,7 @@ #ifndef STAT_H #define STAT_H /* $OpenPackages$ */ -/* $OpenBSD: stats.h,v 1.4 2004/05/05 09:10:47 espie Exp $ */ +/* $OpenBSD: stats.h,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. diff --git a/usr.bin/make/str.c b/usr.bin/make/str.c index 1ded11ededd..c88b8ed6a94 100644 --- a/usr.bin/make/str.c +++ b/usr.bin/make/str.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: str.c,v 1.25 2007/09/17 09:44:20 espie Exp $ */ +/* $OpenBSD: str.c,v 1.26 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: str.c,v 1.13 1996/11/06 17:59:23 christos Exp $ */ /*- diff --git a/usr.bin/make/suff.h b/usr.bin/make/suff.h index de1df279a00..c3d2525b1e0 100644 --- a/usr.bin/make/suff.h +++ b/usr.bin/make/suff.h @@ -1,7 +1,7 @@ #ifndef SUFF_H #define SUFF_H /* $OpenPackages$ */ -/* $OpenBSD: suff.h,v 1.4 2007/11/24 15:41:01 espie Exp $ */ +/* $OpenBSD: suff.h,v 1.5 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/symtable.h b/usr.bin/make/symtable.h index 368d035d5de..db4afc419b1 100644 --- a/usr.bin/make/symtable.h +++ b/usr.bin/make/symtable.h @@ -1,7 +1,7 @@ #ifndef SYMTABLE_H #define SYMTABLE_H /* $OpenPackages$ */ -/* $OpenBSD: symtable.h,v 1.2 2007/11/17 16:39:45 espie Exp $ */ +/* $OpenBSD: symtable.h,v 1.3 2010/07/19 19:30:37 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/targ.c b/usr.bin/make/targ.c index c6522b3ade5..1e0740e7a8a 100644 --- a/usr.bin/make/targ.c +++ b/usr.bin/make/targ.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: targ.c,v 1.60 2010/04/25 13:59:53 espie Exp $ */ +/* $OpenBSD: targ.c,v 1.61 2010/07/19 19:30:37 espie Exp $ */ /* $NetBSD: targ.c,v 1.11 1997/02/20 16:51:50 christos Exp $ */ /* @@ -462,3 +462,9 @@ targets_hash() { return &targets; } + +GNode * +Targ_FindNodeh(const char *name, size_t n, uint32_t hv, int flags) +{ + return Targ_FindNodeih(name, name + n - 1, hv, flags); +} diff --git a/usr.bin/make/targ.h b/usr.bin/make/targ.h index a061a3c0994..c4a3d17024b 100644 --- a/usr.bin/make/targ.h +++ b/usr.bin/make/targ.h @@ -1,7 +1,7 @@ #ifndef TARG_H #define TARG_H /* $OpenPackages$ */ -/* $OpenBSD: targ.h,v 1.7 2008/11/04 07:22:36 espie Exp $ */ +/* $OpenBSD: targ.h,v 1.8 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/timestamp.c b/usr.bin/make/timestamp.c index 8e933dfd420..3581f3037b3 100644 --- a/usr.bin/make/timestamp.c +++ b/usr.bin/make/timestamp.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: timestamp.c,v 1.4 2009/08/16 09:53:43 espie Exp $ */ +/* $OpenBSD: timestamp.c,v 1.5 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/timestamp.h b/usr.bin/make/timestamp.h index 5423d79620b..1514b7ddc64 100644 --- a/usr.bin/make/timestamp.h +++ b/usr.bin/make/timestamp.h @@ -2,7 +2,7 @@ #define TIMESTAMP_H /* $OpenPackages$ */ -/* $OpenBSD: timestamp.h,v 1.4 2007/09/17 09:44:20 espie Exp $ */ +/* $OpenBSD: timestamp.h,v 1.5 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/timestamp_t.h b/usr.bin/make/timestamp_t.h index 5eb98aaa524..36c56d32236 100644 --- a/usr.bin/make/timestamp_t.h +++ b/usr.bin/make/timestamp_t.h @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: timestamp_t.h,v 1.1 2001/05/23 12:34:51 espie Exp $ */ +/* $OpenBSD: timestamp_t.h,v 1.2 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. diff --git a/usr.bin/make/util.c b/usr.bin/make/util.c index d0939018339..fa204960bb8 100644 --- a/usr.bin/make/util.c +++ b/usr.bin/make/util.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: util.c,v 1.23 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: util.c,v 1.24 2010/07/19 19:30:38 espie Exp $ */ /* $NetBSD: util.c,v 1.10 1996/12/31 17:56:04 christos Exp $ */ /* diff --git a/usr.bin/make/varmodifiers.c b/usr.bin/make/varmodifiers.c index 206b9a6c67a..f7c402cb048 100644 --- a/usr.bin/make/varmodifiers.c +++ b/usr.bin/make/varmodifiers.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: varmodifiers.c,v 1.25 2007/11/03 15:42:11 deraadt Exp $ */ +/* $OpenBSD: varmodifiers.c,v 1.26 2010/07/19 19:30:38 espie Exp $ */ /* $NetBSD: var.c,v 1.18 1997/03/18 19:24:46 christos Exp $ */ /* @@ -149,6 +149,7 @@ static char *VarQuote(const char *, const struct Name *, void *); static char *VarModify(char *, bool (*)(struct Name *, bool, Buffer, void *), void *); static void *check_empty(const char **, SymTable *, bool, int); +static void *check_quote(const char **, SymTable *, bool, int); static char *do_upper(const char *, const struct Name *, void *); static char *do_lower(const char *, const struct Name *, void *); static void *check_shcmd(const char **, SymTable *, bool, int); @@ -193,7 +194,7 @@ static struct modifier { #ifndef MAKE_BOOTSTRAP resubst_mod = {false, get_patternarg, do_regex, NULL, free_patternarg}, #endif - quote_mod = {false, check_empty, VarQuote, NULL , NULL}, + quote_mod = {false, check_quote, VarQuote, NULL , free}, tail_mod = {false, check_empty, NULL, VarTail, NULL}, head_mod = {false, check_empty, NULL, VarHead, NULL}, suffix_mod = {false, check_empty, NULL, VarSuffix, NULL}, @@ -607,14 +608,13 @@ VarSYSVMatch(struct Name *word, bool addSpace, Buffer buf, void *patp) } void * -get_sysvpattern(const char **p, SymTable *ctxt UNUSED, bool err UNUSED, - int endc) +get_sysvpattern(const char **p, SymTable *ctxt UNUSED, bool err, int endc) { VarPattern *pattern; const char *cp, *cp2; + BUFFER buf; int cnt = 0; char startc = endc == ')' ? '(' : '{'; - for (cp = *p;; cp++) { if (*cp == '=' && cnt == 0) break; @@ -628,25 +628,41 @@ get_sysvpattern(const char **p, SymTable *ctxt UNUSED, bool err UNUSED, return NULL; } } + Buf_Init(&buf, 0); for (cp2 = cp+1;; cp2++) { if ((*cp2 == ':' || *cp2 == endc) && cnt == 0) break; - if (*cp2 == '\0') + if (*cp2 == '\0') { + Buf_Destroy(&buf); return NULL; + } if (*cp2 == startc) cnt++; else if (*cp2 == endc) { cnt--; - if (cnt < 0) + if (cnt < 0) { + Buf_Destroy(&buf); return NULL; + } + } else if (*cp2 == '$') { + if (cp2[1] == '$') + cp2++; + else { + size_t len; + (void)Var_ParseBuffer(&buf, cp2, ctxt, err, + &len); + cp2 += len - 1; + continue; + } } + Buf_AddChar(&buf, *cp2); } pattern = (VarPattern *)emalloc(sizeof(VarPattern)); pattern->lbuffer = pattern->lhs = Str_dupi(*p, cp); pattern->leftLen = cp - *p; - pattern->rhs = Str_dupi(cp+1, cp2); - pattern->rightLen = cp2 - (cp+1); + pattern->rhs = Buf_Retrieve(&buf); + pattern->rightLen = Buf_Size(&buf); pattern->flags = 0; *p = cp2; return pattern; @@ -1043,16 +1059,20 @@ VarGetPattern(SymTable *ctxt, int err, const char **tstr, int delim1, *----------------------------------------------------------------------- */ static char * -VarQuote(const char *str, const struct Name *n UNUSED, void *dummy UNUSED) +VarQuote(const char *str, const struct Name *n UNUSED, void *islistp) { + int islist = *((int *)islistp); BUFFER buf; /* This should cover most shells :-( */ static char meta[] = "\n \t'`\";&<>()|*?{}[]\\$!#^~"; + char *rep = meta; + if (islist) + rep += 3; Buf_Init(&buf, MAKE_BSIZE); for (; *str; str++) { - if (strchr(meta, *str) != NULL) + if (strchr(rep, *str) != NULL) Buf_AddChar(&buf, '\\'); Buf_AddChar(&buf, *str); } @@ -1070,6 +1090,22 @@ check_empty(const char **p, SymTable *ctxt UNUSED, bool b UNUSED, int endc) return NULL; } +static void * +check_quote(const char **p, SymTable *ctxt UNUSED, bool b UNUSED, int endc) +{ + int *qargs = emalloc(sizeof(int)); + *qargs = 0; + if ((*p)[1] == 'L') { + *qargs = 1; + (*p)++; + } + if ((*p)[1] == endc || (*p)[1] == ':') { + (*p)++; + return qargs; + } else + return NULL; +} + static void * check_shcmd(const char **p, SymTable *ctxt UNUSED, bool b UNUSED, int endc) { diff --git a/usr.bin/make/varmodifiers.h b/usr.bin/make/varmodifiers.h index 9de4203af62..235846855b1 100644 --- a/usr.bin/make/varmodifiers.h +++ b/usr.bin/make/varmodifiers.h @@ -2,7 +2,7 @@ #define VARMODIFIERS_H /* $OpenPackages$ */ -/* $OpenBSD: varmodifiers.h,v 1.10 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: varmodifiers.h,v 1.11 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. diff --git a/usr.bin/make/varname.c b/usr.bin/make/varname.c index edcc7ed979a..ade006ea48a 100644 --- a/usr.bin/make/varname.c +++ b/usr.bin/make/varname.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: varname.c,v 1.3 2007/07/09 12:29:45 espie Exp $ */ +/* $OpenBSD: varname.c,v 1.4 2010/07/19 19:30:38 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. * diff --git a/usr.bin/make/varname.h b/usr.bin/make/varname.h index 01d0e5eb487..71e84470723 100644 --- a/usr.bin/make/varname.h +++ b/usr.bin/make/varname.h @@ -1,4 +1,4 @@ -/* $OpenBSD: varname.h,v 1.3 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: varname.h,v 1.4 2010/07/19 19:30:38 espie Exp $ */ #ifndef VARNAME_H #define VARNAME_H /* -- 2.20.1