1
|
1 /*
|
|
2 * gaim
|
|
3 *
|
|
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
|
|
5 *
|
|
6 * This program is free software; you can redistribute it and/or modify
|
|
7 * it under the terms of the GNU General Public License as published by
|
|
8 * the Free Software Foundation; either version 2 of the License, or
|
|
9 * (at your option) any later version.
|
|
10 *
|
|
11 * This program is distributed in the hope that it will be useful,
|
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 * GNU General Public License for more details.
|
|
15 *
|
|
16 * You should have received a copy of the GNU General Public License
|
|
17 * along with this program; if not, write to the Free Software
|
|
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19 *
|
|
20 */
|
|
21
|
|
22 #ifdef USE_APPLET
|
|
23 #include <applet-widget.h>
|
|
24 #endif /* USE_APPLET */
|
|
25
|
|
26
|
|
27 /*
|
|
28 1. gethostbyname();
|
|
29 2. connect();
|
|
30 3. toc_signon();
|
|
31 4. toc_wait_signon();
|
|
32 5. toc_wait_config();
|
|
33 6. actually done..
|
|
34 */
|
|
35
|
|
36 #define STATE_OFFLINE 0
|
|
37 #define STATE_FLAPON 1
|
|
38 #define STATE_SIGNON_REQUEST 2
|
|
39 #define STATE_SIGNON_ACK 3
|
|
40 #define STATE_CONFIG 4
|
|
41 #define STATE_ONLINE 5
|
|
42
|
|
43 #define BROWSER_NETSCAPE 0
|
|
44 #define BROWSER_KFM 1
|
|
45 #define BROWSER_MANUAL 2
|
|
46 #define BROWSER_INTERNAL 3
|
|
47
|
|
48 #define UC_AOL 1
|
|
49 #define UC_ADMIN 2
|
|
50 #define UC_UNCONFIRMED 4
|
|
51 #define UC_NORMAL 8
|
|
52 #define UC_UNAVAILABLE 16
|
|
53
|
|
54 #define IDLE_NONE 0
|
|
55 #define IDLE_GAIM 1
|
|
56 #define IDLE_SYSTEM 2
|
|
57
|
|
58 #define WFLAG_SEND 1
|
|
59 #define WFLAG_RECV 2
|
|
60 #define WFLAG_AUTO 4
|
|
61 #define WFLAG_WHISPER 8
|
|
62 #define WFLAG_FILERECV 16
|
|
63 #define WFLAG_SYSTEM 32
|
|
64
|
|
65 #define AUTO_RESPONSE "<AUTO-REPLY> : "
|
|
66
|
|
67 #define PLUGIN_DIR "$HOME/.gaim/plugins/"
|
|
68
|
|
69 #define REG_EMAIL_ADDR "gaiminfo@blueridge.net"
|
|
70 #define REG_SRVR "blueridge.net"
|
|
71 #define REG_PORT 25
|
|
72
|
|
73 extern struct prefs_data *pd;
|
|
74 extern struct debug_window *dw;
|
|
75
|
|
76 struct aim_user {
|
|
77 char username[64];
|
|
78 char password[32];
|
|
79 char user_info[2048];
|
|
80 };
|
|
81
|
|
82 struct save_pos {
|
|
83 int x;
|
|
84 int y;
|
|
85 int width;
|
|
86 int height;
|
|
87 int xoff;
|
|
88 int yoff;
|
|
89 };
|
|
90
|
|
91 struct prefs_data {
|
|
92 GtkWidget *window;
|
|
93 GtkWidget *away_list;
|
|
94 struct away_message *cur_message;
|
|
95 GtkWidget *away_text;
|
|
96 char *edited_message;
|
|
97 GtkWidget *browser_entry;
|
|
98 GtkWidget *nwbutton;
|
|
99 GtkWidget *aim_host_entry;
|
|
100 GtkWidget *aim_port_entry;
|
|
101 GtkWidget *login_host_entry;
|
|
102 GtkWidget *login_port_entry;
|
|
103 GtkWidget *http_proxy_host_entry;
|
|
104 GtkWidget *http_proxy_port_entry;
|
|
105
|
|
106 };
|
|
107
|
|
108
|
|
109 struct option_set {
|
|
110 int *options;
|
|
111 int option;
|
|
112 };
|
|
113
|
|
114 struct g_url {
|
|
115 char address[255];
|
|
116 int port;
|
|
117 char page[255];
|
|
118 };
|
|
119
|
|
120 struct gaim_plugin {
|
|
121 char name[64];
|
|
122 char filename[512];
|
|
123 /* char description[256];
|
|
124 int major_version;
|
|
125 int minor_version; */
|
|
126 char *(*init_gaim_plugin)();
|
|
127 void (*toc_receive)(char *);
|
|
128 };
|
|
129
|
|
130 struct buddy {
|
|
131 char name[80];
|
|
132 GtkWidget *item;
|
|
133 GtkWidget *label;
|
|
134 GtkWidget *pix;
|
|
135 GtkWidget *idletime;
|
|
136 int present;
|
|
137 int log_timer;
|
|
138 int evil;
|
|
139 time_t signon;
|
|
140 time_t idle;
|
|
141 int uc;
|
|
142 };
|
|
143
|
|
144 struct log_conversation {
|
|
145 char name[80];
|
|
146 char filename[512];
|
|
147 struct log_conversation *next;
|
|
148 };
|
|
149
|
|
150 struct buddy_pounce {
|
|
151 char name[80];
|
|
152 char message[2048];
|
|
153 int popup;
|
|
154 int sendim;
|
|
155 };
|
|
156
|
|
157 struct away_message {
|
|
158 char name[80];
|
|
159 char message[2048];
|
|
160 };
|
|
161
|
|
162 struct group {
|
|
163 GtkWidget *item;
|
|
164 GtkWidget *label;
|
|
165 GtkWidget *tree;
|
|
166 char name[80];
|
|
167 GList *members;
|
|
168 };
|
|
169
|
|
170 struct buddy_chat {
|
|
171 GtkWidget *window;
|
|
172 GtkWidget *text;
|
|
173 GtkWidget *list;
|
|
174 GtkWidget *entry;
|
|
175 GList *in_room;
|
|
176 GList *ignored;
|
|
177 int makesound;
|
|
178 int id;
|
|
179 char name[80];
|
|
180 };
|
|
181
|
|
182 struct chat_room {
|
|
183 char name[128];
|
|
184 int exchange;
|
|
185 };
|
|
186
|
|
187 struct debug_window {
|
|
188 GtkWidget *window;
|
|
189 GtkWidget *entry;
|
|
190 };
|
|
191
|
|
192 struct conversation {
|
|
193 GtkWidget *window;
|
|
194 char name[80];
|
|
195 GtkWidget *text;
|
|
196 GtkWidget *entry;
|
|
197 GtkWidget *italic;
|
|
198 GtkWidget *bold;
|
|
199 GtkWidget *underline;
|
|
200 GtkWidget *palette;
|
|
201 GtkWidget *link;
|
|
202 GtkWidget *add_button;
|
|
203 GtkWidget *log_button;
|
|
204 GtkWidget *strike;
|
|
205
|
|
206 int makesound;
|
|
207 time_t sent_away;
|
|
208 };
|
|
209
|
|
210 struct file_transfer {
|
|
211 GtkWidget *window;
|
|
212 char *cookie;
|
|
213 char *ip;
|
|
214 char *message;
|
|
215 int port;
|
|
216 int size;
|
|
217 int accepted;
|
|
218 char *filename;
|
|
219 char *lfilename;
|
|
220 char *user;
|
|
221 FILE *f;
|
|
222 int fd;
|
|
223 };
|
|
224
|
|
225 struct sflap_hdr {
|
|
226 unsigned char ast;
|
|
227 unsigned char type;
|
|
228 unsigned short seqno;
|
|
229 unsigned short len;
|
|
230 };
|
|
231
|
|
232 struct signon {
|
|
233 unsigned int ver;
|
|
234 unsigned short tag;
|
|
235 unsigned short namelen;
|
|
236 char username[80];
|
|
237 };
|
|
238
|
|
239 #define LOGIN_STEPS 5
|
|
240
|
|
241 #define CONVERSATION_TITLE "Gaim - Conversation with %s"
|
|
242 #define LOG_CONVERSATION_TITLE "Gaim - Conversation with %s (logged)"
|
|
243
|
|
244 #define FILETRANS_UID "09461343-4C7F-11D1-8222-444553540000"
|
|
245
|
|
246 #define LAGOMETER_STR "123CHECKLAG456"
|
|
247
|
|
248 #define AOL_SRCHSTR "/community/aimcheck.adp/url="
|
|
249
|
|
250 /* These should all be runtime selectable */
|
|
251
|
|
252 #define TOC_HOST "toc.oscar.aol.com"
|
|
253 #define TOC_PORT 9898
|
|
254 #define AUTH_HOST "login.oscar.aol.com"
|
|
255 #define AUTH_PORT 5190
|
|
256 #define LANGUAGE "english"
|
|
257
|
|
258 #define MSG_LEN 2048
|
|
259 /* The above should normally be the same as BUF_LEN,
|
|
260 * but just so we're explictly asking for the max message
|
|
261 * length. */
|
|
262 #define BUF_LEN MSG_LEN
|
|
263 #define BUF_LONG BUF_LEN * 2
|
|
264
|
|
265
|
|
266 #define TYPE_SIGNON 1
|
|
267 #define TYPE_DATA 2
|
|
268 #define TYPE_ERROR 3
|
|
269 #define TYPE_SIGNOFF 4
|
|
270 #define TYPE_KEEPALIVE 5
|
|
271
|
10
|
272 #define REVISION "gaim:$Revision: 19 $"
|
1
|
273 #define FLAPON "FLAPON\r\n\r\n"
|
|
274
|
|
275 #define ROAST "Tic/Toc"
|
|
276
|
|
277
|
|
278 #define BUDDY_ARRIVE 0
|
|
279 #define BUDDY_LEAVE 1
|
|
280 #define SEND 2
|
|
281 #define RECEIVE 3
|
|
282 #define FIRST_RECEIVE 4
|
|
283 #define AWAY 5
|
|
284
|
|
285
|
|
286 #ifdef USE_APPLET
|
10
|
287 extern gboolean buddy_created;
|
1
|
288 extern GtkWidget *applet;
|
|
289 #endif /* USE_APPLET */
|
|
290
|
|
291 /* Globals in oscar.c */
|
|
292 extern struct aim_conn_t *gaim_conn;
|
|
293
|
|
294 /* Globals in server.c */
|
|
295 extern int correction_time;
|
|
296
|
|
297 /* Globals in network.c */
|
|
298
|
|
299 /* Globals in toc.c */
|
|
300
|
|
301 /* Globals in aim.c */
|
|
302 extern GList *permit; /* The list of people permitted */
|
|
303 extern GList *deny; /* The list of people denied */
|
|
304 extern GList *log_conversations;
|
|
305 extern GList *buddy_pounces;
|
|
306 extern GList *away_messages;
|
|
307 extern GList *groups;
|
|
308 extern GList *buddy_chats;
|
|
309 extern GList *conversations;
|
|
310 extern GList *chat_rooms;
|
|
311 extern GtkWidget *mainwindow;
|
|
312 extern char *quad_addr;
|
|
313 extern char toc_addy[16];
|
|
314
|
|
315 /* Globals in away.c */
|
|
316 extern struct away_message *awaymessage;
|
|
317 extern GtkWidget *awaymenu;
|
|
318
|
|
319 /* Globals in buddy.c */
|
|
320 extern int permdeny;
|
|
321 extern GtkWidget *buddies;
|
|
322 extern GtkWidget *bpmenu;
|
|
323 extern GtkWidget *blist;
|
|
324
|
|
325 extern int general_options;
|
|
326 #define OPT_GEN_ENTER_SENDS 0x00000001
|
|
327 #define OPT_GEN_AUTO_LOGIN 0x00000002
|
|
328 #define OPT_GEN_LOG_ALL 0x00000004
|
|
329 #define OPT_GEN_STRIP_HTML 0x00000008
|
|
330 #define OPT_GEN_APP_BUDDY_SHOW 0x00000010
|
|
331 #define OPT_GEN_POPUP_WINDOWS 0x00000020
|
|
332 #define OPT_GEN_SEND_LINKS 0x00000040
|
|
333 #define OPT_GEN_SHOW_LAGMETER 0x00000080
|
|
334 #define OPT_GEN_DEBUG 0x00000100
|
|
335 #define OPT_GEN_REMEMBER_PASS 0x00000200
|
|
336 #define OPT_GEN_REGISTERED 0x00000400
|
|
337 #define OPT_GEN_BROWSER_POPUP 0x00000800
|
|
338 #define OPT_GEN_SAVED_WINDOWS 0x00001000
|
|
339 #define OPT_GEN_DISCARD_WHEN_AWAY 0x00002000
|
|
340
|
|
341 extern int display_options;
|
|
342 #define OPT_DISP_SHOW_TIME 0x00000001
|
|
343 #define OPT_DISP_SHOW_GRPNUM 0x00000002
|
|
344 #define OPT_DISP_SHOW_PIXMAPS 0x00000004
|
|
345 #define OPT_DISP_SHOW_IDLETIME 0x00000008
|
|
346 #define OPT_DISP_SHOW_BUTTON_XPM 0x00000010
|
|
347 #define OPT_DISP_IGNORE_COLOUR 0x00000020
|
|
348 #define OPT_DISP_SHOW_LOGON 0x00000040
|
|
349
|
|
350 extern int sound_options;
|
|
351 #define OPT_SOUND_LOGIN 0x00000001
|
|
352 #define OPT_SOUND_LOGOUT 0x00000002
|
|
353 #define OPT_SOUND_RECV 0x00000004
|
|
354 #define OPT_SOUND_SEND 0x00000008
|
|
355 #define OPT_SOUND_FIRST_RCV 0x00000010
|
|
356 #define OPT_SOUND_WHEN_AWAY 0x00000020
|
|
357
|
|
358
|
|
359 extern int font_options;
|
|
360 #define OPT_FONT_BOLD 0x00000001
|
|
361 #define OPT_FONT_ITALIC 0x00000002
|
|
362 #define OPT_FONT_UNDERLINE 0x00000008
|
|
363 #define OPT_FONT_STRIKE 0x00000010
|
|
364
|
|
365 #define DEFAULT_INFO "Visit the GAIM website at <A HREF=\"http://www.marko.net/gaim\">http://www.marko.net/gaim</A>."
|
|
366
|
|
367 extern int report_idle;
|
|
368 extern int web_browser;
|
|
369 extern struct aim_user *current_user;
|
|
370 extern GList *aim_users;
|
|
371 extern char web_command[2048];
|
|
372 extern char debug_buff[BUF_LONG];
|
|
373 extern char aim_host[512];
|
|
374 extern int aim_port;
|
|
375 extern char login_host[512];
|
|
376 extern int login_port;
|
|
377 extern struct save_pos blist_pos;
|
|
378
|
|
379 /* Functions in about.c */
|
|
380 extern void show_about(GtkWidget *, void *);
|
|
381
|
|
382
|
|
383 /* Functions in buddy_chat.c */
|
|
384 extern void join_chat();
|
|
385 extern void chat_write(struct buddy_chat *, char *, int, char *);
|
|
386 extern void add_chat_buddy(struct buddy_chat *, char *);
|
|
387 extern void remove_chat_buddy(struct buddy_chat *, char *);
|
|
388 extern void show_new_buddy_chat(struct buddy_chat *);
|
|
389 extern void setup_buddy_chats();
|
|
390
|
|
391
|
|
392
|
|
393 /* Functions in html.c */
|
|
394 extern char *fix_url(char *);
|
|
395 extern struct g_url parse_url(char *);
|
|
396 extern char *grab_url(char *);
|
|
397 extern gchar *strip_html(gchar *);
|
|
398
|
|
399 /* Functions in util.c */
|
|
400 extern char *normalize(const char *);
|
|
401 extern int escape_text(char *);
|
|
402 extern int escape_message(char *msg);
|
|
403 extern char *frombase64(char *);
|
|
404 extern gint clean_pid(void *);
|
|
405 extern char *date();
|
|
406 extern gint linkify_text(char *);
|
|
407 extern void aol_icon(GdkWindow *);
|
|
408 extern int query_state();
|
|
409 extern void set_state(int);
|
|
410 extern FILE *open_log_file (struct conversation *c);
|
|
411 extern char *sec_to_text(int);
|
|
412 extern struct aim_user *find_user(const char *);
|
|
413
|
|
414
|
|
415 /* Functions in server.c */
|
|
416 /* input to serv */
|
|
417 extern int serv_login(char *, char *);
|
|
418 extern void serv_close();
|
|
419 extern void serv_touch_idle();
|
|
420 extern void serv_finish_login();
|
|
421 extern void serv_send_im(char *, char *, int);
|
|
422 extern void serv_get_info(char *);
|
|
423 extern void serv_get_dir(char *);
|
|
424 extern void serv_set_idle(int);
|
|
425 extern void serv_set_info(char *);
|
|
426 extern void serv_set_away(char *);
|
|
427 extern void serv_add_buddy(char *);
|
|
428 extern void serv_add_buddies(GList *);
|
|
429 extern void serv_remove_buddy(char *);
|
|
430 extern void serv_add_permit(char *);
|
|
431 extern void serv_add_deny(char *);
|
|
432 extern void serv_set_permit_deny();
|
|
433 extern void serv_save_config();
|
|
434 extern void serv_warn(char *, int);
|
|
435 extern void serv_set_dir(char *, char *, char *, char *, char *, char *, char *, int);
|
|
436 extern void serv_dir_search(char *, char *, char *, char *, char *, char *, char *, char *);
|
|
437 extern void serv_accept_chat(int);
|
|
438 extern void serv_join_chat(int, char *);
|
|
439 extern void serv_chat_invite(int, char *, char *);
|
|
440 extern void serv_chat_leave(int);
|
|
441 extern void serv_chat_whisper(int, char *, char *);
|
|
442 extern void serv_chat_send(int, char *);
|
|
443
|
|
444 /* output from serv */
|
|
445 extern void serv_got_update(char *, int, int, time_t, time_t, int);
|
|
446 extern void serv_got_im(char *, char *, int);
|
|
447 extern void serv_got_eviled(char *, int);
|
|
448 extern void serv_got_chat_invite(char *, int, char *, char *);
|
|
449 extern void serv_got_joined_chat(int, char *);
|
|
450 extern void serv_got_chat_left(int);
|
|
451 extern void serv_got_chat_in(int, char *, int, char *);
|
|
452
|
|
453 /* Functions in conversation.c */
|
|
454 extern void write_to_conv(struct conversation *, char *, int);
|
|
455 extern void show_conv(struct conversation *);
|
|
456 extern struct conversation *new_conversation(char *);
|
|
457 extern struct conversation *find_conversation(char *);
|
|
458 extern void delete_conversation(struct conversation *);
|
|
459 extern void surround(GtkWidget *, char *, char *);
|
|
460 extern int is_logging(char *);
|
|
461 extern void set_state_lock(int );
|
|
462 extern void rm_log(struct log_conversation *a);
|
|
463 extern struct log_conversation *find_log_info(char *name);
|
|
464 extern void remove_tags(GtkWidget *entry, char *tag);
|
|
465 extern void update_log_convs();
|
|
466 extern void update_transparency();
|
|
467 extern void update_font_buttons();
|
|
468
|
|
469 /* Functions in network.c */
|
|
470 extern unsigned int *get_address(char *);
|
|
471 extern int connect_address(unsigned int, unsigned short);
|
|
472
|
|
473 /* Functions in oscar.c */
|
|
474 extern void oscar_close();
|
|
475 extern int oscar_login(char *, char *);
|
|
476
|
|
477 /* Functions in toc.c */
|
|
478 extern void toc_close();
|
|
479 extern int toc_login(char *, char *);
|
|
480 extern int toc_wait_signon(void);
|
|
481 extern char *toc_wait_config(void);
|
|
482 extern int sflap_send(char *, int , int );
|
|
483 extern void parse_toc_buddy_list(char *);
|
|
484
|
|
485
|
|
486 /* Functions in buddy.c */
|
|
487 extern void destroy_buddy();
|
|
488 extern void update_num_groups();
|
|
489 extern void update_show_idlepix();
|
|
490 extern void update_button_pix();
|
|
491 extern void update_all_buddies();
|
|
492 extern void show_buddy_list();
|
|
493 extern void refresh_buddy_window();
|
|
494 extern void toc_build_config(char *, int len);
|
|
495 extern void signoff();
|
|
496 extern void do_im_back();
|
|
497 extern void set_buddy(struct buddy *);
|
|
498 extern struct person *add_person(char *, char *);
|
|
499 extern struct group *add_group(char *);
|
|
500 extern void add_category(char *);
|
|
501 extern void build_edit_tree();
|
|
502 extern void build_permit_tree();
|
|
503 extern void remove_person(struct group *, struct buddy *);
|
|
504 extern void remove_category(struct group *);
|
|
505 extern void do_pounce(char *);
|
|
506 extern void do_bp_menu();
|
|
507 extern struct buddy *find_buddy(char *);
|
|
508 extern struct group *find_group(char *);
|
|
509 extern struct group *find_group_by_buddy(char *);
|
|
510 extern void remove_buddy(struct group *, struct buddy *);
|
|
511 extern struct buddy *add_buddy(char *, char *);
|
|
512 extern void remove_group(struct group *);
|
|
513 extern void update_lagometer(int);
|
|
514
|
|
515 /* Functions in away.c */
|
|
516 extern void rem_away_mess(GtkWidget *, struct away_message *);
|
|
517 extern void do_away_message(GtkWidget *, struct away_message *);
|
|
518 extern void do_away_menu();
|
|
519 extern void away_list_unclicked(GtkWidget *, struct away_message *);
|
|
520 extern void away_list_clicked(GtkWidget *, struct away_message *);
|
|
521
|
|
522 /* Functions in aim.c */
|
|
523 extern void hide_login_progress(char *);
|
|
524 extern void set_login_progress(int, char *);
|
|
525 extern void show_login();
|
|
526 #ifdef USE_APPLET
|
|
527 extern void make_buddy();
|
|
528 extern void applet_show_login(AppletWidget *, gpointer);
|
|
529 extern void gnome_buddy_show();
|
|
530 extern void gnome_buddy_hide();
|
|
531 extern void gnome_buddy_set_pos( gint x, gint y );
|
|
532 GtkRequisition gnome_buddy_get_dimentions();
|
|
533 #endif
|
|
534
|
|
535
|
|
536 /* Functions in sound.c */
|
|
537 extern void play_sound(int);
|
|
538
|
|
539
|
|
540 #ifdef GAIM_PLUGINS
|
|
541 /* Functions in plugins.c */
|
|
542 extern void load_plugins();
|
|
543 #endif
|
|
544
|
|
545 /* Functions in prefs.c */
|
|
546 extern void debug_print( char * chars );
|
|
547 extern void set_general_option(GtkWidget *, int *);
|
|
548 extern void set_option(GtkWidget *, int *);
|
|
549 extern void show_prefs();
|
|
550
|
|
551 /* Functions in gaimrc.c */
|
|
552 extern void set_defaults();
|
|
553 extern void load_prefs();
|
|
554 extern void save_prefs();
|
|
555
|
|
556
|
|
557 /*Functions in plugins.c */
|
|
558 extern void show_plugins();
|
|
559
|
|
560 /* Functions in dialogs.c */
|
|
561 extern void show_warn_dialog(char *);
|
|
562 extern void do_error_dialog(char *, char *);
|
|
563 extern void show_error_dialog(char *);
|
|
564 extern void show_im_dialog(GtkWidget *, GtkWidget *);
|
|
565 extern void show_add_buddy(char *, char *);
|
|
566 extern void show_add_perm();
|
|
567 extern void destroy_all_dialogs();
|
|
568 extern void show_export_dialog();
|
|
569 extern void show_import_dialog();
|
|
570 extern void show_new_bp();
|
|
571 extern void show_log_dialog(char *);
|
|
572 extern void show_find_email();
|
|
573 extern void show_find_info();
|
|
574 extern void g_show_info (char *);
|
|
575 extern void show_register_dialog();
|
|
576 extern void show_set_info();
|
|
577 extern void show_set_dir();
|
|
578 extern void show_color_dialog(GtkWidget *entrye, GtkWidget *color);
|
|
579 extern void accept_file_dialog(struct file_transfer *);
|
|
580 extern void create_away_mess(GtkWidget *, void *);
|
|
581 extern void show_ee_dialog(int);
|
|
582 extern void show_add_link(GtkWidget *, GtkWidget *);
|
|
583
|
|
584
|
|
585 /* Functions in browser.c */
|
|
586 extern void open_url(GtkWidget *, char *);
|
|
587 extern void open_url_nw(GtkWidget *, char *);
|
|
588 extern void add_bookmark(GtkWidget *, char *);
|
|
589
|
|
590 /* functions for appletmgr */
|
|
591 extern char * getConfig();
|
|
592
|