diff src/aim.c @ 1254:9da444224f0e

[gaim-migrate @ 1264] bmiller's away-on-signon patch. does --away=mesg use "mesg" or the away message titled "mesg"? i didn't look hehe. but if it uses "mesg" instead of the away message titled "mesg" then i'm not sure it works.... i figured someone would report a bug if it didn't work committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 14 Dec 2000 00:11:59 +0000
parents b5783215b245
children 07f0bb41bbe1
line wrap: on
line diff
--- a/src/aim.c	Wed Dec 13 23:59:46 2000 +0000
+++ b/src/aim.c	Thu Dec 14 00:11:59 2000 +0000
@@ -71,6 +71,9 @@
 
 GtkWidget *mainwindow = NULL;
 
+int opt_away = 0;
+char *opt_away_arg = NULL;
+
 void BuddyTickerCreateWindow(void);
 
 void cancel_logon(void)
@@ -429,6 +432,8 @@
 	struct poptOption popt_options[] = {
 		{"acct", 'a', POPT_ARG_NONE, &opt_acct, 'a',
 		 "Display account editor window", NULL},
+		{"away", 'w', POPT_ARG_STRING, NULL, 'w',
+		 "Make away on signon (optional argument MESG specifies name of away message to use)", "[MESG]"},
 		{"login", 'l', POPT_ARG_STRING, NULL, 'l',
 		 "Automatically login (optional argument NAME specifies account(s) to use)", "[NAME]"},
 		{"user", 'u', POPT_ARG_STRING, &opt_user_arg, 'u',
@@ -438,6 +443,7 @@
 #else
 	struct option long_options[] = {
 		{"acct", no_argument, NULL, 'a'},
+		{"away", optional_argument, NULL, 'w'},
 		{"help", no_argument, NULL, 'h'},
 		{"login", optional_argument, NULL, 'l'},
 		{"user", required_argument, NULL, 'u'},
@@ -489,6 +495,33 @@
 			}
 			strcpy(argv[i], " ");
 		}
+		/* --away option */
+		else if (strstr (argv[i], "--aw") == argv[i]) {
+			char *equals;
+			opt_away = 1;
+			if ((equals = strchr(argv[i], '=')) != NULL) {
+				/* --away=MESG */
+				opt_away_arg = g_strdup (equals+1);
+			} else if (i+1 < argc && argv[i+1][0] != '-') {
+				/* --away MESG */
+				opt_away_arg = g_strdup (argv[i+1]);
+				strcpy (argv[i+1], " ");
+			}
+			strcpy (argv[i], " ");
+		}
+		/* -w option */
+		else if (strstr (argv[i], "-w") == argv[i]) {
+			opt_away = 1;
+			if (strlen (argv[i]) > 2) {
+				/* -wMESG */
+				opt_away_arg = g_strdup (argv[i]+2);
+			} else if (i+1 < argc && argv[i+1][0] != '-') {
+				/* -w MESG */
+				opt_away_arg = g_strdup (argv[i+1]);
+				strcpy (argv[i+1], " ");
+			}
+			strcpy(argv[i], " ");
+		}
 	}
 
 	gnome_init_with_popt_table(PACKAGE, VERSION, argc, argv, popt_options, 0, NULL);
@@ -497,7 +530,7 @@
 
 	/* scan command-line options */
 	opterr = 1;
-	while ((opt = getopt_long(argc, argv, /*"ahl::u:v" */ "ahl::u:v",
+	while ((opt = getopt_long(argc, argv, "ahl::w::u:v",
 				  long_options, NULL)) != -1) {
 		switch (opt) {
 		case 'u':	/* set user */
@@ -508,6 +541,10 @@
 			opt_login = 1;
 			opt_login_arg = g_strdup(optarg);
 			break;
+		case 'w':
+			opt_away = 1;
+			opt_away_arg = g_strdup (optarg);
+			break;
 		case 'a':	/* account editor */
 			opt_acct = 1;
 			break;