[tex-k] xdvik and gcc14, pull request / bug report on github texlive-source
Karl Berry
karl at freefriends.org
Sat Feb 24 18:41:59 CET 2024
Hi Christopher, Paul, and all - thanks for the patch you posted to fix
another painful pointer discrepancy:
https://github.com/TeX-Live/texlive-source/pull/64
--- a/texk/xdvik/gui/pagesel.c
+++ b/texk/xdvik/gui/pagesel.c
...
- XawListChange(LIST_WIDGET, page_info.page_labels, 0,
+ XawListChange(LIST_WIDGET, (_Xconst char**) page_info.page_labels, 0,
Unfortunately, at least on my system, Rocky Linux 9, the second argument
XawListChange is *not* const. Thus, after applying the patch, I get a
warning (error in gcc14) on my system (using gcc 11.4 here):
gcc -DHAVE_CONFIG_H -I. -I../../../texk/xdvik -I../../../texk/xdvik/gui -DPS_GS -I/home/texlive/karl/Build/source/Work/texk -I/home/texlive/karl/Build/source/texk -I/home/texlive/karl/Build/source/Work/libs/freetype2/freetype2 -g -fno-common -Wdeclaration-after-statement -MT gui/pagesel.o -MD -MP -MF $depbase.Tpo -c -o gui/pagesel.o ../../../texk/xdvik/gui/pagesel.c &&\
mv -f $depbase.Tpo $depbase.Po
./../../texk/xdvik/gui/pagesel.c: In function 'xaw_update_list':
./../../texk/xdvik/gui/pagesel.c:541:32: warning: passing argument 2 of 'XawListChange' from incompatible pointer type [-Wincompatible-pointer-types]
541 | XawListChange(LIST_WIDGET, (_Xconst char**) page_info.page_labels, 0,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The arg is an X11 "String" on my system. From my /usr/includeXaw/List.h:
void XawListChange
(
Widget w,
String *list,
...
I surmise Gentoo, and no doubt others, but evidently not everyone,
changed the X11 String to be const.
Is it still a String on Gentoo? If so, I think we could fix it for all
systems by casting to (String):
--- pagesel.c (revision 70123)
+++ pagesel.c (working copy)
@@ -538,7 +538,7 @@
button_width = get_panel_width() - 2 * (resource.btn_side_spacing + resource.btn_border_width);
/* delete and re-create list */
ASSERT(total_pages <= (int)page_info.index_size, "");
- XawListChange(LIST_WIDGET, page_info.page_labels, 0,
+ XawListChange(LIST_WIDGET, (String *) page_info.page_labels, 0,
MAX(button_width, pagelist_width), False);
/* restore selected item */
if (idx != XAW_LIST_NONE) {
Christopher, does that work on your system? --thanks, karl.
More information about the tex-k
mailing list.