diff src/aim.c @ 1560:72235e3fcff6

[gaim-migrate @ 1570] Jason Boerner's --file patch. Also added/removed files from POTFILES.in and added the MSN protocol spec. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Sat, 10 Mar 2001 22:42:47 +0000
parents 5e54c7a2a394
children 23ad4f7b644f
line wrap: on
line diff
--- a/src/aim.c	Sat Mar 10 21:39:31 2001 +0000
+++ b/src/aim.c	Sat Mar 10 22:42:47 2001 +0000
@@ -73,6 +73,7 @@
 
 int opt_away = 0;
 char *opt_away_arg = NULL;
+char *opt_rcfile_arg = NULL;
 
 void BuddyTickerCreateWindow(void);
 
@@ -424,6 +425,8 @@
 		 "Automatically login (optional argument NAME specifies account(s) to use)", "[NAME]"},
 		{"user", 'u', POPT_ARG_STRING, &opt_user_arg, 'u',
 		 "Use account NAME", "NAME"},
+		{"file", 'f', POPT_ARG_STRING, &opt_rcfile_arg, 'f',
+		 "Use FILE as config", "FILE"},
 		{0, 0, 0, 0, 0, 0, 0}
 	};
 #else
@@ -433,6 +436,7 @@
 		{"help", no_argument, NULL, 'h'},
 		{"login", optional_argument, NULL, 'l'},
 		{"user", required_argument, NULL, 'u'},
+		{"file", required_argument, NULL, 'f'},
 		{"version", no_argument, NULL, 'v'},
 		{0, 0, 0, 0}
 	};
@@ -511,6 +515,31 @@
 			}
 			strcpy(argv[i], " ");
 		}
+		/* --file option */
+		else if (strstr (argv[i], "--fi") == argv[i]) {
+			char *equals;
+			if ((equals = strchr(argv[i], '=')) != NULL) {
+				/* --file=FILE */
+				opt_rcfile_arg = g_strdup (equals+1);
+			} else if (i+1 < argc && argv[i+1][0] != '-') {
+				/* --file FILE */
+				opt_rcfile_arg = g_strdup (argv[i+1]);
+				strcpy (argv[i+1], " ");
+			}
+			strcpy (argv[i], " ");
+		}
+		/* -f option */
+		else if (strstr (argv[i], "-f") == argv[i]) {
+			if (strlen (argv[i]) > 2) {
+				/* -fFILE */
+				opt_rcfile_arg = g_strdup (argv[i]+2);
+			} else if (i+1 < argc && argv[i+1][0] != '-') {
+				/* -f FILE */
+				opt_rcfile_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);
@@ -519,7 +548,7 @@
 
 	/* scan command-line options */
 	opterr = 1;
-	while ((opt = getopt_long(argc, argv, "ahl::w::u:v",
+	while ((opt = getopt_long(argc, argv, "ahl::w::u:f::v",
 				  long_options, NULL)) != -1) {
 		switch (opt) {
 		case 'u':	/* set user */
@@ -537,6 +566,9 @@
 		case 'a':	/* account editor */
 			opt_acct = 1;
 			break;
+		case 'f':
+			opt_rcfile_arg = g_strdup (optarg);
+			break;
 		case 'v':	/* version */
 			opt_version = 1;
 			break;