| 427 int i; |
430 int i; |
| 428 poptContext popt_context; |
431 poptContext popt_context; |
| 429 struct poptOption popt_options[] = { |
432 struct poptOption popt_options[] = { |
| 430 {"acct", 'a', POPT_ARG_NONE, &opt_acct, 'a', |
433 {"acct", 'a', POPT_ARG_NONE, &opt_acct, 'a', |
| 431 "Display account editor window", NULL}, |
434 "Display account editor window", NULL}, |
| |
435 {"away", 'w', POPT_ARG_STRING, NULL, 'w', |
| |
436 "Make away on signon (optional argument MESG specifies name of away message to use)", "[MESG]"}, |
| 432 {"login", 'l', POPT_ARG_STRING, NULL, 'l', |
437 {"login", 'l', POPT_ARG_STRING, NULL, 'l', |
| 433 "Automatically login (optional argument NAME specifies account(s) to use)", "[NAME]"}, |
438 "Automatically login (optional argument NAME specifies account(s) to use)", "[NAME]"}, |
| 434 {"user", 'u', POPT_ARG_STRING, &opt_user_arg, 'u', |
439 {"user", 'u', POPT_ARG_STRING, &opt_user_arg, 'u', |
| 435 "Use account NAME", "NAME"}, |
440 "Use account NAME", "NAME"}, |
| 436 {0, 0, 0, 0, 0, 0, 0} |
441 {0, 0, 0, 0, 0, 0, 0} |
| 437 }; |
442 }; |
| 438 #else |
443 #else |
| 439 struct option long_options[] = { |
444 struct option long_options[] = { |
| 440 {"acct", no_argument, NULL, 'a'}, |
445 {"acct", no_argument, NULL, 'a'}, |
| |
446 {"away", optional_argument, NULL, 'w'}, |
| 441 {"help", no_argument, NULL, 'h'}, |
447 {"help", no_argument, NULL, 'h'}, |
| 442 {"login", optional_argument, NULL, 'l'}, |
448 {"login", optional_argument, NULL, 'l'}, |
| 443 {"user", required_argument, NULL, 'u'}, |
449 {"user", required_argument, NULL, 'u'}, |
| 444 {"version", no_argument, NULL, 'v'}, |
450 {"version", no_argument, NULL, 'v'}, |
| 445 {0, 0, 0, 0} |
451 {0, 0, 0, 0} |
| 487 opt_login_arg = g_strdup(argv[i + 1]); |
493 opt_login_arg = g_strdup(argv[i + 1]); |
| 488 strcpy(argv[i + 1], " "); |
494 strcpy(argv[i + 1], " "); |
| 489 } |
495 } |
| 490 strcpy(argv[i], " "); |
496 strcpy(argv[i], " "); |
| 491 } |
497 } |
| |
498 /* --away option */ |
| |
499 else if (strstr (argv[i], "--aw") == argv[i]) { |
| |
500 char *equals; |
| |
501 opt_away = 1; |
| |
502 if ((equals = strchr(argv[i], '=')) != NULL) { |
| |
503 /* --away=MESG */ |
| |
504 opt_away_arg = g_strdup (equals+1); |
| |
505 } else if (i+1 < argc && argv[i+1][0] != '-') { |
| |
506 /* --away MESG */ |
| |
507 opt_away_arg = g_strdup (argv[i+1]); |
| |
508 strcpy (argv[i+1], " "); |
| |
509 } |
| |
510 strcpy (argv[i], " "); |
| |
511 } |
| |
512 /* -w option */ |
| |
513 else if (strstr (argv[i], "-w") == argv[i]) { |
| |
514 opt_away = 1; |
| |
515 if (strlen (argv[i]) > 2) { |
| |
516 /* -wMESG */ |
| |
517 opt_away_arg = g_strdup (argv[i]+2); |
| |
518 } else if (i+1 < argc && argv[i+1][0] != '-') { |
| |
519 /* -w MESG */ |
| |
520 opt_away_arg = g_strdup (argv[i+1]); |
| |
521 strcpy (argv[i+1], " "); |
| |
522 } |
| |
523 strcpy(argv[i], " "); |
| |
524 } |
| 492 } |
525 } |
| 493 |
526 |
| 494 gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, popt_options, 0, NULL); |
527 gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, popt_options, 0, NULL); |
| 495 #else |
528 #else |
| 496 gtk_init(&argc, &argv); |
529 gtk_init(&argc, &argv); |
| 497 |
530 |
| 498 /* scan command-line options */ |
531 /* scan command-line options */ |
| 499 opterr = 1; |
532 opterr = 1; |
| 500 while ((opt = getopt_long(argc, argv, /*"ahl::u:v" */ "ahl::u:v", |
533 while ((opt = getopt_long(argc, argv, "ahl::w::u:v", |
| 501 long_options, NULL)) != -1) { |
534 long_options, NULL)) != -1) { |
| 502 switch (opt) { |
535 switch (opt) { |
| 503 case 'u': /* set user */ |
536 case 'u': /* set user */ |
| 504 opt_user = 1; |
537 opt_user = 1; |
| 505 opt_user_arg = g_strdup(optarg); |
538 opt_user_arg = g_strdup(optarg); |
| 506 break; |
539 break; |
| 507 case 'l': |
540 case 'l': |
| 508 opt_login = 1; |
541 opt_login = 1; |
| 509 opt_login_arg = g_strdup(optarg); |
542 opt_login_arg = g_strdup(optarg); |
| |
543 break; |
| |
544 case 'w': |
| |
545 opt_away = 1; |
| |
546 opt_away_arg = g_strdup (optarg); |
| 510 break; |
547 break; |
| 511 case 'a': /* account editor */ |
548 case 'a': /* account editor */ |
| 512 opt_acct = 1; |
549 opt_acct = 1; |
| 513 break; |
550 break; |
| 514 case 'v': /* version */ |
551 case 'v': /* version */ |