Convert-UUlib
view release on metacpan or search on metacpan
uulib/uucheck.c view on Meta::CPAN
break;
fiter = fiter->NEXT;
}
/*
* if in fast mode, we don't notice an 'end'. So if its uu or xx
* encoded, there's a begin line and encoded data, assume it's
* there.
*/
if (uu_fast_scanning && (flag & 0x01) && (flag & 0x04) &&
(liter->uudet == UU_ENCODED || liter->uudet == XX_ENCODED))
flag |= 2;
/*
* Set the parts we have and/or missing
*/
_FP_free (liter->haveparts);
_FP_free (liter->misparts);
liter->haveparts = NULL;
liter->misparts = NULL;
if (havecount) {
if ((liter->haveparts=(int*)malloc((havecount+1)*sizeof(int)))!=NULL) {
memcpy (liter->haveparts, haveparts, havecount*sizeof(int));
liter->haveparts[havecount] = 0;
}
}
if (miscount) {
if ((liter->misparts=(int*)malloc((miscount+1)*sizeof(int)))!=NULL) {
memcpy (liter->misparts, misparts, miscount*sizeof(int));
liter->misparts[miscount] = 0;
}
liter->state |= UUFILE_MISPART;
}
/*
* Finalize checking
*/
if ((flag & 1) == 0) liter->state |= UUFILE_NOBEGIN;
if ((flag & 2) == 0) liter->state |= UUFILE_NOEND;
if ((flag & 4) == 0) liter->state |= UUFILE_NODATA;
if ((flag & 7) == 7 && miscount==0) {
liter->state = UUFILE_OK;
}
if ((uu_fast_scanning && (liter->flags&FL_PROPER)==0) || thesize<=0)
liter->size = -1;
else
liter->size = thesize;
if (liter->state==UUFILE_OK &&
(liter->filename==NULL || liter->filename[0]=='\0')) {
/*
* Emergency backup if the file does not have a filename
*/
_FP_free (liter->filename);
if (liter->subfname && liter->subfname[0] &&
_FP_strpbrk (liter->subfname, "()[];: ") == NULL)
liter->filename = _FP_strdup (liter->subfname);
else {
sprintf (uucheck_tempname, "%s.%03d", nofname, ++nofnum);
liter->filename = _FP_strdup (uucheck_tempname);
}
}
liter = liter->NEXT;
}
/*
* Sets back (PREV) links
*/
liter = UUGlobalFileList;
prev = NULL;
while (liter) {
liter->PREV = prev;
prev = liter;
liter = liter->NEXT;
}
}
( run in 1.862 second using v1.01-cache-2.11-cpan-e1769b4cff6 )