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;