diff --git a/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch b/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch new file mode 100644 index 0000000..4d4787b --- /dev/null +++ b/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch @@ -0,0 +1,182 @@ +From bc78541e9a9a95bbd5413d62bfc114ddc9265c36 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Sat, 5 May 2018 11:26:17 -0700 +Subject: [PATCH 1/2] Convert tabs to spaces in StrToWidg.c + +Signed-off-by: Alan Coopersmith +--- + src/StrToWidg.c | 106 ++++++++++++++++++++++++------------------------ + 1 file changed, 53 insertions(+), 53 deletions(-) + +diff --git a/src/StrToWidg.c b/src/StrToWidg.c +index c22b827..6aace95 100644 +--- a/src/StrToWidg.c ++++ b/src/StrToWidg.c +@@ -53,7 +53,7 @@ in this Software without prior written authorization from The Open Group. + /*ARGSUSED*/ + void + XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, +- XrmValuePtr fromVal, XrmValuePtr toVal) ++ XrmValuePtr fromVal, XrmValuePtr toVal) + { + static Widget widget, *widgetP, parent; + XrmName name = XrmStringToName(fromVal->addr); +@@ -61,55 +61,55 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + + if (*num_args != 1) + { +- i = 0; +- XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", +- "StringToWidget conversion needs parent arg", NULL, &i); ++ i = 0; ++ XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", ++ "StringToWidget conversion needs parent arg", NULL, &i); + } + + parent = *(Widget*)args[0].addr; + /* try to match names of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { +- widget = *widgetP; +- done(&widget, Widget); +- } +- } ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i; i--, widgetP++) ++ if ((*widgetP)->core.xrm_name == name) ++ { ++ widget = *widgetP; ++ done(&widget, Widget); ++ } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + if ((*widgetP)->core.xrm_name == name) + { +- widget = *widgetP; +- done(&widget, Widget); +- } ++ widget = *widgetP; ++ done(&widget, Widget); ++ } + + /* try to match classes of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { +- widget = *widgetP; +- done(&widget, Widget); +- } +- } ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i; i--, widgetP++) ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ { ++ widget = *widgetP; ++ done(&widget, Widget); ++ } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + if ((*widgetP)->core.widget_class->core_class.xrm_class == name) + { +- widget = *widgetP; +- done(&widget, Widget); +- } ++ widget = *widgetP; ++ done(&widget, Widget); ++ } + + XtStringConversionWarning(fromVal->addr, XtRWidget); + toVal->addr = NULL; +@@ -118,47 +118,47 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + + #undef done + +-#define newDone(type, value) \ +- { \ +- if (toVal->addr != NULL) { \ +- if (toVal->size < sizeof(type)) { \ +- toVal->size = sizeof(type); \ +- return False; \ +- } \ +- *(type*)(toVal->addr) = (value); \ +- } \ +- else { \ +- static type static_val; \ +- static_val = (value); \ +- toVal->addr = (XtPointer)&static_val; \ +- } \ +- toVal->size = sizeof(type); \ +- return True; \ +- } ++#define newDone(type, value) \ ++ { \ ++ if (toVal->addr != NULL) { \ ++ if (toVal->size < sizeof(type)) { \ ++ toVal->size = sizeof(type); \ ++ return False; \ ++ } \ ++ *(type*)(toVal->addr) = (value); \ ++ } \ ++ else { \ ++ static type static_val; \ ++ static_val = (value); \ ++ toVal->addr = (XtPointer)&static_val; \ ++ } \ ++ toVal->size = sizeof(type); \ ++ return True; \ ++ } + + + /*ARGSUSED*/ + Boolean + XmuNewCvtStringToWidget(Display *dpy, XrmValue *args, Cardinal *num_args, +- XrmValue *fromVal, XrmValue *toVal, +- XtPointer *converter_data) ++ XrmValue *fromVal, XrmValue *toVal, ++ XtPointer *converter_data) + { + Widget *widgetP, parent; + XrmName name = XrmStringToName(fromVal->addr); + int i; + + if (*num_args != 1) +- XtAppWarningMsg(XtDisplayToApplicationContext(dpy), +- "wrongParameters","cvtStringToWidget","xtToolkitError", +- "String To Widget conversion needs parent argument", +- (String *)NULL, (Cardinal *)NULL); ++ XtAppWarningMsg(XtDisplayToApplicationContext(dpy), ++ "wrongParameters","cvtStringToWidget","xtToolkitError", ++ "String To Widget conversion needs parent argument", ++ (String *)NULL, (Cardinal *)NULL); + + parent = *(Widget*)args[0].addr; + /* try to match names of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; + i; i--, widgetP++) + if ((*widgetP)->core.xrm_name == name) + newDone(Widget, *widgetP); +-- +2.17.1 + diff --git a/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch b/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch new file mode 100644 index 0000000..8095d4f --- /dev/null +++ b/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch @@ -0,0 +1,33 @@ +From 22d9c590901e121936f50dee97dc60c4f7defb63 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Mon, 2 Dec 2013 13:00:05 -0800 +Subject: [PATCH] ShapeEllipseOrRoundedRectangle: Check height AND width, not + width twice + +Fixed to match check in ShapeOval() +https://bugs.freedesktop.org/show_bug.cgi?id=72245 + +Fixes cppcheck warning: +[ShapeWidg.c:204]: (style) Same expression on both sides of '||'. + +Signed-off-by: Alan Coopersmith +--- + src/ShapeWidg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ShapeWidg.c b/src/ShapeWidg.c +index 32388ee..3ca7116 100644 +--- a/src/ShapeWidg.c ++++ b/src/ShapeWidg.c +@@ -201,7 +201,7 @@ ShapeEllipseOrRoundedRectangle(Widget w, Bool ellipse, int ew, int eh) + GC gc; + unsigned long mask; + +- if (width < 3 || width < 3) ++ if (width < 3 || height < 3) + return; + width += w->core.border_width << 1; + height += w->core.border_width << 1; +-- +2.17.1 + diff --git a/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch b/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch new file mode 100644 index 0000000..41e502e --- /dev/null +++ b/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch @@ -0,0 +1,241 @@ +From 5bd4eb821bd9e88c3a131de9a8b781f5184e22b1 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Sat, 5 May 2018 11:32:12 -0700 +Subject: [PATCH 2/2] Apply standard X.Org formatting & bracketing to + StrToWidg.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Makes code easier for humans to read and gets rid of gcc warning: + +StrToWidg.c: In function ‘XmuCvtStringToWidget’: +StrToWidg.c:107:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation] + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + ^~~ +StrToWidg.c:114:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’ + XtStringConversionWarning(fromVal->addr, XtRWidget); + ^~~~~~~~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Alan Coopersmith +--- + src/StrToWidg.c | 150 ++++++++++++++++++++++++------------------------ + 1 file changed, 74 insertions(+), 76 deletions(-) + +diff --git a/src/StrToWidg.c b/src/StrToWidg.c +index 6aace95..b6288d4 100644 +--- a/src/StrToWidg.c ++++ b/src/StrToWidg.c +@@ -59,57 +59,54 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + XrmName name = XrmStringToName(fromVal->addr); + Cardinal i; + +- if (*num_args != 1) +- { ++ if (*num_args != 1) { + i = 0; + XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", + "StringToWidget conversion needs parent arg", NULL, &i); + } + +- parent = *(Widget*)args[0].addr; ++ parent = *(Widget *) args[0].addr; + /* try to match names of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) { + widget = *widgetP; + done(&widget, Widget); + } + } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) { + widget = *widgetP; + done(&widget, Widget); + } ++ } + + /* try to match classes of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) { + widget = *widgetP; + done(&widget, Widget); + } + } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) { + widget = *widgetP; + done(&widget, Widget); + } ++ } + + XtStringConversionWarning(fromVal->addr, XtRWidget); + toVal->addr = NULL; +@@ -149,77 +146,78 @@ XmuNewCvtStringToWidget(Display *dpy, XrmValue *args, Cardinal *num_args, + + if (*num_args != 1) + XtAppWarningMsg(XtDisplayToApplicationContext(dpy), +- "wrongParameters","cvtStringToWidget","xtToolkitError", ++ "wrongParameters", "cvtStringToWidget", ++ "xtToolkitError", + "String To Widget conversion needs parent argument", +- (String *)NULL, (Cardinal *)NULL); ++ (String *) NULL, (Cardinal *) NULL); + +- parent = *(Widget*)args[0].addr; ++ parent = *(Widget *) args[0].addr; + /* try to match names of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- newDone(Widget, *widgetP); +- } ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) ++ newDone(Widget, *widgetP); ++ } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- newDone(Widget, *widgetP); ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) ++ newDone(Widget, *widgetP); ++ } + + /* try to match classes of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- newDone(Widget, *widgetP); +- } ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ newDone(Widget, *widgetP); ++ } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- newDone(Widget, *widgetP); ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ newDone(Widget, *widgetP); ++ } + +- XtDisplayStringConversionWarning(dpy, (String)fromVal->addr, XtRWidget); +- return (False); ++ XtDisplayStringConversionWarning(dpy, (String) fromVal->addr, XtRWidget); ++ return (False); + } + + /*ARGSUSED*/ + Boolean + XmuCvtWidgetToString(Display *dpy, XrmValuePtr args, Cardinal *num_args, +- XrmValuePtr fromVal, XrmValuePtr toVal, +- XtPointer *data) ++ XrmValuePtr fromVal, XrmValuePtr toVal, XtPointer *data) + { +- static String buffer; +- Cardinal size; +- Widget widget; +- +- widget = *(Widget *)fromVal->addr; +- +- if (widget) +- buffer = XrmQuarkToString(widget->core.xrm_name); +- else +- buffer = "(null)"; +- +- size = strlen(buffer) + 1; +- if (toVal->addr != NULL) +- { +- if (toVal->size < size) +- { +- toVal->size = size; +- return (False); +- } +- strcpy((char *)toVal->addr, buffer); ++ static String buffer; ++ Cardinal size; ++ Widget widget; ++ ++ widget = *(Widget *) fromVal->addr; ++ ++ if (widget) ++ buffer = XrmQuarkToString(widget->core.xrm_name); ++ else ++ buffer = "(null)"; ++ ++ size = strlen(buffer) + 1; ++ if (toVal->addr != NULL) { ++ if (toVal->size < size) { ++ toVal->size = size; ++ return (False); ++ } ++ strcpy((char *) toVal->addr, buffer); ++ } ++ else { ++ toVal->addr = (XPointer) buffer; + } +- else +- toVal->addr = (XPointer)buffer; +- toVal->size = sizeof(String); ++ toVal->size = sizeof(String); + +- return (True); ++ return (True); + } +-- +2.17.1 + diff --git a/libXmu.spec b/libXmu.spec index 5dd1e72..c2ec735 100644 --- a/libXmu.spec +++ b/libXmu.spec @@ -3,13 +3,17 @@ Summary: X.Org X11 libXmu/libXmuu runtime libraries Name: libXmu Version: 1.1.2 -Release: 11%{?dist} +Release: 12%{?dist} License: MIT Group: System Environment/Libraries URL: http://www.x.org Source0: https://www.x.org/pub/individual/lib/%{name}-%{version}.tar.bz2 +Patch1: 0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch +Patch2: 0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch +Patch3: 0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch + BuildRequires: autoconf automake libtool BuildRequires: xorg-x11-util-macros BuildRequires: libX11-devel @@ -30,6 +34,9 @@ X.Org X11 libXmu development package %prep %setup -q +%patch1 -p1 -b .width_height_fix +%patch2 -p1 -b .formatting1 +%patch3 -p1 -b .formatting2 %build autoreconf -v --install --force @@ -88,6 +95,9 @@ rm -rf $RPM_BUILD_ROOT%{_docdir} %{_libdir}/pkgconfig/xmuu.pc %changelog +* Tue Aug 14 2018 Benjamin Tissoires 1.1.2-12 +- Add upstream fixes detected by covscan + * Fri Jul 13 2018 Fedora Release Engineering - 1.1.2-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild