view PROGRAMMING_NOTES @ 10003:33431f91e4a8

[gaim-migrate @ 10920] (21:42:10) JBSilvest: see away msg :) (21:42:29) Luke: awesome (21:42:47) JBSilvest: it could probably use a glance at by a second pair of eyes, but it works (21:43:02) JBSilvest: oh, i should do the obligatory thing, shouldn't i? (21:43:15) JBSilvest: [^H] (21:43:31) JBSilvest: Hello World (21:43:53) JBSilvest: [john@tux-laptop gaim]$ gaim-remote send -t lschiere -f JBSilvest -p prpl-oscar -m "Hello World" (21:44:27) JBSilvest: i shain't think there are any memleak risks or other baddies, but i won't profess to being a highly skilled C programmer (21:45:06) Luke: so is it ready? (21:45:16) JBSilvest: more or less (21:45:26) JBSilvest: could use more strings/docs, but it definitely works (21:47:51) JBSilvest: someone will no doubt bitch & moan about 9999-char limit, but until someone can recommend a better way || i redo the whole sys., that'll be it (21:49:13) JBSilvest: *and* thinking about things, there is blessedly no risk of remote buffer overflow or any such crap :-D (21:49:21) JBSilvest: it has to be run by the user :) (21:49:25) Luke: okay, so this patch does what now? it lets you send and not just put text in the input widget and what else? (21:49:40) Luke: or the web browser (21:49:42) JBSilvest: it lets you send...period :) (21:49:52) JBSilvest: from the command line/scripts (21:49:56) Luke: for instance if you made gaim-remote your handler for aim: uris (21:50:02) JBSilvest: no (21:50:06) JBSilvest: that's not what this does (21:50:12) JBSilvest: it doesn't parse aim:uris (21:50:16) Luke: ah (21:50:17) JBSilvest: it's for sending messages themselves committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Fri, 10 Sep 2004 01:51:02 +0000
parents da88e2cd5c53
children 83ec0b408926
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");

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)