Thu, 31 May 2012 03:48:16 +0000
propagate from branch 'im.pidgin.pidgin.2.x.y' (head 0aa32fc00dc281d336971ef3966efe6652dc1bf6)
to branch 'im.pidgin.pidgin' (head 89f064bdd762e62b3e3d3a2153cece816879cee9)
| 3712 | 1 | /* |
| 15884 | 2 | * purple |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
3 | * |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
4 | * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com> |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
5 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
6 | * This program is free software; you can redistribute it and/or modify |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
7 | * it under the terms of the GNU General Public License as published by |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
8 | * the Free Software Foundation; either version 2 of the License, or |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
9 | * (at your option) any later version. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
10 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
11 | * This program is distributed in the hope that it will be useful, |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
14 | * GNU General Public License for more details. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
15 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
16 | * You should have received a copy of the GNU General Public License |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
17 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18553
diff
changeset
|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
19 | * |
| 3712 | 20 | */ |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
21 | #include <winsock2.h> |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
22 | #include <ws2tcpip.h> |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
23 | #include <io.h> |
| 3712 | 24 | #include <stdlib.h> |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
25 | #include <stdio.h> |
| 3712 | 26 | #include <errno.h> |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
27 | #include <sys/timeb.h> |
|
4905
1464e05926f0
[gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents:
4193
diff
changeset
|
28 | #include <sys/stat.h> |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
29 | #include <time.h> |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
9611
diff
changeset
|
30 | #include <glib.h> |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
31 | #include "config.h" |
|
6425
3e86c949c98a
[gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
32 | #include "debug.h" |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
33 | #include "libc_internal.h" |
|
25333
182125d7b7fc
Fix from the QuteCom folks to compile with Glib < 2.8.5 with MSVC. Fixes #7761. Also some minor cleanup from me.
Daniel Atallah <datallah@pidgin.im>
parents:
24843
diff
changeset
|
34 | #include <glib/gstdio.h> |
| 3712 | 35 | |
| 29735 | 36 | /** This is redefined here because we can't include internal.h */ |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
37 | #ifdef ENABLE_NLS |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
38 | # include <locale.h> |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
39 | # include <libintl.h> |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
40 | # define _(String) ((const char *)dgettext(PACKAGE, String)) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
41 | # ifdef gettext_noop |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
42 | # define N_(String) gettext_noop (String) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
43 | # else |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
44 | # define N_(String) (String) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
45 | # endif |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
46 | #else |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
47 | # include <locale.h> |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
48 | # define N_(String) (String) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
49 | # ifndef _ |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
50 | # define _(String) ((const char *)String) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
51 | # endif |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
52 | # define ngettext(Singular, Plural, Number) ((Number == 1) ? ((const char *)Singular) : ((const char *)Plural)) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
53 | # define dngettext(Domain, Singular, Plural, Number) ((Number == 1) ? ((const char *)Singular) : ((const char *)Plural)) |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
54 | #endif |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
55 | |
|
25333
182125d7b7fc
Fix from the QuteCom folks to compile with Glib < 2.8.5 with MSVC. Fixes #7761. Also some minor cleanup from me.
Daniel Atallah <datallah@pidgin.im>
parents:
24843
diff
changeset
|
56 | #ifndef S_ISDIR |
|
182125d7b7fc
Fix from the QuteCom folks to compile with Glib < 2.8.5 with MSVC. Fixes #7761. Also some minor cleanup from me.
Daniel Atallah <datallah@pidgin.im>
parents:
24843
diff
changeset
|
57 | # define S_ISDIR(m) (((m)&S_IFDIR)==S_IFDIR) |
|
182125d7b7fc
Fix from the QuteCom folks to compile with Glib < 2.8.5 with MSVC. Fixes #7761. Also some minor cleanup from me.
Daniel Atallah <datallah@pidgin.im>
parents:
24843
diff
changeset
|
58 | #endif |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
59 | |
| 3712 | 60 | static char errbuf[1024]; |
| 61 | ||
| 62 | /* helpers */ | |
| 15884 | 63 | static int wpurple_is_socket( int fd ) { |
| 3712 | 64 | int optval; |
| 29797 | 65 | int optlen = sizeof(int); |
| 3712 | 66 | |
| 67 | if( (getsockopt(fd, SOL_SOCKET, SO_TYPE, (void*)&optval, &optlen)) == SOCKET_ERROR ) { | |
| 68 | int error = WSAGetLastError(); | |
| 69 | if( error == WSAENOTSOCK ) | |
| 70 | return FALSE; | |
| 71 | else { | |
| 15884 | 72 | purple_debug(PURPLE_DEBUG_WARNING, "wpurple", "wpurple_is_socket: getsockopt returned error: %d\n", error); |
| 3712 | 73 | return FALSE; |
| 74 | } | |
| 75 | } | |
| 76 | return TRUE; | |
| 77 | } | |
| 78 | ||
| 79 | /* socket.h */ | |
| 15884 | 80 | int wpurple_socket (int namespace, int style, int protocol) { |
| 3712 | 81 | int ret; |
| 82 | ||
| 83 | ret = socket( namespace, style, protocol ); | |
| 84 | ||
| 85 | if( ret == INVALID_SOCKET ) { | |
| 86 | errno = WSAGetLastError(); | |
| 87 | return -1; | |
| 88 | } | |
| 89 | return ret; | |
| 90 | } | |
| 91 | ||
| 15884 | 92 | int wpurple_connect(int socket, struct sockaddr *addr, u_long length) { |
| 3712 | 93 | int ret; |
| 94 | ||
| 95 | ret = connect( socket, addr, length ); | |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
96 | |
| 3712 | 97 | if( ret == SOCKET_ERROR ) { |
| 98 | errno = WSAGetLastError(); | |
| 99 | if( errno == WSAEWOULDBLOCK ) | |
| 100 | errno = WSAEINPROGRESS; | |
| 101 | return -1; | |
| 102 | } | |
| 103 | return 0; | |
| 104 | } | |
| 105 | ||
| 15884 | 106 | int wpurple_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
107 | if(getsockopt(socket, level, optname, optval, optlenptr) == SOCKET_ERROR ) { |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
108 | errno = WSAGetLastError(); |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
109 | return -1; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
110 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
111 | return 0; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
112 | } |
| 3712 | 113 | |
| 15884 | 114 | int wpurple_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
115 | if(setsockopt(socket, level, optname, optval, optlen) == SOCKET_ERROR ) { |
| 3712 | 116 | errno = WSAGetLastError(); |
| 117 | return -1; | |
| 118 | } | |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
119 | return 0; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
120 | } |
| 3712 | 121 | |
| 15884 | 122 | int wpurple_getsockname(int socket, struct sockaddr *addr, socklen_t *lenptr) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
123 | if(getsockname(socket, addr, lenptr) == SOCKET_ERROR) { |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
124 | errno = WSAGetLastError(); |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
125 | return -1; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
126 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
127 | return 0; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
128 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
129 | |
| 15884 | 130 | int wpurple_bind(int socket, struct sockaddr *addr, socklen_t length) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
131 | if(bind(socket, addr, length) == SOCKET_ERROR) { |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
132 | errno = WSAGetLastError(); |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
133 | return -1; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
134 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
135 | return 0; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
136 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
137 | |
| 15884 | 138 | int wpurple_listen(int socket, unsigned int n) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
139 | if(listen(socket, n) == SOCKET_ERROR) { |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
140 | errno = WSAGetLastError(); |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
141 | return -1; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
142 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
143 | return 0; |
| 3712 | 144 | } |
| 145 | ||
| 15884 | 146 | int wpurple_sendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) { |
|
11431
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
147 | int ret; |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
148 | if ((ret = sendto(socket, buf, len, flags, to, tolen) |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
149 | ) == SOCKET_ERROR) { |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
150 | errno = WSAGetLastError(); |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
151 | if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS) |
|
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
152 | errno = EAGAIN; |
|
11431
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
153 | return -1; |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
154 | } |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
155 | return ret; |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
156 | } |
|
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
11364
diff
changeset
|
157 | |
| 3712 | 158 | /* fcntl.h */ |
| 159 | /* This is not a full implementation of fcntl. Update as needed.. */ | |
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
160 | int wpurple_fcntl(int socket, int command, ...) { |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
161 | |
| 3712 | 162 | switch( command ) { |
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
163 | case F_GETFL: |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
164 | return 0; |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
165 | |
| 3712 | 166 | case F_SETFL: |
| 167 | { | |
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
168 | va_list args; |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
169 | int val; |
| 3712 | 170 | int ret=0; |
| 171 | ||
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
172 | va_start(args, command); |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
173 | val = va_arg(args, int); |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
174 | va_end(args); |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
175 | |
| 3712 | 176 | switch( val ) { |
| 177 | case O_NONBLOCK: | |
| 178 | { | |
| 179 | u_long imode=1; | |
| 180 | ret = ioctlsocket(socket, FIONBIO, &imode); | |
| 181 | break; | |
| 182 | } | |
| 183 | case 0: | |
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
184 | { |
| 3712 | 185 | u_long imode=0; |
| 186 | ret = ioctlsocket(socket, FIONBIO, &imode); | |
| 187 | break; | |
| 188 | } | |
| 189 | default: | |
| 190 | errno = EINVAL; | |
| 191 | return -1; | |
| 192 | }/*end switch*/ | |
| 193 | if( ret == SOCKET_ERROR ) { | |
| 194 | errno = WSAGetLastError(); | |
| 195 | return -1; | |
| 196 | } | |
| 197 | return 0; | |
| 198 | } | |
| 199 | default: | |
| 15884 | 200 | purple_debug(PURPLE_DEBUG_WARNING, "wpurple", "wpurple_fcntl: Unsupported command\n"); |
| 3712 | 201 | return -1; |
| 202 | }/*end switch*/ | |
| 203 | } | |
| 204 | ||
| 205 | /* sys/ioctl.h */ | |
| 15884 | 206 | int wpurple_ioctl(int fd, int command, void* val) { |
| 3712 | 207 | switch( command ) { |
| 208 | case FIONBIO: | |
| 209 | { | |
| 210 | if (ioctlsocket(fd, FIONBIO, (unsigned long *)val) == SOCKET_ERROR) { | |
| 211 | errno = WSAGetLastError(); | |
| 212 | return -1; | |
| 213 | } | |
| 214 | return 0; | |
| 215 | } | |
|
11364
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
216 | case SIOCGIFCONF: |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
217 | { |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
218 | INTERFACE_INFO InterfaceList[20]; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
219 | unsigned long nBytesReturned; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
220 | if (WSAIoctl(fd, SIO_GET_INTERFACE_LIST, |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
221 | 0, 0, &InterfaceList, |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
222 | sizeof(InterfaceList), &nBytesReturned, |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
223 | 0, 0) == SOCKET_ERROR) { |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
224 | errno = WSAGetLastError(); |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
225 | return -1; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
226 | } else { |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
227 | int i; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
228 | struct ifconf *ifc = val; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
229 | char *tmp = ifc->ifc_buf; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
230 | int nNumInterfaces = |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
231 | nBytesReturned / sizeof(INTERFACE_INFO); |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
232 | for (i = 0; i < nNumInterfaces; i++) { |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
233 | INTERFACE_INFO ii = InterfaceList[i]; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
234 | struct ifreq *ifr = (struct ifreq *) tmp; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
235 | struct sockaddr_in *sa = (struct sockaddr_in *) &ifr->ifr_addr; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
236 | |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
237 | sa->sin_family = ii.iiAddress.AddressIn.sin_family; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
238 | sa->sin_port = ii.iiAddress.AddressIn.sin_port; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
239 | sa->sin_addr.s_addr = ii.iiAddress.AddressIn.sin_addr.s_addr; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
240 | tmp += sizeof(struct ifreq); |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
241 | |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
242 | /* Make sure that we can fit in the original buffer */ |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
243 | if (tmp >= (ifc->ifc_buf + ifc->ifc_len + sizeof(struct ifreq))) { |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
244 | break; |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
245 | } |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
246 | } |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
247 | /* Replace the length with the actually used length */ |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
248 | ifc->ifc_len = ifc->ifc_len - (ifc->ifc_buf - tmp); |
|
12488
72878a4bf35a
[gaim-migrate @ 14800]
Daniel Atallah <datallah@pidgin.im>
parents:
11543
diff
changeset
|
249 | return 0; |
|
11364
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
250 | } |
|
d754cf40ec4b
[gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
251 | } |
| 3712 | 252 | default: |
| 253 | errno = EINVAL; | |
| 254 | return -1; | |
| 255 | }/*end switch*/ | |
| 256 | } | |
| 257 | ||
| 258 | /* arpa/inet.h */ | |
| 15884 | 259 | int wpurple_inet_aton(const char *name, struct in_addr *addr) { |
| 3712 | 260 | if((addr->s_addr = inet_addr(name)) == INADDR_NONE) |
| 261 | return 0; | |
| 262 | else | |
| 263 | return 1; | |
| 264 | } | |
| 265 | ||
|
14974
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
266 | /* Thanks to GNU wget for this inet_ntop() implementation */ |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
267 | const char * |
| 15884 | 268 | wpurple_inet_ntop (int af, const void *src, char *dst, socklen_t cnt) |
|
14974
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
269 | { |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
270 | /* struct sockaddr can't accomodate struct sockaddr_in6. */ |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
271 | union { |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
272 | struct sockaddr_in6 sin6; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
273 | struct sockaddr_in sin; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
274 | } sa; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
275 | DWORD dstlen = cnt; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
276 | size_t srcsize; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
277 | |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
278 | ZeroMemory(&sa, sizeof(sa)); |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
279 | switch (af) |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
280 | { |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
281 | case AF_INET: |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
282 | sa.sin.sin_family = AF_INET; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
283 | sa.sin.sin_addr = *(struct in_addr *) src; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
284 | srcsize = sizeof (sa.sin); |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
285 | break; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
286 | case AF_INET6: |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
287 | sa.sin6.sin6_family = AF_INET6; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
288 | sa.sin6.sin6_addr = *(struct in6_addr *) src; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
289 | srcsize = sizeof (sa.sin6); |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
290 | break; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
291 | default: |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
292 | abort (); |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
293 | } |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
294 | |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
295 | if (WSAAddressToString ((struct sockaddr *) &sa, srcsize, NULL, dst, &dstlen) != 0) |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
296 | { |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
297 | errno = WSAGetLastError(); |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
298 | return NULL; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
299 | } |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
300 | return (const char *) dst; |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
301 | } |
|
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
302 | |
|
32069
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
303 | int |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
304 | wpurple_inet_pton(int af, const char *src, void *dst) |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
305 | { |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
306 | /* struct sockaddr can't accomodate struct sockaddr_in6. */ |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
307 | union { |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
308 | struct sockaddr_in6 sin6; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
309 | struct sockaddr_in sin; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
310 | } sa; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
311 | size_t srcsize; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
312 | |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
313 | switch(af) |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
314 | { |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
315 | case AF_INET: |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
316 | sa.sin.sin_family = AF_INET; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
317 | srcsize = sizeof (sa.sin); |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
318 | break; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
319 | case AF_INET6: |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
320 | sa.sin6.sin6_family = AF_INET6; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
321 | srcsize = sizeof (sa.sin6); |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
322 | break; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
323 | default: |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
324 | errno = WSAEPFNOSUPPORT; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
325 | return -1; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
326 | } |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
327 | |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
328 | if (WSAStringToAddress(src, af, NULL, (struct sockaddr *) &sa, &srcsize) != 0) |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
329 | { |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
330 | errno = WSAGetLastError(); |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
331 | return -1; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
332 | } |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
333 | |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
334 | switch(af) |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
335 | { |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
336 | case AF_INET: |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
337 | memcpy(dst, &sa.sin.sin_addr, sizeof(sa.sin.sin_addr)); |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
338 | break; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
339 | case AF_INET6: |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
340 | memcpy(dst, &sa.sin6.sin6_addr, sizeof(sa.sin6.sin6_addr)); |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
341 | break; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
342 | } |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
343 | |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
344 | return 1; |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
345 | } |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
31957
diff
changeset
|
346 | |
|
14974
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
347 | |
| 3712 | 348 | /* netdb.h */ |
| 15884 | 349 | struct hostent* wpurple_gethostbyname(const char *name) { |
| 3712 | 350 | struct hostent *hp; |
| 351 | ||
| 352 | if((hp = gethostbyname(name)) == NULL) { | |
| 353 | errno = WSAGetLastError(); | |
| 354 | return NULL; | |
| 355 | } | |
| 356 | return hp; | |
| 357 | } | |
| 358 | ||
| 359 | /* string.h */ | |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
360 | char* wpurple_strerror(int errornum) { |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
361 | if (errornum > WSABASEERR) { |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
362 | switch(errornum) { |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
363 | case WSAECONNABORTED: /* 10053 */ |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
364 | g_snprintf(errbuf, sizeof(errbuf), "%s", _("Connection interrupted by other software on your computer.")); |
|
22641
c5e5a10e4799
I was wondering why the more sane error messges were never appearing... now I know. There is also a fix here that uses glib's internal rename stuff on recent versions because it is more robust than our win32 version.
Daniel Atallah <datallah@pidgin.im>
parents:
21771
diff
changeset
|
365 | break; |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
366 | case WSAECONNRESET: /* 10054 */ |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
367 | g_snprintf(errbuf, sizeof(errbuf), "%s", _("Remote host closed connection.")); |
|
22641
c5e5a10e4799
I was wondering why the more sane error messges were never appearing... now I know. There is also a fix here that uses glib's internal rename stuff on recent versions because it is more robust than our win32 version.
Daniel Atallah <datallah@pidgin.im>
parents:
21771
diff
changeset
|
368 | break; |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
369 | case WSAETIMEDOUT: /* 10060 */ |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
370 | g_snprintf(errbuf, sizeof(errbuf), "%s", _("Connection timed out.")); |
|
22641
c5e5a10e4799
I was wondering why the more sane error messges were never appearing... now I know. There is also a fix here that uses glib's internal rename stuff on recent versions because it is more robust than our win32 version.
Daniel Atallah <datallah@pidgin.im>
parents:
21771
diff
changeset
|
371 | break; |
|
23883
222e2f637efd
Fix running several Bonjour instances on the same machine.
Daniel Atallah <datallah@pidgin.im>
parents:
22871
diff
changeset
|
372 | case WSAECONNREFUSED: /* 10061 */ |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
373 | g_snprintf(errbuf, sizeof(errbuf), "%s", _("Connection refused.")); |
|
22641
c5e5a10e4799
I was wondering why the more sane error messges were never appearing... now I know. There is also a fix here that uses glib's internal rename stuff on recent versions because it is more robust than our win32 version.
Daniel Atallah <datallah@pidgin.im>
parents:
21771
diff
changeset
|
374 | break; |
|
23883
222e2f637efd
Fix running several Bonjour instances on the same machine.
Daniel Atallah <datallah@pidgin.im>
parents:
22871
diff
changeset
|
375 | case WSAEADDRINUSE: /* 10048 */ |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
376 | g_snprintf(errbuf, sizeof(errbuf), "%s", _("Address already in use.")); |
|
23883
222e2f637efd
Fix running several Bonjour instances on the same machine.
Daniel Atallah <datallah@pidgin.im>
parents:
22871
diff
changeset
|
377 | break; |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
378 | default: |
|
22871
a5ba9f9d340a
Use g_snprintf() instead of snprintf(), which isn't really available on
Daniel Atallah <datallah@pidgin.im>
parents:
22641
diff
changeset
|
379 | g_snprintf(errbuf, sizeof(errbuf), "Windows socket error #%d", errornum); |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
380 | } |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
381 | } else { |
|
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
382 | const char *tmp = g_strerror(errornum); |
|
30792
155b65d26118
Fix some cases where an arbitrary string was being specified as a printf format.
Daniel Atallah <datallah@pidgin.im>
parents:
29797
diff
changeset
|
383 | g_snprintf(errbuf, sizeof(errbuf), "%s", tmp); |
| 3712 | 384 | } |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
385 | return errbuf; |
| 3712 | 386 | } |
| 387 | ||
| 388 | /* unistd.h */ | |
| 389 | ||
| 390 | /* | |
| 391 | * We need to figure out whether fd is a file or socket handle. | |
| 392 | */ | |
| 15884 | 393 | int wpurple_read(int fd, void *buf, unsigned int size) { |
| 3712 | 394 | int ret; |
| 395 | ||
|
24843
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
396 | if (fd < 0) { |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
397 | errno = EBADF; |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
398 | g_return_val_if_reached(-1); |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
399 | } |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
400 | |
| 15884 | 401 | if(wpurple_is_socket(fd)) { |
|
13201
8c224ef70efa
[gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
12749
diff
changeset
|
402 | if((ret = recv(fd, buf, size, 0)) == SOCKET_ERROR) { |
| 3712 | 403 | errno = WSAGetLastError(); |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
404 | if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS) |
|
13201
8c224ef70efa
[gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
12749
diff
changeset
|
405 | errno = EAGAIN; |
| 3712 | 406 | return -1; |
| 407 | } | |
|
11543
e7218de0b500
[gaim-migrate @ 13798]
Daniel Atallah <datallah@pidgin.im>
parents:
11431
diff
changeset
|
408 | #if 0 |
| 3712 | 409 | else if( ret == 0 ) { |
| 410 | /* connection has been gracefully closed */ | |
| 411 | errno = WSAENOTCONN; | |
| 412 | return -1; | |
| 413 | } | |
|
11543
e7218de0b500
[gaim-migrate @ 13798]
Daniel Atallah <datallah@pidgin.im>
parents:
11431
diff
changeset
|
414 | #endif |
| 3712 | 415 | else { |
| 416 | /* success reading socket */ | |
| 417 | return ret; | |
| 418 | } | |
|
13201
8c224ef70efa
[gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
12749
diff
changeset
|
419 | } else { |
| 3712 | 420 | /* fd is not a socket handle.. pass it off to read */ |
|
22871
a5ba9f9d340a
Use g_snprintf() instead of snprintf(), which isn't really available on
Daniel Atallah <datallah@pidgin.im>
parents:
22641
diff
changeset
|
421 | return _read(fd, buf, size); |
| 3712 | 422 | } |
| 423 | } | |
| 424 | ||
| 15884 | 425 | int wpurple_send(int fd, const void *buf, unsigned int size, int flags) { |
| 3712 | 426 | int ret; |
| 427 | ||
|
13780
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
428 | ret = send(fd, buf, size, flags); |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
429 | |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
430 | if (ret == SOCKET_ERROR) { |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
431 | errno = WSAGetLastError(); |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
432 | if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS) |
|
13780
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
433 | errno = EAGAIN; |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
434 | return -1; |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
435 | } |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
436 | return ret; |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
437 | } |
|
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
438 | |
| 15884 | 439 | int wpurple_write(int fd, const void *buf, unsigned int size) { |
|
13780
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
440 | |
|
24843
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
441 | if (fd < 0) { |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
442 | errno = EBADF; |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
443 | g_return_val_if_reached(-1); |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
444 | } |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
445 | |
| 15884 | 446 | if(wpurple_is_socket(fd)) |
| 447 | return wpurple_send(fd, buf, size, 0); | |
|
13780
f642a0729daa
[gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents:
13371
diff
changeset
|
448 | else |
|
22871
a5ba9f9d340a
Use g_snprintf() instead of snprintf(), which isn't really available on
Daniel Atallah <datallah@pidgin.im>
parents:
22641
diff
changeset
|
449 | return _write(fd, buf, size); |
| 3712 | 450 | } |
| 451 | ||
| 15884 | 452 | int wpurple_recv(int fd, void *buf, size_t len, int flags) { |
|
12749
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
453 | int ret; |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
454 | |
|
13201
8c224ef70efa
[gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
12749
diff
changeset
|
455 | if((ret = recv(fd, buf, len, flags)) == SOCKET_ERROR) { |
|
12749
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
456 | errno = WSAGetLastError(); |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
457 | if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS) |
|
13201
8c224ef70efa
[gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
12749
diff
changeset
|
458 | errno = EAGAIN; |
|
12749
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
459 | return -1; |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
460 | } else { |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
461 | return ret; |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
462 | } |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
463 | } |
|
704b51d5007a
[gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents:
12488
diff
changeset
|
464 | |
| 15884 | 465 | int wpurple_close(int fd) { |
| 3712 | 466 | int ret; |
| 467 | ||
|
24843
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
468 | if (fd < 0) { |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
469 | errno = EBADF; |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
470 | g_return_val_if_reached(-1); |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
471 | } |
|
ab68c6d3c247
(Slightly modified) patch from fqueze to avoid exceptions with newer win32 CRTs.
Daniel Atallah <datallah@pidgin.im>
parents:
23883
diff
changeset
|
472 | |
| 15884 | 473 | if( wpurple_is_socket(fd) ) { |
| 3712 | 474 | if( (ret = closesocket(fd)) == SOCKET_ERROR ) { |
| 475 | errno = WSAGetLastError(); | |
| 476 | return -1; | |
| 477 | } | |
| 478 | else | |
| 479 | return 0; | |
| 480 | } | |
| 481 | else | |
|
22871
a5ba9f9d340a
Use g_snprintf() instead of snprintf(), which isn't really available on
Daniel Atallah <datallah@pidgin.im>
parents:
22641
diff
changeset
|
482 | return _close(fd); |
| 3712 | 483 | } |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
484 | |
| 15884 | 485 | int wpurple_gethostname(char *name, size_t size) { |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
486 | if(gethostname(name, size) == SOCKET_ERROR) { |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
487 | errno = WSAGetLastError(); |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
488 | return -1; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
489 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
490 | return 0; |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
491 | } |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
6425
diff
changeset
|
492 | |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
493 | /* sys/time.h */ |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
494 | |
| 15884 | 495 | int wpurple_gettimeofday(struct timeval *p, struct timezone *z) { |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
496 | int res = 0; |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
497 | struct _timeb timebuffer; |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
498 | |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
499 | if (z != 0) { |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
500 | _tzset(); |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
501 | z->tz_minuteswest = _timezone/60; |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
502 | z->tz_dsttime = _daylight; |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
503 | } |
|
17666
9c32c365b852
Pretend that WSAEINPROGRESS is EAGAIN (for our purposes, I think they are equivalent). I think this might help #485. References #485.
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
504 | |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
505 | if (p != 0) { |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
506 | _ftime(&timebuffer); |
|
21771
0df7285a6164
Better error messages for common Winsock errors. This was Kevin's wonderful idea.
Daniel Atallah <datallah@pidgin.im>
parents:
21635
diff
changeset
|
507 | p->tv_sec = timebuffer.time; /* seconds since 1-1-1970 */ |
|
3777
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
508 | p->tv_usec = timebuffer.millitm*1000; /* microseconds */ |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
509 | } |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
510 | |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
511 | return res; |
|
a3f8adc4c3e0
[gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents:
3712
diff
changeset
|
512 | } |
|
4905
1464e05926f0
[gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents:
4193
diff
changeset
|
513 | |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
514 | /* time.h */ |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
515 | |
| 15884 | 516 | struct tm * wpurple_localtime_r (const time_t *time, struct tm *resultp) { |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
517 | struct tm* tmptm; |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
518 | |
|
5474
eec4dad3e035
[gaim-migrate @ 5868]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
519 | if(!time) |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5474
diff
changeset
|
520 | return NULL; |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
521 | tmptm = localtime(time); |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
522 | if(resultp && tmptm) |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
523 | return memcpy(resultp, tmptm, sizeof(struct tm)); |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
524 | else |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
525 | return NULL; |
|
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
526 | } |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
527 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
528 | /* |
| 15884 | 529 | * Used by purple_utf8_strftime() by way of purple_internal_strftime() |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
530 | * in src/util.c |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
531 | * |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
532 | * Code derived from PostgreSQL src/timezone/pgtz.c: |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
533 | * http://developer.postgresql.org/cvsweb.cgi/pgsql/src/timezone/pgtz.c |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
534 | */ |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
535 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
536 | /* |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
537 | PostgreSQL Database Management System |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
538 | (formerly known as Postgres, then as Postgres95) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
539 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
540 | Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
541 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
542 | Portions Copyright (c) 1994, The Regents of the University of California |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
543 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
544 | Permission to use, copy, modify, and distribute this software and its |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
545 | documentation for any purpose, without fee, and without a written agreement |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
546 | is hereby granted, provided that the above copyright notice and this |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
547 | paragraph and the following two paragraphs appear in all copies. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
548 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
549 | IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
550 | DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
551 | LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
552 | DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
553 | POSSIBILITY OF SUCH DAMAGE. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
554 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
555 | THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
556 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
557 | AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
558 | ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
559 | PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
560 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
561 | */ |
|
13341
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
562 | static struct |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
563 | { |
|
13341
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
564 | char *wstd; /* Windows name of standard timezone */ |
|
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
565 | char *wdst; /* Windows name of daylight timezone */ |
|
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
566 | char *ustd; /* Unix name of standard timezone */ |
|
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
567 | char *udst; /* Unix name of daylight timezone */ |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
568 | } win32_tzmap[] = |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
569 | { |
|
13339
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
570 | { |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
571 | "", "", |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
572 | "", "", |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
573 | }, |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
574 | /* |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
575 | * This list was built from the contents of the registry at |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
576 | * "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
577 | * on Windows XP Professional SP1 |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
578 | */ |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
579 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
580 | "Afghanistan Standard Time", "Afghanistan Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
581 | "AFT", "AFT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
582 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
583 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
584 | "Alaskan Standard Time", "Alaskan Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
585 | "AKST", "AKDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
586 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
587 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
588 | "Arab Standard Time", "Arab Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
589 | "AST", "AST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
590 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
591 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
592 | "Arabian Standard Time", "Arabian Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
593 | "GST", "GST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
594 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
595 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
596 | "Arabic Standard Time", "Arabic Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
597 | "AST", "ADT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
598 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
599 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
600 | "Atlantic Standard Time", "Atlantic Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
601 | "AST", "ADT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
602 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
603 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
604 | "AUS Central Standard Time", "AUS Central Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
605 | "CST", "CST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
606 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
607 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
608 | "AUS Eastern Standard Time", "AUS Eastern Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
609 | "EST", "EST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
610 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
611 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
612 | "Azores Standard Time", "Azores Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
613 | "AZOT", "AZOST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
614 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
615 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
616 | "Canada Central Standard Time", "Canada Central Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
617 | "CST", "MDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
618 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
619 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
620 | "Cape Verde Standard Time", "Cape Verde Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
621 | "CVT", "CVST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
622 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
623 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
624 | "Caucasus Standard Time", "Caucasus Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
625 | "AZT", "AZST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
626 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
627 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
628 | "Cen. Australia Standard Time", "Cen. Australia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
629 | "CST", "CST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
630 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
631 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
632 | "Central America Standard Time", "Central America Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
633 | "CST", "CDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
634 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
635 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
636 | "Central Asia Standard Time", "Central Asia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
637 | "BDT", "BDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
638 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
639 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
640 | "Central Europe Standard Time", "Central Europe Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
641 | "CET", "CEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
642 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
643 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
644 | "Central European Standard Time", "Central European Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
645 | "CET", "CEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
646 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
647 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
648 | "Central Pacific Standard Time", "Central Pacific Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
649 | "NCT", "NCST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
650 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
651 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
652 | "Central Standard Time", "Central Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
653 | "CST", "CDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
654 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
655 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
656 | "China Standard Time", "China Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
657 | "HKT", "HKST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
658 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
659 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
660 | "Dateline Standard Time", "Dateline Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
661 | "GMT+12", "GMT+12" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
662 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
663 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
664 | "E. Africa Standard Time", "E. Africa Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
665 | "EAT", "EAT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
666 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
667 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
668 | "E. Australia Standard Time", "E. Australia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
669 | "EST", "EST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
670 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
671 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
672 | "E. Europe Standard Time", "E. Europe Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
673 | "EET", "EEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
674 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
675 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
676 | "E. South America Standard Time", "E. South America Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
677 | "BRT", "BRST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
678 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
679 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
680 | "Eastern Standard Time", "Eastern Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
681 | "EST", "EDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
682 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
683 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
684 | "Egypt Standard Time", "Egypt Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
685 | "EET", "EEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
686 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
687 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
688 | "Ekaterinburg Standard Time", "Ekaterinburg Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
689 | "YEKT", "YEKST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
690 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
691 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
692 | "Fiji Standard Time", "Fiji Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
693 | "FJT", "FJST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
694 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
695 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
696 | "FLE Standard Time", "FLE Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
697 | "EET", "EEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
698 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
699 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
700 | "GMT Standard Time", "GMT Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
701 | "GMT", "IST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
702 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
703 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
704 | "Greenland Standard Time", "Greenland Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
705 | "WGT", "WGST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
706 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
707 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
708 | "Greenwich Standard Time", "Greenwich Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
709 | "WET", "WEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
710 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
711 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
712 | "GTB Standard Time", "GTB Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
713 | "EET", "EEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
714 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
715 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
716 | "Hawaiian Standard Time", "Hawaiian Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
717 | "HST", "HPT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
718 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
719 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
720 | "India Standard Time", "India Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
721 | "IST", "IST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
722 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
723 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
724 | "Iran Standard Time", "Iran Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
725 | "IRST", "IRDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
726 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
727 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
728 | "Jerusalem Standard Time", "Jerusalem Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
729 | "IST", "IDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
730 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
731 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
732 | "Korea Standard Time", "Korea Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
733 | "KST", "KDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
734 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
735 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
736 | "Mexico Standard Time", "Mexico Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
737 | "CST", "CDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
738 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
739 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
740 | "Mexico Standard Time", "Mexico Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
741 | "BOT", "BOST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
742 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
743 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
744 | "Mid-Atlantic Standard Time", "Mid-Atlantic Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
745 | "GST", "GST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
746 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
747 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
748 | "Mountain Standard Time", "Mountain Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
749 | "MST", "MDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
750 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
751 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
752 | "Myanmar Standard Time", "Myanmar Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
753 | "MMT", "MMT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
754 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
755 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
756 | "N. Central Asia Standard Time", "N. Central Asia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
757 | "ALMT", "ALMST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
758 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
759 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
760 | "Nepal Standard Time", "Nepal Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
761 | "NPT", "NPT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
762 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
763 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
764 | "New Zealand Standard Time", "New Zealand Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
765 | "NZST", "NZDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
766 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
767 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
768 | "Newfoundland Standard Time", "Newfoundland Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
769 | "NST", "NDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
770 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
771 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
772 | "North Asia East Standard Time", "North Asia East Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
773 | "IRKT", "IRKST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
774 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
775 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
776 | "North Asia Standard Time", "North Asia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
777 | "KRAT", "KRAST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
778 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
779 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
780 | "Pacific SA Standard Time", "Pacific SA Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
781 | "CLT", "CLST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
782 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
783 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
784 | "Pacific Standard Time", "Pacific Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
785 | "PST", "PDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
786 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
787 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
788 | "Romance Standard Time", "Romance Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
789 | "CET", "CEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
790 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
791 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
792 | "Russian Standard Time", "Russian Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
793 | "MSK", "MSD" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
794 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
795 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
796 | "SA Eastern Standard Time", "SA Eastern Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
797 | "ART", "ARST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
798 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
799 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
800 | "SA Pacific Standard Time", "SA Pacific Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
801 | "COT", "COST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
802 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
803 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
804 | "SA Western Standard Time", "SA Western Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
805 | "VET", "VET" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
806 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
807 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
808 | "Samoa Standard Time", "Samoa Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
809 | "SST", "NDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
810 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
811 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
812 | "SE Asia Standard Time", "SE Asia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
813 | "ICT", "ICT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
814 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
815 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
816 | "Malay Peninsula Standard Time", "Malay Peninsula Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
817 | "MYT", "MALST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
818 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
819 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
820 | "South Africa Standard Time", "South Africa Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
821 | "CAT", "CAT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
822 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
823 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
824 | "Sri Lanka Standard Time", "Sri Lanka Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
825 | "LKT", "IST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
826 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
827 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
828 | "Taipei Standard Time", "Taipei Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
829 | "CST", "CDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
830 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
831 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
832 | "Tasmania Standard Time", "Tasmania Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
833 | "EST", "EST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
834 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
835 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
836 | "Tokyo Standard Time", "Tokyo Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
837 | "JST", "JDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
838 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
839 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
840 | "Tonga Standard Time", "Tonga Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
841 | "TOT", "TOST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
842 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
843 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
844 | "US Eastern Standard Time", "US Eastern Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
845 | "EST", "EDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
846 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
847 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
848 | "US Mountain Standard Time", "US Mountain Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
849 | "MST", "MDT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
850 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
851 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
852 | "Vladivostok Standard Time", "Vladivostok Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
853 | "VLAT", "VLAST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
854 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
855 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
856 | "W. Australia Standard Time", "W. Australia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
857 | "WST", "WST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
858 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
859 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
860 | /* Not mapped in PostgreSQL. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
861 | * |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
862 | * I mapped this based on the following information... -- rlaager |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
863 | * $ cd /usr/share/zoneinfo/Africa |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
864 | * $ for i in * ; do echo `TZ=Africa/$i date +"%z %Z"` $i ; done | grep +0100 |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
865 | * +0100 CET Algiers |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
866 | * +0100 WAT Bangui |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
867 | * +0100 WAT Brazzaville |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
868 | * +0100 CET Ceuta |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
869 | * +0100 WAT Douala |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
870 | * +0100 WAT Kinshasa |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
871 | * +0100 WAT Lagos |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
872 | * +0100 WAT Libreville |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
873 | * +0100 WAT Luanda |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
874 | * +0100 WAT Malabo |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
875 | * +0100 WAT Ndjamena |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
876 | * +0100 WAT Niamey |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
877 | * +0100 WAT Porto-Novo |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
878 | * +0100 CET Tunis |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
879 | **/ |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
880 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
881 | "W. Central Africa Standard Time", "W. Central Africa Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
882 | "WAT", "WAT" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
883 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
884 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
885 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
886 | "W. Europe Standard Time", "W. Europe Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
887 | "CET", "CEST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
888 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
889 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
890 | "West Asia Standard Time", "West Asia Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
891 | "PKT", "PKST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
892 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
893 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
894 | "West Pacific Standard Time", "West Pacific Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
895 | "ChST", "ChST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
896 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
897 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
898 | "Yakutsk Standard Time", "Yakutsk Daylight Time", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
899 | "YAKT", "YAKST" |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
900 | }, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
901 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
902 | NULL, NULL, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
903 | NULL, NULL |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
904 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
905 | }; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
906 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
907 | const char * |
| 15884 | 908 | wpurple_get_timezone_abbreviation(const struct tm *tm) |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
909 | { |
|
13371
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
910 | int i; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
911 | char tzname[128]; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
912 | char localtzname[256]; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
913 | HKEY rootKey; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
914 | int idx; |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
915 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
916 | if (!tm) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
917 | { |
| 15884 | 918 | purple_debug_warning("wpurple", "could not determine current date/time: localtime failed\n"); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
919 | return ""; |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
920 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
921 | |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
922 | if (strftime(tzname, sizeof(tzname) - 1, "%Z", tm) == 0) |
|
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
923 | { |
| 15884 | 924 | purple_debug_error("wpurple", "timezone name is too long for the buffer\n"); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
925 | return ""; |
|
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
926 | } |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
927 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
928 | for (i = 0; win32_tzmap[i].wstd != NULL; i++) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
929 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
930 | if (strcmp(tzname, win32_tzmap[i].wstd) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
931 | { |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
932 | #if 0 |
| 15884 | 933 | purple_debug_info("wpurple", "TZ \"%s\" matches Windows timezone \"%s\"\n", |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
934 | win32_tzmap[i].ustd, tzname); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
935 | #endif |
|
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
936 | /* Cache the Result */ |
|
13371
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
937 | if (i > 0) { |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
938 | if (win32_tzmap[0].wstd[0] != '\0') |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
939 | g_free(win32_tzmap[0].wstd); |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
940 | win32_tzmap[0].wstd = g_strdup(tzname); |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
941 | win32_tzmap[0].ustd = win32_tzmap[i].ustd; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
942 | } |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
943 | |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
944 | return win32_tzmap[i].ustd; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
945 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
946 | if (strcmp(tzname, win32_tzmap[i].wdst) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
947 | { |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
948 | #if 0 |
| 15884 | 949 | purple_debug_info("wpurple", "TZ \"%s\" matches Windows timezone \"%s\"\n", |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
950 | win32_tzmap[i].udst, tzname); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
951 | #endif |
|
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
952 | /* Cache the Result */ |
|
13371
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
953 | if (i > 0) { |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
954 | if (win32_tzmap[0].wdst[0] != '\0') |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
955 | g_free(win32_tzmap[0].wdst); |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
956 | win32_tzmap[0].wdst = g_strdup(tzname); |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
957 | win32_tzmap[0].udst = win32_tzmap[i].udst; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
958 | } |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
959 | |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
960 | return win32_tzmap[i].udst; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
961 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
962 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
963 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
964 | /* |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
965 | * Localized Windows versions return localized names for the timezone. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
966 | * Scan the registry to find the English name, and then try matching |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
967 | * against our table again. |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
968 | */ |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
969 | memset(localtzname, 0, sizeof(localtzname)); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
970 | if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
971 | "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones", |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
972 | 0, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
973 | KEY_READ, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
974 | &rootKey) != ERROR_SUCCESS) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
975 | { |
| 15884 | 976 | purple_debug_warning("wpurple", "could not open registry key to identify Windows timezone: %i\n", (int) GetLastError()); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
977 | return ""; |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
978 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
979 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
980 | for (idx = 0;; idx++) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
981 | { |
|
13371
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
982 | char keyname[256]; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
983 | char zonename[256]; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
984 | DWORD namesize; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
985 | FILETIME lastwrite; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
986 | HKEY key; |
|
b8018658174e
[gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents:
13363
diff
changeset
|
987 | LONG r; |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
988 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
989 | memset(keyname, 0, sizeof(keyname)); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
990 | namesize = sizeof(keyname); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
991 | if ((r = RegEnumKeyEx(rootKey, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
992 | idx, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
993 | keyname, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
994 | &namesize, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
995 | NULL, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
996 | NULL, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
997 | NULL, |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
998 | &lastwrite)) != ERROR_SUCCESS) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
999 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1000 | if (r == ERROR_NO_MORE_ITEMS) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1001 | break; |
| 15884 | 1002 | purple_debug_warning("wpurple", "could not enumerate registry subkeys to identify Windows timezone: %i\n", (int) r); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1003 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1004 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1005 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1006 | if ((r = RegOpenKeyEx(rootKey, keyname, 0, KEY_READ, &key)) != ERROR_SUCCESS) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1007 | { |
| 15884 | 1008 | purple_debug_warning("wpurple", "could not open registry subkey to identify Windows timezone: %i\n", (int) r); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1009 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1010 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1011 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1012 | memset(zonename, 0, sizeof(zonename)); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1013 | namesize = sizeof(zonename); |
| 29797 | 1014 | if ((r = RegQueryValueEx(key, "Std", NULL, NULL, (LPBYTE)zonename, &namesize)) != ERROR_SUCCESS) |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1015 | { |
| 15884 | 1016 | purple_debug_warning("wpurple", "could not query value for 'std' to identify Windows timezone: %i\n", (int) r); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1017 | RegCloseKey(key); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1018 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1019 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1020 | if (strcmp(tzname, zonename) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1021 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1022 | /* Matched zone */ |
|
31957
be5a056fa36d
Replace an unchecked strcpy with g_strlcpy().
Ethan Blanton <elb@pidgin.im>
parents:
30792
diff
changeset
|
1023 | g_strlcpy(localtzname, keyname, sizeof(localtzname)); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1024 | RegCloseKey(key); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1025 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1026 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1027 | memset(zonename, 0, sizeof(zonename)); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1028 | namesize = sizeof(zonename); |
| 29797 | 1029 | if ((r = RegQueryValueEx(key, "Dlt", NULL, NULL, (LPBYTE)zonename, &namesize)) != ERROR_SUCCESS) |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1030 | { |
| 15884 | 1031 | purple_debug_warning("wpurple", "could not query value for 'dlt' to identify Windows timezone: %i\n", (int) r); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1032 | RegCloseKey(key); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1033 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1034 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1035 | if (strcmp(tzname, zonename) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1036 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1037 | /* Matched DST zone */ |
|
31957
be5a056fa36d
Replace an unchecked strcpy with g_strlcpy().
Ethan Blanton <elb@pidgin.im>
parents:
30792
diff
changeset
|
1038 | g_strlcpy(localtzname, keyname, sizeof(localtzname)); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1039 | RegCloseKey(key); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1040 | break; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1041 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1042 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1043 | RegCloseKey(key); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1044 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1045 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1046 | RegCloseKey(rootKey); |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1047 | |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1048 | if (localtzname[0]) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1049 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1050 | /* Found a localized name, so scan for that one too */ |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1051 | for (i = 0; win32_tzmap[i].wstd != NULL; i++) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1052 | { |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1053 | if (strcmp(localtzname, win32_tzmap[i].wstd) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1054 | { |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
1055 | #if 0 |
| 15884 | 1056 | purple_debug_info("wpurple", "TZ \"%s\" matches localized Windows timezone \"%s\" (\"%s\")\n", |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1057 | win32_tzmap[i].ustd, tzname, localtzname); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
1058 | #endif |
|
13339
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1059 | /* Cache the Result */ |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1060 | if (win32_tzmap[0].wstd[0] != '\0') |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1061 | g_free(win32_tzmap[0].wstd); |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1062 | win32_tzmap[0].wstd = g_strdup(tzname); |
|
13341
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
1063 | win32_tzmap[0].ustd = win32_tzmap[i].ustd; |
|
13339
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1064 | |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1065 | return win32_tzmap[i].ustd; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1066 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1067 | if (strcmp(localtzname, win32_tzmap[i].wdst) == 0) |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1068 | { |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
1069 | #if 0 |
| 15884 | 1070 | purple_debug_info("wpurple", "TZ \"%s\" matches localized Windows timezone \"%s\" (\"%s\")\n", |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1071 | win32_tzmap[i].udst, tzname, localtzname); |
|
13363
d64e626254cc
[gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents:
13341
diff
changeset
|
1072 | #endif |
|
13339
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1073 | /* Cache the Result */ |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1074 | if (win32_tzmap[0].wdst[0] != '\0') |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1075 | g_free(win32_tzmap[0].wdst); |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1076 | |
|
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1077 | win32_tzmap[0].wdst = g_strdup(tzname); |
|
13341
7aea080ea72d
[gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents:
13339
diff
changeset
|
1078 | win32_tzmap[0].udst = win32_tzmap[i].udst; |
|
13339
781d47b2636c
[gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents:
13334
diff
changeset
|
1079 | |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1080 | return win32_tzmap[i].udst; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1081 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1082 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1083 | } |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1084 | |
| 15884 | 1085 | purple_debug_warning("wpurple", "could not find a match for Windows timezone \"%s\"\n", tzname); |
|
13334
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1086 | return ""; |
|
d0d48650f114
[gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents:
13201
diff
changeset
|
1087 | } |