xref: /plan9/sys/src/cmd/auth/lib/readarg.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include "authcmdlib.h"
4219b2ee8SDavid du Colombier 
5219b2ee8SDavid du Colombier int
6219b2ee8SDavid du Colombier readarg(int fd, char *arg, int len)
7219b2ee8SDavid du Colombier {
8219b2ee8SDavid du Colombier 	char buf[1];
9219b2ee8SDavid du Colombier 	int i;
10219b2ee8SDavid du Colombier 
11219b2ee8SDavid du Colombier 	i = 0;
12219b2ee8SDavid du Colombier 	for(;;){
13219b2ee8SDavid du Colombier 		if(read(fd, buf, 1) != 1)
14219b2ee8SDavid du Colombier 			return -1;
15219b2ee8SDavid du Colombier 		if(i < len - 1)
16219b2ee8SDavid du Colombier 			arg[i++] = *buf;
17219b2ee8SDavid du Colombier 		if(*buf == '\0'){
18219b2ee8SDavid du Colombier 			arg[i] = '\0';
19219b2ee8SDavid du Colombier 			return 0;
20219b2ee8SDavid du Colombier 		}
21219b2ee8SDavid du Colombier 	}
22219b2ee8SDavid du Colombier }
23