xref: /aosp_15_r20/external/musl/src/stdio/gets.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include "stdio_impl.h"
2*c9945492SAndroid Build Coastguard Worker #include <limits.h>
3*c9945492SAndroid Build Coastguard Worker #include <string.h>
4*c9945492SAndroid Build Coastguard Worker 
gets(char * s)5*c9945492SAndroid Build Coastguard Worker char *gets(char *s)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	size_t i=0;
8*c9945492SAndroid Build Coastguard Worker 	int c;
9*c9945492SAndroid Build Coastguard Worker 	FLOCK(stdin);
10*c9945492SAndroid Build Coastguard Worker 	while ((c=getc_unlocked(stdin)) != EOF && c != '\n') s[i++] = c;
11*c9945492SAndroid Build Coastguard Worker 	s[i] = 0;
12*c9945492SAndroid Build Coastguard Worker 	if (c != '\n' && (!feof(stdin) || !i)) s = 0;
13*c9945492SAndroid Build Coastguard Worker 	FUNLOCK(stdin);
14*c9945492SAndroid Build Coastguard Worker 	return s;
15*c9945492SAndroid Build Coastguard Worker }
16