Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <bio.h>
4
#include <ctype.h>
5
#include "authcmdlib.h"
6
 
7
 
8
#define TABLEN 8
9
 
10
static char*
11
defreadln(char *prompt, char *def, int must, int *changed)
12
{
13
	char pr[512];
14
	char reply[256];
15
 
16
	do {
17
		if(def && *def){
18
			if(must)
19
				snprint(pr, sizeof pr, "%s[return = %s]: ", prompt, def);
20
			else
21
				snprint(pr, sizeof pr, "%s[return = %s, space = none]: ", prompt, def);
22
		} else
23
			snprint(pr, sizeof pr, "%s: ", prompt);
24
		readln(pr, reply, sizeof(reply), 0);
25
		switch(*reply){
26
		case ' ':
27
			break;
28
		case 0:
29
			return def;
30
		default:
31
			*changed = 1;
32
			if(def)
33
				free(def);
34
			return strdup(reply);
35
		}
36
	} while(must);
37
 
38
	if(def){
39
		*changed = 1;
40
		free(def);
41
	}
42
	return 0;
43
}
44
 
45
/*
46
 *  get bio from stdin
47
 */
48
int
49
querybio(char *file, char *user, Acctbio *a)
50
{
51
	int i;
52
	int changed;
53
 
54
	rdbio(file, user, a);
55
	a->postid = defreadln("Post id", a->postid, 0, &changed);
56
	a->name = defreadln("User's full name", a->name, 1, &changed);
57
	a->dept = defreadln("Department #", a->dept, 1, &changed);
58
	a->email[0] = defreadln("User's email address", a->email[0], 1, &changed);
59
	a->email[1] = defreadln("Sponsor's email address", a->email[1], 0, &changed);
60
	for(i = 2; i < Nemail; i++){
61
		if(a->email[i-1] == 0)
62
			break;
63
		a->email[i] = defreadln("other email address", a->email[i], 0, &changed);
64
	}
65
	return changed;
66
}