Mercurial > pidgin.yaz
view PROGRAMMING_NOTES @ 16341:786edf5e2144
The core portion of the migration code. This is implemented as I described
in my e-mail a while back. If we have ~/.gaim and not ~/.purple (or we
have ~/.purple, but the "migrating" file exists, indicating an incomplete
previous migration), we copy all the files from ~/.gaim to ~/.purple and
move and symlink directories, except for plugins and icons. For icons,
we move and symlink any subdirectories, as a special case for the Album
plugin (written by me).
For this to work, it needs to be called by the UIs. Also, the icon
migration code is not included in this commit, so I highly recommend you
not test this on your main .gaim directory if you want a clean migration.
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 23 Apr 2007 16:57:12 +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)