PROGRAMMING_NOTES

Sun, 18 Apr 2004 01:37:19 +0000

author
Tim Ringenbach <marv@pidgin.im>
date
Sun, 18 Apr 2004 01:37:19 +0000
changeset 8690
d93670e435c8
parent 5338
03c096de0dea
child 9619
2d8adb92f665
permissions
-rw-r--r--

[gaim-migrate @ 9443]
(21:31:24) marv: LSchiere2: i have a patch that fixes the extra new lines for system messages
(21:31:29) LSchiere2: cool
(21:32:43) marv: can i just dcc it to you?
(21:33:09) LSchiere2: can gaim recieve dcc?
(21:33:18) marv: yes
(21:33:20) LSchiere2: then yes
(21:33:27) LSchiere2: oh and i miss the empty line ;-)
(21:34:17) marv: heh
(21:35:16) marv: i could bring it back by popular demand
(21:35:35) marv: or just add a bottom margin
(21:36:10) LSchiere2: what did i just accept? i hate that about file transfer. i always forget the name
(21:36:28) marv: you could turn off clear finished transfers :P
(21:36:34) marv: gtkconv.extranewlines.fixed.diff
(21:36:45) LSchiere2: thanks

committer: Luke Schierer <lschiere@pidgin.im>

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)

mercurial