view PROGRAMMING_NOTES @ 16236:4aedcb70cc07

remove some of the outdated todo stuff. most of the TODO file was handled as we worked on 2.0.0. Much of the .todo files was badly out of date, some of it completed, some of it no longer applies though not exactly completed, and other parts of it really rather debatable. For msn in particular I assume that the new msn code will addres much of it. for zephyr in particular, the bigger question than its .todo file is having a prpl distributed that we do not have a maintainer for. I left the jabber, oscar, and win32 .todo files. I am unsure which parts of them ought to be transfered to trac. references #157
author Luke Schierer <lschiere@pidgin.im>
date Thu, 19 Apr 2007 15:06:54 +0000
parents e8f8d19bf3ee
children
line wrap: on
line source

Notes on keeping Pidgin, Finch, and libpurple OS independant
------------------------------------------------------------

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

- Use g_getenv, g_snprintf, g_vsnprintf

- Use purple_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 default translation mode. 
  i.e. newline -> <CR><LF>

Paths
-----

- DATADIR, LOCALEDIR & LIBDIR are defined as functions in the win32 build
  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. purple_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)