zsh-users
 help / color / mirror / code / Atom feed
From: Ray Andrews <rayandrews@eastlink.ca>
To: zsh-users@zsh.org
Subject: Re: option to show file:line everytime echo is called?
Date: Fri, 13 Jan 2017 16:36:58 -0800	[thread overview]
Message-ID: <72e637a8-ff9b-438e-3dac-d8126ba076bc@eastlink.ca> (raw)
In-Reply-To: <CAM4j=kPc6XtoZesc+ysGOfa64LsuBL6BbKdTK3mjU=4vOpcjQQ@mail.gmail.com>

On 13/01/17 12:32 AM, Timothee Cour wrote:
> turns out Anthony Heading's solution works great (thanks!): alias
> echo2='echo ${(%):-%x:%I}'
I have a function 'varis' that does something similar but it uses 
$LINENO which reports the line number within the function, but I see 
that the above reports the line number within the file which is very 
nice for the obvious reason that if you have several functions defined 
in one file, you don't constantly have to do the arithmetic of the line 
offset from where the function begins in the file.  But I'm curious as 
to how the  above can work, or even how $LINENO works, since, once a 
function is sourced, it exists in it's -- don' t know the correct term 
-- 'cut down' or 'pure' form with no blank lines or comments (I think), 
so how does zsh know/remember what the function looks like in the 
original file?  Does it go back and check when the above is used or does 
it have some way of remembering? That doesn't seem reasonable, still it 
works perfectly.

Way down in some file:

    xx ()
    {

         jjunk="This is jjunk"



         varis jjunk
         echo ${(%):-%x:%I}

    }

    $ xx
    xx, line 7:  evaluated: "$jjunk" is: |This is jjunk|
    ./varis:91


... so the 'echo' knows the true line number and the name of the file 
vs. knowing the name of the function and the line within the function.  
Nice to have both available!


  reply	other threads:[~2017-01-14  1:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20170110091259epcas5p14d052ee1dc7ebb5c4dd74e4aa02a8d18@epcas5p1.samsung.com>
2017-01-09 23:55 ` Timothee Cour
2017-01-10  9:30   ` Peter Stephenson
2017-01-10 11:22     ` Timothee Cour
2017-01-10 12:28       ` Peter Stephenson
     [not found]     ` <CANri+EwT3h8MkpeKSd-9_QLp9S=TEibmSgjS3r9mv0jY46dQAw__39244.7733007886$1484262699$gmane$org@mail.gmail.com>
2017-01-13  3:57       ` Daniel Shahaf
2017-01-13  7:57         ` Bart Schaefer
2017-01-13  8:06           ` Bart Schaefer
2017-01-13  8:31             ` Timothee Cour
2017-01-13  8:32             ` Timothee Cour
2017-01-14  0:36               ` Ray Andrews [this message]
2017-01-14 16:58               ` Bart Schaefer
     [not found]         ` <alpine.LRH.2.00.1701122304500.4560__6317.49331155351$1484294388$gmane$org@toltec.zanshin.com>
2017-01-13 14:52           ` Daniel Shahaf
2017-01-10 12:30   ` Anthony Heading
2017-01-10 12:50     ` Timothee Cour
2017-01-10 17:12     ` Ray Andrews
     [not found]     ` <8ed3897d-82d3-5c5f-f2c1-5382e311e931__1904.16159243814$1484070246$gmane$org@eastlink.ca>
2017-01-10 18:17       ` Daniel Shahaf
2017-01-12  2:25         ` Timothee Cour
2017-01-12  4:33           ` Anthony Heading

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=72e637a8-ff9b-438e-3dac-d8126ba076bc@eastlink.ca \
    --to=rayandrews@eastlink.ca \
    --cc=zsh-users@zsh.org \
    /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).