annotate PROGRAMMING_NOTES @ 10245:c143a3fac58d

[gaim-migrate @ 11385] Binary relocation, step one. I had a fairly long commit message, and cvs ate it and said Read from remote host cvs.sourceforge.net: Connection reset by peer I'm displeased. This is just method one, method two to follow tomorrow after I add a way to register a fallback and try to push it upstream. That way I don't have to put method 2 inside prefix.c. As for as core/ui split goes, they can either each have their own copy after the divorce is final, or the UI can use the core's. It'll work either way, since #1 finds location of the caller, and #2 doesn't work on libraries anyway. That's one advantage I forgot to mention, btw, that #1 will let a library find its own location. So, I'm sure something isn't quite right and someone will want to fix it. So they can fix it while i implement phase two. Which won't take long at all, but the autopackage guy is in bed, and I should be too. committer: Tailor Script <tailor@pidgin.im>
author Tim Ringenbach <marv@pidgin.im>
date Tue, 23 Nov 2004 05:53:59 +0000
parents da88e2cd5c53
children 83ec0b408926
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 Notes on keeping GAIM OS independant
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 ------------------------------------
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 General
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 -------
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 - Use G_DIR_SEPARATOR_S and G_DIR_SEPARATOR for paths
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 - Use g_getenv, g_snprintf, g_vsnprintf
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 - Use gaim_home_dir instead of g_get_home_dir or g_getenv("HOME")
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11
3713
e3a8baffcc24 [gaim-migrate @ 3846]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3630
diff changeset
12 - Make sure when including win32dep.h that it is the last header to
e3a8baffcc24 [gaim-migrate @ 3846]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3630
diff changeset
13 be included.
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14
4482
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
15 - Open binary files when reading or writing with 'b' mode.
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
16
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
17 e.g: fopen("somefile", "wb");
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
18
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
19 Not doing so will open files in windows using defaut translation mode.
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
20 i.e. newline -> <CR><LF>
59ff9d0b7b85 [gaim-migrate @ 4757]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4062
diff changeset
21
4062
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
22 Paths
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
23 -----
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
24
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
25 - DATADIR, LOCALEDIR & LIBDIR are defined in wingaim as functions.
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
26 Doing the following will therefore break the windows build:
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
27
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
28 printf("File in DATADIR is: %s\n", DATADIR G_DIR_SEPARATOR_S "pic.png");
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
29
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
30 it should be:
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
31
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
32 printf("File in DATADIR is: %s%s%s\n", DATADIR, G_DIR_SEPARATOR_S, "pic.png");
e074172f4a41 [gaim-migrate @ 4272]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3713
diff changeset
33
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 PLUGINS & PROTOS
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
35 ----------------
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 - G_MODULE_EXPORT all functions which are to be accessed from outside the
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
38 scope of its "dll" or "so". (E.G. gaim_plugin_init)
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
39
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 - G_MODULE_IMPORT all global variables which are located outside your
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 dynamic library. (E.G. connections)
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43 (Not doing this will cause "Memory Access Violations" in Win32)