mirror of
https://github.com/irssi/irssi.git
synced 2026-08-19 08:32:07 +02:00
detect third argument type of puts
This commit is contained in:
parent
6276fe1a68
commit
9f0b2bc50d
3 changed files with 36 additions and 9 deletions
31
meson.build
31
meson.build
|
|
@ -570,23 +570,40 @@ foreach h : headers
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
if want_textui and conf.get('HAVE_TERM_H', 0) == 1
|
if want_textui and conf.get('HAVE_TERM_H', 0) == 1
|
||||||
if not cc.links('''
|
if cc.links('''
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
int main () {
|
int main (void) {
|
||||||
return tputs("x", 1, putchar);
|
return tputs("x", 1, putchar);
|
||||||
}
|
}
|
||||||
''', dependencies : textui_dep)
|
''', args : '-pedantic-errors', dependencies : textui_dep, name : 'Curses working')
|
||||||
if cc.has_header('curses.h') and cc.links('''
|
# ok
|
||||||
|
else
|
||||||
|
has_curses_h = cc.has_header('curses.h')
|
||||||
|
if has_curses_h and cc.links('''
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
int main () {
|
int main (void) {
|
||||||
return tputs("x", 1, putchar);
|
return tputs("x", 1, putchar);
|
||||||
}
|
}
|
||||||
''', dependencies : textui_dep, name : 'working Curses')
|
''', args : '-pedantic-errors', dependencies : textui_dep, name : 'Curses working with curses.h')
|
||||||
conf.set('NEED_CURSES_H', 1, description : 'tputs needs curses.h')
|
conf.set('NEED_CURSES_H', 1, description : 'tputs needs curses.h')
|
||||||
else
|
else
|
||||||
error('could not link terminfo')
|
if has_curses_h and cc.links('''
|
||||||
|
#include <curses.h>
|
||||||
|
#include <term.h>
|
||||||
|
int char_putchar (char c) {
|
||||||
|
return putchar(c);
|
||||||
|
}
|
||||||
|
int main (void) {
|
||||||
|
return tputs("x", 1, char_putchar);
|
||||||
|
}
|
||||||
|
''', args : '-pedantic-errors', dependencies : textui_dep, name : 'Curses with tputs third argument arg char')
|
||||||
|
conf.set('NEED_CURSES_H', 1, description : 'tputs needs curses.h')
|
||||||
|
conf.set('TPUTS_SVR4', 1, description : 'third argument of tputs has the type int (*)(char)')
|
||||||
|
else
|
||||||
|
error('could not link terminfo')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -318,7 +318,12 @@ void term_window_scroll(TERM_WINDOW *window, int count)
|
||||||
term_lines_empty[window->y+y] = FALSE;
|
term_lines_empty[window->y+y] = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static int term_putchar(int c)
|
#ifdef TPUTS_SVR4
|
||||||
|
#define putc_arg_t char
|
||||||
|
#else
|
||||||
|
#define putc_arg_t int
|
||||||
|
#endif
|
||||||
|
inline static int term_putchar(putc_arg_t c)
|
||||||
{
|
{
|
||||||
return fputc(c, current_term->out);
|
return fputc(c, current_term->out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,13 @@
|
||||||
# define _POSIX_VDISABLE 0
|
# define _POSIX_VDISABLE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef TPUTS_SVR4
|
||||||
|
#define putc_arg_t char
|
||||||
|
#else
|
||||||
|
#define putc_arg_t int
|
||||||
|
#endif
|
||||||
#define tput(s) tputs(s, 0, term_putchar)
|
#define tput(s) tputs(s, 0, term_putchar)
|
||||||
inline static int term_putchar(int c)
|
inline static int term_putchar(putc_arg_t c)
|
||||||
{
|
{
|
||||||
return fputc(c, current_term->out);
|
return fputc(c, current_term->out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue