summaryrefslogtreecommitdiffstats
path: root/src/cmd/mk/mk.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-04 22:41:27 +0000
committerrsc <devnull@localhost>2005-01-04 22:41:27 +0000
commit9aa1c92f743a7bf2ac0b062b0c075dc610b3e335 (patch)
treee3be39332a1893959b3257aa797a65740fc1c1ec /src/cmd/mk/mk.h
parent02f38ca68ce484b2aad15fad4d59c4d43ef7eb1b (diff)
downloadplan9port-9aa1c92f743a7bf2ac0b062b0c075dc610b3e335.tar.gz
plan9port-9aa1c92f743a7bf2ac0b062b0c075dc610b3e335.zip
add new | syntax.
syntax will change.
Diffstat (limited to 'src/cmd/mk/mk.h')
-rw-r--r--src/cmd/mk/mk.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/cmd/mk/mk.h b/src/cmd/mk/mk.h
index 33402de0..81f9d70c 100644
--- a/src/cmd/mk/mk.h
+++ b/src/cmd/mk/mk.h
@@ -26,6 +26,18 @@ typedef struct Envy
extern Envy *envy;
+typedef struct Shell
+{
+ char *name;
+ char *termchars; /* used in parse.c to isolate assignment attribute */
+ int iws; /* inter-word separator in environment */
+ char *(*charin)(char*, char*); /* search for unescaped characters */
+ char *(*expandquote)(char*, Rune, Bufblock*); /* extract escaped token */
+ int (*escapetoken)(Biobuf*, Bufblock*, int, int); /* input escaped token */
+ char *(*copyq)(char*, Rune, Bufblock*); /* check for quoted strings */
+ int (*matchname)(char*); /* does name match */
+} Shell;
+
typedef struct Rule
{
char *target; /* one target */
@@ -40,6 +52,8 @@ typedef struct Rule
char *prog; /* to use in out of date */
struct Rule *chain; /* hashed per target */
struct Rule *next;
+ Shell *shellt; /* shell to use with this rule */
+ Word *shellcmd;
} Rule;
extern Rule *rules, *metarules, *patrule;
@@ -143,11 +157,10 @@ extern int mkinline;
extern char *infile;
extern int nreps;
extern char *explain;
-extern char *termchars;
-extern int IWS;
-extern char *shell;
-extern char *shellname;
-extern char *shflags;
+extern Shell *shellt;
+extern Word *shellcmd;
+
+extern Shell shshell, rcshell;
#define SYNERR(l) (fprint(2, "mk: %s:%d: syntax error; ", infile, ((l)>=0)?(l):mkinline))
#define RERR(r) (fprint(2, "mk: %s:%d: rule error; ", (r)->file, (r)->line))