src/gaim-remote.c

Sun, 27 Mar 2005 05:17:18 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sun, 27 Mar 2005 05:17:18 +0000
changeset 10749
c06247f1e4bb
parent 10395
786e15490d85
permissions
-rw-r--r--

[gaim-migrate @ 12351]
This fixes the auto-reconnect plugin bug. The whole "wants_to_die"
thing feels a little dirty. Eh, it's fine for now.

Also, the gtkstatusbox starts off in the "available" state instead
of using the GaimStatus of whatever account is online. This negates
the effect of saving the GaimStatuses for an account.

More tomorrow...

3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /*
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 * gaim-remote
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
3 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7724
diff changeset
4 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7724
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7724
diff changeset
6 * source distribution.
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 *
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 *
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 *
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 *
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22 */
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5859
diff changeset
24 #include "internal.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5859
diff changeset
25
3533
db01a1976f49 [gaim-migrate @ 3607]
Sean Egan <seanegan@pidgin.im>
parents: 3480
diff changeset
26 #include <getopt.h>
5859
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
27
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
28 #include <gaim-remote/remote.h>
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
29
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
30 /* To be implemented:
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
31 " info Show information about connected accounts\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
32 " list Print buddy list\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
33 " ison Show presence state of your buddy\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
34 " convo Open a new conversation window\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
35 " add Add buddy to buddy list\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
36 " remove Remove buddy from list\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
37 " -q, --quiet Send message without showing a conversation\n"
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
38 " window\n"
4242
48cfe2669548 [gaim-migrate @ 4492]
John Silvestri <john.silvestri@gmail.com>
parents: 4235
diff changeset
39 */
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
40
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
41 static struct option longopts[] = {
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
42 {"message", required_argument, NULL, 'm'},
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
43 {"to", required_argument, NULL, 't'},
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
44 {"protocol",required_argument, NULL, 'p'},
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
45 {"from", required_argument, NULL, 'f'},
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
46 {"session", required_argument, NULL, 's'},
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
47 {"quiet", no_argument, NULL, 'q'},
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
48 {"help", no_argument, NULL, 'h'},
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
49 {0,0,0,0}
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
50 };
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
52 struct remoteopts {
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
53 char *command;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
54 char *uri;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
55 gboolean help, quiet;
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
56 char *message, *to, *from, *protocol, *session;
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
57 /*int protocol;*/
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
58 };
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
59 struct remoteopts opts;
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
60
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
61 /*
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
62 * Prints a message to the terminal/shell/console.
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
63 * We try to convert "text" from UTF-8 to the user's locale.
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
64 * If that fails then UTF-8 is used as a fallback.
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
65 *
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
66 * If channel is 1, the message is printed to stdout.
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
67 * if channel is 2, the message is printed to stderr.
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
68 */
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
69 static void
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
70 message(char *text, int channel)
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
71 {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
72 char *text_conv = NULL,*text_output;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
73 GError *error = NULL;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
74
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
75 text_conv = g_locale_from_utf8(text, -1, NULL, NULL, &error);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
76
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
77 if (text_conv == NULL) {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
78 g_warning("%s\n", error->message);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
79 g_error_free(error);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
80 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
81
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
82 text_output = (text_conv ? text_conv : text);
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
83
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
84 switch (channel) {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
85 case 1:
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
86 puts(text_output);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
87 break;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
88 case 2:
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
89 fputs(text_output, stderr);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
90 break;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
91 default:
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
92 break;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
93 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
94
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
95 if (text_conv)
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
96 g_free(text_conv);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
97 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
98
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
99 static void
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
100 show_remote_usage(const char *name)
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
101 {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
102 char *text = NULL;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
103
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
104 text = g_strdup_printf(_("Usage: %s command [OPTIONS] [URI]\n\n"
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
105 " COMMANDS:\n"
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
106 " send Send message\n"
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
107 " uri Handle AIM: URI\n"
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
108 " away Popup the away dialog with the default message\n"
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
109 " back Remove the away dialog\n"
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
110 " logout Log out all accounts\n"
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
111 " quit Close running copy of Gaim\n"
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
112 "\n"
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
113 " OPTIONS:\n"
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
114 " -m, --message=MESG Message to send or show in conversation window\n"
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
115 " -t, --to=SCREENNAME Select a target for command\n"
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
116 " -p, --protocol=PROTO Specify protocol to use\n"
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
117 " -f, --from=SCREENNAME Specify screen name to use\n"
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
118 " -s, --session=SESSION Specify which Gaim session to use\n"
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
119 " -h, --help [command] Show help for command\n"), name);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
120
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
121 message(text, 1);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
122 g_free(text);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
123
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
124 return;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
125 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
126
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
127 int
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
128 get_options(int argc, char *argv[])
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
129 {
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
130 int i;
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
131
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
132 memset(&opts, 0, sizeof(opts));
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
133 /*opts.protocol = -1;*/
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
134
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
135 while ((i=getopt_long(argc, argv, "m:t:p:f:s:qh", longopts, NULL)) != -1) {
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
136 switch (i) {
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
137 case 'm':
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
138 opts.message = optarg;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
139 break;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
140 case 't':
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
141 opts.to = optarg;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
142 break;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
143 case 'p':
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
144 opts.protocol = optarg;
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
145 break;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
146 case 'f':
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
147 opts.from = optarg;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
148 break;
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
149 case 's':
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
150 opts.session = optarg;
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
151 break;
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
152 case 'q':
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
153 opts.quiet = TRUE;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
154 break;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
155 case 'h':
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
156 opts.help = TRUE;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
157 break;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
158 }
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
159 }
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
160
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
161 /* We must have non getopt'ed argument-- the command */
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
162 if (optind < argc)
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
163 opts.command = g_strdup(argv[optind++]);
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
164 else
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
165 return 1;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
166
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
167 if (opts.help)
6643
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
168 return 0;
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
169
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
170 /* And we can have another argument--the URI. */
6643
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
171 /* but only if we're using the uri command. */
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
172 if (!strcmp(opts.command, "uri")) {
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
173 if (argc-optind == 1)
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
174 opts.uri = g_strdup(argv[optind++]);
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
175 else
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
176 return 1;
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
177 } else if (optind == argc)
6643
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
178 return 0;
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
179 else
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
180 return 1;
5e9beb88b192 [gaim-migrate @ 7168]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5872
diff changeset
181
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
182 return 0;
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
183 }
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
184
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
185 static int
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
186 open_session() {
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
187 int fd = 0, session = 0;
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
188 char *msg;
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
189
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
190 if (opts.session != NULL)
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
191 session = atoi(opts.session);
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
192
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
193 fd = gaim_remote_session_connect(session);
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
194 if (fd < 0) {
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
195 msg = g_strdup_printf(_("Gaim not running (on session %d)\nIs the \"Remote Control\" plugin loaded?\n"), session);
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
196 message(msg, 2);
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
197 g_free(msg);
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
198 return -1;
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
199 }
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
200
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
201 return fd;
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
202 }
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
203
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
204 static int
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
205 send_generic_command(guchar type, guchar subtype) {
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
206 int fd = 0;
5859
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
207 GaimRemotePacket *p = NULL;
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
208
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
209 fd = open_session();
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
210 if (fd < 0) {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
211 return 1;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
212 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
213 p = gaim_remote_packet_new(type, subtype);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
214 gaim_remote_session_send_packet(fd, p);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
215 close(fd);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
216 gaim_remote_packet_free(p);
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
217
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
218 return 0;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
219 }
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
220
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
221 static int
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
222 send_command_uri() {
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
223 int fd = 0;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
224 GaimRemotePacket *p = NULL;
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
225
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
226 fd = open_session();
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
227 if (fd < 0) {
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
228 return 1;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
229 }
5859
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
230 p = gaim_remote_packet_new(CUI_TYPE_REMOTE, CUI_REMOTE_URI);
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
231 gaim_remote_packet_append_string(p, opts.uri);
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
232 gaim_remote_session_send_packet(fd, p);
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
233 close(fd);
5859
e9e5fb0bbfe9 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5124
diff changeset
234 gaim_remote_packet_free(p);
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
235
3559
329d9448fa45 [gaim-migrate @ 3653]
John Silvestri <john.silvestri@gmail.com>
parents: 3533
diff changeset
236 return 0;
329d9448fa45 [gaim-migrate @ 3653]
John Silvestri <john.silvestri@gmail.com>
parents: 3533
diff changeset
237 }
329d9448fa45 [gaim-migrate @ 3653]
John Silvestri <john.silvestri@gmail.com>
parents: 3533
diff changeset
238
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
239 static int
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
240 send_command_send() {
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
241 int fd = 0;
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
242 GaimRemotePacket *p = NULL;
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
243 char temp[10003]; /* TODO: Future implementation should send packets instead */
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
244
10086
c74a09688dff [gaim-migrate @ 11097]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10005
diff changeset
245 fd = open_session();
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
246 if (fd < 0) {
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
247 return 1;
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
248 }
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
249 p = gaim_remote_packet_new(CUI_TYPE_REMOTE, CUI_REMOTE_SEND);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
250
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
251 /*
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
252 * Format is as follows:
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
253 * Each string has a 4 character 'header' containing the length of the string
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
254 * The strings are: To, From, Protocol name, Message
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
255 * Following the message is the quiet flag, expressed in a single int (0/1)
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
256 * Because the header is 4 characters long, there is a 9999 char limit on any
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
257 * given string, though none of these strings should be exceeding this.
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
258 * -JBS
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
259 */
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
260
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
261 if (opts.to && *opts.to && opts.from && *opts.from &&
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
262 opts.protocol && *opts.protocol && opts.message && *opts.message &&
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
263 (strlen(opts.to) < 10000) && (strlen(opts.from) < 10000) &&
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
264 (strlen(opts.protocol) < 20) && (strlen(opts.message) < 10000) )
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
265 {
10112
3133c5f8eb10 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10086
diff changeset
266 sprintf(temp, "%04zd%s", strlen(opts.to), opts.to);
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
267 gaim_remote_packet_append_string(p, temp);
10112
3133c5f8eb10 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10086
diff changeset
268 sprintf(temp, "%04zd%s", strlen(opts.from), opts.from);
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
269 gaim_remote_packet_append_string(p, temp);
10112
3133c5f8eb10 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10086
diff changeset
270 sprintf(temp, "%04zd%s", strlen(opts.protocol), opts.protocol);
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
271 gaim_remote_packet_append_string(p, temp);
10112
3133c5f8eb10 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10086
diff changeset
272 sprintf(temp, "%04zd%s", strlen(opts.message), opts.message);
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
273 gaim_remote_packet_append_string(p, temp);
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
274 sprintf(temp, "%d", 0); /* quiet flag - off for now */
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
275 gaim_remote_packet_append_string(p, temp);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
276
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
277 gaim_remote_session_send_packet (fd, p);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
278 close(fd);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
279 gaim_remote_packet_free(p);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
280 return 0;
10005
1d711ab1de4e [gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents: 10003
diff changeset
281 } else {
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
282 message(_("Insufficient arguments (-t, -f, -p, & -m are all required) or arguments greater than 9999 chars\n"), 2);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
283 close(fd);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
284 gaim_remote_packet_free(p);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
285 return 1;
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
286 }
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
287 }
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
288
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
289 static void
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
290 show_longhelp( char *name, char *command)
9608
0b3b4fcb642a [gaim-migrate @ 10451]
István Váradi
parents: 9184
diff changeset
291 {
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
292 if (!strcmp(command, "uri")) {
7724
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
293 message(_("\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
294 "Using AIM: URIs:\n"
8152
f26c9406b4b3 [gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
295 "Sending an IM to a screen name:\n"
7724
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
296 " gaim-remote uri 'aim:goim?screenname=Penguin&message=hello+world'\n"
8152
f26c9406b4b3 [gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
297 "In this case, 'Penguin' is the screen name we wish to IM, and 'hello world'\n"
7724
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
298 "is the message to be sent. '+' must be used in place of spaces.\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
299 "Please note the quoting used above - if you run this from a shell the '&'\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
300 "needs to be escaped, or the command will stop at that point.\n"
8152
f26c9406b4b3 [gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
301 "Also,the following will just open a conversation window to a screen name,\n"
7724
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
302 "with no message:\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
303 " gaim-remote uri 'aim:goim?screenname=Penguin'\n\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
304 "Joining a chat:\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
305 " gaim-remote uri 'aim:gochat?roomname=PenguinLounge'\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
306 "...joins the 'PenguinLounge' chat room.\n\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
307 "Adding a buddy to your buddy list:\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
308 " gaim-remote uri 'aim:addbuddy?screenname=Penguin'\n"
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
309 "...prompts you to add 'Penguin' to your buddy list.\n"), 1);
5116
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
310 }
9695
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
311
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
312 else if (!strcmp(command, "logout")) {
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
313 message(_("\nLog out all accounts\n"), 1);
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
314 }
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
315
9695
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
316 else if (!strcmp(command, "quit")) {
7724
c03cfedb10f3 [gaim-migrate @ 8369]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6643
diff changeset
317 message(_("\nClose running copy of Gaim\n"), 1);
5116
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
318 }
9695
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
319
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
320 else if (!strcmp(command, "away")) {
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
321 message(_("\nMark all accounts as \"away\" with the default message.\n"), 1);
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
322 }
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
323
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
324 else if (!strcmp(command, "back")) {
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
325 message(_("\nSet all accounts as not away.\n"), 1);
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
326 }
67f01812ac15 [gaim-migrate @ 10550]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9674
diff changeset
327
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
328 else if (!strcmp(command, "send")) {
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
329 message(_("\nSend instant message\n"), 1);
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
330 }
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
331
5116
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
332 else {
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
333 show_remote_usage(name);
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
334 }
4242
48cfe2669548 [gaim-migrate @ 4492]
John Silvestri <john.silvestri@gmail.com>
parents: 4235
diff changeset
335 }
48cfe2669548 [gaim-migrate @ 4492]
John Silvestri <john.silvestri@gmail.com>
parents: 4235
diff changeset
336
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
337 int main(int argc, char *argv[])
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
338 {
5116
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
339 #ifdef ENABLE_NLS
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
340 setlocale (LC_ALL, "");
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
341 bindtextdomain(PACKAGE, LOCALEDIR);
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
342 bind_textdomain_codeset(PACKAGE, "UTF-8");
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
343 textdomain(PACKAGE);
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
344 #endif
8e5a5161a4d9 [gaim-migrate @ 5479]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 4242
diff changeset
345
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
346 if (get_options(argc, argv)) {
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
347 show_remote_usage(argv[0]);
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
348 return 0;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
349 }
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
350
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
351 if (!strcmp(opts.command, "uri")) {
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
352 if (opts.help)
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
353 show_longhelp(argv[0], "uri");
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
354 else
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
355 return send_command_uri();
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
356 }
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
357
10003
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
358 else if (!strcmp(opts.command, "send")) {
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
359 if (opts.help)
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
360 show_longhelp(argv[0], "send");
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
361 else
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
362 return send_command_send();
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
363 }
8340e9f5f191 [gaim-migrate @ 10920]
John Silvestri <john.silvestri@gmail.com>
parents: 9752
diff changeset
364
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
365 else if (!strcmp(opts.command, "away")) {
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
366 if (opts.help)
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
367 show_longhelp(argv[0], "away");
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
368 else
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
369 return send_generic_command(CUI_TYPE_USER, CUI_USER_AWAY);
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
370 }
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
371
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
372 else if (!strcmp(opts.command, "back")) {
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
373 if (opts.help)
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
374 show_longhelp(argv[0], "back");
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
375 else
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
376 return send_generic_command(CUI_TYPE_USER, CUI_USER_BACK);
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
377 }
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
378
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
379 else if (!strcmp(opts.command, "logout")) {
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
380 if (opts.help)
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
381 show_longhelp(argv[0], "logout");
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
382 else
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
383 return send_generic_command(CUI_TYPE_USER, CUI_USER_LOGOUT);
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
384 }
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
385
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
386 else if (!strcmp(opts.command, "quit")) {
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
387 if (opts.help)
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
388 show_longhelp(argv[0], "quit");
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
389 else
9752
965487d1e818 [gaim-migrate @ 10619]
Mark Doliner <markdoliner@pidgin.im>
parents: 9695
diff changeset
390 return send_generic_command(CUI_TYPE_META, CUI_META_QUIT);
9674
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
391 }
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
392
fff36654774b [gaim-migrate @ 10526]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9608
diff changeset
393 else {
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
394 show_remote_usage(argv[0]);
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
395 return 1;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
396 }
10395
786e15490d85 [gaim-migrate @ 11624]
Evan Schoenberg <evands@pidgin.im>
parents: 10112
diff changeset
397
3480
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
398 return 0;
2e430147929e [gaim-migrate @ 3534]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
399 }

mercurial