12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* $Source$
- * $State$
- * $Revision$
- */
- #include <stdlib.h>
- #include <errno.h>
- #include <sgtty.h>
- #include "libsys.h"
- extern struct
- {
- int fd;
- const char* buffer;
- size_t count;
- } _sys_params_in;
- extern struct
- {
- size_t byteswritten;
- } _sys_params_out;
- #define P _sys_params_in
- void _sys_write_tty(char c)
- {
- _sys_rawwrite(c);
- if ((c == '\n') && !(_sys_ttyflags & RAW))
- _sys_rawwrite('\r');
- }
- int _sys_write(void)
- {
- int i;
-
- /* We're only allowed to write to fd 0, 1 or 2. */
-
- if ((P.fd < 0) || (P.fd > 2))
- return EBADF;
-
- /* Write all data. */
-
- i = 0;
- while (i < P.count)
- {
- _sys_write_tty(*P.buffer++);
-
- i++;
- }
-
- /* No failures. */
-
- _sys_params_out.byteswritten = P.count;
- return 0;
- }
|