comparison libgaim/plugins/perl/common/Request.xs @ 14364:338ac096e322

[gaim-migrate @ 17070] Disabled GTK+ components of the Perl plugin (we'll no longer support gtk-perl prefs frames until this is refactored into a gtkgaim plugin somehow). Fix gaim_util_fetch_url and plug some leaks. I haven't successfully tested gaim_util_fetch_url from perl yet - it doesn't seem to actually pass the retrieved text to the plugin sub correctly yet. The syntax for calling gaim_util_fetch_url() from perl is also funky and should be made more consistent to the C function. committer: Tailor Script <tailor@pidgin.im>
author Daniel Atallah <daniel.atallah@gmail.com>
date Mon, 28 Aug 2006 20:27:03 +0000
parents 60b1bc8dbf37
children
comparison
equal deleted inserted replaced
14363:4558e71a5a34 14364:338ac096e322
44 SPAGAIN; 44 SPAGAIN;
45 45
46 PUTBACK; 46 PUTBACK;
47 FREETMPS; 47 FREETMPS;
48 LEAVE; 48 LEAVE;
49
50 g_free(gpr->ok_cb);
51 g_free(gpr->cancel_cb);
52 g_free(gpr);
49 } 53 }
50 54
51 static void 55 static void
52 gaim_perl_request_cancel_cb(void * data, GaimRequestFields *fields) 56 gaim_perl_request_cancel_cb(void * data, GaimRequestFields *fields)
53 { 57 {
65 SPAGAIN; 69 SPAGAIN;
66 70
67 PUTBACK; 71 PUTBACK;
68 FREETMPS; 72 FREETMPS;
69 LEAVE; 73 LEAVE;
74
75 g_free(gpr->ok_cb);
76 g_free(gpr->cancel_cb);
77 g_free(gpr);
70 } 78 }
71 79
72 MODULE = Gaim::Request PACKAGE = Gaim::Request PREFIX = gaim_request_ 80 MODULE = Gaim::Request PACKAGE = Gaim::Request PREFIX = gaim_request_
73 PROTOTYPES: ENABLE 81 PROTOTYPES: ENABLE
74 82
87 const char * cancel_text 95 const char * cancel_text
88 SV * cancel_cb 96 SV * cancel_cb
89 CODE: 97 CODE:
90 GaimPerlRequestData *gpr; 98 GaimPerlRequestData *gpr;
91 STRLEN len; 99 STRLEN len;
92 char *basename, *package; 100 char *basename;
93 101
94 basename = g_path_get_basename(handle->path); 102 basename = g_path_get_basename(handle->path);
95 gaim_perl_normalize_script_name(basename); 103 gaim_perl_normalize_script_name(basename);
96 package = g_strdup_printf("Gaim::Script::%s", basename);
97 gpr = g_new(GaimPerlRequestData, 1); 104 gpr = g_new(GaimPerlRequestData, 1);
98 gpr->ok_cb = g_strdup_printf("%s::%s", package, SvPV(ok_cb, len)); 105 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len));
99 gpr->cancel_cb = g_strdup_printf("%s::%s", package, SvPV(cancel_cb, len)); 106 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len));
107 g_free(basename);
100 108
101 RETVAL = gaim_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr); 109 RETVAL = gaim_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr);
102 OUTPUT: 110 OUTPUT:
103 RETVAL 111 RETVAL
104 112
111 SV * ok_cb 119 SV * ok_cb
112 SV * cancel_cb 120 SV * cancel_cb
113 CODE: 121 CODE:
114 GaimPerlRequestData *gpr; 122 GaimPerlRequestData *gpr;
115 STRLEN len; 123 STRLEN len;
116 char *basename, *package; 124 char *basename;
117 125
118 basename = g_path_get_basename(handle->path); 126 basename = g_path_get_basename(handle->path);
119 gaim_perl_normalize_script_name(basename); 127 gaim_perl_normalize_script_name(basename);
120 package = g_strdup_printf("Gaim::Script::%s", basename);
121 gpr = g_new(GaimPerlRequestData, 1); 128 gpr = g_new(GaimPerlRequestData, 1);
122 gpr->ok_cb = g_strdup_printf("%s::%s", package, SvPV(ok_cb, len)); 129 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len));
123 gpr->cancel_cb = g_strdup_printf("%s::%s", package, SvPV(cancel_cb, len)); 130 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len));
131 g_free(basename);
124 132
125 RETVAL = gaim_request_file(handle, title, filename, savedialog, G_CALLBACK(gaim_perl_request_ok_cb), G_CALLBACK(gaim_perl_request_cancel_cb), gpr); 133 RETVAL = gaim_request_file(handle, title, filename, savedialog, G_CALLBACK(gaim_perl_request_ok_cb), G_CALLBACK(gaim_perl_request_cancel_cb), gpr);
126 OUTPUT: 134 OUTPUT:
127 RETVAL 135 RETVAL
128 136
138 const char * cancel_text 146 const char * cancel_text
139 SV * cancel_cb 147 SV * cancel_cb
140 CODE: 148 CODE:
141 GaimPerlRequestData *gpr; 149 GaimPerlRequestData *gpr;
142 STRLEN len; 150 STRLEN len;
143 char *basename, *package; 151 char *basename;
144 152
145 basename = g_path_get_basename(handle->path); 153 basename = g_path_get_basename(handle->path);
146 gaim_perl_normalize_script_name(basename); 154 gaim_perl_normalize_script_name(basename);
147 package = g_strdup_printf("Gaim::Script::%s", basename);
148 gpr = g_new(GaimPerlRequestData, 1); 155 gpr = g_new(GaimPerlRequestData, 1);
149 gpr->ok_cb = g_strdup_printf("%s::%s", package, SvPV(ok_cb, len)); 156 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len));
150 gpr->cancel_cb = g_strdup_printf("%s::%s", package, SvPV(cancel_cb, len)); 157 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len));
158 g_free(basename);
151 159
152 RETVAL = gaim_request_fields(handle, title, primary, secondary, fields, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr); 160 RETVAL = gaim_request_fields(handle, title, primary, secondary, fields, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr);
153 OUTPUT: 161 OUTPUT:
154 RETVAL 162 RETVAL
155 163