Simplification de terminal_io_descr, certains compilos C avaient du mal avec l'ancien code

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1994 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Xavier Leroy 1998-06-23 14:47:51 +00:00
parent df00b2c58d
commit 36d17274f4
1 changed files with 14 additions and 16 deletions

View File

@ -30,7 +30,6 @@ enum { Input, Output };
#define oflags ((long)(&terminal_status.c_oflag))
#define cflags ((long)(&terminal_status.c_cflag))
#define lflags ((long)(&terminal_status.c_lflag))
#define cc(n) ((long)(&terminal_status.c_cc[n]))
/* Number of fields in the terminal_io record field. Cf. unix.mli */
@ -72,16 +71,16 @@ static long terminal_io_descr[] = {
Bool, lflags, ECHOK,
Bool, lflags, ECHONL,
/* Control characters */
Char, cc(VINTR),
Char, cc(VQUIT),
Char, cc(VERASE),
Char, cc(VKILL),
Char, cc(VEOF),
Char, cc(VEOL),
Char, cc(VMIN),
Char, cc(VTIME),
Char, cc(VSTART),
Char, cc(VSTOP),
Char, VINTR,
Char, VQUIT,
Char, VERASE,
Char, VKILL,
Char, VEOF,
Char, VEOL,
Char, VMIN,
Char, VTIME,
Char, VSTART,
Char, VSTOP,
End
};
@ -89,7 +88,6 @@ static long terminal_io_descr[] = {
#undef oflags
#undef cflags
#undef lflags
#undef cc
struct speedtable_entry ;
@ -158,8 +156,8 @@ static void encode_terminal_status(value *dst)
}
break; }
case Char:
{ unsigned char * src = (unsigned char *) (*pc++);
*dst = Val_int(*src);
{ int which = *pc++;
*dst = Val_int(terminal_status.c_cc[which]);
break; }
}
}
@ -213,8 +211,8 @@ static void decode_terminal_status(value *src)
ok:
break; }
case Char:
{ unsigned char * dst = (unsigned char *) (*pc++);
*dst = Int_val(*src);
{ int which = *pc++;
terminal_status.c_cc[which] = Int_val(*src);
break; }
}
}