This is append.c in view mode; [Download] [Up]
/* ------------------------------------------------------------------------ */ /* LHa for UNIX */ /* append.c -- append to archive */ /* */ /* Modified Nobutaka Watazaki */ /* */ /* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ /* ------------------------------------------------------------------------ */ #include "lha.h" /* ------------------------------------------------------------------------ */ int encode_lzhuf(infp, outfp, size, original_size_var, packed_size_var, name, hdr_method) FILE *infp; FILE *outfp; long size; long *original_size_var; long *packed_size_var; char *name; char *hdr_method; { static int method = -1; if (method < 0) { method = compress_method; if (method > 0) method = encode_alloc(method); } interface.method = method; if (interface.method > 0) { interface.infile = infp; interface.outfile = outfp; interface.original = size; start_indicator(name, size, "Freezing", 1 << dicbit); encode(&interface); *packed_size_var = interface.packed; *original_size_var = interface.original; } else { copyfile(infp, outfp, size, 1); *packed_size_var = *original_size_var = size; } bcopy("-lh -", hdr_method, 5); hdr_method[3] = interface.method + '0'; finish_indicator2(name, "Frozen", (int) ((*packed_size_var * 100L) / *original_size_var)); return crc; } /* ------------------------------------------------------------------------ */ void start_indicator(name, size, msg, def_indicator_threshold) char *name; long size; char *msg; long def_indicator_threshold; { #ifdef NEED_INCREMENTAL_INDICATOR long i; int m; #endif if (quiet) return; #ifdef NEED_INCREMENTAL_INDICATOR switch (quiet_mode) { case 0: m = MAX_INDICATOR_COUNT - strlen(name); if (m < 1) /* Bug Fixed by N.Watazaki */ m = 3; /* (^_^) */ printf("\r%s\t- %s : ", name, msg); indicator_threshold = ((size + (m * def_indicator_threshold - 1)) / (m * def_indicator_threshold) * def_indicator_threshold); if (indicator_threshold) i = ((size + (indicator_threshold - 1)) / indicator_threshold); else i = 0; while (i--) putchar('.'); indicator_count = 0; printf("\r%s\t- %s : ", name, msg); break; case 1: printf("\r%s :", name); break; } #else printf("%s\t- ", name); #endif fflush(stdout); reading_size = 0L; } /* ------------------------------------------------------------------------ */ void finish_indicator2(name, msg, pcnt) char *name; char *msg; int pcnt; { if (quiet) return; if (pcnt > 100) pcnt = 100; /* (^_^) */ #ifdef NEED_INCREMENTAL_INDICATOR printf("\r%s\t- %s(%d%%)\n", name, msg, pcnt); #else printf("%s\n", msg); #endif fflush(stdout); } /* ------------------------------------------------------------------------ */ void finish_indicator(name, msg) char *name; char *msg; { if (quiet) return; #ifdef NEED_INCREMENTAL_INDICATOR printf("\r%s\t- %s\n", name, msg); #else printf("%s\n", msg); #endif fflush(stdout); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.