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., 675 Mass Ave, Cambridge, MA 02139, USA. */
21 #include <stdlib.h> /* For free() */
23 #include <sys/types.h>
34 #include "key.h" /* For mi_getch() */
35 #include "dlg.h" /* draw_box, yes I know, it's silly */
36 #include "background.h" /* we_are_background definition */
40 Refresh
*refresh_list
= 0;
42 void push_refresh (void (*new_refresh
)(void *), void *parameter
, int flags
)
46 new = xmalloc (sizeof (Refresh
), "push_refresh");
47 new->next
= (struct Refresh
*) refresh_list
;
48 new->refresh_fn
= new_refresh
;
49 new->parameter
= parameter
;
54 void pop_refresh (void)
59 fprintf (stderr
, _("\n\n\nrefresh stack underflow!\n\n\n"));
62 refresh_list
= refresh_list
->next
;
67 static void 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
);
78 void do_refresh (void)
80 if (we_are_background
)
86 (*(refresh_list
->refresh_fn
))(refresh_list
->parameter
);
88 do_complete_refresh (refresh_list
);
93 /* Poor man's window puts, it doesn't handle auto-wrap */
94 void my_wputs (int y
, int x
, char *text
)
99 while ((p
= *text
++) != 0){
103 addch ((unsigned char)p
);