From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29530 invoked from network); 8 Feb 1999 17:39:16 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 8 Feb 1999 17:39:16 -0000 Received: (qmail 17384 invoked by alias); 8 Feb 1999 17:38:45 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 5325 Received: (qmail 17360 invoked from network); 8 Feb 1999 17:38:06 -0000 From: "Bart Schaefer" Message-Id: <990208093740.ZM14060@candle.brasslantern.com> Date: Mon, 8 Feb 1999 09:37:40 -0800 In-Reply-To: <199902081217.NAA27404@beta.informatik.hu-berlin.de> Comments: In reply to Sven Wischnowsky "Re: compadd -r" (Feb 8, 1:17pm) References: <199902081217.NAA27404@beta.informatik.hu-berlin.de> X-Mailer: Z-Mail (4.0b.820 20aug96) To: Sven Wischnowsky , zsh-workers@sunsite.auc.dk Subject: Re: compadd -r MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Feb 8, 1:17pm, Sven Wischnowsky wrote: } Subject: Re: compadd -r } } Bart Schaefer wrote: } } > How about this: For the simple case (remove the whole suffix, which I } > suspect is the most common by far) stick with something like `-r '. } > For complex cases, let the user give the name of a user-defined function } > that is called as a callback as if it were a ZLE widget, that is, with } > LBUFFER and RBUFFER etc. writable, and with the keystrokes that caused } > it to be called also available somewhere. } } The easiest way to do this is to add a function-pointer-variable in } the zle module that will be called whenever zle thinks that a suffix } should be removed. The completion module sets this variable whenever } it needs it to the address of a function that calls the given shell } function. Isn't this more complicated than necessary? Why couldn't it be the same function pointer every time? All it has to do is the equivalent of zle user-defined-widget } This is easy to implement, but somehow I think that we probably should } take this as an example for a more gerneral problem (calling functions } in sub-modules from modules they depend upon), and solve that one. Eh? There isn't any such dependency here, is there? The compctl module already depends on zle, and it's calling a function in zle. } What I'm thinking about is some kind of hook-mechanism. Giving modules } the possibility to register functions that should be called whenever } some event happens. This is, in effect, what the "wrappers" already are. } By making the description of the hooks contain a `char *name' this } could also easily exposed to user level to let users register shell } function to be executed when a hook is run. The builtin to control } this could be added in a separate module, of course. Have you finished reimplementing emacs yet? -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com