From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28489 invoked from network); 8 Jun 2000 07:19:23 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 8 Jun 2000 07:19:23 -0000 Received: (qmail 1538 invoked by alias); 8 Jun 2000 07:19:03 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11814 Received: (qmail 1531 invoked from network); 8 Jun 2000 07:19:01 -0000 Date: Thu, 8 Jun 2000 09:18:59 +0200 (MET DST) Message-Id: <200006080718.JAA18080@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Bart Schaefer"'s message of Wed, 7 Jun 2000 14:42:08 +0000 Subject: PATCH: Re: blah*[TAB] (difference between 3.1.6 and 3.1.9) Bart Schaefer wrote: > On Jun 7, 8:49am, Sven Wischnowsky wrote: > } Subject: Re: blah*[TAB] (difference between 3.1.6 and 3.1.9) > } > } I wrote: > } > } > Bart Schaefer wrote: > } > > } > > Something's definitely gone wrong with expand-or-complete. This was not > } > > intentional. > } > > } > Ahem. Changed in 9777 in reply to 9756 (guess the author). > } > > } > 9777 commented out some stuff in doexpansion(). Change it back? > } > } I want to get that from my todo-list. Should we change it back? Bart > } (9765 was from you)? > > Sorry, I couldn't make up my mind yesterday. > > In 9777 you wrote: > > About the space: this was obviously intentional, too. I've just > > changed the test in doexpansion() so we can go back easily if suddenly > > we decide the old behaviour was better. But what I would really like > > to have is a better test: when do we want the space and when not. > > I think it should add the space only when the expansion results in more > than one word being inserted. The reasoning is that it probably doesn't > make sense to continue completing only the last of several words that > were generated from the same pattern, but if only one word resulted then > it might reasonably be a prefix of a longer completion. Sounds sensible. > The potential issue I see with this is that what a lot of people want is > really expand-AND-complete (not "or"), which makes them think a space > should be appended if the result is an existing plain file, or something > like that. In fact, I used to be one of them; for a long time I had > "setopt recexact" just so that two tabs would expand and then insert a > space rather than expand and then produce a listing (when one file name > is a prefix of another). I've since come to the conclusion that recexact > is almost always more trouble than it is worth. However, that doesn't > help resolve this ... perhaps another style? I don't want to make old completion code use styles, I think (and somehow I seem to want to avoid using styles in C-code, in the hope that one day we'll find a way to more-or-less automatically find used styles). Bye Sven Index: Src/Zle/zle_tricky.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_tricky.c,v retrieving revision 1.13 diff -u -r1.13 zle_tricky.c --- Src/Zle/zle_tricky.c 2000/06/07 08:39:57 1.13 +++ Src/Zle/zle_tricky.c 2000/06/08 07:15:54 @@ -1627,7 +1627,7 @@ static int doexpansion(char *s, int lst, int olst, int explincmd) { - int ret = 1; + int ret = 1, first = 1; LinkList vl; char *ss; @@ -1678,10 +1678,11 @@ if (olst != COMP_EXPAND_COMPLETE || nonempty(vl) || (cs && line[cs-1] != '/')) { #endif - if (nonempty(vl)) { + if (nonempty(vl) || !first) { spaceinline(1); line[cs++] = ' '; } + first = 0; } end: popheap(); -- Sven Wischnowsky wischnow@informatik.hu-berlin.de