Browse Source

Add missing ctermid. Also add putc and getc (in case they get
undefined which is a valid thing to do)
-Erik

Eric Andersen 22 years ago
parent
commit
14f7d9c3fd
3 changed files with 58 additions and 2 deletions
  1. 3 2
      libc/stdio/Makefile
  2. 36 0
      libc/stdio/ctermid.c
  3. 19 0
      libc/stdio/stdio.c

+ 3 - 2
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)
 

+ 36 - 0
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");
+}

+ 19 - 0
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)