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.13 by root, Sat May 26 15:14:10 2007 UTC vs.
Revision 1.16 by root, Fri Jul 10 01:17:08 2015 UTC

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