zsh-workers
 help / color / mirror / code / Atom feed
From: Zoltan Hidvegi  <hzoli@cs.elte.hu>
To: alex_ramos@wiltel.com
Cc: zsh-workers@math.gatech.edu (zsh-workers)
Subject: Re: accessing full command line
Date: Wed, 6 Sep 1995 18:22:22 +0200 (MET DST)	[thread overview]
Message-ID: <199509061622.SAA02416@bolyai.cs.elte.hu> (raw)
In-Reply-To: <199509061541.AA16330@intruder.wiltel.com> from "Alex Ramos" at Sep 6, 95 10:41:48 am

Alex Ramos wrote:
> > >I would like to know if there is any way (e.g. an undocumented
> > >feature or a source code patch) in zsh to access the full
> > >command line passed to a function or alias. For example, if
> > >'foo' is a function, and I type
> > >
> > >	foo "blah blah $$" $XYZ
> > >
> > >I'd like to (inside 'foo') have access to the string '"blah blah $$" $XYZ'
> > >as it was typed.
> > 
> > No, there's no way.  But if all you want to do is inhibit globbing, you
> > could do
> > 
> > alias foo="noglob foo"
> 
> I would like to inhibit globbing as well as quote removal.
> (never mind that the example implies I'd like to inhibit variable
> interpolation too. It was a poorly chosen example).
> 
> Some may ask, "and why the hell would you want to do THAT?".
> The reason is, I'm trying to use zsh for some "unusual"
> purposes.  For example, I open a co-process to an interactive
> application and use a zsh subshell with a small set of aliases
> and functions to act as a gateway between the user and the
> application, thus providing history, completion, editing, etc
> and allowing a brain-dead application to be useable. (I could
> also use 'vared', but I was told that vared's history feature
> is actually a bug, so I conclude it'll be removed in the future).

In my release I disabled up-history from vared.  This is the desired behaviour
if you use vared to edit a file or a function definition, but I understand
that is may be useful in cases you mention.  It would be very easy to
implement an option controlling this behaviour, and it is much simpler and
cleaner than disabling quote removal.  Presently all I do is setting the
in_vared global variable in builtin.c in function bin_vared() before calling
zleread() and reset it to zero after the call.  If a new option is
introdudced, the only necessary change is to replace the in_vared = 1; line to
in_vared = unset(VARED_HISTORY);.

Below is a trivial patch to hzoli10.3 which implements this option (not tested
too much).

Zoltan

*** 1.28	1995/09/06 16:09:05
--- Src/builtin.c	1995/09/06 16:14:55
***************
*** 3244,3250 ****
      permalloc();
      pushnode(bufstack, ztrdup(s));
      heapalloc();
!     in_vared = 1;
      t = (char *)zleread(p1, p2);
      in_vared = 0;
      if (!t || errflag)
--- 3244,3250 ----
      permalloc();
      pushnode(bufstack, ztrdup(s));
      heapalloc();
!     in_vared = unset(VAREDHISTORY);
      t = (char *)zleread(p1, p2);
      in_vared = 0;
      if (!t || errflag)
*** 1.9	1995/07/24 17:12:46
--- Src/zsh.h	1995/07/07 14:29:00
***************
*** 205,210 ****
--- 205,211 ----
  #define INP_ALIAS	2	/* alias or history mark at end of word */
  #define INP_CONT	4	/* continue onto previously stacked input */
  #define INP_SPACE	8	/* return space after expanded alias */
+ #define INP_OLDSPACE	16	/* internal flag:  INP_SPACE was swallowed */
  
  /* linked list abstract data type */
  
***************
*** 922,927 ****
--- 923,929 ----
  #define CSHJUNKIEHISTORY    '\037'
  #define MAGICEQUALSUBST     '\040'
  #define GLOBSUBST           '\041'
+ #define VAREDHISTORY        '\042'
  #define PROMPTSUBST         '\043'
  #define ALWAYSLASTPROMPT    '\044'
  #define COMPLETEALIASES     '\045'
*** 1.10	1995/07/24 17:12:46
--- Src/globals.h	1995/07/07 14:29:00
***************
*** 703,708 ****
--- 703,709 ----
      {"shwordsplit", SHWORDSPLIT},
      {"singlelinezle", SINGLELINEZLE},
      {"sunkeyboardhack", SUNKEYBOARDHACK},
+     {"varedhistory", VAREDHISTORY},
      {"verbose", VERBOSE},
      {"xtrace", XTRACE},
      {"zle", USEZLE},


       reply	other threads:[~1995-09-06 16:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <199509061541.AA16330@intruder.wiltel.com>
1995-09-06 16:22 ` Zoltan Hidvegi [this message]
1995-09-06 16:48   ` Zoltan Hidvegi
     [not found] <23274.199509061646@stone.dcs.warwick.ac.uk>
1995-09-06 17:07 ` Zoltan Hidvegi

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=199509061622.SAA02416@bolyai.cs.elte.hu \
    --to=hzoli@cs.elte.hu \
    --cc=alex_ramos@wiltel.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).