Mercurial > pidgin
comparison src/aim.c @ 2068:e38eb507b261
[gaim-migrate @ 2078]
bmiller's patch
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Sun, 15 Jul 2001 19:05:14 +0000 |
| parents | cf0c383beebb |
| children | 75c06bcb022e |
comparison
equal
deleted
inserted
replaced
| 2067:a23832262ca2 | 2068:e38eb507b261 |
|---|---|
| 415 int main(int argc, char *argv[]) | 415 int main(int argc, char *argv[]) |
| 416 { | 416 { |
| 417 int opt; | 417 int opt; |
| 418 int opt_acct = 0, opt_help = 0, opt_version = 0, opt_user = 0, opt_login = 0, do_login_ret = -1; | 418 int opt_acct = 0, opt_help = 0, opt_version = 0, opt_user = 0, opt_login = 0, do_login_ret = -1; |
| 419 char *opt_user_arg = NULL, *opt_login_arg = NULL; | 419 char *opt_user_arg = NULL, *opt_login_arg = NULL; |
| 420 int i; | |
| 420 | 421 |
| 421 #ifdef USE_GNOME | 422 #ifdef USE_GNOME |
| 422 int i; | |
| 423 poptContext popt_context; | |
| 424 struct poptOption popt_options[] = { | 423 struct poptOption popt_options[] = { |
| 425 {"acct", 'a', POPT_ARG_NONE, &opt_acct, 'a', | 424 {"acct", 'a', POPT_ARG_NONE, &opt_acct, 'a', |
| 426 "Display account editor window", NULL}, | 425 "Display account editor window", NULL}, |
| 427 {"away", 'w', POPT_ARG_STRING, NULL, 'w', | 426 {"away", 'w', POPT_ARG_STRING, NULL, 'w', |
| 428 "Make away on signon (optional argument MESG specifies name of away message to use)", "[MESG]"}, | 427 "Make away on signon (optional argument MESG specifies name of away message to use)", "[MESG]"}, |
| 432 "Use account NAME", "NAME"}, | 431 "Use account NAME", "NAME"}, |
| 433 {"file", 'f', POPT_ARG_STRING, &opt_rcfile_arg, 'f', | 432 {"file", 'f', POPT_ARG_STRING, &opt_rcfile_arg, 'f', |
| 434 "Use FILE as config", "FILE"}, | 433 "Use FILE as config", "FILE"}, |
| 435 {0, 0, 0, 0, 0, 0, 0} | 434 {0, 0, 0, 0, 0, 0, 0} |
| 436 }; | 435 }; |
| 437 #else | 436 #endif /* USE_GNOME */ |
| 438 struct option long_options[] = { | 437 struct option long_options[] = { |
| 439 {"acct", no_argument, NULL, 'a'}, | 438 {"acct", no_argument, NULL, 'a'}, |
| 440 {"away", optional_argument, NULL, 'w'}, | 439 /*{"away", optional_argument, NULL, 'w'},*/ |
| 441 {"help", no_argument, NULL, 'h'}, | 440 {"help", no_argument, NULL, 'h'}, |
| 442 {"login", optional_argument, NULL, 'l'}, | 441 /*{"login", optional_argument, NULL, 'l'},*/ |
| 443 {"user", required_argument, NULL, 'u'}, | 442 {"user", required_argument, NULL, 'u'}, |
| 444 {"file", required_argument, NULL, 'f'}, | 443 {"file", required_argument, NULL, 'f'}, |
| 445 {"version", no_argument, NULL, 'v'}, | 444 {"version", no_argument, NULL, 'v'}, |
| 446 {0, 0, 0, 0} | 445 {0, 0, 0, 0} |
| 447 }; | 446 }; |
| 448 #endif /* USE_GNOME */ | |
| 449 | 447 |
| 450 | 448 |
| 451 #ifdef ENABLE_NLS | 449 #ifdef ENABLE_NLS |
| 452 bindtextdomain(PACKAGE, LOCALEDIR); | 450 bindtextdomain(PACKAGE, LOCALEDIR); |
| 453 textdomain(PACKAGE); | 451 textdomain(PACKAGE); |
| 464 #endif | 462 #endif |
| 465 | 463 |
| 466 | 464 |
| 467 #ifdef USE_APPLET | 465 #ifdef USE_APPLET |
| 468 init_applet_mgr(argc, argv); | 466 init_applet_mgr(argc, argv); |
| 469 #elif defined USE_GNOME | 467 #else |
| 470 for (i = 0; i < argc; i++) { | 468 for (i = 0; i < argc; i++) { |
| 471 /* --login option */ | 469 /* --login option */ |
| 472 if (strstr(argv[i], "--l") == argv[i]) { | 470 if (strstr(argv[i], "--l") == argv[i]) { |
| 473 char *equals; | 471 char *equals; |
| 474 opt_login = 1; | 472 opt_login = 1; |
| 475 if ((equals = strchr(argv[i], '=')) != NULL) { | 473 if ((equals = strchr(argv[i], '=')) != NULL) { |
| 476 /* --login=NAME */ | 474 /* --login=NAME */ |
| 477 opt_login_arg = g_strdup(equals + 1); | 475 opt_login_arg = g_strdup(equals + 1); |
| 476 if (strlen (opt_login_arg) == 0) { | |
| 477 g_free (opt_login_arg); | |
| 478 opt_login_arg = NULL; | |
| 479 } | |
| 478 } else if (i + 1 < argc && argv[i + 1][0] != '-') { | 480 } else if (i + 1 < argc && argv[i + 1][0] != '-') { |
| 479 /* --login NAME */ | 481 /* --login NAME */ |
| 480 opt_login_arg = g_strdup(argv[i + 1]); | 482 opt_login_arg = g_strdup(argv[i + 1]); |
| 481 strcpy(argv[i + 1], " "); | 483 strcpy(argv[i + 1], " "); |
| 482 } | 484 } |
| 500 char *equals; | 502 char *equals; |
| 501 opt_away = 1; | 503 opt_away = 1; |
| 502 if ((equals = strchr(argv[i], '=')) != NULL) { | 504 if ((equals = strchr(argv[i], '=')) != NULL) { |
| 503 /* --away=MESG */ | 505 /* --away=MESG */ |
| 504 opt_away_arg = g_strdup (equals+1); | 506 opt_away_arg = g_strdup (equals+1); |
| 507 if (strlen (opt_away_arg) == 0) { | |
| 508 g_free (opt_away_arg); | |
| 509 opt_away_arg = NULL; | |
| 510 } | |
| 505 } else if (i+1 < argc && argv[i+1][0] != '-') { | 511 } else if (i+1 < argc && argv[i+1][0] != '-') { |
| 506 /* --away MESG */ | 512 /* --away MESG */ |
| 507 opt_away_arg = g_strdup (argv[i+1]); | 513 opt_away_arg = g_strdup (argv[i+1]); |
| 508 strcpy (argv[i+1], " "); | 514 strcpy (argv[i+1], " "); |
| 509 } | 515 } |
| 520 opt_away_arg = g_strdup (argv[i+1]); | 526 opt_away_arg = g_strdup (argv[i+1]); |
| 521 strcpy (argv[i+1], " "); | 527 strcpy (argv[i+1], " "); |
| 522 } | 528 } |
| 523 strcpy(argv[i], " "); | 529 strcpy(argv[i], " "); |
| 524 } | 530 } |
| 525 /* --file option */ | 531 } |
| 526 else if (strstr (argv[i], "--fi") == argv[i]) { | 532 /* |
| 527 char *equals; | 533 if (opt_login) { |
| 528 if ((equals = strchr(argv[i], '=')) != NULL) { | 534 printf ("--login given with arg %s\n", |
| 529 /* --file=FILE */ | 535 opt_login_arg ? opt_login_arg : "NULL"); |
| 530 opt_rcfile_arg = g_strdup (equals+1); | 536 exit(0); |
| 531 } else if (i+1 < argc && argv[i+1][0] != '-') { | 537 } |
| 532 /* --file FILE */ | 538 */ |
| 533 opt_rcfile_arg = g_strdup (argv[i+1]); | 539 |
| 534 strcpy (argv[i+1], " "); | 540 #ifdef USE_GNOME |
| 535 } | |
| 536 strcpy (argv[i], " "); | |
| 537 } | |
| 538 /* -f option */ | |
| 539 else if (strstr (argv[i], "-f") == argv[i]) { | |
| 540 if (strlen (argv[i]) > 2) { | |
| 541 /* -fFILE */ | |
| 542 opt_rcfile_arg = g_strdup (argv[i]+2); | |
| 543 } else if (i+1 < argc && argv[i+1][0] != '-') { | |
| 544 /* -f FILE */ | |
| 545 opt_rcfile_arg = g_strdup (argv[i+1]); | |
| 546 strcpy (argv[i+1], " "); | |
| 547 } | |
| 548 strcpy(argv[i], " "); | |
| 549 } | |
| 550 } | |
| 551 | |
| 552 gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, popt_options, 0, NULL); | 541 gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, popt_options, 0, NULL); |
| 553 #else | 542 #else |
| 554 gtk_init(&argc, &argv); | 543 gtk_init(&argc, &argv); |
| 544 #endif | |
| 555 | 545 |
| 556 /* scan command-line options */ | 546 /* scan command-line options */ |
| 557 opterr = 1; | 547 opterr = 1; |
| 558 while ((opt = getopt_long(argc, argv, "ahl::w::u:f::v", | 548 while ((opt = getopt_long(argc, argv, "ahu:f:v", |
| 559 long_options, NULL)) != -1) { | 549 long_options, NULL)) != -1) { |
| 560 switch (opt) { | 550 switch (opt) { |
| 561 case 'u': /* set user */ | 551 case 'u': /* set user */ |
| 562 opt_user = 1; | 552 opt_user = 1; |
| 563 opt_user_arg = g_strdup(optarg); | 553 opt_user_arg = g_strdup(optarg); |
| 564 break; | |
| 565 case 'l': | |
| 566 opt_login = 1; | |
| 567 opt_login_arg = g_strdup(optarg); | |
| 568 break; | |
| 569 case 'w': | |
| 570 opt_away = 1; | |
| 571 opt_away_arg = g_strdup (optarg); | |
| 572 break; | 554 break; |
| 573 case 'a': /* account editor */ | 555 case 'a': /* account editor */ |
| 574 opt_acct = 1; | 556 opt_acct = 1; |
| 575 break; | 557 break; |
| 576 case 'f': | 558 case 'f': |
| 588 return 0; | 570 return 0; |
| 589 break; | 571 break; |
| 590 } | 572 } |
| 591 } | 573 } |
| 592 | 574 |
| 593 #endif /* USE_GNOME */ | 575 #endif /* USE_APPLET */ |
| 594 | 576 |
| 595 /* show help message */ | 577 /* show help message */ |
| 596 if (opt_help) { | 578 if (opt_help) { |
| 597 show_usage(0, argv[0]); | 579 show_usage(0, argv[0]); |
| 598 return 0; | 580 return 0; |
