* Re: 3.1.6 bug in NextStep/OpenStep 4.2
@ 1999-08-27 7:13 Sven Wischnowsky
1999-08-27 14:27 ` Brian Boonstra
0 siblings, 1 reply; 4+ messages in thread
From: Sven Wischnowsky @ 1999-08-27 7:13 UTC (permalink / raw)
To: zsh-workers
Brian Boonstra wrote:
> ...
>
> However, completion is not quite right. In particular, if I run
> either the usual binary, I get completion with extra "2" characters, like
> this:
>
> wo1203 % ls ../co /tmp/zsh/zsh-3.1.6/Src
> Completion/ 2 2config.guess* 2 2config.log 2 2configure* 2
> Config/ 2 2config.h 2 2config.status*2 2configure.in 2
> config.cache 2 2config.h.in 2 2config.sub* 2 2 2
I don't know about the other things, but I guess this is the same
problem mentioned by Brien Harvell (in 7443), only that he got `$<2>'
instead of the `2'.
To repeat: I think this is caused by the complist code. It prints the
termcap string for `%s' (standout off) at those places. What irritated
me is that `print -P "%s"' didn't give him those `$<2>' strings.
I then suggested the patch in 7455 (which is appended below for your
convenience), but got no reply from him after that, so I don't know if
it fixes the problem (I guess not).
Otherwise, I can only suspect a broken term{cap,info} entry, but then
you would have noticed that before, I think.
So it boils down to: I don't really know where the problem is but I'd
really like to fix it. Anyone have any ideas about this?
Bye
Sven
diff -u os/Zle/complist.c Src/Zle/complist.c
--- os/Zle/complist.c Thu Aug 19 16:00:04 1999
+++ Src/Zle/complist.c Fri Aug 20 10:14:29 1999
@@ -194,13 +194,17 @@
}
}
+/* Combined length of LC and RC, maximum length of capability strings. */
+
+static int lr_caplen, max_caplen;
+
/* This initializes the given terminal color structure. */
static void
getcols(Listcols c)
{
char *s;
- int i;
+ int i, l;
if (!(s = getsparam("ZLS_COLORS")) &&
!(s = getsparam("ZLS_COLOURS"))) {
@@ -222,9 +226,15 @@
s = getcoldef(c, s);
/* Use default values for those that aren't set explicitly. */
- for (i = 0; i < NUM_COLS; i++)
+ max_caplen = lr_caplen = 0;
+ for (i = 0; i < NUM_COLS; i++) {
if (!c->cols[i])
c->cols[i] = defcols[i];
+ if ((l = (c->cols[i] ? strlen(c->cols[i]) : 0)) > max_caplen)
+ max_caplen = l;
+ }
+ lr_caplen = strlen(c->cols[COL_LC]) + strlen(c->cols[COL_RC]);
+
/* Default for missing files. */
if (!c->cols[COL_MI])
c->cols[COL_MI] = c->cols[COL_FI];
@@ -235,14 +245,24 @@
static int last_col = COL_NO;
static void
+zlrputs(Listcols c, char *cap)
+{
+ VARARR(char, buf, lr_caplen + max_caplen + 1);
+
+ strcpy(buf, c->cols[COL_LC]);
+ strcat(buf, cap);
+ strcat(buf, c->cols[COL_RC]);
+
+ tputs(buf, 1, putshout);
+}
+
+static void
zcputs(Listcols c, int colour)
{
if (colour != last_col
&& (last_col < COL_NO
|| strcmp(c->cols[last_col], c->cols[colour]))) {
- fputs(c->cols[COL_LC], shout);
- fputs(c->cols[colour], shout);
- fputs(c->cols[COL_RC], shout);
+ zlrputs(c, c->cols[colour]);
last_col = colour;
}
return;
@@ -260,11 +280,9 @@
for (e = c->exts; e; e = e->next)
if (strsfx(e->ext, n)) { /* XXX: unoptimised if used */
if (last_col < COL_NO
- || strcmp(c->cols[last_col], e->col)) {
- fputs(c->cols[COL_LC], shout);
- fputs(e->col, shout);
- fputs(c->cols[COL_RC], shout);
- }
+ || strcmp(c->cols[last_col], e->col))
+ zlrputs(c, e->col);
+
last_col = COL_NO - 1;
return;
}
@@ -565,7 +583,7 @@
while (a--)
putc(' ', shout);
if (col.cols[COL_EC])
- fputs(col.cols[COL_EC], shout);
+ tputs(col.cols[COL_EC], 1, putshout);
else
zcputs(&col, COL_NO);
break;
@@ -614,14 +632,14 @@
while (a--)
putc(' ', shout);
if (col.cols[COL_EC])
- fputs(col.cols[COL_EC], shout);
+ tputs(col.cols[COL_EC], 1, putshout);
else
zcputs(&col, COL_NO);
if (i) {
zcputs(&col, COL_NO);
fputs(" ", shout);
if (col.cols[COL_EC])
- fputs(col.cols[COL_EC], shout);
+ tputs(col.cols[COL_EC], 1, putshout);
else
zcputs(&col, COL_NO);
}
@@ -636,7 +654,7 @@
while (a--)
putc(' ', shout);
if (col.cols[COL_EC])
- fputs(col.cols[COL_EC], shout);
+ tputs(col.cols[COL_EC], 1, putshout);
else
zcputs(&col, COL_NO);
}
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 3.1.6 bug in NextStep/OpenStep 4.2
1999-08-27 7:13 3.1.6 bug in NextStep/OpenStep 4.2 Sven Wischnowsky
@ 1999-08-27 14:27 ` Brian Boonstra
1999-08-27 19:37 ` NEW BUG: " Brian Boonstra
0 siblings, 1 reply; 4+ messages in thread
From: Brian Boonstra @ 1999-08-27 14:27 UTC (permalink / raw)
To: zsh-workers; +Cc: luomat
Hi Sven (and all)
I applied the patch (in 7513 and 7455) and it fixed the problem
perfectly! Similarly to what Brian H. saw, `print -P "%s"' was not giving me
any extraneous characters.
For the benefit of those joining late, in order to get zsh 3.1.6 to
compile on OpenStep, you also need the patch from 2372.
BTW, Sven, this is especially welcome on OpenStep/NextStep, because
the Terminal application supplied by them is so darn good that few people
ever use anything else. And it does only vt100.
Thanks,
Brian
Sven Wischnowsky wrote:
> Brian Boonstra wrote:
> > However, completion is not quite right. In particular, if I run
> > either the usual binary, I get completion with extra "2" characters, like
> > this:
> I don't know about the other things, but I guess this is the same
> problem mentioned by Brien Harvell (in 7443), only that he got `$<2>'
> instead of the `2'.
>
> To repeat: I think this is caused by the complist code. It prints the
> termcap string for `%s' (standout off) at those places. What irritated
> me is that `print -P "%s"' didn't give him those `$<2>' strings.
>
> I then suggested the patch in 7455 (which is appended below for your
> convenience), but got no reply from him after that, so I don't know if
> it fixes the problem (I guess not).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: NEW BUG: 3.1.6 bug in NextStep/OpenStep 4.2
1999-08-27 14:27 ` Brian Boonstra
@ 1999-08-27 19:37 ` Brian Boonstra
1999-08-27 19:48 ` Brian Boonstra
0 siblings, 1 reply; 4+ messages in thread
From: Brian Boonstra @ 1999-08-27 19:37 UTC (permalink / raw)
To: zsh-workers
Hi Folks
Well, I have a compilation that runs, and completion works well.
But now I notice that the terminal hangs after I perform any kind of command
except shell builtins. For example, "ls", "df", and "finger" all hang after
their output, whereas "echo" and "alias" do not hang.
Note that this has nothing to do with the patch Sven supplied to fix
complist.c. I have applied one other set of patches, though, namely the
ones found here:
http://www.zsh.org/mla/workers//1999/msg02372.html
I doubt they are at fault, since they only patch the necessary (for
me) third argument onto fcntl in utils.c and init.c.
I tried compiling a debug version, but that version always gives a
Bus Error on the first keystroke, so I'm afraid I can't be more specific.
Anybody have ideas?
Regards,
Brian
Brian Boonstra wrote:
> I applied the patch (in 7513 and 7455) and it fixed the problem
> perfectly! Similarly to what Brian H. saw, `print -P "%s"' was not giving
> me any extraneous characters.
>
> For the benefit of those joining late, in order to get zsh 3.1.6 to
> compile on OpenStep, you also need the patch from 2372.
>
> ...
>
> Sven Wischnowsky wrote:
> > Brian Boonstra wrote:
> > I don't know about the other things, but I guess this is the same
> > problem mentioned by Brien Harvell (in 7443), only that he got `$<2>'
> > instead of the `2'.
> >
> > To repeat: I think this is caused by the complist code. It prints the
> > termcap string for `%s' (standout off) at those places. What irritated
> > me is that `print -P "%s"' didn't give him those `$<2>' strings.
> >
> > I then suggested the patch in 7455 (which is appended below for your
> > convenience), but got no reply from him after that, so I don't know if
> > it fixes the problem (I guess not).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: NEW BUG: 3.1.6 bug in NextStep/OpenStep 4.2
1999-08-27 19:37 ` NEW BUG: " Brian Boonstra
@ 1999-08-27 19:48 ` Brian Boonstra
0 siblings, 0 replies; 4+ messages in thread
From: Brian Boonstra @ 1999-08-27 19:48 UTC (permalink / raw)
To: zsh-workers
Hi
> Note that this has nothing to do with the patch Sven supplied to fix
> complist.c
I forgot to mention that the reason I know this is that I purposely
compiled a version without Sven's patch. The completion bug was back (as
expected) and the hanging bug was there as well.
- Brian
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~1999-08-27 19:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-08-27 7:13 3.1.6 bug in NextStep/OpenStep 4.2 Sven Wischnowsky
1999-08-27 14:27 ` Brian Boonstra
1999-08-27 19:37 ` NEW BUG: " Brian Boonstra
1999-08-27 19:48 ` Brian Boonstra
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).