Mercurial > pidgin
annotate libpurple/version.c @ 17632:36ebcb33e2eb
This fixes a bustination of the official ICQ client in at least some
locales. For away (and possibly other) messages, apparently the
official ICQ (5.1?) client of some locales converts messages which are
stored in UTF-8 from a locale-native character set to UCS-2BE; this
results in something which, when decoded "correctly", is gibberish.
Instead, we first try decoding from UCS-2BE to the locale-specific
character set, and if that validates as UTF-8, we display it, instead.
Since UTF-8 is relatively picky, hopefully this won't break too many
sane clients.
| author | Ethan Blanton <elb@pidgin.im> |
|---|---|
| date | Thu, 14 Jun 2007 18:20:53 +0000 |
| parents | ce049678a67b |
| children | 44b4e8bd759b |
| rev | line source |
|---|---|
|
16583
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1 /* |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
2 * @file version.c Version Functions |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
3 * @ingroup core |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
4 * |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
5 * Purple is the legal property of its developers, whose names are too numerous |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
6 * to list here. Please refer to the COPYRIGHT file distributed with this |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
7 * source distribution. |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
8 * |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
9 * This program is free software; you can redistribute it and/or modify |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
12 * (at your option) any later version. |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
13 * |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
14 * This program is distributed in the hope that it will be useful, |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
17 * GNU General Public License for more details. |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
18 * |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
19 * You should have received a copy of the GNU General Public License |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
20 * along with this program; if not, write to the Free Software |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
22 */ |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
23 |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
24 #include "internal.h" |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
25 |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
26 #include "version.h" |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
27 |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
28 const guint purple_major_version = PURPLE_MAJOR_VERSION; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
29 const guint purple_minor_version = PURPLE_MINOR_VERSION; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
30 const guint purple_micro_version = PURPLE_MICRO_VERSION; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
31 |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
32 const char *purple_version_check(guint required_major, guint required_minor, guint required_micro) |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
33 { |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
34 if (required_major > PURPLE_MAJOR_VERSION) |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
35 return "libpurple version too old (major mismatch)"; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
36 if (required_major < PURPLE_MAJOR_VERSION) |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
37 return "libpurple version too new (major mismatch)"; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
38 if (required_minor > PURPLE_MINOR_VERSION) |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
39 return "libpurple version too old (minor mismatch)"; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
40 if ((required_minor == PURPLE_MINOR_VERSION) && (required_micro > PURPLE_MICRO_VERSION)) |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
41 return "libpurple version too old (micro mismatch)"; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
42 return NULL; |
|
ce049678a67b
soname versioning of libpurple. Should help resolve debian bug 421282
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
43 } |
