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;

Reply via email to