diff options
Diffstat (limited to 'libc/stdio')
-rw-r--r-- | libc/stdio/Makefile | 5 | ||||
-rw-r--r-- | libc/stdio/ctermid.c | 36 | ||||
-rw-r--r-- | libc/stdio/stdio.c | 19 |
3 files changed, 58 insertions, 2 deletions
diff --git a/libc/stdio/Makefile b/libc/stdio/Makefile index c837ae3a1..81782d50f 100644 --- a/libc/stdio/Makefile +++ b/libc/stdio/Makefile @@ -29,7 +29,7 @@ MOBJ=_stdio_init.o _alloc_stdio_buffer.o _free_stdio_buffer_of_file.o \ setvbuf.o setbuf.o setlinebuf.o fclose.o _fopen.o fopen.o freopen.o \ fdopen.o fflush.o fsfopen.o fseek.o rewind.o ftell.o fgetpos.o fsetpos.o \ fputc.o fgetc.o fgets.o gets.o fputs.o puts.o ungetc.o fread.o fwrite.o \ - getchar.o putchar.o _uClibc_fwrite.o _uClibc_fread.o fopen64.o + getchar.o putchar.o _uClibc_fwrite.o _uClibc_fread.o fopen64.o getc.o putc.o MSRC2=printf.c MOBJ2=printf.o sprintf.o fprintf.o vprintf.o vsprintf.o vfprintf.o snprintf.o \ @@ -38,7 +38,8 @@ MOBJ2=printf.o sprintf.o fprintf.o vprintf.o vsprintf.o vfprintf.o snprintf.o \ MSRC3=scanf.c MOBJ3=scanf.o sscanf.o fscanf.o vscanf.o vsscanf.o vfscanf.o -CSRC=popen.c perror.c remove.c getdelim.c getline.c tmpfile.c tmpnam.c tmpnam_r.c tempnam.c +CSRC=popen.c perror.c remove.c getdelim.c getline.c tmpfile.c tmpnam.c \ + tmpnam_r.c tempnam.c ctermid.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(MOBJ) $(MOBJ2) $(MOBJ3) $(COBJS) diff --git a/libc/stdio/ctermid.c b/libc/stdio/ctermid.c new file mode 100644 index 000000000..004b8fecf --- /dev/null +++ b/libc/stdio/ctermid.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <stdio.h> +#include <string.h> + + +/* Return the name of the controlling terminal. + If S is not NULL, the name is copied into it (it should be at + least L_ctermid bytes long), otherwise a static buffer is used. */ +char * +ctermid (s) + char *s; +{ + static char name[L_ctermid]; + + if (s == NULL) + s = name; + + return strcpy (s, "/dev/tty"); +} diff --git a/libc/stdio/stdio.c b/libc/stdio/stdio.c index f87a69416..d35dd7a66 100644 --- a/libc/stdio/stdio.c +++ b/libc/stdio/stdio.c @@ -1000,6 +1000,25 @@ FILE *fdopen(int fd, __const char *mode) } #endif + +#ifdef L_getc +#undef getc +int getc(FILE *stream) +{ + return(((stream)->bufpos >= (stream)->bufread)? fgetc(stream) : + (*(stream)->bufpos++)); +} +#endif + +#ifdef L_putc +#undef putc +int putc(int c, FILE *stream) +{ + return(((stream)->bufpos >= (stream)->bufwrite)? fputc((c), (stream)) : + (unsigned char) (*(stream)->bufpos++ = (c)) ); +} +#endif + #ifdef L_getchar #undef getchar int getchar(void) |