view PROGRAMMING_NOTES @ 8383:ae15e717ca75

[gaim-migrate @ 9111] (00:18:52) lschiere: marv: https://sourceforge.net/tracker/?func=detail&atid=300235&aid=908071&group_id=235 (00:21:24) marv: what does gc->wants_to_die = TRUE; do? is that some sort of hint for the autoreconnect plugin? (00:21:43) lschiere: kinda sorta (00:21:51) lschiere: if a gc wants to die, you signed off (00:22:01) lschiere: if it doesn't, then something killed it, and it should be reconnected (00:22:41) lschiere: i'm not sure how we used to handle that kind of thing for aim (00:23:03) lschiere: but basically if that's what he's doing, he's mimicing you signing off manually (00:23:52) marv: yeah, all the patch does is add that line right before the gaim_connection_error when yahoo receives a patch telling us we got signed off because we signed on with another client (00:24:22) lschiere: i dare say it would work, as long as we can uniquely id when we are kicked off for that reason (00:25:07) marv: i think we do a pretty good job of that, i haven't heard any reports of anyone getting that message when that's not what happened. (00:25:22) marv: then again, i don't remember when i added that, and if yahoo's worked since then. (00:25:36) lschiere: *nods* basically, Rob Foehl figured out a predictable way to work around yahoo being too dumb to handle 2 instances of the same sn on at once. Jabber's done that for years, and aim even figured it out, so you'd think yahoo would get a clue... ;-) committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 02 Mar 2004 05:19:53 +0000
parents 10b5ac17fdd6
children da88e2cd5c53
line wrap: on
line source

Notes on keeping GAIM OS independant
------------------------------------

General
-------
- Use G_DIR_SEPARATOR_S and G_DIR_SEPARATOR for paths

- Use g_getenv, g_snprintf, g_vsnprintf

- Use gaim_home_dir instead of g_get_home_dir or g_getenv("HOME")

- Make sure when including win32dep.h that it is the last header to
  be included.

- Open binary files when reading or writing with 'b' mode.

  e.g: fopen("somefile", "wb");

  Not doing so will open files in windows using defaut translation mode. 
  i.e. newline -> <CR><LF>

Paths
-----

- DATADIR, LOCALEDIR & LIBDIR are defined in wingaim as functions.
  Doing the following will therefore break the windows build:

  printf("File in DATADIR is: %s\n", DATADIR G_DIR_SEPARATOR_S "pic.png");

  it should be:

  printf("File in DATADIR is: %s%s%s\n", DATADIR, G_DIR_SEPARATOR_S, "pic.png");

- When writing out paths to .gaimrc, use wgaim_escape_dirsep. This is necessary
  because the Windows dir separator '\' is being used to escape characters, when
  paths are read in from the .gaimrc file.

PLUGINS & PROTOS
----------------

- G_MODULE_EXPORT all functions which are to be accessed from outside the
  scope of its "dll" or "so". (E.G. gaim_plugin_init)

- G_MODULE_IMPORT all global variables which are located outside your
  dynamic library. (E.G. connections)

  (Not doing this will cause "Memory Access Violations" in Win32)