src/aim.c

changeset 1254
acb7539010c0
parent 1250
46ac03911ab0
child 1261
57936cac4ea1
equal deleted inserted replaced
1253:f02697a6aada 1254:acb7539010c0
69 GList *conversations = NULL; 69 GList *conversations = NULL;
70 GList *chat_rooms = NULL; 70 GList *chat_rooms = NULL;
71 71
72 GtkWidget *mainwindow = NULL; 72 GtkWidget *mainwindow = NULL;
73 73
74 int opt_away = 0;
75 char *opt_away_arg = NULL;
76
74 void BuddyTickerCreateWindow(void); 77 void BuddyTickerCreateWindow(void);
75 78
76 void cancel_logon(void) 79 void cancel_logon(void)
77 { 80 {
78 #ifdef USE_APPLET 81 #ifdef USE_APPLET
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 */

mercurial