1 /* ------------------------------------------------------------------------ */
3 /* append.c -- append to archive */
5 /* Modified Nobutaka Watazaki */
7 /* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
8 /* ------------------------------------------------------------------------ */
11 /* ------------------------------------------------------------------------ */
13 encode_lzhuf(infp, outfp, size, original_size_var, packed_size_var,
18 long *original_size_var;
19 long *packed_size_var;
23 static int method = -1;
26 method = compress_method;
28 method = encode_alloc(method);
31 interface.method = method;
33 if (interface.method > 0) {
34 interface.infile = infp;
35 interface.outfile = outfp;
36 interface.original = size;
37 start_indicator(name, size, "Freezing", 1 << dicbit);
39 *packed_size_var = interface.packed;
40 *original_size_var = interface.original;
42 copyfile(infp, outfp, size, 1);
43 *packed_size_var = *original_size_var = size;
45 bcopy("-lh -", hdr_method, 5);
46 hdr_method[3] = interface.method + '0';
48 finish_indicator2(name, "Frozen",
49 (int) ((*packed_size_var * 100L) / *original_size_var));
52 /* ------------------------------------------------------------------------ */
54 start_indicator(name, size, msg, def_indicator_threshold)
58 long def_indicator_threshold;
60 #ifdef NEED_INCREMENTAL_INDICATOR
68 #ifdef NEED_INCREMENTAL_INDICATOR
71 m = MAX_INDICATOR_COUNT - strlen(name);
72 if (m < 1) /* Bug Fixed by N.Watazaki */
74 printf("\r%s\t- %s : ", name, msg);
76 ((size + (m * def_indicator_threshold - 1)) /
77 (m * def_indicator_threshold) *
78 def_indicator_threshold);
79 if (indicator_threshold)
80 i = ((size + (indicator_threshold - 1)) / indicator_threshold);
86 printf("\r%s\t- %s : ", name, msg);
89 printf("\r%s :", name);
93 printf("%s\t- ", name);
98 /* ------------------------------------------------------------------------ */
100 finish_indicator2(name, msg, pcnt)
109 pcnt = 100; /* (^_^) */
110 #ifdef NEED_INCREMENTAL_INDICATOR
111 printf("\r%s\t- %s(%d%%)\n", name, msg, pcnt);
117 /* ------------------------------------------------------------------------ */
119 finish_indicator(name, msg)
126 #ifdef NEED_INCREMENTAL_INDICATOR
127 printf("\r%s\t- %s\n", name, msg);
133 /* Local Variables: */