Date: Sat, 19 Jan 2002 21:16:25 GMT From: Simon Dick <simond@irrelevant.org> To: FreeBSD-gnats-submit@freebsd.org Subject: ports/34066: Port update: x11-fm/afterstep Message-ID: <200201192116.g0JLGPm04494@laptop.internal.irrelevant.org>
next in thread | raw e-mail | index | archive | help
>Number: 34066 >Category: ports >Synopsis: Port update: x11-fm/afterstep >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jan 19 13:20:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Simon Dick >Release: FreeBSD 5.0-CURRENT i386 >Organization: >Environment: System: FreeBSD laptop.internal.irrelevant.org 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Thu Jan 17 15:59:48 GMT 2002 root@laptop.internal.irrelevant.org:/usr/obj/usr/src/sys/LAPTOP i386 >Description: On occasion afterstep 1.0 can segfault when selecting the placement of new windows, this patch borrows sections of code from afterstep-stable to fix this (I've been running it locally for about a week now with no problems). >How-To-Repeat: Use afterstep-1.0 a lot, the problem mainly seems to happen when placing Netscape windows down though. >Fix: diff -ruN /usr/ports/x11-wm/afterstep/files/patch-ad afterstep/files/patch-ad --- /usr/ports/x11-wm/afterstep/files/patch-ad Thu Jan 1 01:00:00 1970 +++ afterstep/files/patch-ad Sat Jan 19 21:10:38 2002 @@ -0,0 +1,56 @@ +--- afterstep/misc.c.orig Sat Jan 19 21:07:50 2002 ++++ afterstep/misc.c Sat Jan 19 21:08:36 2002 +@@ -61,6 +61,8 @@ + XGCValues Globalgcv; + unsigned long Globalgcm; + ++ASWindow *list_extract(ASWindow *); ++ASWindow *list_prepend(ASWindow *, ASWindow *); + + /************************************************************************** + * +@@ -662,12 +664,7 @@ + { + if (t != Scr.ASRoot.next) + { +- t->prev->next = t->next; +- if (t->next) t->next->prev = t->prev; +- t->next = Scr.ASRoot.next; +- t->prev = &Scr.ASRoot; +- Scr.ASRoot.next->prev = t; +- Scr.ASRoot.next = t; ++ list_prepend (Scr.ASRoot.next, list_extract (t)); + } + } + } +@@ -698,4 +695,30 @@ + } + + UpdateVisibility(); ++} ++ ++ASWindow * ++list_extract (ASWindow * w) ++{ ++ if (w->prev != NULL) ++ w->prev->next = w->next; ++ if (w->next != NULL) ++ w->next->prev = w->prev; ++ w->next = w->prev = w; ++ return w; ++} ++ ++ASWindow * ++list_prepend (ASWindow * list1, ASWindow * list2) ++{ ++ ASWindow *tmp = list2->prev; ++ if (list1 == NULL) ++ return list2; ++ if (list2 == NULL) ++ return list1; ++ list2->prev->next = list1; ++ list1->prev->next = list2; ++ list2->prev = list1->prev; ++ list1->prev = tmp; ++ return list2; + } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201192116.g0JLGPm04494>