Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
zsh patch for builds on new linux kernels
- X-seq: zsh-workers 13230
- From: Joel Smith <jsmith@xxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: zsh patch for builds on new linux kernels
- Date: Mon, 04 Dec 2000 23:49:07 -0700
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
- Sender: jsmith
Hello,
Bart Schaefer advised me to send this your way.
I've made a patch which renames the redirect types in zsh.h so that
there aren't same name problems with a new linux kernel include file
(<linux/fs.h>) which defines READ and WRITE. For consistancy's sake I
preface all of the types with REDIR_ so READ becomes REDIR_READ, etc.
The patch has been posted to sourceforge, and is attached here. How do
I get the patch into CVS? Is giving it to you good enough?
Thanks,
Joel
diff -uNr zsh-3.1.9-orig/Src/exec.c zsh-3.1.9/Src/exec.c
--- zsh-3.1.9-orig/Src/exec.c Sun May 21 12:31:30 2000
+++ zsh-3.1.9/Src/exec.c Mon Dec 4 14:33:09 2000
@@ -1755,7 +1755,7 @@
args = newlinklist();
addlinknode(args, dupstring(":"));
} else if (readnullcmd && *readnullcmd &&
- ((Redir) peekfirst(redir))->type == READ &&
+ ((Redir) peekfirst(redir))->type == REDIR_READ &&
!nextnode(firstnode(redir))) {
if (!args)
args = newlinklist();
@@ -2037,16 +2037,16 @@
/* Do io redirections */
while (redir && nonempty(redir)) {
fn = (Redir) ugetnode(redir);
- DPUTS(fn->type == HEREDOC || fn->type == HEREDOCDASH,
+ DPUTS(fn->type == REDIR_HEREDOC || fn->type == REDIR_HEREDOCDASH,
"BUG: unexpanded here document");
- if (fn->type == INPIPE) {
+ if (fn->type == REDIR_INPIPE) {
if (fn->fd2 == -1) {
closemnodes(mfds);
fixfds(save);
execerr();
}
addfd(forked, save, mfds, fn->fd1, fn->fd2, 0);
- } else if (fn->type == OUTPIPE) {
+ } else if (fn->type == REDIR_OUTPIPE) {
if (fn->fd2 == -1) {
closemnodes(mfds);
fixfds(save);
@@ -2054,7 +2054,7 @@
}
addfd(forked, save, mfds, fn->fd1, fn->fd2, 1);
} else {
- if (fn->type != HERESTR && xpandredir(fn, redir))
+ if (fn->type != REDIR_HERESTR && xpandredir(fn, redir))
continue;
if (errflag) {
closemnodes(mfds);
@@ -2068,7 +2068,7 @@
if (unset(EXECOPT))
continue;
switch(fn->type) {
- case HERESTR:
+ case REDIR_HERESTR:
fil = getherestr(fn);
if (fil == -1) {
closemnodes(mfds);
@@ -2079,9 +2079,9 @@
}
addfd(forked, save, mfds, fn->fd1, fil, 0);
break;
- case READ:
- case READWRITE:
- if (fn->type == READ)
+ case REDIR_READ:
+ case REDIR_READWRITE:
+ if (fn->type == REDIR_READ)
fil = open(unmeta(fn->name), O_RDONLY | O_NOCTTY);
else
fil = open(unmeta(fn->name),
@@ -2100,14 +2100,14 @@
isset(SHINSTDIN) && interact && !zleactive)
init_io();
break;
- case CLOSE:
+ case REDIR_CLOSE:
if (!forked && fn->fd1 < 10 && save[fn->fd1] == -2)
save[fn->fd1] = movefd(fn->fd1);
closemn(mfds, fn->fd1);
zclose(fn->fd1);
break;
- case MERGEIN:
- case MERGEOUT:
+ case REDIR_MERGEIN:
+ case REDIR_MERGEOUT:
if (fn->fd2 < 10)
closemn(mfds, fn->fd2);
if (fn->fd2 > 9 &&
@@ -2119,7 +2119,7 @@
} else {
int fd = fn->fd2;
if(fd == -2)
- fd = (fn->type == MERGEOUT) ? coprocout : coprocin;
+ fd = (fn->type == REDIR_MERGEOUT) ? coprocout : coprocin;
fil = dup(fd);
}
if (fil == -1) {
@@ -2132,7 +2132,7 @@
zerr("%s: %e", fn->fd2 == -2 ? "coprocess" : fdstr, errno);
execerr();
}
- addfd(forked, save, mfds, fn->fd1, fil, fn->type == MERGEOUT);
+ addfd(forked, save, mfds, fn->fd1, fil, fn->type == REDIR_MERGEOUT);
break;
default:
if (IS_APPEND_REDIR(fn->type))
@@ -2540,7 +2540,7 @@
qt = 1;
}
untokenize(str);
- if (typ == HEREDOCDASH) {
+ if (typ == REDIR_HEREDOCDASH) {
strip = 1;
while (*str == '\t')
str++;
@@ -2632,7 +2632,7 @@
wc_code(pc[1]) == WC_SUBLIST && !WC_SUBLIST_FLAGS(pc[1]) &&
WC_SUBLIST_TYPE(pc[1]) == WC_SUBLIST_END &&
wc_code(pc[2]) == WC_PIPE && WC_PIPE_TYPE(pc[2]) == WC_PIPE_END &&
- wc_code(pc[3]) == WC_REDIR && WC_REDIR_TYPE(pc[3]) == READ &&
+ wc_code(pc[3]) == WC_REDIR && WC_REDIR_TYPE(pc[3]) == REDIR_READ &&
!pc[4] &&
wc_code(pc[6]) == WC_SIMPLE && !WC_SIMPLE_ARGC(pc[6])) {
/* $(< word) */
@@ -2952,7 +2952,7 @@
n = firstnode(l);
for (; n; incnode(n)) {
f = (Redir) getdata(n);
- if (f->type == OUTPIPE || f->type == INPIPE) {
+ if (f->type == REDIR_OUTPIPE || f->type == REDIR_INPIPE) {
str = f->name;
f->fd2 = getpipe(str);
}
diff -uNr zsh-3.1.9-orig/Src/glob.c zsh-3.1.9/Src/glob.c
--- zsh-3.1.9-orig/Src/glob.c Mon Jun 5 02:57:55 2000
+++ zsh-3.1.9/Src/glob.c Mon Dec 4 14:43:59 2000
@@ -1627,9 +1627,9 @@
char *s = peekfirst(&fake);
fn->name = s;
untokenize(s);
- if (fn->type == MERGEIN || fn->type == MERGEOUT) {
+ if (fn->type == REDIR_MERGEIN || fn->type == REDIR_MERGEOUT) {
if (s[0] == '-' && !s[1])
- fn->type = CLOSE;
+ fn->type = REDIR_CLOSE;
else if (s[0] == 'p' && !s[1])
fn->fd2 = -2;
else {
@@ -1637,17 +1637,17 @@
s++;
if (!*s && s > fn->name)
fn->fd2 = zstrtol(fn->name, NULL, 10);
- else if (fn->type == MERGEIN)
+ else if (fn->type == REDIR_MERGEIN)
zerr("file number expected", NULL, 0);
else
- fn->type = ERRWRITE;
+ fn->type = REDIR_ERRWRITE;
}
}
- } else if (fn->type == MERGEIN)
+ } else if (fn->type == REDIR_MERGEIN)
zerr("file number expected", NULL, 0);
else {
- if (fn->type == MERGEOUT)
- fn->type = ERRWRITE;
+ if (fn->type == REDIR_MERGEOUT)
+ fn->type = REDIR_ERRWRITE;
while ((nam = (char *)ugetnode(&fake))) {
/* Loop over matches, duplicating the *
* redirection for each file found. */
diff -uNr zsh-3.1.9-orig/Src/lex.c zsh-3.1.9/Src/lex.c
--- zsh-3.1.9-orig/Src/lex.c Tue May 30 03:15:32 2000
+++ zsh-3.1.9/Src/lex.c Mon Dec 4 14:38:51 2000
@@ -347,13 +347,13 @@
char *name;
hwbegin(0);
- cmdpush(hdocs->type == HEREDOC ? CS_HEREDOC : CS_HEREDOCD);
+ cmdpush(hdocs->type == REDIR_HEREDOC ? CS_HEREDOC : CS_HEREDOCD);
STOPHIST
name = gethere(hdocs->str, hdocs->type);
ALLOWHIST
cmdpop();
hwend();
- setheredoc(hdocs->pc, HERESTR, name);
+ setheredoc(hdocs->pc, REDIR_HERESTR, name);
zfree(hdocs, sizeof(struct heredocs));
hdocs = next;
}
diff -uNr zsh-3.1.9-orig/Src/parse.c zsh-3.1.9/Src/parse.c
--- zsh-3.1.9-orig/Src/parse.c Tue May 30 03:15:32 2000
+++ zsh-3.1.9/Src/parse.c Mon Dec 4 14:35:56 2000
@@ -702,7 +702,7 @@
for (r = p + 1; wc_code(ecbuf[r]) == WC_REDIR; r += 3);
ecispace(r, 3);
- ecbuf[r] = WCB_REDIR(MERGEOUT);
+ ecbuf[r] = WCB_REDIR(REDIR_MERGEOUT);
ecbuf[r + 1] = 2;
ecbuf[r + 2] = ecstrcode("1");
@@ -1552,21 +1552,21 @@
*/
static int redirtab[TRINANG - OUTANG + 1] = {
- WRITE,
- WRITENOW,
- APP,
- APPNOW,
- READ,
- READWRITE,
- HEREDOC,
- HEREDOCDASH,
- MERGEIN,
- MERGEOUT,
- ERRWRITE,
- ERRWRITENOW,
- ERRAPP,
- ERRAPPNOW,
- HERESTR,
+ REDIR_WRITE,
+ REDIR_WRITENOW,
+ REDIR_APP,
+ REDIR_APPNOW,
+ REDIR_READ,
+ REDIR_READWRITE,
+ REDIR_HEREDOC,
+ REDIR_HEREDOCDASH,
+ REDIR_MERGEIN,
+ REDIR_MERGEOUT,
+ REDIR_ERRWRITE,
+ REDIR_ERRWRITENOW,
+ REDIR_ERRAPP,
+ REDIR_ERRAPPNOW,
+ REDIR_HERESTR,
};
/**/
@@ -1596,8 +1596,8 @@
name = tokstr;
switch (type) {
- case HEREDOC:
- case HEREDOCDASH: {
+ case REDIR_HEREDOC:
+ case REDIR_HEREDOCDASH: {
/* <<[-] name */
struct heredocs **hd;
@@ -1618,24 +1618,24 @@
yylex();
return;
}
- case WRITE:
- case WRITENOW:
+ case REDIR_WRITE:
+ case REDIR_WRITENOW:
if (tokstr[0] == Outang && tokstr[1] == Inpar)
/* > >(...) */
- type = OUTPIPE;
+ type = REDIR_OUTPIPE;
else if (tokstr[0] == Inang && tokstr[1] == Inpar)
YYERRORV(ecused);
break;
- case READ:
+ case REDIR_READ:
if (tokstr[0] == Inang && tokstr[1] == Inpar)
/* < <(...) */
- type = INPIPE;
+ type = REDIR_INPIPE;
else if (tokstr[0] == Outang && tokstr[1] == Inpar)
YYERRORV(ecused);
break;
- case READWRITE:
+ case REDIR_READWRITE:
if ((tokstr[0] == Inang || tokstr[0] == Outang) && tokstr[1] == Inpar)
- type = tokstr[0] == Inang ? INPIPE : OUTPIPE;
+ type = tokstr[0] == Inang ? REDIR_INPIPE : REDIR_OUTPIPE;
break;
}
yylex();
diff -uNr zsh-3.1.9-orig/Src/text.c zsh-3.1.9/Src/text.c
--- zsh-3.1.9-orig/Src/text.c Wed Apr 19 13:03:46 2000
+++ zsh-3.1.9/Src/text.c Mon Dec 4 14:42:58 2000
@@ -731,26 +731,26 @@
Redir f = (Redir) getdata(n);
switch (f->type) {
- case WRITE:
- case WRITENOW:
- case APP:
- case APPNOW:
- case ERRWRITE:
- case ERRWRITENOW:
- case ERRAPP:
- case ERRAPPNOW:
- case READ:
- case READWRITE:
- case HERESTR:
- case MERGEIN:
- case MERGEOUT:
- case INPIPE:
- case OUTPIPE:
+ case REDIR_WRITE:
+ case REDIR_WRITENOW:
+ case REDIR_APP:
+ case REDIR_APPNOW:
+ case REDIR_ERRWRITE:
+ case REDIR_ERRWRITENOW:
+ case REDIR_ERRAPP:
+ case REDIR_ERRAPPNOW:
+ case REDIR_READ:
+ case REDIR_READWRITE:
+ case REDIR_HERESTR:
+ case REDIR_MERGEIN:
+ case REDIR_MERGEOUT:
+ case REDIR_INPIPE:
+ case REDIR_OUTPIPE:
if (f->fd1 != (IS_READFD(f->type) ? 0 : 1))
taddchr('0' + f->fd1);
taddstr(fstr[f->type]);
taddchr(' ');
- if (f->type == HERESTR) {
+ if (f->type == REDIR_HERESTR) {
taddchr('\'');
taddstr(bslashquote(f->name, NULL, 1));
taddchr('\'');
@@ -759,7 +759,7 @@
taddchr(' ');
break;
#ifdef DEBUG
- case CLOSE:
+ case REDIR_CLOSE:
DPUTS(1, "BUG: CLOSE in getredirs()");
taddchr(f->fd1 + '0');
taddstr(">&- ");
diff -uNr zsh-3.1.9-orig/Src/zsh.h zsh-3.1.9/Src/zsh.h
--- zsh-3.1.9-orig/Src/zsh.h Mon Jun 5 02:57:56 2000
+++ zsh-3.1.9/Src/zsh.h Mon Dec 4 14:28:26 2000
@@ -233,31 +233,31 @@
* below. */
enum {
- WRITE, /* > */
- WRITENOW, /* >| */
- APP, /* >> */
- APPNOW, /* >>| */
- ERRWRITE, /* &>, >& */
- ERRWRITENOW, /* >&| */
- ERRAPP, /* >>& */
- ERRAPPNOW, /* >>&| */
- READWRITE, /* <> */
- READ, /* < */
- HEREDOC, /* << */
- HEREDOCDASH, /* <<- */
- HERESTR, /* <<< */
- MERGEIN, /* <&n */
- MERGEOUT, /* >&n */
- CLOSE, /* >&-, <&- */
- INPIPE, /* < <(...) */
- OUTPIPE /* > >(...) */
+ REDIR_WRITE, /* > */
+ REDIR_WRITENOW, /* >| */
+ REDIR_APP, /* >> */
+ REDIR_APPNOW, /* >>| */
+ REDIR_ERRWRITE, /* &>, >& */
+ REDIR_ERRWRITENOW, /* >&| */
+ REDIR_ERRAPP, /* >>& */
+ REDIR_ERRAPPNOW, /* >>&| */
+ REDIR_READWRITE, /* <> */
+ REDIR_READ, /* < */
+ REDIR_HEREDOC, /* << */
+ REDIR_HEREDOCDASH, /* <<- */
+ REDIR_HERESTR, /* <<< */
+ REDIR_MERGEIN, /* <&n */
+ REDIR_MERGEOUT, /* >&n */
+ REDIR_CLOSE, /* >&-, <&- */
+ REDIR_INPIPE, /* < <(...) */
+ REDIR_OUTPIPE /* > >(...) */
};
-#define IS_WRITE_FILE(X) ((X)>=WRITE && (X)<=READWRITE)
+#define IS_WRITE_FILE(X) ((X)>=REDIR_WRITE && (X)<=REDIR_READWRITE)
#define IS_APPEND_REDIR(X) (IS_WRITE_FILE(X) && ((X) & 2))
#define IS_CLOBBER_REDIR(X) (IS_WRITE_FILE(X) && ((X) & 1))
-#define IS_ERROR_REDIR(X) ((X)>=ERRWRITE && (X)<=ERRAPPNOW)
-#define IS_READFD(X) (((X)>=READWRITE && (X)<=MERGEIN) || (X)==INPIPE)
+#define IS_ERROR_REDIR(X) ((X)>=REDIR_ERRWRITE && (X)<=REDIR_ERRAPPNOW)
+#define IS_READFD(X) (((X)>=REDIR_READWRITE && (X)<=REDIR_MERGEIN) || (X)==REDIR_INPIPE)
#define IS_REDIROP(X) ((X)>=OUTANG && (X)<=TRINANG)
/* Flags for input stack */
Messages sorted by:
Reverse Date,
Date,
Thread,
Author