Fix:

error: call to undeclared function 'atoi'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
error: call to undeclared library function 'abs' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
error: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
error: call to undeclared library function 'malloc' with type 'void *(unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
error: parameter 'argc' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
error: parameter 'screen' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
warning: non-void function does not return a value [-Wreturn-type]
warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
--- unclutter.c.orig	1994-04-11 10:40:47.000000000 -0500
+++ unclutter.c	2023-09-03 05:05:57.000000000 -0500
@@ -24,14 +24,15 @@
 #include <X11/Xutil.h>
 #include <X11/Xproto.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include "vroot.h"
 
 char *progname;
-pexit(str)char *str;{
+void pexit(char *str) {
     fprintf(stderr,"%s: %s\n",progname,str);
     exit(1);
 }
-usage(){
+void usage(void) {
     pexit("usage:\n\
 	-display <display>\n\
 	-idle <seconds>		time between polls to detect idleness.\n\
@@ -57,13 +58,12 @@
  * window can disappear while we are trying to create the child. Trap and
  * ignore these errors.
  */
-int (*defaulthandler)();
-int errorhandler(display,error)
-Display *display;
-XErrorEvent *error;
+int (*defaulthandler)(Display *, XErrorEvent *);
+int errorhandler(Display *display, XErrorEvent *error)
 {
     if(error->error_code!=BadWindow)
 	(*defaulthandler)(display,error);
+    return 0;
 }
 
 char **names;	/* -> argv list of names to avoid */
@@ -72,9 +72,7 @@
  * return true if window has a wm_name and the start of it matches
  * one of the given names to avoid
  */
-nameinlist(display,window)
-Display *display;
-Window window;
+int nameinlist(Display *display, Window window)
 {
     char **cpp;
     char *name;
@@ -93,9 +91,7 @@
 /*
  * create a small 1x1 curssor with all pixels masked out on the given screen.
  */
-createnullcursor(display,root)
-Display *display;
-Window root;
+Cursor createnullcursor(Display *display, Window root)
 {
     Pixmap cursormask;
     XGCValues xgc;
@@ -117,7 +113,7 @@
     return cursor;
 }
 
-main(argc,argv)char **argv;{
+int main(int argc, char **argv) {
     Display *display;
     int screen,oldx = -99,oldy = -99,numscreens;
     int doroot = 0, jitter = 0, idletime = 5, usegrabmethod = 0, waitagain = 0,
--- vroot.h.orig	1991-08-02 11:13:54.000000000 -0500
+++ vroot.h	2023-09-03 05:05:57.000000000 -0500
@@ -38,8 +38,7 @@
 #include <X11/Xatom.h>
 
 static Window
-VirtualRootWindow(dpy, screen)
-Display *dpy;
+VirtualRootWindow(Display *dpy, int screen)
 {
 	static Display *save_dpy = (Display *)0;
 	static int save_screen = -1;
