Sun, 01 Jul 2007 23:33:27 +0000
In msim_tooltip_text, do not try to display items with no value. In Linux,
"%s" on a null pointer is formatted as "(null)", but on Windows this leads to
a crash.
Closes #1999.
|
17930
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
1 | /* MySpaceIM Protocol Plugin, persist commands |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
2 | * |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
3 | * Copyright (C) 2007, Jeff Connelly <jeff2@homing.pidgin.im> |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
4 | * |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
5 | * This program is free software; you can redistribute it and/or modify |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
6 | * it under the terms of the GNU General Public License as published by |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
7 | * the Free Software Foundation; either version 2 of the License, or |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
8 | * (at your option) any later version. |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
9 | * |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
10 | * This program is distributed in the hope that it will be useful, |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
13 | * GNU General Public License for more details. |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
14 | * |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU General Public License |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
16 | * along with this program; if not, write to the Free Software |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
18 | */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
19 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
20 | #ifndef _MYSPACE_PERSIST_H |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
21 | #define _MYSPACE_PERSIST_H |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
22 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
23 | /** Command codes */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
24 | #define MSIM_CMD_GET 1 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
25 | #define MSIM_CMD_PUT 2 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
26 | #define MSIM_CMD_DELETE 3 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
27 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
28 | /** Command bit fields */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
29 | #define MSIM_CMD_BIT_CODE 255 /*< Bits specifying command code */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
30 | #define MSIM_CMD_BIT_REPLY 256 /**< 1=reply, 0=request */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
31 | #define MSIM_CMD_BIT_ACTION 512 /**< 1=action, 0=information */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
32 | #define MSIM_CMD_BIT_ERROR 1024 /**< 1=error, 0=normal */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
33 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
34 | /** Macros to read cmd bitfield. */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
35 | #define MSIM_CMD_GET_CODE(x) (x & MSIM_CMD_BIT_CODE) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
36 | #define MSIM_CMD_IS_REPLY(x) (x & MSIM_CMD_BIT_REPLY) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
37 | #define MSIM_CMD_IS_REQUEST(x) !(x & MSIM_CMD_BIT_REPLY) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
38 | #define MSIM_CMD_IS_ACTION(x) (x & MSIM_CMD_BIT_ACTION) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
39 | #define MSIM_CMD_IS_INFO(x) !(x & MSIM_CMD_BIT_ACTION) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
40 | #define MSIM_CMD_IS_ERROR(x) (x & MSIM_CMD_BIT_ERROR) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
41 | #define MSIM_CMD_IS_NORMAL(x) !(x & MSIM_CMD_BIT_ERROR) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
42 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
43 | /** Define a set of _DSN and _LID constants for a persistance request. */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
44 | #define MSIM_PERSIST_DSN_LID(name,dsn,lid) \ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
45 | const int name##_DSN = dsn; \ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
46 | const int name##_LID = lid; |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
47 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
48 | /* Can't do this, errors: |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
49 | * persist.h:51:3: error: '#' is not followed by a macro parameter |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
50 | * In file included from myspace.c:37: |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
51 | * persist.h:56: error: expected ')' before numeric constant |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
52 | * So instead, I define const ints above. |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
53 | #define MSIM_PERSIST_DSN_LID(name,dsn,lid) \ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
54 | #define name##_DSN dsn \ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
55 | #define name##_LID lid |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
56 | #endif |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
57 | */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
58 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
59 | /** Messages to Get information */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
60 | MSIM_PERSIST_DSN_LID(MG_LIST_ALL_CONTACTS, 0, 1) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
61 | MSIM_PERSIST_DSN_LID(MG_USER_INFO_BY_ID, 0, 2) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
62 | MSIM_PERSIST_DSN_LID(MG_IM_INFO_BY_ID, 1, 17) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
63 | MSIM_PERSIST_DSN_LID(MG_LIST_ALL_GROUPS, 2, 6) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
64 | MSIM_PERSIST_DSN_LID(MG_MYSPACE_INFO_BY_ID, 4, 3) |
|
17960
0c7d41bbf8d7
Several small changes to work towards a working msim_remove_buddy():
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17932
diff
changeset
|
65 | MSIM_PERSIST_DSN_LID(MG_OWN_MYSPACE_INFO, 4, 5) |
|
17930
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
66 | MSIM_PERSIST_DSN_LID(MG_MYSPACE_INFO_BY_STRING, 5, 7) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
67 | MSIM_PERSIST_DSN_LID(MG_CHECK_MAIL, 7, 18) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
68 | MSIM_PERSIST_DSN_LID(MG_WEB_CHALLENGE, 17, 26) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
69 | MSIM_PERSIST_DSN_LID(MG_USER_SONG, 21, 28) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
70 | MSIM_PERSIST_DSN_LID(MG_SERVER_INFO, 101, 20) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
71 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
72 | /** Messages to Change/send information */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
73 | MSIM_PERSIST_DSN_LID(MC_USER_PREFERENCES, 1, 10) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
74 | MSIM_PERSIST_DSN_LID(MC_CONTACT_INFO, 0, 9) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
75 | MSIM_PERSIST_DSN_LID(MC_INVITE, 16, 25) |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
76 | |
| 17932 | 77 | /** Messages to Delete information */ |
| 78 | MSIM_PERSIST_DSN_LID(MD_DELETE_BUDDY, 0, 8) | |
| 79 | ||
|
17930
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
80 | /** Error codes */ |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
81 | #define MERR_PARSE 1 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
82 | #define MERR_NOT_LOGGED_IN 2 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
83 | #define MERR_ANOTHER_LOGIN 6 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
84 | #define MERR_BAD_EMAIL 259 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
85 | #define MERR_BAD_PASSWORD 260 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
86 | #define MERR_BAD_UID_IN_PERSISTR 4352 |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
87 | |
|
d8908611bf64
Use symbolic constants for persist messages.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
88 | #endif /* !_MYSPACE_PERSIST_H */ |