Fri, 20 Aug 2004 03:40:33 +0000
[gaim-migrate @ 10655]
after an utter failure to get comments on this since it was updated, and
thinking that the functionality is worth having, i present to you:
" This is a patch to blist.c and blist.h to modify the
GaimBuddy structure to add a field for flags. It also
adds a single flag GAIM_BUDDY_NO_SAVE, which can be
used to indicate that a particular buddy should not be
saved to file. This will be particularly useful for
prpls with dynamic group support (which I am working on
adding to Meanwhile), such as Oscar's recent buddies group.
I used a negative flag (NO_SAVE rather than SAVE)
because the default should be for saving to happen, and
I didn't want to have to initiate the buddy with a save
flag set. To counteract this, there is a macro called
GAIM_BUDDY_SHOULD_SAVE which checks for the absense of
the flag. Woo-hoo double negative!!
The beefy part of this patch also factors out the
deeply nested loops of the saving code into separate
functions.
This code also fixes a minor possible bug wherein when
saving only a particular account, a group could be
written containing empty contacts (due to checking for
the specific account only at the group and buddy levels)
Here's a version that places the flags field in the
BlistNode, and checks for it at each stage (group, chat,
contact, buddy). It didn't erase my buddy list when I tried
it, so that's nice at least." --Christopher (siege) O'Brien
committer: Luke Schierer <lschiere@pidgin.im>
| 3630 | 1 | Notes on keeping GAIM OS independant |
| 2 | ------------------------------------ | |
| 3 | ||
| 4 | General | |
| 5 | ------- | |
| 6 | - Use G_DIR_SEPARATOR_S and G_DIR_SEPARATOR for paths | |
| 7 | ||
| 8 | - Use g_getenv, g_snprintf, g_vsnprintf | |
| 9 | ||
| 10 | - Use gaim_home_dir instead of g_get_home_dir or g_getenv("HOME") | |
| 11 | ||
|
3713
c5e268f28597
[gaim-migrate @ 3846]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
12 | - Make sure when including win32dep.h that it is the last header to |
|
c5e268f28597
[gaim-migrate @ 3846]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
13 | be included. |
| 3630 | 14 | |
|
4482
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
15 | - Open binary files when reading or writing with 'b' mode. |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
16 | |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
17 | e.g: fopen("somefile", "wb"); |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
18 | |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
19 | Not doing so will open files in windows using defaut translation mode. |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
20 | i.e. newline -> <CR><LF> |
|
6181b7a53a07
[gaim-migrate @ 4757]
Herman Bloggs <herman@bluedigits.com>
parents:
4062
diff
changeset
|
21 | |
|
4062
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
22 | Paths |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
23 | ----- |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
24 | |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
25 | - DATADIR, LOCALEDIR & LIBDIR are defined in wingaim as functions. |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
26 | Doing the following will therefore break the windows build: |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
27 | |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
28 | printf("File in DATADIR is: %s\n", DATADIR G_DIR_SEPARATOR_S "pic.png"); |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
29 | |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
30 | it should be: |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
31 | |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
32 | printf("File in DATADIR is: %s%s%s\n", DATADIR, G_DIR_SEPARATOR_S, "pic.png"); |
|
b397c19fe466
[gaim-migrate @ 4272]
Herman Bloggs <herman@bluedigits.com>
parents:
3713
diff
changeset
|
33 | |
| 3630 | 34 | PLUGINS & PROTOS |
| 35 | ---------------- | |
| 36 | ||
| 37 | - G_MODULE_EXPORT all functions which are to be accessed from outside the | |
| 38 | scope of its "dll" or "so". (E.G. gaim_plugin_init) | |
| 39 | ||
| 40 | - G_MODULE_IMPORT all global variables which are located outside your | |
| 41 | dynamic library. (E.G. connections) | |
| 42 | ||
| 43 | (Not doing this will cause "Memory Access Violations" in Win32) |