zsh-workers
 help / color / mirror / code / Atom feed
From: Mark Hessling <m.hessling@qut.edu.au>
To: zsh-workers@math.gatech.edu
Subject: Re: Extending zsh capabilities
Date: Thu, 30 Jul 1998 08:59:43 +1000 (EST)	[thread overview]
Message-ID: <Pine.OSF.3.92.980730085244.2150A-100000@pigeon.qut.edu.au> (raw)
In-Reply-To: <199807271213.OAA02354@hydra.ifh.de>

On Mon, 27 Jul 1998, Peter Stephenson wrote:

> Bruce Stephens wrote:
> > > Executing a Rexx program within a current process is straighforward,
> > > I need to call the API function RexxStart() with the filename as one
> > > of the arguments.  The interface is simple; its knowing where to
> > > hook it into zsh that is my biggest problem.
> >
> > How about, as a first cut, writing a builtin "rexx" which would
> > execute a Rexx script?  That could be done as a module (like stat).
>
> I would have thought that was a good place to start; adding additional
> capabilities in modules is very much preferred from the development point
> of view, and makes it much more likely the code would be acceptable in
> the main distribution.  This should be very easy:  just take e.g. stat.c,
> rename everything, and prune it right down so that you just have one
> function bound to the builtin rexx which calls RexxStart on its filename.
>
> What you really then want is for a shell function beginning /* to run Rexx.
> You can do this by sleight of hand.
>
> % fpath=(. $fpath)		# just for convenience in this example
> % alias '/*'='rexx_load $0'
> % cat rexx_load
> local file=$1 dir
> for dir in $fpath; do
>     [[ -f $dir/$file ]] && file=$dir/$file && break
> done
>
> print "Executing $file using Rexx"
>
> # rexx $file
>
> # Now force the calling function to return immediately.
> trap 'return 0' EXIT
> % cat rtest
> /* This is to test rexx_load */
> Rexx commands here
> % autoload rexx_load rtest
> % rtest
> Executing ./rtest using Rexx
>
>
> This works because zsh allows you to alias '/*' which presumably isn't
> going to appear as a command anywhere else.  The other tricky bit is
> the trap in rexx_load which forces its parent (in this case the function
> rtest running under zsh, which you don't want to continue) to return
> immediately, since the EXIT trap is executed in the surrounding context.
>
> You could extend rexx_load so that it redefines rtest to run rexx on
> a series of commands (if e.g. rexx has a -e switch like perl), eliminating
> the intermediate step for subsequent calls.
>
> --
> Peter Stephenson <pws@ifh.de>       Tel: +39 50 844536
> WWW:  http://www.ifh.de/~pws/
> Gruppo Teorico, Dipartimento di Fisica
> Piazza Torricelli 2, 56100 Pisa, Italy
>
Thanks guys. I started to go this way, but got stumped early on.

I downloaded zsh 3.1.3 and am attempting to build it. Unfortunately I
am having problems :-(  I have tried building zsh under HP-UX 9.04 and
Solaris 2.5 and am getting the same errors.  I've even tried replacing
the HP-UX sed with the latest GNU sed, thinking it was a problem with
sed, but that didn't help.

If anyone can help with the following problems, please let me know.
TIA.

................ output from ./configure --enable-dynamic .............

checking whether symbols in the executable are available... (cached) yes
checking whether executables can be stripped... (cached) yes
checking whether libraries can be stripped... (cached) yes
creating ./config.status
creating Makefile
Can't open :Makefile.in
creating Doc/Makefile
Can't open :Doc/Makefile.in
creating Etc/Makefile
Can't open :Etc/Makefile.in
creating Src/Makefile
Can't open :Src/Makefile.in
creating config.h
:config.h.in
cat: cannot open :config.h.in
config.h is unchanged

zsh configuration
-----------------
zsh version               : 3.1.3
...................................................................

With my very limited REGEXP knowledge I made a couple of changes and
got the Makefiles and config.h created.  Then, this is what I got on
the first attempt at make:

$ make
if test D = N; then \
    cat ./xmods.conf > modules-bltin; \
elif test yes != yes; then \
    echo comp1 > modules-bltin; \
else \
    echo > modules-bltin; \
fi
( cd .. && /bin/sh Src/mkmodindex.sh Src ) \
    > modules.index.tmp
Updated `modules.index'.
cd .. && /bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
creating Src/Makemod
Can't open !Src/Makemod.in
make: Fatal error: Don't know how to make target `prep'
Current working directory /home/solaris/mark/zsh-3.1.3/Src
make: Fatal error: Can't find `Makemod': No such file or directory
Current working directory /home/solaris/mark/zsh-3.1.3/Src
*** Error code 1
make: Fatal error: Command failed for target `headers'
Current working directory /home/solaris/mark/zsh-3.1.3/Src
*** Error code 1
make: Fatal error: Command failed for target `all'

Cheers, Mark
------------------------------------------------------------------------
 Mark Hessling                       Email:       M.Hessling@qut.edu.au
 PO Box 203                          http://www.lightlink.com/hessling/
 Bellara                                AUTHOR of  |  MAINTAINER of
 QLD 4507                                 THE      |    PDCurses
 Australia                              Rexx/SQL   |     Regina
                Member of RexxLA: http://www.rexxla.org/
------------------------------------------------------------------------


  reply	other threads:[~1998-07-29 23:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <199807270524.BAA22704@math.gatech.edu>
1998-07-27 10:07 ` Mark Hessling
1998-07-27 11:18   ` Bruce Stephens
1998-07-27 12:13     ` Peter Stephenson
1998-07-29 22:59       ` Mark Hessling [this message]
1998-07-30  8:04         ` Zefram
1998-07-30  8:15         ` Peter Stephenson

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=Pine.OSF.3.92.980730085244.2150A-100000@pigeon.qut.edu.au \
    --to=m.hessling@qut.edu.au \
    --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).