HIDDEN void Do_printnode(struct db_i *dbip2, struct rt_comb_internal *UNUSED(comb), union tree *comb_leaf, void *user_ptr1, void *user_ptr2, void *UNUSED(user_ptr3), void *UNUSED(user_ptr4)) { FILE *fp; int *pathpos; struct directory *nextdp; RT_CK_DBI(dbip2); RT_CK_TREE(comb_leaf); if ((nextdp=db_lookup(dbip2, comb_leaf->tr_l.tl_name, LOOKUP_NOISY)) == RT_DIR_NULL) return; fp = (FILE *)user_ptr1; pathpos = (int *)user_ptr2; /* recurse on combinations */ if (nextdp->d_flags & RT_DIR_COMB) (void)printcodes(fp, nextdp, (*pathpos)+1); }
spec_select_action(char* from_buf, int from_count, int action, char* to_buf) { char *cp, *rindex(), *malloc(); struct stat statbuf; #ifdef SYSV void onintr(), oops(); #else int onintr(), oops(); #endif /* SYSV */ #ifdef COMPATIBLE nomagic = 1; /* Original didn't have a magic number */ #endif /* COMPATIBLE */ if(maxbits < INIT_BITS) maxbits = INIT_BITS; if (maxbits > BITS) maxbits = BITS; maxmaxcode = 1 << maxbits; InCnt = from_count; InBuff = (unsigned char *)from_buf; OutBuff = (unsigned char *)to_buf; do_decomp = action; if (do_decomp == 0) { compress(); #ifdef DEBUG if(verbose) dump_tab(); #endif /* DEBUG */ } else { /* Check the magic number */ if (nomagic == 0) { if ((getbyte() != (magic_header[0] & 0xFF)) || (getbyte() != (magic_header[1] & 0xFF))) { fprintf(stderr, "stdin: not in compressed format\n"); exit(1); } maxbits = getbyte(); /* set -b from file */ block_compress = maxbits & BLOCK_MASK; maxbits &= BIT_MASK; maxmaxcode = 1 << maxbits; fsize = 100000; /* assume stdin large for USERMEM */ if(maxbits > BITS) { fprintf(stderr, "stdin: compressed with %d bits, can only handle %d bits\n", maxbits, BITS); exit(1); } } #ifndef DEBUG decompress(); #else if (debug == 0) decompress(); else printcodes(); if (verbose) dump_tab(); #endif /* DEBUG */ } return( OutBuff - (unsigned char *)to_buf ); }