Sun, 01 Dec 2002 20:43:00 +0000
[gaim-migrate @ 4233]
"with the change to .60 and the new method of using perl_call
argument parsing was broken. What essentially happened is that the
previous method of pre-parsing was to generate a string in the for
'arg one','arg two','arg three' and execute the perl function via
&perlfunc(args). This would make the perl function in essense parse
the variables for us. With the introduction of perl_call, however, that
argument list was being treated as one long, singular argument.
perl_call asks for lists of pointers to character arrays that are NULL
terminated, and it passes them into the function using an internal
method.
With this said, I changed the function execute_perl from requiring
(char* function, char* args) to (char* function, char** args). It no
longer takes a single argument and inserts it into the appropriate data
type that is terminated with a NULL element, instead you now have
to pass it a pre-NULL terminated array of character pointers to
accomodate some functions wanting to give it more than one
argument. I modified the functions that use execute_perl to use this
method, and commented those lines, as well chopping the multiple
argument section into buf[0] = looking sections for clarity. Finally, I
inserted a heft comment above execute_perl to try and explain what I
did, I hope it is understandable. "
-- Eric Timme (var1ety)
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 | |
| 15 | PLUGINS & PROTOS | |
| 16 | ---------------- | |
| 17 | ||
| 18 | - G_MODULE_EXPORT all functions which are to be accessed from outside the | |
| 19 | scope of its "dll" or "so". (E.G. gaim_plugin_init) | |
| 20 | ||
| 21 | - G_MODULE_IMPORT all global variables which are located outside your | |
| 22 | dynamic library. (E.G. connections) | |
| 23 | ||
| 24 | (Not doing this will cause "Memory Access Violations" in Win32) |