src/win32/libc_interface.c

Wed, 09 Aug 2006 14:47:37 +0000

author
Luke Schierer <lschiere@pidgin.im>
date
Wed, 09 Aug 2006 14:47:37 +0000
changeset 14123
7ae9b90ecf6f
parent 13780
f642a0729daa
permissions
-rw-r--r--

[gaim-migrate @ 16679]
some translation updates. I have questions about gu.po, if someone sees that answered, we might need to revert that part of the change. It is all very confusing. The same person submitted the original gu.po and this update, but he called it gu_IN this time…

3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
1 /*
5913
4d016c00bb36 [gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents: 5474
diff changeset
2 * gaim
4d016c00bb36 [gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents: 5474
diff changeset
3 *
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
4d016c00bb36 [gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents: 5474
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4d016c00bb36 [gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents: 5474
diff changeset
19 *
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
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
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
24 #include <stdlib.h>
3777
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
25 #include <stdio.h>
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
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>
6425
3e86c949c98a [gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents: 5913
diff changeset
31 #include "debug.h"
3777
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
32 #include "libc_internal.h"
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
33 #if GLIB_CHECK_VERSION(2,6,0)
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
34 # include <glib/gstdio.h>
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
35 #else
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
36 #define g_remove remove
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
37 #define g_rename rename
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
38 #define g_stat stat
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 9611
diff changeset
39 #endif
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
40
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
41 static char errbuf[1024];
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
42
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
43 /* helpers */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
44 static int wgaim_is_socket( int fd ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
45 int optval;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
46 unsigned int optlen = sizeof(int);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
47
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
48 if( (getsockopt(fd, SOL_SOCKET, SO_TYPE, (void*)&optval, &optlen)) == SOCKET_ERROR ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
49 int error = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
50 if( error == WSAENOTSOCK )
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
51 return FALSE;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
52 else {
6425
3e86c949c98a [gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents: 5913
diff changeset
53 gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "wgaim_is_socket: getsockopt returned error: %d\n", error);
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
54 return FALSE;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
55 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
56 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
57 return TRUE;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
58 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
59
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
60 /* socket.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
61 int wgaim_socket (int namespace, int style, int protocol) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
62 int ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
63
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
64 ret = socket( namespace, style, protocol );
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
65
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
66 if( ret == INVALID_SOCKET ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
67 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
68 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
69 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
70 return ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
71 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
72
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
73 int wgaim_connect(int socket, struct sockaddr *addr, u_long length) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
74 int ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
75
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
76 ret = connect( socket, addr, length );
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
77
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
78 if( ret == SOCKET_ERROR ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
79 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
80 if( errno == WSAEWOULDBLOCK )
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
81 errno = WSAEINPROGRESS;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
82 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
83 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
84 return 0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
85 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
86
8244
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
87 int wgaim_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
88 if(getsockopt(socket, level, optname, optval, optlenptr) == SOCKET_ERROR ) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
89 errno = WSAGetLastError();
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
90 return -1;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
91 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
92 return 0;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
93 }
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
94
9611
159762ee0f2d [gaim-migrate @ 10454]
Tim Ringenbach <marv@pidgin.im>
parents: 8244
diff changeset
95 int wgaim_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
96 if(setsockopt(socket, level, optname, optval, optlen) == SOCKET_ERROR ) {
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
97 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
98 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
99 }
8244
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
100 return 0;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
101 }
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
102
8244
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
103 int wgaim_getsockname(int socket, struct sockaddr *addr, socklen_t *lenptr) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
104 if(getsockname(socket, addr, lenptr) == SOCKET_ERROR) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
105 errno = WSAGetLastError();
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
106 return -1;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
107 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
108 return 0;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
109 }
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 int wgaim_bind(int socket, struct sockaddr *addr, socklen_t length) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
112 if(bind(socket, addr, length) == SOCKET_ERROR) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
113 errno = WSAGetLastError();
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
114 return -1;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
115 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
116 return 0;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
117 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
118
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
119 int wgaim_listen(int socket, unsigned int n) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
120 if(listen(socket, n) == SOCKET_ERROR) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
121 errno = WSAGetLastError();
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
122 return -1;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
123 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
124 return 0;
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
125 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
126
11431
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
127 int wgaim_sendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) {
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
128 int ret;
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
129 if ((ret = sendto(socket, buf, len, flags, to, tolen)
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
130 ) == SOCKET_ERROR) {
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
131 errno = WSAGetLastError();
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
132 return -1;
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
133 }
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
134 return ret;
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
135 }
60971f504319 [gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents: 11364
diff changeset
136
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
137 /* fcntl.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
138 /* This is not a full implementation of fcntl. Update as needed.. */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
139 int wgaim_fcntl(int socket, int command, int val) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
140 switch( command ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
141 case F_SETFL:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
142 {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
143 int ret=0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
144
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
145 switch( val ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
146 case O_NONBLOCK:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
147 {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
148 u_long imode=1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
149 ret = ioctlsocket(socket, FIONBIO, &imode);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
150 break;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
151 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
152 case 0:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
153 {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
154 u_long imode=0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
155 ret = ioctlsocket(socket, FIONBIO, &imode);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
156 break;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
157 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
158 default:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
159 errno = EINVAL;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
160 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
161 }/*end switch*/
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
162 if( ret == SOCKET_ERROR ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
163 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
164 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
165 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
166 return 0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
167 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
168 default:
6425
3e86c949c98a [gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents: 5913
diff changeset
169 gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "wgaim_fcntl: Unsupported command\n");
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
170 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
171 }/*end switch*/
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
172 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
173
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
174 /* sys/ioctl.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
175 int wgaim_ioctl(int fd, int command, void* val) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
176 switch( command ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
177 case FIONBIO:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
178 {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
179 if (ioctlsocket(fd, FIONBIO, (unsigned long *)val) == SOCKET_ERROR) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
180 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
181 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
182 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
183 return 0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
184 }
11364
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
185 case SIOCGIFCONF:
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
186 {
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
187 INTERFACE_INFO InterfaceList[20];
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
188 unsigned long nBytesReturned;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
189 if (WSAIoctl(fd, SIO_GET_INTERFACE_LIST,
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
190 0, 0, &InterfaceList,
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
191 sizeof(InterfaceList), &nBytesReturned,
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
192 0, 0) == SOCKET_ERROR) {
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
193 errno = WSAGetLastError();
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
194 return -1;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
195 } else {
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
196 int i;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
197 struct ifconf *ifc = val;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
198 char *tmp = ifc->ifc_buf;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
199 int nNumInterfaces =
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
200 nBytesReturned / sizeof(INTERFACE_INFO);
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
201 for (i = 0; i < nNumInterfaces; i++) {
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
202 INTERFACE_INFO ii = InterfaceList[i];
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
203 struct ifreq *ifr = (struct ifreq *) tmp;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
204 struct sockaddr_in *sa = (struct sockaddr_in *) &ifr->ifr_addr;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
205
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
206 sa->sin_family = ii.iiAddress.AddressIn.sin_family;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
207 sa->sin_port = ii.iiAddress.AddressIn.sin_port;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
208 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
209 tmp += sizeof(struct ifreq);
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
210
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
211 /* Make sure that we can fit in the original buffer */
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
212 if (tmp >= (ifc->ifc_buf + ifc->ifc_len + sizeof(struct ifreq))) {
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
213 break;
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
214 }
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
215 }
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
216 /* Replace the length with the actually used length */
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
217 ifc->ifc_len = ifc->ifc_len - (ifc->ifc_buf - tmp);
12488
72878a4bf35a [gaim-migrate @ 14800]
Daniel Atallah <datallah@pidgin.im>
parents: 11543
diff changeset
218 return 0;
11364
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
219 }
d754cf40ec4b [gaim-migrate @ 13588]
Daniel Atallah <datallah@pidgin.im>
parents: 10601
diff changeset
220 }
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
221 default:
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
222 errno = EINVAL;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
223 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
224 }/*end switch*/
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
225 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
226
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
227 /* arpa/inet.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
228 int wgaim_inet_aton(const char *name, struct in_addr *addr) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
229 if((addr->s_addr = inet_addr(name)) == INADDR_NONE)
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
230 return 0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
231 else
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
232 return 1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
233 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
234
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
235 /* netdb.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
236 struct hostent* wgaim_gethostbyname(const char *name) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
237 struct hostent *hp;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
238
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
239 if((hp = gethostbyname(name)) == NULL) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
240 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
241 return NULL;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
242 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
243 return hp;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
244 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
245
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
246 /* string.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
247 char* wgaim_strerror( int errornum ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
248 if( errornum > WSABASEERR ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
249 sprintf( errbuf, "Windows socket error #%d", errornum );
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
250 return errbuf;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
251 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
252 else
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
253 return strerror( errornum );
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
254 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
255
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
256 /* unistd.h */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
257
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
258 /*
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
259 * We need to figure out whether fd is a file or socket handle.
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
260 */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
261 int wgaim_read(int fd, void *buf, unsigned int size) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
262 int ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
263
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
264 if(wgaim_is_socket(fd)) {
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
265 if((ret = recv(fd, buf, size, 0)) == SOCKET_ERROR) {
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
266 errno = WSAGetLastError();
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
267 if(errno == WSAEWOULDBLOCK)
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
268 errno = EAGAIN;
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
269 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
270 }
11543
e7218de0b500 [gaim-migrate @ 13798]
Daniel Atallah <datallah@pidgin.im>
parents: 11431
diff changeset
271 #if 0
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
272 else if( ret == 0 ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
273 /* connection has been gracefully closed */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
274 errno = WSAENOTCONN;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
275 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
276 }
11543
e7218de0b500 [gaim-migrate @ 13798]
Daniel Atallah <datallah@pidgin.im>
parents: 11431
diff changeset
277 #endif
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
278 else {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
279 /* success reading socket */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
280 return ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
281 }
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
282 } else {
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
283 /* fd is not a socket handle.. pass it off to read */
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
284 return read(fd, buf, size);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
285 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
286 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
287
13780
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
288 int wgaim_send(int fd, const void *buf, unsigned int size, int flags) {
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
289 int ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
290
13780
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
291 ret = send(fd, buf, size, flags);
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
292
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
293 if (ret == SOCKET_ERROR) {
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
294 errno = WSAGetLastError();
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
295 if(errno == WSAEWOULDBLOCK)
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
296 errno = EAGAIN;
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
297 return -1;
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
298 }
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
299 return ret;
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
300 }
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
301
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
302 int wgaim_write(int fd, const void *buf, unsigned int size) {
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
303
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
304 if(wgaim_is_socket(fd))
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
305 return wgaim_send(fd, buf, size, 0);
f642a0729daa [gaim-migrate @ 16190]
Daniel Atallah <datallah@pidgin.im>
parents: 13371
diff changeset
306 else
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
307 return write(fd, buf, size);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
308 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
309
12749
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
310 int wgaim_recv(int fd, void *buf, size_t len, int flags) {
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
311 int ret;
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
312
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
313 if((ret = recv(fd, buf, len, flags)) == SOCKET_ERROR) {
12749
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
314 errno = WSAGetLastError();
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
315 if(errno == WSAEWOULDBLOCK)
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12749
diff changeset
316 errno = EAGAIN;
12749
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
317 return -1;
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
318 } else {
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
319 return ret;
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
320 }
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
321 }
704b51d5007a [gaim-migrate @ 15096]
Daniel Atallah <datallah@pidgin.im>
parents: 12488
diff changeset
322
3712
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
323 int wgaim_close(int fd) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
324 int ret;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
325
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
326 if( wgaim_is_socket(fd) ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
327 if( (ret = closesocket(fd)) == SOCKET_ERROR ) {
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
328 errno = WSAGetLastError();
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
329 return -1;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
330 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
331 else
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
332 return 0;
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
333 }
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
334 else
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
335 return close(fd);
d926a65b5f89 [gaim-migrate @ 3845]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
336 }
3777
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
337
8244
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
338 int wgaim_gethostname(char *name, size_t size) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
339 if(gethostname(name, size) == SOCKET_ERROR) {
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
340 errno = WSAGetLastError();
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
341 return -1;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
342 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
343 return 0;
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
344 }
014ff38feea9 [gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents: 6425
diff changeset
345
3777
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
346 /* sys/time.h */
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
347
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
348 int wgaim_gettimeofday(struct timeval *p, struct timezone *z) {
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
349 int res = 0;
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
350 struct _timeb timebuffer;
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
351
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
352 if (z != 0) {
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
353 _tzset();
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
354 z->tz_minuteswest = _timezone/60;
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
355 z->tz_dsttime = _daylight;
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
356 }
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
357
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
358 if (p != 0) {
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
359 _ftime(&timebuffer);
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
360 p->tv_sec = timebuffer.time; /* seconds since 1-1-1970 */
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
361 p->tv_usec = timebuffer.millitm*1000; /* microseconds */
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
362 }
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
363
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
364 return res;
a3f8adc4c3e0 [gaim-migrate @ 3917]
Herman Bloggs <herman@bluedigits.com>
parents: 3712
diff changeset
365 }
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
366
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
367 /* stdio.h */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
368
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
369 int wgaim_rename (const char *oldname, const char *newname) {
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
370 struct stat oldstat, newstat;
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
371
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
372 if(g_stat(oldname, &oldstat) == 0) {
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
373 /* newname exists */
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
374 if(g_stat(newname, &newstat) == 0) {
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
375 /* oldname is a dir */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
376 if(_S_ISDIR(oldstat.st_mode)) {
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
377 if(!_S_ISDIR(newstat.st_mode)) {
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
378 return g_rename(oldname, newname);
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
379 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
380 /* newname is a dir */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
381 else {
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
382 /* This is not quite right.. If newname is empty and
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
383 is not a sub dir of oldname, newname should be
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
384 deleted and oldname should be renamed.
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
385 */
6425
3e86c949c98a [gaim-migrate @ 6933]
Herman Bloggs <herman@bluedigits.com>
parents: 5913
diff changeset
386 gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "wgaim_rename does not behave here as it should\n");
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
387 return g_rename(oldname, newname);
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
388 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
389 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
390 /* oldname is not a dir */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
391 else {
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
392 /* newname is a dir */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
393 if(_S_ISDIR(newstat.st_mode)) {
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
394 errno = EISDIR;
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
395 return -1;
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
396 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
397 /* newname is not a dir */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
398 else {
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 9611
diff changeset
399 g_remove(newname);
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
400 return g_rename(oldname, newname);
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
401 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
402 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
403 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
404 /* newname doesn't exist */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
405 else
10601
84245a6eba0e [gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
406 return g_rename(oldname, newname);
4905
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
407 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
408 else {
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
409 /* oldname doesn't exist */
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
410 errno = ENOENT;
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
411 return -1;
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
412 }
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
413
1464e05926f0 [gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents: 4193
diff changeset
414 }
5113
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
415
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
416 /* time.h */
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
417
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
418 struct tm * wgaim_localtime_r (const time_t *time, struct tm *resultp) {
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
419 struct tm* tmptm;
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
420
5474
eec4dad3e035 [gaim-migrate @ 5868]
Herman Bloggs <herman@bluedigits.com>
parents: 5113
diff changeset
421 if(!time)
5913
4d016c00bb36 [gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents: 5474
diff changeset
422 return NULL;
5113
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
423 tmptm = localtime(time);
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
424 if(resultp && tmptm)
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
425 return memcpy(resultp, tmptm, sizeof(struct tm));
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
426 else
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
427 return NULL;
8e545faf3d80 [gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents: 5084
diff changeset
428 }
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
429
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
430 /*
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
431 * Used by gaim_utf8_strftime() by way of gaim_internal_strftime()
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
432 * in src/util.c
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
433 *
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
434 * Code derived from PostgreSQL src/timezone/pgtz.c:
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
435 * http://developer.postgresql.org/cvsweb.cgi/pgsql/src/timezone/pgtz.c
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
436 */
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
437
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
438 /*
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
439 PostgreSQL Database Management System
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
440 (formerly known as Postgres, then as Postgres95)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
441
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
442 Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
443
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
444 Portions Copyright (c) 1994, The Regents of the University of California
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
445
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
446 Permission to use, copy, modify, and distribute this software and its
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
447 documentation for any purpose, without fee, and without a written agreement
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
448 is hereby granted, provided that the above copyright notice and this
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
449 paragraph and the following two paragraphs appear in all copies.
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
450
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
451 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
452 DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
453 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
454 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
455 POSSIBILITY OF SUCH DAMAGE.
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
456
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
457 THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
458 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
459 AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
460 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
461 PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
462
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
463 */
13341
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
464 static struct
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
465 {
13341
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
466 char *wstd; /* Windows name of standard timezone */
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
467 char *wdst; /* Windows name of daylight timezone */
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
468 char *ustd; /* Unix name of standard timezone */
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
469 char *udst; /* Unix name of daylight timezone */
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
470 } win32_tzmap[] =
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
471 {
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
472 {
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
473 "", "",
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
474 "", "",
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
475 },
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
476 /*
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
477 * This list was built from the contents of the registry at
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
478 * "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
479 * on Windows XP Professional SP1
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
480 */
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
481 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
482 "Afghanistan Standard Time", "Afghanistan Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
483 "AFT", "AFT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
484 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
485 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
486 "Alaskan Standard Time", "Alaskan Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
487 "AKST", "AKDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
488 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
489 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
490 "Arab Standard Time", "Arab Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
491 "AST", "AST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
492 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
493 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
494 "Arabian Standard Time", "Arabian Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
495 "GST", "GST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
496 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
497 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
498 "Arabic Standard Time", "Arabic Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
499 "AST", "ADT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
500 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
501 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
502 "Atlantic Standard Time", "Atlantic Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
503 "AST", "ADT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
504 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
505 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
506 "AUS Central Standard Time", "AUS Central Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
507 "CST", "CST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
508 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
509 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
510 "AUS Eastern Standard Time", "AUS Eastern Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
511 "EST", "EST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
512 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
513 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
514 "Azores Standard Time", "Azores Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
515 "AZOT", "AZOST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
516 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
517 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
518 "Canada Central Standard Time", "Canada Central Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
519 "CST", "MDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
520 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
521 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
522 "Cape Verde Standard Time", "Cape Verde Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
523 "CVT", "CVST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
524 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
525 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
526 "Caucasus Standard Time", "Caucasus Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
527 "AZT", "AZST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
528 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
529 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
530 "Cen. Australia Standard Time", "Cen. Australia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
531 "CST", "CST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
532 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
533 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
534 "Central America Standard Time", "Central America Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
535 "CST", "CDT"
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 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
538 "Central Asia Standard Time", "Central Asia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
539 "BDT", "BDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
540 },
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 "Central Europe Standard Time", "Central Europe Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
543 "CET", "CEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
544 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
545 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
546 "Central European Standard Time", "Central European Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
547 "CET", "CEST"
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 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
550 "Central Pacific Standard Time", "Central Pacific Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
551 "NCT", "NCST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
552 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
553 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
554 "Central Standard Time", "Central Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
555 "CST", "CDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
556 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
557 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
558 "China Standard Time", "China Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
559 "HKT", "HKST"
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 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
562 "Dateline Standard Time", "Dateline Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
563 "GMT+12", "GMT+12"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
564 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
565 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
566 "E. Africa Standard Time", "E. Africa Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
567 "EAT", "EAT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
568 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
569 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
570 "E. Australia Standard Time", "E. Australia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
571 "EST", "EST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
572 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
573 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
574 "E. Europe Standard Time", "E. Europe Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
575 "EET", "EEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
576 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
577 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
578 "E. South America Standard Time", "E. South America Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
579 "BRT", "BRST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
580 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
581 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
582 "Eastern Standard Time", "Eastern Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
583 "EST", "EDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
584 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
585 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
586 "Egypt Standard Time", "Egypt Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
587 "EET", "EEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
588 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
589 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
590 "Ekaterinburg Standard Time", "Ekaterinburg Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
591 "YEKT", "YEKST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
592 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
593 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
594 "Fiji Standard Time", "Fiji Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
595 "FJT", "FJST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
596 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
597 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
598 "FLE Standard Time", "FLE Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
599 "EET", "EEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
600 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
601 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
602 "GMT Standard Time", "GMT Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
603 "GMT", "IST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
604 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
605 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
606 "Greenland Standard Time", "Greenland Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
607 "WGT", "WGST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
608 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
609 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
610 "Greenwich Standard Time", "Greenwich Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
611 "WET", "WEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
612 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
613 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
614 "GTB Standard Time", "GTB Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
615 "EET", "EEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
616 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
617 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
618 "Hawaiian Standard Time", "Hawaiian Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
619 "HST", "HPT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
620 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
621 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
622 "India Standard Time", "India Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
623 "IST", "IST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
624 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
625 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
626 "Iran Standard Time", "Iran Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
627 "IRST", "IRDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
628 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
629 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
630 "Jerusalem Standard Time", "Jerusalem Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
631 "IST", "IDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
632 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
633 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
634 "Korea Standard Time", "Korea Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
635 "KST", "KDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
636 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
637 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
638 "Mexico Standard Time", "Mexico Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
639 "CST", "CDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
640 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
641 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
642 "Mexico Standard Time", "Mexico Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
643 "BOT", "BOST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
644 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
645 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
646 "Mid-Atlantic Standard Time", "Mid-Atlantic Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
647 "GST", "GST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
648 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
649 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
650 "Mountain Standard Time", "Mountain Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
651 "MST", "MDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
652 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
653 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
654 "Myanmar Standard Time", "Myanmar Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
655 "MMT", "MMT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
656 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
657 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
658 "N. Central Asia Standard Time", "N. Central Asia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
659 "ALMT", "ALMST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
660 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
661 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
662 "Nepal Standard Time", "Nepal Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
663 "NPT", "NPT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
664 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
665 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
666 "New Zealand Standard Time", "New Zealand Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
667 "NZST", "NZDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
668 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
669 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
670 "Newfoundland Standard Time", "Newfoundland Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
671 "NST", "NDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
672 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
673 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
674 "North Asia East Standard Time", "North Asia East Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
675 "IRKT", "IRKST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
676 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
677 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
678 "North Asia Standard Time", "North Asia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
679 "KRAT", "KRAST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
680 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
681 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
682 "Pacific SA Standard Time", "Pacific SA Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
683 "CLT", "CLST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
684 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
685 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
686 "Pacific Standard Time", "Pacific Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
687 "PST", "PDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
688 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
689 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
690 "Romance Standard Time", "Romance Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
691 "CET", "CEST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
692 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
693 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
694 "Russian Standard Time", "Russian Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
695 "MSK", "MSD"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
696 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
697 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
698 "SA Eastern Standard Time", "SA Eastern Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
699 "ART", "ARST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
700 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
701 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
702 "SA Pacific Standard Time", "SA Pacific Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
703 "COT", "COST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
704 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
705 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
706 "SA Western Standard Time", "SA Western Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
707 "VET", "VET"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
708 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
709 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
710 "Samoa Standard Time", "Samoa Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
711 "SST", "NDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
712 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
713 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
714 "SE Asia Standard Time", "SE Asia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
715 "ICT", "ICT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
716 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
717 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
718 "Malay Peninsula Standard Time", "Malay Peninsula Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
719 "MYT", "MALST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
720 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
721 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
722 "South Africa Standard Time", "South Africa Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
723 "CAT", "CAT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
724 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
725 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
726 "Sri Lanka Standard Time", "Sri Lanka Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
727 "LKT", "IST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
728 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
729 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
730 "Taipei Standard Time", "Taipei Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
731 "CST", "CDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
732 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
733 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
734 "Tasmania Standard Time", "Tasmania Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
735 "EST", "EST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
736 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
737 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
738 "Tokyo Standard Time", "Tokyo Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
739 "JST", "JDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
740 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
741 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
742 "Tonga Standard Time", "Tonga Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
743 "TOT", "TOST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
744 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
745 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
746 "US Eastern Standard Time", "US Eastern Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
747 "EST", "EDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
748 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
749 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
750 "US Mountain Standard Time", "US Mountain Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
751 "MST", "MDT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
752 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
753 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
754 "Vladivostok Standard Time", "Vladivostok Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
755 "VLAT", "VLAST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
756 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
757 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
758 "W. Australia Standard Time", "W. Australia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
759 "WST", "WST"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
760 },
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
761
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
762 /* Not mapped in PostgreSQL.
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 * I mapped this based on the following information... -- rlaager
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
765 * $ cd /usr/share/zoneinfo/Africa
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
766 * $ 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
767 * +0100 CET Algiers
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
768 * +0100 WAT Bangui
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
769 * +0100 WAT Brazzaville
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
770 * +0100 CET Ceuta
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
771 * +0100 WAT Douala
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
772 * +0100 WAT Kinshasa
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
773 * +0100 WAT Lagos
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
774 * +0100 WAT Libreville
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
775 * +0100 WAT Luanda
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
776 * +0100 WAT Malabo
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
777 * +0100 WAT Ndjamena
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
778 * +0100 WAT Niamey
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
779 * +0100 WAT Porto-Novo
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
780 * +0100 CET Tunis
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
781 **/
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 "W. Central Africa Standard Time", "W. Central Africa Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
784 "WAT", "WAT"
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
785 },
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 "W. Europe Standard Time", "W. Europe 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 "West Asia Standard Time", "West Asia Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
793 "PKT", "PKST"
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 "West Pacific Standard Time", "West Pacific Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
797 "ChST", "ChST"
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 "Yakutsk Standard Time", "Yakutsk Daylight Time",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
801 "YAKT", "YAKST"
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 NULL, NULL,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
805 NULL, NULL
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
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
809 const char *
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
810 wgaim_get_timezone_abbreviation(const struct tm *tm)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
811 {
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
812 int i;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
813 char tzname[128];
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
814 char localtzname[256];
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
815 HKEY rootKey;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
816 int idx;
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
817
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
818 if (!tm)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
819 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
820 gaim_debug_warning("wgaim", "could not determine current date/time: localtime failed\n");
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
821 return "";
13334
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
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
824 if (strftime(tzname, sizeof(tzname) - 1, "%Z", tm) == 0)
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
825 {
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
826 gaim_debug_error("wgaim", "timezone name is too long for the buffer\n");
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
827 return "";
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
828 }
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
829
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
830 for (i = 0; win32_tzmap[i].wstd != NULL; i++)
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 if (strcmp(tzname, win32_tzmap[i].wstd) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
833 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
834 #if 0
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
835 gaim_debug_info("wgaim", "TZ \"%s\" matches Windows timezone \"%s\"\n",
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
836 win32_tzmap[i].ustd, tzname);
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
837 #endif
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
838 /* Cache the Result */
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
839 if (i > 0) {
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
840 if (win32_tzmap[0].wstd[0] != '\0')
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
841 g_free(win32_tzmap[0].wstd);
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
842 win32_tzmap[0].wstd = g_strdup(tzname);
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
843 win32_tzmap[0].ustd = win32_tzmap[i].ustd;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
844 }
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
845
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
846 return win32_tzmap[i].ustd;
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 if (strcmp(tzname, win32_tzmap[i].wdst) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
849 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
850 #if 0
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
851 gaim_debug_info("wgaim", "TZ \"%s\" matches Windows timezone \"%s\"\n",
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
852 win32_tzmap[i].udst, tzname);
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
853 #endif
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
854 /* Cache the Result */
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
855 if (i > 0) {
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
856 if (win32_tzmap[0].wdst[0] != '\0')
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
857 g_free(win32_tzmap[0].wdst);
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
858 win32_tzmap[0].wdst = g_strdup(tzname);
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
859 win32_tzmap[0].udst = win32_tzmap[i].udst;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
860 }
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
861
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
862 return win32_tzmap[i].udst;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
863 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
864 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
865
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
866 /*
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
867 * Localized Windows versions return localized names for the timezone.
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
868 * 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
869 * against our table again.
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
870 */
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
871 memset(localtzname, 0, sizeof(localtzname));
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
872 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
873 "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
874 0,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
875 KEY_READ,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
876 &rootKey) != ERROR_SUCCESS)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
877 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
878 gaim_debug_warning("wgaim", "could not open registry key to identify Windows timezone: %i\n", (int) GetLastError());
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
879 return "";
13334
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
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
882 for (idx = 0;; idx++)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
883 {
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
884 char keyname[256];
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
885 char zonename[256];
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
886 DWORD namesize;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
887 FILETIME lastwrite;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
888 HKEY key;
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
889 LONG r;
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
890
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
891 memset(keyname, 0, sizeof(keyname));
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
892 namesize = sizeof(keyname);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
893 if ((r = RegEnumKeyEx(rootKey,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
894 idx,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
895 keyname,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
896 &namesize,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
897 NULL,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
898 NULL,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
899 NULL,
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
900 &lastwrite)) != ERROR_SUCCESS)
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 if (r == ERROR_NO_MORE_ITEMS)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
903 break;
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
904 gaim_debug_warning("wgaim", "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
905 break;
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
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
908 if ((r = RegOpenKeyEx(rootKey, keyname, 0, KEY_READ, &key)) != ERROR_SUCCESS)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
909 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
910 gaim_debug_warning("wgaim", "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
911 break;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
912 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
913
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
914 memset(zonename, 0, sizeof(zonename));
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
915 namesize = sizeof(zonename);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
916 if ((r = RegQueryValueEx(key, "Std", NULL, NULL, zonename, &namesize)) != ERROR_SUCCESS)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
917 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
918 gaim_debug_warning("wgaim", "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
919 RegCloseKey(key);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
920 break;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
921 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
922 if (strcmp(tzname, zonename) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
923 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
924 /* Matched zone */
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
925 strcpy(localtzname, keyname);
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
926 RegCloseKey(key);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
927 break;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
928 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
929 memset(zonename, 0, sizeof(zonename));
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
930 namesize = sizeof(zonename);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
931 if ((r = RegQueryValueEx(key, "Dlt", NULL, NULL, zonename, &namesize)) != ERROR_SUCCESS)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
932 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
933 gaim_debug_warning("wgaim", "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
934 RegCloseKey(key);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
935 break;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
936 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
937 if (strcmp(tzname, zonename) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
938 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
939 /* Matched DST zone */
13371
b8018658174e [gaim-migrate @ 15743]
Daniel Atallah <datallah@pidgin.im>
parents: 13363
diff changeset
940 strcpy(localtzname, keyname);
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
941 RegCloseKey(key);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
942 break;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
943 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
944
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
945 RegCloseKey(key);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
946 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
947
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
948 RegCloseKey(rootKey);
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
949
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
950 if (localtzname[0])
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
951 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
952 /* Found a localized name, so scan for that one too */
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
953 for (i = 0; win32_tzmap[i].wstd != NULL; i++)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
954 {
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
955 if (strcmp(localtzname, win32_tzmap[i].wstd) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
956 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
957 #if 0
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
958 gaim_debug_info("wgaim", "TZ \"%s\" matches localized Windows timezone \"%s\" (\"%s\")\n",
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
959 win32_tzmap[i].ustd, tzname, localtzname);
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
960 #endif
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
961 /* Cache the Result */
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
962 if (win32_tzmap[0].wstd[0] != '\0')
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
963 g_free(win32_tzmap[0].wstd);
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
964 win32_tzmap[0].wstd = g_strdup(tzname);
13341
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
965 win32_tzmap[0].ustd = win32_tzmap[i].ustd;
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
966
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
967 return win32_tzmap[i].ustd;
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 if (strcmp(localtzname, win32_tzmap[i].wdst) == 0)
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
970 {
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
971 #if 0
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
972 gaim_debug_info("wgaim", "TZ \"%s\" matches localized Windows timezone \"%s\" (\"%s\")\n",
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
973 win32_tzmap[i].udst, tzname, localtzname);
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
974 #endif
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
975 /* Cache the Result */
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
976 if (win32_tzmap[0].wdst[0] != '\0')
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
977 g_free(win32_tzmap[0].wdst);
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
978
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
979 win32_tzmap[0].wdst = g_strdup(tzname);
13341
7aea080ea72d [gaim-migrate @ 15710]
Daniel Atallah <datallah@pidgin.im>
parents: 13339
diff changeset
980 win32_tzmap[0].udst = win32_tzmap[i].udst;
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
981
13334
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
982 return win32_tzmap[i].udst;
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
983 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
984 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
985 }
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
986
13363
d64e626254cc [gaim-migrate @ 15735]
Richard Laager <rlaager@pidgin.im>
parents: 13341
diff changeset
987 gaim_debug_warning("wgaim", "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
988 return "";
d0d48650f114 [gaim-migrate @ 15703]
Richard Laager <rlaager@pidgin.im>
parents: 13201
diff changeset
989 }
13339
781d47b2636c [gaim-migrate @ 15708]
Richard Laager <rlaager@pidgin.im>
parents: 13334
diff changeset
990

mercurial