Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: typeset -r bug.
- X-seq: zsh-workers 12040
- From: Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx (Zsh hackers list)
- Subject: PATCH: typeset -r bug.
- Date: Thu, 22 Jun 2000 21:53:06 +0100
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
I know you'll be too amazed to take this in, but there's a bug in typeset.
% foo='Perfectly ordinary parameter minding its own business'
% typeset -r foo='Readonly parameter, but only after typeset has finished'
zsh: read-only variable: foo
The readonly flag was assigned too early.
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.23
diff -u -r1.23 builtin.c
--- Src/builtin.c 2000/06/12 09:27:09 1.23
+++ Src/builtin.c 2000/06/22 20:51:37
@@ -1622,7 +1622,7 @@
arrfixenv(pm->nam, x);
}
}
- pm->flags = (pm->flags | on) & ~(off | PM_UNSET);
+ pm->flags = (pm->flags | (on & ~PM_READONLY)) & ~(off | PM_UNSET);
/* This auxlen/pm->ct stuff is a nasty hack. */
if ((on & (PM_LEFT | PM_RIGHT_B | PM_RIGHT_Z | PM_INTEGER |
PM_EFLOAT | PM_FFLOAT)) &&
@@ -1643,6 +1643,7 @@
zwarnnam(cname, "can't assign new value for array %s", pname, 0);
return NULL;
}
+ pm->flags |= (on & PM_READONLY);
return pm;
}
--
Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxx>
Work: pws@xxxxxxxxxxxxxxxxxxxxxxxxx
Web: http://www.pwstephenson.fsnet.co.uk
Messages sorted by:
Reverse Date,
Date,
Thread,
Author