From: gjv%atlas%cesar@crbca1.SINet.SLB.COM
To: rc%hawkwind.utcs.toronto.edu%m_internet%m_mailnow%hermes.DECnet@cesar.
sedalia.sinet.slb.com
Subject: Something for the FAQ ?
Date: Tue, 14 Sep 1993 05:56:23 -0400 [thread overview]
Message-ID: <9309141000.AA20951@SINet.SLB.COM> (raw)
Hello all,
I was just wondering, is there a collection of useful functions somewhere?
I found some in the FAQ and in the mail list archive of course, but I
assume that there are a lot more useful things out there, which could
be made more accessible when added to the FAQ for example. What made me
think of this is the following:
I'm using the prompt function for the initialisation of interactive
subshells, but this makes $status unusable if you aren't careful.
I came up with the following, which seems to work nicely. (init
is a function to initialise the subshell).
fn prompt {
s=$status {
if ( ! ~ $ipid $pid ) {
ipid=$pid
# one time call to init_shell(), initialises interactive subshell
init_shell
}
return $s
}
}
You can't simply save&restore $status, since the assignment to $status
itself would change the status.
I also wrote the next functions in order to be able
to clean up my $path (removing duplicates), or to remove an entry.
# remove(varname, elt) removes elt from $varname
fn remove {
vn=$1 e=$2 o=() *=$$vn{
while( ! ~ $#* 0)
{
~ $*(1) $e || o=($o $*(1) )
shift
}
$vn=$o
}
}
# clean(varname) removes all double entries from $varname, keeping the first
fn clean {
vn=$1 o=() *=$$vn{
while( ! ~ $#* 0)
{
~ $o $*(1) || o=($o $*(1) )
shift
}
$vn=$o
}
}
# example
clean path
remove path /usr/bin
The only thing to add is the support for ':' separated lists,
like MANPATH,FONTPATH,HELPPATH,LD_LIBRARY_PATH which don't have a
list-equivalent like PATH/path.
Thought it might be useful to have this kind of stuff in a place where
it can easily be found, like the FAQ for example.
Gert-Jan
---------------------------------------------------
J.G. Vons E-Mail: vons@cesar.crbca1.sinet.slb.com
reply other threads:[~1993-09-14 9:57 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=9309141000.AA20951@SINet.SLB.COM \
--to=gjv%atlas%cesar@crbca1.sinet.slb.com \
--cc=rc%hawkwind.utcs.toronto.edu%m_internet%m_mailnow%hermes.DECnet@cesar.sedalia.sinet.slb.com \
--cc=vons@cesar.crbca1.sinet.slb.com \
/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.
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).