zsh-workers
 help / color / mirror / code / Atom feed
From: "Bart Schaefer" <schaefer@brasslantern.com>
To: Zsh Development Workers <zsh-workers@math.gatech.edu>
Subject: Re: How sensible is ... ?
Date: Wed, 13 Jan 1999 08:11:46 -0800	[thread overview]
Message-ID: <990113081146.ZM17374@candle.brasslantern.com> (raw)
In-Reply-To: <19990113102626.A6200@fysh.org>
In-Reply-To: <19990113110951.A6955@fysh.org>
In-Reply-To: <9901131117.AA60050@ibmth.df.unipi.it>
In-Reply-To: <19990113120153.A7542@fysh.org>
In-Reply-To: <9901131245.AA35423@ibmth.df.unipi.it>

Gotta stay up all night to keep up with these discussions nowadays ...

On Jan 13, 10:26am, Phil Pennock wrote:
} Subject: How sensible is ... ?
}
} How good an idea would it be to add a shell-callable context builtin, or
} a shell variable, to tell whether something is being run directly [...]
} the scripts could then be written such that zsh users could autoload
} them and others could run them and get the same effective results.

On Jan 13, 12:17pm, Peter Stephenson wrote:
} Subject: Re: How sensible is ... ?
}
} In this particular case, you don't need it, since return will function
} like exit in a script.

That's 99.9% right. :-)  In zsh, return will function like exit, but in
other shells you just get "return: command not found" or the equivalent.
If you want to write a script that can be executed by sh/bash/ksh and
still be autoloaded by zsh, you need to use something like

	return $? 2>/dev/null || exit $?

On Jan 13, 11:09am, Phil Pennock wrote:
} Subject: Re: How sensible is ... ?
}
} Actually, I've just thought of [[ -o interactive ]] -- always the way.
} 
} Is this a sufficient test?  It /seems/ to work as I want ...

It won't work if you call your function from `zsh -c ...` and possibly
not in a few other cases as well (though that test should always be OK
whenever you have a shell prompt).

On Jan 13, 12:17pm, Peter Stephenson wrote:
} I've thought of a hack which is pretty much guaranteed to work (I
} think):
} 
}   foo=global
}   local foo >/dev/null
}   if [[ $foo = global ]]; then 
}     print At top level
}   else
}     print Inside a function
}   fi
} 
} The nasty bit is the `local foo' which prints the status of $foo if it
} already exists.  I keep thinking we ought to do something about that.

I don't have ksh handy, but `foo=bar;local foo` in bash produces the error
message "bash: local: can only be used in a function" unless you are in a
function, in which case it produces nothing.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


  reply	other threads:[~1999-01-13 16:14 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-01-13 10:26 Phil Pennock
1999-01-13 11:09 ` Phil Pennock
1999-01-13 11:17   ` Peter Stephenson
1999-01-13 12:01     ` Phil Pennock
1999-01-13 12:45       ` Peter Stephenson
1999-01-13 16:11         ` Bart Schaefer [this message]
1999-01-13 17:02           ` Phil Pennock

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=990113081146.ZM17374@candle.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-workers@math.gatech.edu \
    /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).