Tue, 21 Mar 2006 01:15:50 +0000
[gaim-migrate @ 15915]
Change "Clear formatting" to "Reset formatting". This is more clear (no
pun intended), and helps to remove ambiguity with the "Clear scrollback"
option in the Conversation menu. I've also noted the mnemonic on this entry
in the right-click menu in conversations.
| 3630 | 1 | /* |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
2 | * gaim |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
3 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
4 | * File: win32dep.c |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
5 | * Date: June, 2002 |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
6 | * Description: Windows dependant code for Gaim |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
7 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
8 | * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com> |
| 3630 | 9 | * |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
10 | * This program is free software; you can redistribute it and/or modify |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
11 | * it under the terms of the GNU General Public License as published by |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
12 | * the Free Software Foundation; either version 2 of the License, or |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
13 | * (at your option) any later version. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
14 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
15 | * This program is distributed in the hope that it will be useful, |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
18 | * GNU General Public License for more details. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
19 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
20 | * You should have received a copy of the GNU General Public License |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
21 | * along with this program; if not, write to the Free Software |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
23 | * |
| 3630 | 24 | */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
25 | #define _WIN32_IE 0x500 |
| 3630 | 26 | #include <windows.h> |
|
6425
3e86c949c98a
[gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents:
6423
diff
changeset
|
27 | #include <io.h> |
| 3630 | 28 | #include <stdlib.h> |
| 29 | #include <stdio.h> | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
30 | #include <winuser.h> |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
31 | |
| 3630 | 32 | #include <glib.h> |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
33 | #include <glib/gstdio.h> |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
34 | |
| 3630 | 35 | #include "gaim.h" |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
36 | #include "debug.h" |
|
6929
47829b408f9d
[gaim-migrate @ 7476]
Herman Bloggs <herman@bluedigits.com>
parents:
6890
diff
changeset
|
37 | #include "notify.h" |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
38 | |
| 3630 | 39 | #include "resource.h" |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
40 | #include "idletrack.h" |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
41 | #include "zlib.h" |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
42 | #include "untar.h" |
| 3630 | 43 | |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
44 | #include <libintl.h> |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
45 | |
|
10673
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
46 | #include "win32dep.h" |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
47 | |
| 3630 | 48 | /* |
| 49 | * DEFINES & MACROS | |
| 50 | */ | |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
51 | #define _(x) gettext(x) |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
52 | |
| 3630 | 53 | /* |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
54 | * DATA STRUCTS |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
55 | */ |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
56 | |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
57 | /* For shfolder.dll */ |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
58 | typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHA)(HWND, int, HANDLE, DWORD, LPSTR); |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
59 | typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHW)(HWND, int, HANDLE, DWORD, LPWSTR); |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
60 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
61 | /* |
| 3630 | 62 | * LOCALS |
| 63 | */ | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
64 | static char *app_data_dir, *install_dir, *lib_dir, *locale_dir; |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
65 | |
| 3630 | 66 | /* |
| 67 | * GLOBALS | |
| 68 | */ | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
69 | HINSTANCE gaimexe_hInstance = 0; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
70 | HINSTANCE gaimdll_hInstance = 0; |
| 3630 | 71 | |
| 72 | /* | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
73 | * PROTOS |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
74 | */ |
|
6848
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
75 | |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
76 | FARPROC wgaim_find_and_loadproc(char*, char*); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
77 | extern void wgaim_gtkspell_init(); |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
78 | char* wgaim_data_dir(void); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
79 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
80 | /* |
| 3630 | 81 | * STATIC CODE |
| 82 | */ | |
| 83 | ||
|
7526
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
84 | static void wgaim_debug_print(GaimDebugLevel level, const char *category, const char *format, va_list args) { |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
85 | char *str = NULL; |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
86 | if (args != NULL) { |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
87 | str = g_strdup_vprintf(format, args); |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
88 | } else { |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
89 | str = g_strdup(format); |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
90 | } |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
91 | printf("%s%s%s", category ? category : "", category ? ": " : "", str); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
92 | g_free(str); |
|
7526
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
93 | } |
|
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
94 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
95 | static GaimDebugUiOps ops = { |
|
7526
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
96 | wgaim_debug_print |
|
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
97 | }; |
|
bf210d91506e
[gaim-migrate @ 8139]
Herman Bloggs <herman@bluedigits.com>
parents:
7523
diff
changeset
|
98 | |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
99 | /* |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
100 | * PUBLIC CODE |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
101 | */ |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
102 | |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
103 | HINSTANCE wgaim_hinstance(void) { |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
104 | return gaimexe_hInstance; |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
105 | } |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
106 | |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
107 | /* Escape windows dir separators. This is needed when paths are saved, |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
108 | and on being read back have their '\' chars used as an escape char. |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
109 | Returns an allocated string which needs to be freed. |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
110 | */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
111 | char* wgaim_escape_dirsep(char* filename) { |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
112 | int sepcount = 0; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
113 | char* ret = NULL; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
114 | int cnt = 0; |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
115 | |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
116 | ret = filename; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
117 | while(*ret) { |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
118 | if(*ret == '\\') |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
119 | sepcount++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
120 | ret++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
121 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
122 | ret = g_malloc0(strlen(filename) + sepcount + 1); |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
123 | while(*filename) { |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
124 | ret[cnt] = *filename; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
125 | if(*filename == '\\') |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
126 | ret[++cnt] = '\\'; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
127 | filename++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
128 | cnt++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
129 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
130 | ret[cnt] = '\0'; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
131 | return ret; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
132 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
133 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
134 | /* Determine whether the specified dll contains the specified procedure. |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
135 | If so, load it (if not already loaded). */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
136 | FARPROC wgaim_find_and_loadproc(char* dllname, char* procedure) { |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
137 | HMODULE hmod; |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
138 | BOOL did_load = FALSE; |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
139 | FARPROC proc = 0; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
140 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
141 | if(!(hmod = GetModuleHandle(dllname))) { |
| 5854 | 142 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "%s not found. Loading it..\n", dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
143 | if(!(hmod = LoadLibrary(dllname))) { |
| 5854 | 144 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "Could not load: %s\n", dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
145 | return NULL; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
146 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
147 | else |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
148 | did_load = TRUE; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
149 | } |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
150 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
151 | if((proc = GetProcAddress(hmod, procedure))) { |
| 5854 | 152 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "This version of %s contains %s\n", |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
153 | dllname, procedure); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
154 | return proc; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
155 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
156 | else { |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
157 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "Function %s not found in dll %s\n", |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
158 | procedure, dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
159 | if(did_load) { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
160 | /* unload dll */ |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
161 | FreeLibrary(hmod); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
162 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
163 | return NULL; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
164 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
165 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
166 | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
167 | /* Determine Gaim Paths during Runtime */ |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
168 | |
|
10673
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
169 | /* Get paths to special Windows folders. */ |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
170 | char *wgaim_get_special_folder(int folder_type) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
171 | static LPFNSHGETFOLDERPATHA MySHGetFolderPathA = NULL; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
172 | char *retval = NULL; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
173 | #if GLIB_CHECK_VERSION(2,6,0) |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
174 | static LPFNSHGETFOLDERPATHW MySHGetFolderPathW = NULL; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
175 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
176 | if (!MySHGetFolderPathW) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
177 | MySHGetFolderPathW = (LPFNSHGETFOLDERPATHW) |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
178 | wgaim_find_and_loadproc("shfolder.dll", "SHGetFolderPathW"); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
179 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
180 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
181 | if (MySHGetFolderPathW) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
182 | wchar_t utf_16_dir[MAX_PATH + 1]; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
183 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
184 | if (SUCCEEDED(MySHGetFolderPathW(NULL, folder_type, NULL, |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
185 | SHGFP_TYPE_CURRENT, utf_16_dir))) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
186 | retval = g_utf16_to_utf8(utf_16_dir, -1, NULL, NULL, NULL); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
187 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
188 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
189 | #endif |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
190 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
191 | if (!retval) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
192 | if (!MySHGetFolderPathA) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
193 | MySHGetFolderPathA = (LPFNSHGETFOLDERPATHA) |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
194 | wgaim_find_and_loadproc("shfolder.dll", "SHGetFolderPathA"); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
195 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
196 | if (MySHGetFolderPathA) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
197 | char locale_dir[MAX_PATH + 1]; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
198 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
199 | if (SUCCEEDED(MySHGetFolderPathA(NULL, folder_type, NULL, |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
200 | SHGFP_TYPE_CURRENT, locale_dir))) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
201 | #if GLIB_CHECK_VERSION(2,6,0) |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
202 | retval = g_locale_to_utf8(locale_dir, -1, NULL, NULL, NULL); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
203 | #else |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
204 | retval = g_strdup(locale_dir); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
205 | #endif |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
206 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
207 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
208 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
209 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
210 | return retval; |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
211 | } |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
212 | |
| 3630 | 213 | char* wgaim_install_dir(void) { |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
214 | static gboolean initialized = FALSE; |
| 3630 | 215 | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
216 | if (!initialized) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
217 | char *tmp = NULL; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
218 | if (G_WIN32_HAVE_WIDECHAR_API()) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
219 | wchar_t winstall_dir[MAXPATHLEN]; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
220 | if (GetModuleFileNameW(NULL, winstall_dir, |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
221 | MAXPATHLEN) > 0) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
222 | tmp = g_utf16_to_utf8(winstall_dir, -1, |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
223 | NULL, NULL, NULL); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
224 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
225 | } else { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
226 | gchar cpinstall_dir[MAXPATHLEN]; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
227 | if (GetModuleFileNameA(NULL, cpinstall_dir, |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
228 | MAXPATHLEN) > 0) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
229 | tmp = g_locale_to_utf8(cpinstall_dir, |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
230 | -1, NULL, NULL, NULL); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
231 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
232 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
233 | |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
234 | if (tmp == NULL) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
235 | tmp = g_win32_error_message(GetLastError()); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
236 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
237 | "GetModuleFileName error: %s\n", tmp); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
238 | g_free(tmp); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
239 | return NULL; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
240 | } else { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
241 | install_dir = g_path_get_dirname(tmp); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
242 | g_free(tmp); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
243 | initialized = TRUE; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
244 | } |
| 3630 | 245 | } |
| 246 | ||
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
247 | return install_dir; |
| 3630 | 248 | } |
| 249 | ||
| 250 | char* wgaim_lib_dir(void) { | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
251 | static gboolean initialized = FALSE; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
252 | |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
253 | if (!initialized) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
254 | char *inst_dir = wgaim_install_dir(); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
255 | if (inst_dir != NULL) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
256 | lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "plugins", inst_dir); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
257 | initialized = TRUE; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
258 | } else { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
259 | return NULL; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
260 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
261 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
262 | |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
263 | return lib_dir; |
| 3630 | 264 | } |
| 265 | ||
| 266 | char* wgaim_locale_dir(void) { | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
267 | static gboolean initialized = FALSE; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
268 | |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
269 | if (!initialized) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
270 | char *inst_dir = wgaim_install_dir(); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
271 | if (inst_dir != NULL) { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
272 | locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "locale", inst_dir); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
273 | initialized = TRUE; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
274 | } else { |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
275 | return NULL; |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
276 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
277 | } |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
278 | |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
279 | return locale_dir; |
| 3630 | 280 | } |
| 281 | ||
|
6848
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
282 | char* wgaim_data_dir(void) { |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
283 | return app_data_dir; |
|
6848
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
284 | } |
|
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
285 | |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
286 | /* Miscellaneous */ |
|
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
287 | |
|
6437
809e9334e31f
[gaim-migrate @ 6945]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
288 | gboolean wgaim_read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len) { |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
289 | HKEY hkey; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
290 | gboolean ret = FALSE; |
|
6437
809e9334e31f
[gaim-migrate @ 6945]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
291 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
292 | if(ERROR_SUCCESS == RegOpenKeyEx(key, sub_key, 0, KEY_QUERY_VALUE, |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
293 | &hkey)) { |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
294 | if(ERROR_SUCCESS == RegQueryValueEx(hkey, val_name, 0, NULL, |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
295 | data, data_len)) |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
296 | ret = TRUE; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
297 | RegCloseKey(key); |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
298 | } |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
299 | return ret; |
|
6437
809e9334e31f
[gaim-migrate @ 6945]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
300 | } |
|
809e9334e31f
[gaim-migrate @ 6945]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
301 | |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
302 | int wgaim_gz_decompress(const char* in, const char* out) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
303 | gzFile fin; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
304 | FILE *fout; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
305 | char buf[1024]; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
306 | int ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
307 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
308 | if((fin = gzopen(in, "rb"))) { |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
309 | if(!(fout = g_fopen(out, "wb"))) { |
| 5854 | 310 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "Error opening file: %s\n", out); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
311 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
312 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
313 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
314 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
315 | else { |
| 5854 | 316 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "gzopen failed to open: %s\n", in); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
317 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
318 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
319 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
320 | while((ret = gzread(fin, buf, 1024))) { |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
321 | if(fwrite(buf, 1, ret, fout) < ret) { |
| 5854 | 322 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "Error writing %d bytes to file\n", ret); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
323 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
324 | fclose(fout); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
325 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
326 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
327 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
328 | fclose(fout); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
329 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
330 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
331 | if(ret < 0) { |
| 5854 | 332 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "gzread failed while reading: %s\n", in); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
333 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
334 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
335 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
336 | return 1; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
337 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
338 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
339 | int wgaim_gz_untar(const char* filename, const char* destdir) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
340 | char tmpfile[_MAX_PATH]; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
341 | char template[]="wgaimXXXXXX"; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
342 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
343 | sprintf(tmpfile, "%s%s%s", g_get_tmp_dir(), G_DIR_SEPARATOR_S, _mktemp(template)); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
344 | if(wgaim_gz_decompress(filename, tmpfile)) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
345 | int ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
346 | if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET)) |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
347 | ret = 1; |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
348 | else { |
| 5854 | 349 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_untar", "Failure untaring %s\n", tmpfile); |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
350 | ret = 0; |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
351 | } |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
352 | g_unlink(tmpfile); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
353 | return ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
354 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
355 | else { |
| 5854 | 356 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_untar", "Failed to gz decompress %s\n", filename); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
357 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
358 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
359 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
360 | |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
361 | void wgaim_notify_uri(const char *uri) { |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
362 | SHELLEXECUTEINFO sinfo; |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
363 | |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
364 | memset(&sinfo, 0, sizeof(sinfo)); |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
365 | sinfo.cbSize = sizeof(sinfo); |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
366 | sinfo.fMask = SEE_MASK_CLASSNAME; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
367 | sinfo.lpVerb = "open"; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
368 | sinfo.lpFile = uri; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
369 | sinfo.nShow = SW_SHOWNORMAL; |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
370 | sinfo.lpClass = "http"; |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
371 | |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
372 | /* We'll allow whatever URI schemes are supported by the |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
373 | default http browser. |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
374 | */ |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
375 | if(!ShellExecuteEx(&sinfo)) |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
376 | gaim_debug_error("wgaim", "Error opening URI: %s error: %d\n", |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
377 | uri, (int) sinfo.hInstApp); |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
378 | } |
|
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10213
diff
changeset
|
379 | |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
380 | void wgaim_init(HINSTANCE hint) { |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
381 | WORD wVersionRequested; |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
382 | WSADATA wsaData; |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
383 | const char *perlenv; |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
384 | char *newenv; |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
385 | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
386 | gaim_debug_set_ui_ops(&ops); |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
387 | gaim_debug_info("wgaim", "wgaim_init start\n"); |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
388 | |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
389 | gaim_debug_info("wgaim", "Glib:%u.%u.%u\n", |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
390 | glib_major_version, glib_minor_version, glib_micro_version); |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
391 | |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
392 | gaimexe_hInstance = hint; |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
393 | |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
394 | /* Winsock init */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
395 | wVersionRequested = MAKEWORD(2, 2); |
|
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
396 | WSAStartup(wVersionRequested, &wsaData); |
|
6848
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
397 | |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
398 | /* Confirm that the winsock DLL supports 2.2 */ |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
399 | /* Note that if the DLL supports versions greater than |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
400 | 2.2 in addition to 2.2, it will still return 2.2 in |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
401 | wVersion since that is the version we requested. */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
402 | if(LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
403 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "Could not find a usable WinSock DLL. Oh well.\n"); |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
404 | WSACleanup(); |
|
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
405 | } |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
406 | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
407 | /* Set Environmental Variables */ |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
408 | /* Tell perl where to find Gaim's perl modules */ |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
409 | perlenv = g_getenv("PERL5LIB"); |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
410 | newenv = g_strdup_printf("PERL5LIB=%s%s%s%s", |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
411 | perlenv ? perlenv : "", |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
412 | perlenv ? ";" : "", |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
413 | wgaim_install_dir(), |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
414 | "\\perlmod;"); |
|
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
415 | if (putenv(newenv) < 0) |
|
6816
b14a3043ed09
[gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents:
6437
diff
changeset
|
416 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
417 | g_free(newenv); |
|
6848
ca91f08b60df
[gaim-migrate @ 7393]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
418 | |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
419 | /* Set app data dir, used by gaim_home_dir */ |
|
10673
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
420 | newenv = (char*) g_getenv("GAIMHOME"); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
421 | if (newenv) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
422 | app_data_dir = g_strdup(newenv); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
423 | } else { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
424 | app_data_dir = wgaim_get_special_folder(CSIDL_APPDATA); |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
425 | if (!app_data_dir) { |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
426 | app_data_dir = g_strdup("C:"); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10335
diff
changeset
|
427 | } |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
428 | } |
|
10673
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
429 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
430 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Gaim settings dir: %s\n", app_data_dir); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
431 | |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
432 | /* IdleTracker Initialization */ |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
433 | if(!wgaim_set_idlehooks()) |
|
13322
c973bc4b0a53
[gaim-migrate @ 15690]
Daniel Atallah <datallah@pidgin.im>
parents:
12572
diff
changeset
|
434 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "Failed to initialize idle tracker\n"); |
|
4861
3b98cd332858
[gaim-migrate @ 5188]
Herman Bloggs <herman@bluedigits.com>
parents:
4728
diff
changeset
|
435 | |
|
11323
d9a148f36cbc
[gaim-migrate @ 13528]
Daniel Atallah <datallah@pidgin.im>
parents:
11256
diff
changeset
|
436 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_init end\n"); |
| 3630 | 437 | } |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
438 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
439 | /* Windows Cleanup */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
440 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
441 | void wgaim_cleanup(void) { |
| 5854 | 442 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_cleanup\n"); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
443 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
444 | /* winsock cleanup */ |
|
7523
8563b0512405
[gaim-migrate @ 8136]
Herman Bloggs <herman@bluedigits.com>
parents:
7350
diff
changeset
|
445 | WSACleanup(); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
446 | |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
447 | /* Idle tracker cleanup */ |
|
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
448 | wgaim_remove_idlehooks(); |
|
10673
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
449 | |
|
3177232170c7
[gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents:
10589
diff
changeset
|
450 | g_free(app_data_dir); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
451 | } |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
452 | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
453 | /* DLL initializer */ |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
454 | BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
455 | gaimdll_hInstance = hinstDLL; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
456 | return TRUE; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
457 | } |