44
44
main(int argc, const char **argv)
46
const char *user = NULL, *gecos = NULL, *sn, *gn, *email, *filtered;
46
const char *user, *gecos;
47
47
const char *name, *office, *officephone, *homephone;
48
struct lu_context *ctx = NULL;
48
struct lu_context *ctx;
49
49
struct lu_error *error = NULL;
50
struct lu_ent *ent = NULL;
51
51
GValueArray *values;
52
52
GValue *value, val;
53
53
int interactive = FALSE;
239
248
g_value_set_string(&val, filtered);
241
if (strcmp(prompts[i].key, NAME_KEY) == 0) {
243
lu_ent_clear(ent, LU_COMMONNAME);
244
if (strlen(filtered) > 0) {
245
lu_ent_add(ent, LU_COMMONNAME, &val);
249
if (strcmp(prompts[i].key, SURNAME_KEY) == 0) {
251
lu_ent_clear(ent, LU_SN);
252
if (strlen(filtered) > 0) {
253
lu_ent_add(ent, LU_SN, &val);
257
if (strcmp(prompts[i].key, GIVENNAME_KEY) == 0) {
259
lu_ent_clear(ent, LU_GIVENNAME);
260
if (strlen(filtered) > 0) {
261
lu_ent_add(ent, LU_GIVENNAME, &val);
265
if (strcmp(prompts[i].key, OFFICE_KEY) == 0) {
267
lu_ent_clear(ent, LU_ROOMNUMBER);
268
if (strlen(filtered) > 0) {
269
lu_ent_add(ent, LU_ROOMNUMBER, &val);
273
if (strcmp(prompts[i].key, OFFICEPHONE_KEY) == 0) {
274
officephone = filtered;
275
lu_ent_clear(ent, LU_TELEPHONENUMBER);
276
if (strlen(filtered) > 0) {
277
lu_ent_add(ent, LU_TELEPHONENUMBER, &val);
281
if (strcmp(prompts[i].key, HOMEPHONE_KEY) == 0) {
282
homephone = filtered;
283
lu_ent_clear(ent, LU_HOMEPHONE);
284
if (strlen(filtered) > 0) {
285
lu_ent_add(ent, LU_HOMEPHONE, &val);
289
if (strcmp(prompts[i].key, EMAIL_KEY) == 0) {
291
lu_ent_clear(ent, LU_EMAIL);
292
if (strlen(filtered) > 0) {
293
lu_ent_add(ent, LU_EMAIL, &val);
250
#define ATTR__(KEY, EXTRA, ATTR) \
251
if (strcmp(prompts[i].key, KEY) == 0) { \
253
lu_ent_clear(ent, ATTR); \
254
if (strlen(filtered) > 0) \
255
lu_ent_add(ent, ATTR, &val); \
257
#define ATTR(KEY, ATTR_) ATTR__(KEY, , ATTR_)
258
#define NAMED_ATTR(KEY, NAME, ATTR_) ATTR__(KEY, NAME = filtered, ATTR_)
260
NAMED_ATTR(NAME_KEY, name, LU_COMMONNAME);
261
ATTR(SURNAME_KEY, LU_SN);
262
ATTR(GIVENNAME_KEY, LU_GIVENNAME);
263
NAMED_ATTR(OFFICE_KEY, office, LU_ROOMNUMBER);
264
NAMED_ATTR(OFFICEPHONE_KEY, officephone, LU_TELEPHONENUMBER);
265
NAMED_ATTR(HOMEPHONE_KEY, homephone, LU_HOMEPHONE);
266
ATTR(EMAIL_KEY, LU_EMAIL);
298
272
g_value_reset(&val);