Mercurial > pidgin.yaz
comparison src/perl.c @ 2329:a6d0edc31554
[gaim-migrate @ 2339]
load perl on demand
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Thu, 20 Sep 2001 19:09:42 +0000 |
parents | e243bf60f2d6 |
children | a49e8f1afbc4 |
comparison
equal
deleted
inserted
replaced
2328:14c8df9cc75f | 2329:a6d0edc31554 |
---|---|
80 static GList *perl_list = NULL; /* should probably extern this at some point */ | 80 static GList *perl_list = NULL; /* should probably extern this at some point */ |
81 static GList *perl_timeout_handlers = NULL; | 81 static GList *perl_timeout_handlers = NULL; |
82 static GList *perl_event_handlers = NULL; | 82 static GList *perl_event_handlers = NULL; |
83 static PerlInterpreter *my_perl = NULL; | 83 static PerlInterpreter *my_perl = NULL; |
84 static char* last_dir = NULL; | 84 static char* last_dir = NULL; |
85 static void perl_init(); | |
85 | 86 |
86 /* dealing with gaim */ | 87 /* dealing with gaim */ |
87 XS(XS_GAIM_register); /* set up hooks for script */ | 88 XS(XS_GAIM_register); /* set up hooks for script */ |
88 XS(XS_GAIM_get_info); /* version, last to attempt signon, protocol */ | 89 XS(XS_GAIM_get_info); /* version, last to attempt signon, protocol */ |
89 XS(XS_GAIM_print); /* lemme figure this one out... */ | 90 XS(XS_GAIM_print); /* lemme figure this one out... */ |
144 } | 145 } |
145 | 146 |
146 int perl_load_file(char *script_name) | 147 int perl_load_file(char *script_name) |
147 { | 148 { |
148 SV *return_val; | 149 SV *return_val; |
150 if (my_perl == NULL) | |
151 perl_init(); | |
149 return_val = execute_perl("load_file", script_name); | 152 return_val = execute_perl("load_file", script_name); |
150 return SvNV (return_val); | 153 return SvNV (return_val); |
151 } | 154 } |
152 | 155 |
153 static int is_pl_file(char *filename) | 156 static int is_pl_file(char *filename) |
184 closedir(dir); | 187 closedir(dir); |
185 } | 188 } |
186 g_free(path); | 189 g_free(path); |
187 } | 190 } |
188 | 191 |
189 void perl_init() | 192 static void perl_init() |
190 { | 193 { |
191 char *perl_args[] = {"", "-e", "0", "-w"}; | 194 char *perl_args[] = {"", "-e", "0", "-w"}; |
192 char load_file[] = | 195 char load_file[] = |
193 "sub load_file()\n" | 196 "sub load_file()\n" |
194 "{\n" | 197 "{\n" |