ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-UUlib/UUlib.xs
(Generate patch)

Comparing Convert-UUlib/UUlib.xs (file contents):
Revision 1.15 by root, Mon Aug 24 06:15:00 2009 UTC vs.
Revision 1.16 by root, Fri Jul 10 01:17:08 2015 UTC

99 99
100static void 100static void
101uu_msg_callback (void *cb, char *msg, int level) 101uu_msg_callback (void *cb, char *msg, int level)
102{ 102{
103 dSP; 103 dSP;
104 104
105 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2); 105 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2);
106 106
107 PUSHs (sv_2mortal (newSVpv (msg, 0))); 107 PUSHs (sv_2mortal (newSVpv (msg, 0)));
108 PUSHs (sv_2mortal (newSViv (level))); 108 PUSHs (sv_2mortal (newSViv (level)));
109 109
115uu_busy_callback (void *cb, uuprogress *uup) 115uu_busy_callback (void *cb, uuprogress *uup)
116{ 116{
117 dSP; 117 dSP;
118 int count; 118 int count;
119 int retval; 119 int retval;
120 120
121 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 6); 121 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 6);
122 122
123 PUSHs (sv_2mortal (newSViv (uup->action))); 123 PUSHs (sv_2mortal (newSViv (uup->action)));
124 PUSHs (sv_2mortal (newSVpv (uup->curfile, 0))); 124 PUSHs (sv_2mortal (newSVpv (uup->curfile, 0)));
125 PUSHs (sv_2mortal (newSViv (uup->partno))); 125 PUSHs (sv_2mortal (newSViv (uup->partno)));
143uu_fnamefilter_callback (void *cb, char *fname) 143uu_fnamefilter_callback (void *cb, char *fname)
144{ 144{
145 dSP; 145 dSP;
146 int count; 146 int count;
147 static char *str; 147 static char *str;
148 148
149 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 1); 149 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 1);
150 150
151 PUSHs (sv_2mortal (newSVpv (fname, 0))); 151 PUSHs (sv_2mortal (newSVpv (fname, 0)));
152 152
153 PUTBACK; count = perl_call_sv ((SV *)cb, G_SCALAR); SPAGAIN; 153 PUTBACK; count = perl_call_sv ((SV *)cb, G_SCALAR); SPAGAIN;
167{ 167{
168 dSP; 168 dSP;
169 int count; 169 int count;
170 int retval; 170 int retval;
171 SV *xfname = newSVpv ("", 0); 171 SV *xfname = newSVpv ("", 0);
172 172
173 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 3); 173 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 3);
174 174
175 PUSHs (sv_2mortal (newSVpv (id, 0))); 175 PUSHs (sv_2mortal (newSVpv (id, 0)));
176 PUSHs (sv_2mortal (xfname)); 176 PUSHs (sv_2mortal (xfname));
177 PUSHs (sv_2mortal (newSViv (retrieve))); 177 PUSHs (sv_2mortal (newSViv (retrieve)));
192static char * 192static char *
193uu_filename_callback (void *cb, char *subject, char *filename) 193uu_filename_callback (void *cb, char *subject, char *filename)
194{ 194{
195 dSP; 195 dSP;
196 int count; 196 int count;
197 197
198 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2); 198 ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2);
199 199
200 PUSHs (sv_2mortal(newSVpv(subject, 0))); 200 PUSHs (sv_2mortal(newSVpv(subject, 0)));
201 PUSHs (filename ? sv_2mortal(newSVpv(filename, 0)) : &PL_sv_undef); 201 PUSHs (filename ? sv_2mortal(newSVpv(filename, 0)) : &PL_sv_undef);
202 202
227uu_info_file (void *cb, char *info) 227uu_info_file (void *cb, char *info)
228{ 228{
229 dSP; 229 dSP;
230 int count; 230 int count;
231 int retval; 231 int retval;
232 232
233 ENTER; SAVETMPS; PUSHMARK(SP); EXTEND(SP,1); 233 ENTER; SAVETMPS; PUSHMARK(SP); EXTEND(SP,1);
234 234
235 PUSHs(sv_2mortal(newSVpv(info,0))); 235 PUSHs(sv_2mortal(newSVpv(info,0)));
236 236
237 PUTBACK; count = perl_call_sv ((SV *)cb, G_SCALAR); SPAGAIN; 237 PUTBACK; count = perl_call_sv ((SV *)cb, G_SCALAR); SPAGAIN;
275UUInitialize () 275UUInitialize ()
276 CODE: 276 CODE:
277 if (!uu_initialized) 277 if (!uu_initialized)
278 { 278 {
279 int retval; 279 int retval;
280 280
281 if ((retval = UUInitialize ()) != UURET_OK) 281 if ((retval = UUInitialize ()) != UURET_OK)
282 croak ("unable to initialize uudeview library (%s)", UUstrerror (retval)); 282 croak ("unable to initialize uudeview library (%s)", UUstrerror (retval));
283 283
284 uu_initialized = 1; 284 uu_initialized = 1;
285 } 285 }
286 286
287void 287void
288UUCleanUp () 288UUCleanUp ()
289 CODE: 289 CODE:
290 if (uu_initialized) 290 if (uu_initialized)
291 UUCleanUp (); 291 UUCleanUp ();
292 292
293 uu_initialized = 0; 293 uu_initialized = 0;
294 294
295SV * 295SV *
296UUGetOption (opt) 296UUGetOption (opt)
297 int opt 297 int opt
298 CODE: 298 CODE:
299 { 299{
300 if (opt == UUOPT_PROGRESS) 300 if (opt == UUOPT_PROGRESS)
301 croak ("GetOption(UUOPT_PROGRESS) is not yet implemented"); 301 croak ("GetOption(UUOPT_PROGRESS) is not yet implemented");
302 else if (uu_opt_isstring (opt)) 302 else if (uu_opt_isstring (opt))
303 { 303 {
304 char cval[8192]; 304 char cval[8192];
305 305
306 UUGetOption (opt, 0, cval, sizeof cval); 306 UUGetOption (opt, 0, cval, sizeof cval);
307 RETVAL = newSVpv (cval, 0); 307 RETVAL = newSVpv (cval, 0);
308 } 308 }
309 else 309 else
310 { 310 {
311 RETVAL = newSViv (UUGetOption (opt, 0, 0, 0)); 311 RETVAL = newSViv (UUGetOption (opt, 0, 0, 0));
312 } 312 }
313 } 313}
314 OUTPUT: 314 OUTPUT:
315 RETVAL 315 RETVAL
316 316
317int 317int
318UUSetOption (opt, val) 318UUSetOption (opt, val)
319 int opt 319 int opt
320 SV * val 320 SV * val
321 CODE: 321 CODE:
322 { 322{
323 STRLEN dc; 323 STRLEN dc;
324 324
325 if (uu_opt_isstring (opt)) 325 if (uu_opt_isstring (opt))
326 RETVAL = UUSetOption (opt, 0, SvPV (val, dc)); 326 RETVAL = UUSetOption (opt, 0, SvPV (val, dc));
327 else 327 else
328 RETVAL = UUSetOption (opt, SvIV (val), (void *)0); 328 RETVAL = UUSetOption (opt, SvIV (val), (void *)0);
329 } 329}
330 OUTPUT: 330 OUTPUT:
331 RETVAL 331 RETVAL
332 332
333char * 333char *
334UUstrerror (errcode) 334UUstrerror (errcode)
374 char * fname 374 char * fname
375 char * id 375 char * id
376 int delflag 376 int delflag
377 int partno 377 int partno
378 PPCODE: 378 PPCODE:
379 { 379{
380 int count; 380 int count;
381 381
382 XPUSHs (sv_2mortal (newSViv (UULoadFileWithPartNo (fname, id, delflag, partno, &count)))); 382 XPUSHs (sv_2mortal (newSViv (UULoadFileWithPartNo (fname, id, delflag, partno, &count))));
383 if (GIMME_V == G_ARRAY) 383 if (GIMME_V == G_ARRAY)
384 XPUSHs (sv_2mortal (newSViv (count))); 384 XPUSHs (sv_2mortal (newSViv (count)));
385 } 385}
386 386
387int 387int
388UUSmerge (pass) 388UUSmerge (pass)
389 int pass 389 int pass
390 390
596 596
597void 597void
598parts (li) 598parts (li)
599 uulist *li 599 uulist *li
600 PPCODE: 600 PPCODE:
601 { 601{
602 struct _uufile *p = li->thisfile; 602 struct _uufile *p = li->thisfile;
603 603
604 while (p) 604 while (p)
605 { 605 {
606 HV *pi = newHV (); 606 HV *pi = newHV ();
607 607
608 hv_store (pi, "partno" , 6, newSViv (p->partno) , 0); 608 hv_store (pi, "partno" , 6, newSViv (p->partno) , 0);
609 609
610 if (p->filename) 610 if (p->filename)
611 hv_store (pi, "filename", 8, newSVpv (p->filename, 0) , 0); 611 hv_store (pi, "filename", 8, newSVpv (p->filename, 0) , 0);
612 if(p->subfname) 612 if(p->subfname)
613 hv_store (pi, "subfname", 8, newSVpv (p->subfname, 0) , 0); 613 hv_store (pi, "subfname", 8, newSVpv (p->subfname, 0) , 0);
614 if(p->mimeid) 614 if(p->mimeid)
615 hv_store (pi, "mimeid" , 6, newSVpv (p->mimeid , 0) , 0); 615 hv_store (pi, "mimeid" , 6, newSVpv (p->mimeid , 0) , 0);
616 if(p->mimetype) 616 if(p->mimetype)
617 hv_store (pi, "mimetype", 8, newSVpv (p->mimetype, 0) , 0); 617 hv_store (pi, "mimetype", 8, newSVpv (p->mimetype, 0) , 0);
618 if (p->data->subject) 618 if (p->data->subject)
619 hv_store (pi, "subject" , 7, newSVpv (p->data->subject,0), 0); 619 hv_store (pi, "subject" , 7, newSVpv (p->data->subject,0), 0);
620 if (p->data->origin) 620 if (p->data->origin)
621 hv_store (pi, "origin" , 6, newSVpv (p->data->origin ,0), 0); 621 hv_store (pi, "origin" , 6, newSVpv (p->data->origin ,0), 0);
622 if (p->data->sfname) 622 if (p->data->sfname)
623 hv_store (pi, "sfname" , 6, newSVpv (p->data->sfname ,0), 0); 623 hv_store (pi, "sfname" , 6, newSVpv (p->data->sfname ,0), 0);
624 624
625 XPUSHs (sv_2mortal (newRV_noinc ((SV *)pi))); 625 XPUSHs (sv_2mortal (newRV_noinc ((SV *)pi)));
626 626
627 p = p->NEXT; 627 p = p->NEXT;
628 }
629 } 628 }
629}
630 630
631BOOT: 631BOOT:
632 uu_msg_sv = newSVsv (&PL_sv_undef); 632 uu_msg_sv = newSVsv (&PL_sv_undef);
633 uu_busy_sv = newSVsv (&PL_sv_undef); 633 uu_busy_sv = newSVsv (&PL_sv_undef);
634 uu_file_sv = newSVsv (&PL_sv_undef); 634 uu_file_sv = newSVsv (&PL_sv_undef);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines