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"