Less sloppy handling of IoErr().
[AROS.git] / rom / intuition / endscreennotify.c
blob550e2aa56b05dfd7131d7fb4d5dae001b43e3021
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4 $Id$
6 Remove an Intuition Notification.
7 */
9 #include <intuition/intuition.h>
11 #include "intuition_intern.h"
13 /*****************************************************************************
15 NAME */
17 #include <proto/exec.h>
18 #include <proto/intuition.h>
19 #include <proto/utility.h>
21 AROS_LH1(BOOL, EndScreenNotify,
23 /* SYNOPSIS */
24 AROS_LHA(APTR, notify, A0),
26 /* LOCATION */
27 struct IntuitionBase *, IntuitionBase, 155, Intuition)
29 /* FUNCTION
30 Remove a Screen Notification from Intuition.
32 INPUTS
33 notify - notification returned from StartScreenNotifyTagList()
35 RESULT
36 BOOL - if FALSE, Notification is in use and cannot be removed; try
37 later.
39 NOTES
40 This function is compatible with AmigaOS v4.
42 EXAMPLE
44 BUGS
46 SEE ALSO
47 StartScreenNotifyTagList()
49 INTERNALS
51 *****************************************************************************/
53 AROS_LIBFUNC_INIT
55 BOOL back;
57 if (notify == NULL) return TRUE;
59 if ((back = AttemptSemaphore(&GetPrivIBase(IntuitionBase)->ScreenNotificationListLock)))
61 FreeVec(((struct IntScreenNotify*) notify)->pubname);
62 Remove((struct Node *) notify);
63 FreeVec((void *)notify);
64 ReleaseSemaphore(&GetPrivIBase(IntuitionBase)->ScreenNotificationListLock);
67 ReturnPtr ("EndScreenNotify", BOOL, back);
69 AROS_LIBFUNC_EXIT
70 } /* EndScreenNotify */