Commit | Line | Data |
---|---|---|
411867e7 KB |
1 | /*- |
2 | * Copyright (c) 1990 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This code is derived from software contributed to Berkeley by | |
6 | * Chris Torek. | |
7 | * | |
8 | * %sccs.include.redist.c% | |
9 | */ | |
10 | ||
2ce81398 | 11 | #if defined(LIBC_SCCS) && !defined(lint) |
411867e7 KB |
12 | static char sccsid[] = "@(#)gets.c 5.3 (Berkeley) %G%"; |
13 | #endif /* LIBC_SCCS and not lint */ | |
b8f253e8 | 14 | |
411867e7 KB |
15 | #include <unistd.h> |
16 | #include <stdio.h> | |
c3d4b9ff BJ |
17 | |
18 | char * | |
411867e7 KB |
19 | gets(buf) |
20 | char *buf; | |
c3d4b9ff | 21 | { |
411867e7 KB |
22 | register int c; |
23 | register char *s; | |
24 | static int warned; | |
25 | static char w[] = | |
26 | "warning: this program uses gets(), which is unsafe.\r\n"; | |
c3d4b9ff | 27 | |
411867e7 KB |
28 | if (!warned) { |
29 | (void) write(STDERR_FILENO, w, sizeof(w) - 1); | |
30 | warned = 1; | |
31 | } | |
32 | for (s = buf; (c = getchar()) != '\n';) | |
33 | if (c == EOF) | |
34 | if (s == buf) | |
35 | return (NULL); | |
36 | else | |
37 | break; | |
38 | else | |
39 | *s++ = c; | |
40 | *s = 0; | |
41 | return (buf); | |
c3d4b9ff | 42 | } |