From: Peter Stephenson <pws@csr.com>
To: zsh-workers@sunsite.dk (Zsh hackers list)
Subject: Re: Debugging of dynamocally defined functions
Date: Mon, 09 Jul 2001 11:38:29 +0100 [thread overview]
Message-ID: <Tc0a88d0154a3e9573c@mailsweeper01.cambridgesiliconradio.com> (raw)
In-Reply-To: ""Bart Schaefer""'s message of "Sat, 07 Jul 2001 23:30:10 -0000." <1010707233010.ZM16910@candle.brasslantern.com>
"Bart Schaefer" wrote:
> In another message, PWS said:
> >
> > By the way, you can use the trick of
> >
> > eval "$(which compdef)"
> >
> > to sync the line numbers with the which output. At least I hope so ---
> > if this goes screwy there's a bug in text.c.
>
> No, you can't. This causes all the lines to be numbered zero.
> `zed -f' has the same problem; drives me nuts.
Should we try this patch for the time being? It's a local fix to enable
line numbers any time strings are parsed in a standard fashion (there are
other ways strings can get parsed, but most of the syntactically
significant code such as eval goes through here). If we decide to adopt
this, a lot of other code can go.
This has other side effects. For one thing, `eval' now produces line
numbers in its own context, rather than in the surrounding context. This
is what perl does, so maybe that's OK:
% fn() {
function> print $LINENO
function> print $LINENO
function> eval 'print eval $LINENO'
function> eval 'print eval $LINENO'
function> print $LINENO
function> }
% fn
1
2
eval 1
eval 1
5
Previously, you would get `3' and `4' from the evals. That was the object
of doing it that way. The good news is that `eval "$(which fn)"' works
with the new way.
It's rather messier to turn line numbering on just when you start parsing a
function, but I can have a go at that if it seems useful. However, I
rather suspect that road could get horrendously twisted, and I'd much
rather have it all or nothing.
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.33
diff -u -r1.33 exec.c
--- Src/exec.c 2001/06/27 11:22:05 1.33
+++ Src/exec.c 2001/07/09 10:34:28
@@ -152,6 +152,14 @@
Eprog p;
int oldlineno = lineno;
+#if 1
+ /*
+ * Force line numbering on. If this seems like a good idea,
+ * we can enable it globally, with consequent code simplifications.
+ * But I bet it's not that simple.
+ */
+ ln = 1;
+#endif
lexsave();
inpush(s, (ln ? INP_LINENO : 0), NULL);
strinbeg(0);
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Unit 300, Science Park, Milton Road,
Cambridge, CB4 0XL, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
next prev parent reply other threads:[~2001-07-09 15:24 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-05 5:33 Andrej Borsenkow
2001-07-06 9:56 ` Sven Wischnowsky
2001-07-06 10:22 ` Peter Stephenson
2001-07-07 23:30 ` Bart Schaefer
2001-07-08 22:26 ` Peter Stephenson
2001-07-09 10:38 ` Peter Stephenson [this message]
2001-07-09 14:52 ` Peter Stephenson
2001-07-09 16:30 ` Peter Stephenson
2001-07-09 16:50 ` Bart Schaefer
2001-07-09 17:32 ` Peter Stephenson
2001-07-09 18:24 ` Bart Schaefer
2001-07-09 18:36 ` Peter Stephenson
2001-07-09 19:19 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Tc0a88d0154a3e9573c@mailsweeper01.cambridgesiliconradio.com \
--to=pws@csr.com \
--cc=zsh-workers@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).