1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
Fixes up to -std=gnu17
Fixes to signal handler, wrong function types, access to opaque
structs, passing char** to function expecting const char* const*
redeclaration of library functions with wrong signatures
https://bugs.gentoo.org/946129
https://bugs.gentoo.org/946361
--- a/scm.c
+++ b/scm.c
@@ -533,7 +533,7 @@
static void init_sig1(scm_err, signo, handler)
int scm_err;
int signo;
- SIGRETTYPE (*handler)();
+ SIGRETTYPE (*handler)(int);
{
int i = scm_err - SIGNAL_BASE;
ASRTER(i < NUM_SIGNALS, MAKINUM(i), OUTOFRANGE, "init_sig1");
@@ -932,7 +932,6 @@
extern char **environ; /* The Linux man page says this
declaration is necessary. */
char s_getenv[] = "getenv";
-char *getenv();
SCM scm_getenv(nam)
SCM nam;
{
lendwin returns int, it's ignored in the callee of add_final
--- a/crs.c
+++ b/crs.c
@@ -387,5 +387,5 @@
make_subr(s_mvwin, tc7_subr_3, lmvwin);
make_subr(s_box, tc7_subr_3, lbox);
add_feature("curses");
- add_final(lendwin);
+ add_final((void (*)(void))lendwin);
}
--- a/scmmain.c
+++ b/scmmain.c
@@ -86,7 +86,8 @@
const char **argv;
{
char *script_arg = 0; /* location of SCSH style script file or 0. */
- char *implpath = 0, **nargv;
+ char *implpath = 0;
+ const char **nargv;
int nargc, iverbose = 0, buf0stdin;
SCM retval;
/* added by Dai Inukai 2001-03-21 */
@@ -115,7 +116,7 @@
fpspec = fpsetprec(FP_PE); /* IEEE 64 bit FP mantissa*/
#endif
execpath = 0; /* even when dumped */
- if ((nargv = script_process_argv(argc, argv))) { /* SCSH style scripts */
+ if ((nargv = (const char **)script_process_argv(argc, argv))) { /* SCSH style scripts */
script_arg = argv[2]; /* Save for scm_find_execpath() call */
nargc = script_count_argv(nargv);
}
--- a/crs.c
+++ b/crs.c
@@ -250,7 +250,7 @@
if (UNBNDP(arg)) arg = cur_outp;
ASRTER(NIMP(arg) && OPOUTPORTP(arg), arg, ARG1, s_owidth);
if (NIMP(*loc_stdscr)) {
- if (WINP(arg)) return MAKINUM(WIN(arg)->_maxx+1);
+ if (WINP(arg)) return MAKINUM(getmaxx(WIN(arg))+1);
else return MAKINUM(COLS);
}
return MAKINUM(80);
@@ -261,7 +261,7 @@
if (UNBNDP(arg)) arg = cur_outp;
ASRTER(NIMP(arg) && OPOUTPORTP(arg), arg, ARG1, s_owidth);
if (NIMP(*loc_stdscr))
- if (WINP(arg)) return MAKINUM(WIN(arg)->_maxy+1);
+ if (WINP(arg)) return MAKINUM(getmaxy(WIN(arg))+1);
else return MAKINUM(LINES);
return MAKINUM(24);
}
--- a/scm.c
+++ b/scm.c
@@ -154,7 +154,7 @@
/* PROF_SIGNAL appears below because it is the last signal
defined in scm.h and in errmsgs in repl.c */
static struct {
- int signo; SIGRETTYPE (*osig)(); SIGRETTYPE (*nsig)();
+ int signo; SIGRETTYPE (*osig)(int); SIGRETTYPE (*nsig)(int);
} sigdesc[PROF_SIGNAL - SIGNAL_BASE + 1];
#define NUM_SIGNALS (sizeof(sigdesc)/sizeof(sigdesc[0]))
@@ -478,7 +478,7 @@
#endif
#ifdef SIGPIPE
-static SIGRETTYPE (*oldpipe) ();
+static SIGRETTYPE (*oldpipe) (int);
#endif
int case_sensitize_symbols = 0; /* set to 8 to read case-sensitive symbols */
--- a/posix.c
+++ b/posix.c
@@ -191,7 +191,7 @@
ve[ 0] = makfrom0str(entry->gr_name);
ve[ 1] = makfrom0str(entry->gr_passwd);
ve[ 2] = ulong2num((unsigned long)entry->gr_gid);
- ve[ 3] = makfromstrs(-1, entry->gr_mem);
+ ve[ 3] = makfromstrs(-1, (const char * const *)entry->gr_mem);
return ans;
}
SCM l_setgr(arg)
|