Lines Matching defs:uudecode

46 struct uudecode {
369 struct uudecode *uudecode;
376 uudecode = (struct uudecode *)calloc(1, sizeof(*uudecode));
379 if (uudecode == NULL || out_buff == NULL || in_buff == NULL) {
381 "Can't allocate data for uudecode");
382 free(uudecode);
388 self->data = uudecode;
389 uudecode->in_buff = in_buff;
390 uudecode->in_cnt = 0;
391 uudecode->in_allocated = IN_BUFF_SIZE;
392 uudecode->out_buff = out_buff;
393 uudecode->state = ST_FIND_HEAD;
394 uudecode->mode_set = 0;
395 uudecode->name = NULL;
403 struct uudecode *uudecode, size_t size)
406 if (size > uudecode->in_allocated) {
414 newsize = uudecode->in_allocated;
427 "Can't allocate data for uudecode");
431 if (uudecode->in_cnt)
432 memmove(ptr, uudecode->in_buff, uudecode->in_cnt);
434 free(uudecode->in_buff);
435 uudecode->in_buff = ptr;
436 uudecode->in_allocated = newsize;
445 struct uudecode *uudecode;
446 uudecode = (struct uudecode *)self->data;
448 if (uudecode->mode_set != 0)
449 archive_entry_set_mode(entry, S_IFREG | uudecode->mode);
451 if (uudecode->name != NULL)
452 archive_entry_set_pathname(entry, uudecode->name);
460 struct uudecode *uudecode;
468 uudecode = (struct uudecode *)self->data;
480 out = uudecode->out_buff;
482 if (uudecode->state == ST_IGNORE) {
486 if (uudecode->in_cnt) {
491 if (ensure_in_buff_size(self, uudecode,
492 avail_in + uudecode->in_cnt) != ARCHIVE_OK)
494 memcpy(uudecode->in_buff + uudecode->in_cnt,
496 d = uudecode->in_buff;
497 avail_in += uudecode->in_cnt;
498 uudecode->in_cnt = 0;
507 if (uudecode->state == ST_FIND_HEAD &&
508 (uudecode->total > 0 || total > 0)) {
509 uudecode->state = ST_IGNORE;
519 if ((nl == 0) && (uudecode->state != ST_UUEND)) {
531 if (ensure_in_buff_size(self, uudecode, len)
534 if (uudecode->in_buff != b)
535 memmove(uudecode->in_buff, b, len);
536 uudecode->in_cnt = (int)len;
547 switch (uudecode->state) {
568 uudecode->state = ST_READ_UU;
570 uudecode->state = ST_READ_BASE64;
571 uudecode->mode = (mode_t)(
575 uudecode->mode_set = 1;
578 if (uudecode->name != NULL)
579 free(uudecode->name);
580 uudecode->name = malloc(namelen + 1);
581 if (uudecode->name == NULL) {
585 "Can't allocate data for uudecode");
588 strncpy(uudecode->name,
591 uudecode->name[namelen] = '\0';
615 uudecode->state = ST_UUEND;
652 uudecode->state = ST_FIND_HEAD;
666 uudecode->state = ST_FIND_HEAD;
712 *buff = uudecode->out_buff;
713 uudecode->total += total;
720 struct uudecode *uudecode;
722 uudecode = (struct uudecode *)self->data;
723 free(uudecode->in_buff);
724 free(uudecode->out_buff);
725 free(uudecode->name);
726 free(uudecode);