@@ -58,8 +58,8 @@ static char *watch_default[] = {
"WM_COMMAND",
};
-static String *str_list;
-static int str_count;
+static const char **str_list;
+static int str_count;
static void AddWatch(Display *dpy, Window win, int i);
static void DeleteWatch(Window win);
@@ -306,13 +306,13 @@ cmp(const void *a, const void *b)
static void
RebuildList(void)
{
- static char *empty = "empty";
+ static const char *empty = "empty";
int i;
struct WATCHLIST *this;
if (str_list)
free(str_list);
- str_list = malloc(str_count*sizeof(String));
+ str_list = malloc(str_count*sizeof(*str_list));
for (i=0, this=watchlist; this!=NULL; i++, this=this->next)
str_list[i] = this->text;
qsort(str_list,str_count,sizeof(char*),cmp);
`XawListChange` declares the type of its second parameter as `_Xconst char **`. However, xawtv passes `str_list`, which is declared as `String *`, or `&empty` which is declared as `char *`. With gcc 14, these result in incompatible-pointer errors: x11/propwatch.c: In function 'RebuildList': x11/propwatch.c:319:43: error: passing argument 2 of 'XawListChange' from incompatible pointer type [-Wincompatible-pointer-types] 319 | XawListChange(bl,str_count ? str_list : &empty, | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ | | | char ** In file included from x11/propwatch.c:28: /usr/include/X11/Xaw/List.h:170:27: note: expected 'const char **' but argument is of type 'char **' 170 | _Xconst char **list, | ^ x11/propwatch.c: In function 'ProcessPropertyChange': x11/propwatch.c:498:34: error: passing argument 2 of 'XawListChange' from incompatible pointer type [-Wincompatible-pointer-types] 498 | XawListChange(bl,str_list,str_count,1000,1); | ^~~~~~~~ | | | char ** /usr/include/X11/Xaw/List.h:170:27: note: expected 'const char **' but argument is of type 'char **' 170 | _Xconst char **list, | ^ Both variables are only used as arguments to `XawListChange`, so change their types to match its expectations. Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075650 Signed-off-by: Jeremy Sowden <jeremy@azazel.net> --- x11/propwatch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)