Changeset 82a79a6
- Timestamp:
- Oct 3, 2009, 8:45:52 PM (15 years ago)
- Branches:
- master, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 1fdca1b
- Parents:
- 0c4a190
- git-author:
- Nelson Elhage <nelhage@mit.edu> (10/03/09 18:14:53)
- git-committer:
- Nelson Elhage <nelhage@mit.edu> (10/03/09 20:45:52)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
aim.c
rc79a047 r82a79a6 249 249 } 250 250 251 /* 252 * I got these constants by skimming libfaim/im.c 253 * 254 * "UNICODE" actually means "UCS-2BE". 255 */ 256 #define AIM_CHARSET_ISO_8859_1 0x0003 257 #define AIM_CHARSET_UNICODE 0x0002 258 259 int owl_aim_do_send(const char *to, const char *msg, int flags) /* noproto */ 260 { 261 int ret; 262 char *encoded; 263 struct aim_sendimext_args args; 264 gsize len; 265 266 encoded = g_convert(msg, -1, "ISO-8859-1", "UTF-8", NULL, &len, NULL); 267 if (encoded) { 268 owl_function_debugmsg("Encoded outgoing AIM as ISO-8859-1"); 269 args.charset = AIM_CHARSET_ISO_8859_1; 270 args.charsubset = 0; 271 args.flags = AIM_IMFLAGS_ISO_8859_1; 272 } else { 273 owl_function_debugmsg("Encoding outgoing IM as UCS-2BE"); 274 encoded = g_convert(msg, -1, "UCS-2BE", "UTF-8", NULL, &len, NULL); 275 if (!encoded) { 276 /* 277 * TODO: Strip or HTML-encode characters, or figure out how to 278 * send in a differen charset. 279 */ 280 owl_function_error("Unable to encode outgoing AIM message in UCS-2"); 281 return 1; 282 } 283 284 args.charset = AIM_CHARSET_UNICODE; 285 args.charsubset = 0; 286 args.flags = AIM_IMFLAGS_UNICODE; 287 } 288 289 args.destsn = to; 290 args.msg = encoded; 291 args.msglen = len; 292 args.flags |= flags; 293 294 ret=aim_im_sendch1_ext(owl_global_get_aimsess(&g), &args); 295 296 owl_free(encoded); 297 298 return(ret); 299 } 300 251 301 int owl_aim_send_im(const char *to, const char *msg) 252 302 { 253 int ret; 254 255 ret=aim_im_sendch1(owl_global_get_aimsess(&g), to, 0, msg); 256 257 /* I don't know how to check for an error yet */ 258 return(ret); 303 return owl_aim_do_send(to, msg, 0); 259 304 } 260 305 261 306 int owl_aim_send_awaymsg(const char *to, const char *msg) 262 307 { 263 int ret; 264 265 ret=aim_im_sendch1(owl_global_get_aimsess(&g), to, AIM_IMFLAGS_AWAY, msg); 266 267 /* I don't know how to check for an error yet */ 268 return(ret); 308 return owl_aim_do_send(to, msg, AIM_IMFLAGS_AWAY); 269 309 } 270 310
Note: See TracChangeset
for help on using the changeset viewer.