Hi,
I just started to have a look into screen.
Here is a patch that mainly fixes warnings about
* missing prototypes
* initialized vars that where not used
* some arguments changed from char * to const char *.
I use gcc -D_GNU_SOURCE -Wall -Wmissing-prototypes -Wstrict-prototypes
More patches will follow...
Regards, Tim
diff --git a/src/attacher.c b/src/attacher.c
index 370d594..95cc2f6 100644
--- a/src/attacher.c
+++ b/src/attacher.c
@@ -37,11 +37,18 @@
#include <pwd.h>
+static sigret_t QueryResultSuccess __P(SIGPROTOARG);
+static sigret_t QueryResultFail __P(SIGPROTOARG);
static int WriteMessage __P((int, struct msg *));
+#ifdef POW_DETACH
+static sigret_t AttacherFinitBye __P(SIGPROTOARG);
+#endif
+static sigret_t AttacherSigAlarm __P(SIGPROTOARG);
static sigret_t AttacherSigInt __P(SIGPROTOARG);
#if defined(SIGWINCH) && defined(TIOCGWINSZ)
static sigret_t AttacherWinch __P(SIGPROTOARG);
#endif
+static sigret_t SigStop __P(SIGPROTOARG);
#ifdef LOCK
static sigret_t DoLock __P(SIGPROTOARG);
static void LockTerminal __P((void));
diff --git a/src/braille.c b/src/braille.c
index e12fc8f..d10c3e7 100644
--- a/src/braille.c
+++ b/src/braille.c
@@ -630,7 +630,7 @@ int x, y;
void
BPutStr(la, s, n, r, x, y)
struct layer *la;
-char *s;
+const char *s;
int n;
struct mchar *r;
int x, y;
diff --git a/src/canvas.c b/src/canvas.c
index 0121892..1165538 100644
--- a/src/canvas.c
+++ b/src/canvas.c
@@ -32,6 +32,13 @@
#include "canvas.h"
#include "list_generic.h"
+static void CanvasInitBlank __P((struct canvas *));
+static void FreePerp __P((struct canvas *));
+static int CountCanvas __P((struct canvas *));
+static void cv_winid_fn __P((struct event *, char *));
+static struct canvas **CreateCanvasChainRec __P((struct canvas *, struct canvas **));
+static struct canvas *AddPerp __P((struct canvas *));
+
extern struct display *display;
extern struct win *fore, *windows;
extern struct layer *flayer;
@@ -140,7 +147,7 @@ struct canvas *cv;
free(cv);
}
-int
+static int
CountCanvas(cv)
struct canvas *cv;
{
diff --git a/src/display.c b/src/display.c
index 94c05f1..307e414 100644
--- a/src/display.c
+++ b/src/display.c
@@ -65,6 +65,7 @@ static void RAW_PUTCHAR __P((int));
static void SetBackColor __P((int));
#endif
static void RemoveStatusMinWait __P((void));
+static int PrePutWinMsg __P((char *, int, int));
extern struct layer *flayer;
@@ -1391,7 +1392,7 @@ int xs, ys, xe, ye, n, bce;
{
int i;
int up;
- int oldtop, oldbot;
+ int oldbot;
int alok, dlok, aldlfaster;
int missy = 0;
@@ -1430,7 +1431,6 @@ int xs, ys, xe, ye, n, bce;
if (n >= ye - ys + 1)
n = ye - ys + 1;
- oldtop = D_top;
oldbot = D_bot;
if (ys < D_top || D_bot != ye)
ChangeScrollRegion(ys, ye);
diff --git a/src/extern.h b/src/extern.h
index b8cead4..70b2394 100644
--- a/src/extern.h
+++ b/src/extern.h
@@ -55,7 +55,7 @@ extern void MakeNewEnv __P((void));
extern char *MakeWinMsg __P((char *, struct win *, int));
extern char *MakeWinMsgEv __P((char *, struct win *, int, int, struct event *, int));
extern int AddWinMsgRend __P((const char *, int));
-extern void PutWinMsg __P((char *, int, int));
+extern void PutWinMsg __P((const char *, int, int));
#ifdef BSDWAIT
extern void WindowDied __P((struct win *, union wait, int));
#else
@@ -83,7 +83,7 @@ extern int StartRc __P((char *, int));
extern void FinishRc __P((char *));
extern void RcLine __P((char *, int));
extern FILE *secfopen __P((char *, char *));
-extern int secopen __P((char *, int, int));
+extern int secopen __P((const char *, int, int));
extern void WriteFile __P((struct acluser *, char *, int));
extern char *ReadFile __P((char *, int *));
extern void KillBuffers __P((void));
@@ -126,8 +126,8 @@ extern void Search __P((int));
extern void ISearch __P((int));
/* input.c */
-extern void inp_setprompt __P((char *, char *));
-extern void Input __P((char *, int, int, void (*)(char *, int, char *), char *, int));
+extern void inp_setprompt __P((const char *, char *));
+extern void Input __P((const char *, int, int, void (*)(char *, int, char *), char *, int));
extern int InInput __P((void));
/* help.c */
@@ -379,6 +379,9 @@ extern int AddXChar __P((char *, int));
extern int AddXChars __P((char *, int, char *));
extern void xsetenv __P((char *, char *));
extern void sleep1000 __P((int));
+#ifdef TERMINFO
+extern int _delay __P((int delay, int (*)(int)));
+#endif
#ifdef DEBUG
extern void opendebug __P((int, int));
#endif
@@ -417,7 +420,7 @@ extern void RefreshBraille __P((void));
extern void DoBrailleAction __P((struct action *, int));
extern void BGotoPos __P((struct layer *, int, int));
extern void BPutChar __P((struct layer *, struct mchar *, int, int));
-extern void BPutStr __P((struct layer *, char *, int, struct mchar *, int, int));
+extern void BPutStr __P((struct layer *, const char *, int, struct mchar *, int, int));
extern void BCDisplayLine __P((struct layer *, struct mline *, int, int, int, int));
#endif
@@ -428,8 +431,8 @@ extern void BCDisplayLine __P((struct layer *, struct mline *, int, int, int, i
extern void LGotoPos __P((struct layer *, int, int));
extern void LPutChar __P((struct layer *, struct mchar *, int, int));
extern void LInsChar __P((struct layer *, struct mchar *, int, int, struct mline *));
-extern void LPutStr __P((struct layer *, char *, int, struct mchar *, int, int));
-extern void LPutWinMsg __P((struct layer *, char *, int, struct mchar *, int, int));
+extern void LPutStr __P((struct layer *, const char *, int, struct mchar *, int, int));
+extern void LPutWinMsg __P((struct layer *, const char *, int, struct mchar *, int, int));
extern void LScrollH __P((struct layer *, int, int, int, int, int, struct mline *));
extern void LScrollV __P((struct layer *, int, int, int, int));
extern void LClearAll __P((struct layer *, int));
diff --git a/src/fileio.c b/src/fileio.c
index 88fbf64..f13c519 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -717,7 +717,7 @@ char *mode;
int
secopen(name, flags, mode)
-char *name;
+const char *name;
int flags;
int mode;
{
diff --git a/src/input.c b/src/input.c
index f0f9982..900b6b1 100644
--- a/src/input.c
+++ b/src/input.c
@@ -59,7 +59,7 @@ struct inpdata
{
struct inpline inp;
int inpmaxlen; /* 100, or less, if caller has shorter buffer */
- char *inpstring; /* the prompt */
+ const char *inpstring; /* the prompt */
int inpstringlen; /* length of the prompt */
int inpmode; /* INP_NOECHO, INP_RAW, INP_EVERY */
void (*inpfinfunc) __P((char *buf, int len, char *priv));
@@ -80,6 +80,8 @@ static struct LayFuncs InpLf =
0
};
+static void erase_chars __P((struct inpdata *, char *, char *, int, int));
+
/*
** Here is the input routine
*/
@@ -87,7 +89,8 @@ static struct LayFuncs InpLf =
/* called once, after InitOverlayPage in Input() or Isearch() */
void
inp_setprompt(p, s)
-char *p, *s;
+const char *p;
+char *s;
{
struct inpdata *inpdata;
@@ -121,7 +124,7 @@ char *p, *s;
*/
void
Input(istr, len, mode, finfunc, priv, data)
-char *istr;
+const char *istr;
int len;
int mode;
void (*finfunc) __P((char *buf, int len, char *priv));
diff --git a/src/layer.c b/src/layer.c
index 1ae7972..7398ca4 100644
--- a/src/layer.c
+++ b/src/layer.c
@@ -366,14 +366,14 @@ int x, y;
void
LPutStr(l, s, n, r, x, y)
struct layer *l;
-char *s;
+const char *s;
int n;
struct mchar *r;
int x, y;
{
struct canvas *cv;
struct viewport *vp;
- char *s2;
+ const char *s2;
int xs2, xe2, y2;
if (x + n > l->l_width)
@@ -430,7 +430,7 @@ int x, y;
void
LPutWinMsg(l, s, n, r, x, y)
struct layer *l;
-char *s;
+const char *s;
int n;
struct mchar *r;
int x, y;
@@ -1293,7 +1293,7 @@ int pause;
for (line = layer->l_pause.top; line <= layer->l_pause.bottom; line++)
layer->l_pause.left[line] = layer->l_pause.right[line] = -1;
- olddisplay = display;
+ display = olddisplay;
}
void
diff --git a/src/layout.c b/src/layout.c
index 584abbd..3318452 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -31,6 +31,10 @@
#include "extern.h"
#include "layout.h"
+static void FreeLayoutCv __P((struct canvas *));
+static char *AddLayoutsInfo __P((char *, int, int));
+static void dump_canvas __P((struct canvas *, FILE *));
+
extern struct display *display;
extern int captionalways;
@@ -39,7 +43,7 @@ struct layout *laytab[MAXLAY];
struct layout *layout_last, layout_last_marker;
struct layout *layout_attach = &layout_last_marker;
-void
+static void
FreeLayoutCv(cv)
struct canvas *cv;
{
diff --git a/src/list_window.c b/src/list_window.c
index 2242de9..e03f16a 100644
--- a/src/list_window.c
+++ b/src/list_window.c
@@ -673,14 +673,12 @@ struct canvas *cv;
struct win *p;
{
struct ListData *ldata;
- struct gl_Window_Data *wdata;
if (cv->c_layer->l_layfn != &ListLf)
return;
ldata = cv->c_layer->l_data;
if (ldata->name != ListID)
return;
- wdata = ldata->data;
CV_CALL(cv, WListUpdate(p, ldata));
}
diff --git a/src/logfile.c b/src/logfile.c
index edee89d..884bc3a 100644
--- a/src/logfile.c
+++ b/src/logfile.c
@@ -37,6 +37,7 @@
#include "logfile.h"
static void changed_logfile __P((struct logfile *));
+static int logfile_reopen __P((const char *, int, struct logfile *));
static struct logfile *lookup_logfile __P((char *));
static int stolen_logfile __P((struct logfile *));
@@ -81,7 +82,7 @@ int need_fd, fd;
static int
logfile_reopen(name, wantfd, l)
-char *name;
+const char *name;
int wantfd;
struct logfile *l;
{
@@ -100,7 +101,7 @@ struct logfile *l;
return 0;
}
-static int (* lf_reopen_fn)() = logfile_reopen;
+static int (* lf_reopen_fn)(const char *, int, struct logfile *) = logfile_reopen;
/*
* Whenever logfwrite discoveres that it is required to close and
@@ -116,7 +117,7 @@ static int (* lf_reopen_fn)() = logfile_reopen;
*/
void
logreopen_register(fn)
-int (*fn) __P((char *, int, struct logfile *));
+int (*fn) __P((const char *, int, struct logfile *));
{
lf_reopen_fn = fn ? fn : logfile_reopen;
}
diff --git a/src/logfile.h b/src/logfile.h
index c588a32..bc742c8 100644
--- a/src/logfile.h
+++ b/src/logfile.h
@@ -74,7 +74,7 @@ int logfflush __P((struct logfile *ifany));
* if you provide NULL as parameter to logreopen_register, the builtin
* reopen function will be reactivated.
*/
-void logreopen_register __P((int (*fn) __P((char *, int, struct logfile *)) ));
+void logreopen_register __P((int (*fn) __P((const char *, int, struct logfile *)) ));
/*
* Your custom reopen function is required to reuse the exact
diff --git a/src/nethack.c b/src/nethack.c
index d8ae456..eba8512 100644
--- a/src/nethack.c
+++ b/src/nethack.c
@@ -28,14 +28,15 @@
#include "config.h"
#include "screen.h"
+#include "extern.h"
#ifdef NETHACK
extern int nethackflag;
#endif
struct nlstrans {
- char *from;
- char *to;
+ const char *from;
+ const char *to;
};
#ifdef NETHACK
diff --git a/src/process.c b/src/process.c
index 70e59f3..df9cf53 100644
--- a/src/process.c
+++ b/src/process.c
@@ -123,6 +123,8 @@ extern char *screenencodings;
extern int cjkwidth;
#endif
+static int parse_input_int __P((const char *, int, int *));
+static void StuffFin __P((char *, int, char *));
static int CheckArgNum __P((int, char **));
static void ClearAction __P((struct action *));
static void SaveAction __P((struct action *, int, char **, int *));
@@ -142,6 +144,8 @@ static char **SaveArgs __P((char **));
static int IsNum __P((char *, int));
static void Colonfin __P((char *, int, char *));
static void InputSelect __P((void));
+static void SetenvFin1 __P((char *, int, char *));
+static void SetenvFin2 __P((char *, int, char *));
static void InputSetenv __P((char *));
static void InputAKA __P((void));
#ifdef MULTIUSER
@@ -170,6 +174,8 @@ static void ResizeFin __P((char *, int, char *));
static struct action *FindKtab __P((char *, int));
static void SelectFin __P((char *, int, char *));
static void SelectLayoutFin __P((char *, int, char *));
+static int CalcSlicePercent __P((struct canvas *, int));
+static int ChangeCanvasSize __P((struct canvas *, int, int, int, int));
extern struct layer *flayer;
@@ -427,7 +433,7 @@ static struct digraph digraphs[MAX_DIGRAPH + 1] = {
#define RESIZE_FLAG_V 2
#define RESIZE_FLAG_L 4
-static char *resizeprompts[] = {
+static const char *resizeprompts[] = {
"resize # lines: ",
"resize -h # lines: ",
"resize -v # lines: ",
diff --git a/src/pty.c b/src/pty.c
index def7f93..bdda876 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -252,7 +252,8 @@ OpenPTY(ttyn)
char **ttyn;
{
register int f;
- char *m, *ptsname();
+ char *m;
+ char *ptsname __P((int));
int unlockpt __P((int)), grantpt __P((int));
#if defined(HAVE_GETPT) && defined(linux)
int getpt __P((void));
diff --git a/src/screen.c b/src/screen.c
index b3c85d4..568cb8f 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -143,6 +143,7 @@ char *ShellArgs[2];
extern struct NewWindow nwin_undef, nwin_default, nwin_options;
struct backtick;
+static int __P(lf_secreopen(const char *, int, struct logfile *));
static struct passwd *getpwbyname __P((char *, struct passwd *));
static void SigChldHandler __P((void));
static sigret_t SigChld __P(SIGPROTOARG);
@@ -256,7 +257,7 @@ struct win *console_window;
*/
#include "extern.h"
-char strnomem[] = "Out of memory.";
+const char strnomem[] = "Out of memory.";
static int InterruptPlease;
@@ -264,7 +265,7 @@ static int GotSigChld;
static int
lf_secreopen(name, wantfd, l)
-char *name;
+const char *name;
int wantfd;
struct logfile *l;
{
@@ -2737,14 +2738,13 @@ int rec;
case 'W':
{
struct win *oldfore = 0;
- char *ss;
if (display)
{
oldfore = D_fore;
D_fore = win;
}
- ss = AddWindows(p, l - 1, (*s == 'w' ? 0 : 1) | (longflg ? 0 : 2) | (plusflg ? 4 : 0) | (minusflg ? 8 : 0), win ? win->w_number : -1);
+ AddWindows(p, l - 1, (*s == 'w' ? 0 : 1) | (longflg ? 0 : 2) | (plusflg ? 4 : 0) | (minusflg ? 8 : 0), win ? win->w_number : -1);
if (display)
D_fore = oldfore;
}
@@ -3035,7 +3035,7 @@ int esc;
void
PutWinMsg(s, start, max)
-char *s;
+const char *s;
int start, max;
{
int i, p, l, r, n;
diff --git a/src/screen.h b/src/screen.h
index 5c93f32..8184e43 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -276,7 +276,7 @@ struct msg
#define SILENCE_FOUND 2 /* Window is silent */
#define SILENCE_DONE 3 /* Window is silent and user is notified */
-extern char strnomem[];
+extern const char strnomem[];
/*
* line modes used by Input()
diff --git a/src/socket.c b/src/socket.c
index 940034d..dd50b9a 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -51,6 +51,7 @@
#include "extern.h"
#include "list_generic.h"
+static int CreateTempDisplay __P((struct msg *, int, struct win *));
static int CheckPid __P((int));
static void ExecCreate __P((struct msg *));
static void DoCommandMsg __P((struct msg *));
@@ -61,6 +62,7 @@ static int sconnect __P((int, struct sockaddr *, int));
static void FinishAttach __P((struct msg *));
static void FinishDetach __P((struct msg *));
static void AskPassword __P((struct msg *));
+static char *strncpy_escape_quote __P((char *, const char *,const char *));
extern char *RcFileName, *extra_incap, *extra_outcap;
@@ -78,7 +80,7 @@ extern char *multi;
#endif
extern int maxwin;
-extern char *getenv();
+extern char *getenv(const char *);
extern char SockPath[];
extern struct event serv_read;