2 Copyright (C) 1994 Miguel de Icaza.
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
21 #include <sys/types.h>
25 #include "key.h" /* we_are_background */
26 #include "main.h" /* fast_refresh */
29 /* The refresh stack */
30 typedef struct Refresh
{
31 void (*refresh_fn
)(void *);
37 static Refresh
*refresh_list
;
40 push_refresh (refresh_fn new_refresh
, void *parameter
, int flags
)
44 new = g_new (Refresh
, 1);
45 new->next
= (struct Refresh
*) refresh_list
;
46 new->refresh_fn
= new_refresh
;
47 new->parameter
= parameter
;
58 fprintf (stderr
, _("\n\n\nrefresh stack underflow!\n\n\n"));
61 refresh_list
= refresh_list
->next
;
67 do_complete_refresh (Refresh
*refresh_list
)
72 if (refresh_list
->flags
!= REFRESH_COVERS_ALL
)
73 do_complete_refresh (refresh_list
->next
);
75 (*(refresh_list
->refresh_fn
)) (refresh_list
->parameter
);
81 if (we_are_background
|| !refresh_list
)
85 (*(refresh_list
->refresh_fn
)) (refresh_list
->parameter
);
87 do_complete_refresh (refresh_list
);