Mercurial > pidgin
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 |