Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
3.1.0-test3: gcc -ansi -pedantic
- X-seq: zsh-workers 2431
- From: Thorsten Meinecke <kaefer@xxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxxx
- Subject: 3.1.0-test3: gcc -ansi -pedantic
- Date: Tue, 19 Nov 1996 21:45:51 +0100 (MET)
- Organization: none. Location: Berlin, Germany
Hello, did anyone bother before to build zsh with gcc -ansi -pedantic?
It looks like some of the module-related changes aren't ANSI/ISO C,
and from some of the older stuff it elicits warnings about variable
sized arrays and conversions w/o cast as well. Furthermore, there's
trouble in module.c, because gcc says ANSI forbids assignment between
function pointer and `void *'. Most serious:
../Src> gcc -c -I.. -I. -I. -DHAVE_CONFIG_H -Wall -Wno-implicit \
-Wmissing-prototypes -g -ansi -pedantic zle_main.c
zle_main.c: In function `zleread':
zle_main.c:439: warning: ANSI C forbids use of conditional expressions as lvalues
zle_main.c: In function `unbindzlefunc':
zle_main.c:1257: initializer element for `keybindlist[0]' is not computable at load time
zle_main.c:1257: initializer element for `keybindlist[1]' is not computable at load time
make: *** [zle_main.o] Error 1
I can offer fixes for the error (and the warnings) in the zle_*
module-related code, by introducing yet another level of indirection
to both underlying problems.
*** Src/zle.h 1996/11/19 06:16:34 2.11
--- Src/zle.h 1996/11/19 19:57:02
***************
*** 455,462 ****
* Commands up to, but not including, ZLECMDCOUNT are in the compiled array *
* zlecmds. Anything higher is in the malloc'd array zlecmdadd, so we need *
! * to subtract ZLECMDCOUNT to get the offset. */
! #define ZLEGETCMD(X) ((X) >= ZLECMDCOUNT ? zlecmdadd[(X)-ZLECMDCOUNT] \
! : zlecmds[X])
/* How many new commands to reserve space for at a time */
--- 455,463 ----
* Commands up to, but not including, ZLECMDCOUNT are in the compiled array *
* zlecmds. Anything higher is in the malloc'd array zlecmdadd, so we need *
! * to subtract ZLECMDCOUNT to get the offset. *
! * ZLEGETCMD expands into an expression of the type (struct zlecmd *). */
! #define ZLEGETCMD(X) ((X) >= ZLECMDCOUNT ? &zlecmdadd[(X)-ZLECMDCOUNT] \
! : &zlecmds[X])
/* How many new commands to reserve space for at a time */
*** Src/zle_main.c 1996/11/19 06:16:35 2.30
--- Src/zle_main.c 1996/11/19 19:36:20
***************
*** 437,441 ****
int ce = complexpect;
! zc = &ZLEGETCMD(bindk);
if (!(lastcmd & ZLE_ARG)) {
zmult = 1;
--- 437,441 ----
int ce = complexpect;
! zc = ZLEGETCMD(bindk);
if (!(lastcmd & ZLE_ARG)) {
zmult = 1;
***************
*** 881,885 ****
putc('\n', bindout);
} else
! fprintf(bindout, "%s\n", ZLEGETCMD(k->func).name);
}
--- 881,885 ----
putc('\n', bindout);
} else
! fprintf(bindout, "%s\n", ZLEGETCMD(k->func)->name);
}
***************
*** 954,958 ****
printbind(buf, 1, 1);
}
! printf("\t%s\n", ZLEGETCMD(tab[i]).name);
}
scanhashtable(keybindtab, 1, 0, 0, printbinding, 0);
--- 954,958 ----
printbind(buf, 1, 1);
}
! printf("\t%s\n", ZLEGETCMD(tab[i])->name);
}
scanhashtable(keybindtab, 1, 0, 0, printbinding, 0);
***************
*** 1013,1017 ****
putchar('\n');
} else
! printf("%s\n", ZLEGETCMD(func).name);
zfree(s, len);
return 0;
--- 1013,1017 ----
putchar('\n');
} else
! printf("%s\n", ZLEGETCMD(func)->name);
zfree(s, len);
return 0;
***************
*** 1165,1169 ****
}
else
! fprintf(shout, "%s", ZLEGETCMD(cmd).name);
if (clearflag)
putc('\r', shout), tcmultout(TCUP, TCMULTUP, nlnct);
--- 1165,1169 ----
}
else
! fprintf(shout, "%s", ZLEGETCMD(cmd)->name);
if (clearflag)
putc('\r', shout), tcmultout(TCUP, TCMULTUP, nlnct);
***************
*** 1205,1211 ****
(unset(ALWAYSLASTPROMPT) && zmult != 1);
if (func == z_selfinsert || func == z_undefinedkey)
! fprintf(shout, "%s is on many keys", ZLEGETCMD(func).name);
else {
! fprintf(shout, "%s is", ZLEGETCMD(func).name);
for (i = 0; funcfound < MAXFOUND && i < 256; i++)
if (mainbindtab[i] == func) {
--- 1205,1211 ----
(unset(ALWAYSLASTPROMPT) && zmult != 1);
if (func == z_selfinsert || func == z_undefinedkey)
! fprintf(shout, "%s is on many keys", ZLEGETCMD(func)->name);
else {
! fprintf(shout, "%s is", ZLEGETCMD(func)->name);
for (i = 0; funcfound < MAXFOUND && i < 256; i++)
if (mainbindtab[i] == func) {
***************
*** 1255,1260 ****
int *bindlist[] = { altbindtab, emacs_cur_bindtab, viins_cur_bindtab,
NULL };
! HashTable keybindlist[] = { emkeybindtab, vikeybindtab, NULL };
! HashTable *keybindptr;
PERMALLOC {
--- 1255,1260 ----
int *bindlist[] = { altbindtab, emacs_cur_bindtab, viins_cur_bindtab,
NULL };
! HashTable ktab, **keybindptr;
! HashTable *keybindlist[] = { &emkeybindtab, &vikeybindtab, NULL };
PERMALLOC {
***************
*** 1262,1267 ****
LinkNode ln;
bindremlist = newlinklist();
! if (notall & 3)
! keybindptr = &keybindtab;
/*
--- 1262,1267 ----
LinkNode ln;
bindremlist = newlinklist();
!
! ktab = (notall & 3) ? keybindtab : **keybindptr;
/*
***************
*** 1271,1275 ****
* delete the bindings one by one later.
*/
! scanhashtable(*keybindptr, 0, 0, 0, zerobinding, ifunc);
for (ln = firstnode(bindremlist); ln; incnode(ln)) {
--- 1271,1275 ----
* delete the bindings one by one later.
*/
! scanhashtable(ktab, 0, 0, 0, zerobinding, ifunc);
for (ln = firstnode(bindremlist); ln; incnode(ln)) {
***************
*** 1277,1281 ****
char *s = ztrdup(k->nam);
int sl = strlen(s);
! delprefbinding(*keybindptr, k, s, sl);
zfree(s, sl);
}
--- 1277,1281 ----
char *s = ztrdup(k->nam);
int sl = strlen(s);
! delprefbinding(ktab, k, s, sl);
zfree(s, sl);
}
*** Src/zle_misc.c 1996/11/19 06:16:35 2.31
--- Src/zle_misc.c 1996/11/19 19:24:08
***************
*** 639,643 ****
*ptr = 0;
for (t0 = 0; t0 != zlecmdtot; t0++) {
! struct zlecmd *zc = &ZLEGETCMD(t0);
if (!(zc->flags & ZLE_DELETED)
&& strpfx(buf, zc->name)) {
--- 639,643 ----
*ptr = 0;
for (t0 = 0; t0 != zlecmdtot; t0++) {
! struct zlecmd *zc = ZLEGETCMD(t0);
if (!(zc->flags & ZLE_DELETED)
&& strpfx(buf, zc->name)) {
*** Src/zle_tricky.c 1996/11/19 06:16:36 2.83
--- Src/zle_tricky.c 1996/11/19 19:24:08
***************
*** 3911,3915 ****
return;
}
! t = ZLEGETCMD(bindk).name;
zmult = 1;
pushline();
--- 3911,3915 ----
return;
}
! t = ZLEGETCMD(bindk)->name;
zmult = 1;
pushline();
*** Src/zle_vi.c 1996/11/19 06:16:37 2.12
--- Src/zle_vi.c 1996/11/19 19:24:08
***************
*** 145,149 ****
return -1;
}
! zc = &ZLEGETCMD(k2);
if (!(zc->flags & ZLE_ARG))
break;
--- 145,149 ----
return -1;
}
! zc = ZLEGETCMD(k2);
if (!(zc->flags & ZLE_ARG))
break;
Messages sorted by:
Reverse Date,
Date,
Thread,
Author