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 static long reading_size;
13 /* ------------------------------------------------------------------------ */
15 encode_lzhuf(infp, outfp, size, original_size_var, packed_size_var,
20 long *original_size_var;
21 long *packed_size_var;
25 static int method = -1;
29 method = compress_method;
31 method = encode_alloc(method);
34 interface.method = method;
36 if (interface.method > 0) {
37 interface.infile = infp;
38 interface.outfile = outfp;
39 interface.original = size;
40 start_indicator(name, size, "Freezing", 1 << dicbit);
41 crc = encode(&interface);
42 *packed_size_var = interface.packed;
43 *original_size_var = interface.original;
45 copyfile(infp, outfp, size, 0, &crc);
46 *packed_size_var = *original_size_var = size;
48 memcpy(hdr_method, "-lh -", 5);
49 hdr_method[3] = interface.method + '0';
51 finish_indicator2(name, "Frozen",
52 (int) ((*packed_size_var * 100L) / *original_size_var));
55 /* ------------------------------------------------------------------------ */
57 start_indicator(name, size, msg, def_indicator_threshold)
61 long def_indicator_threshold;
63 #ifdef NEED_INCREMENTAL_INDICATOR
71 #ifdef NEED_INCREMENTAL_INDICATOR
74 m = MAX_INDICATOR_COUNT - strlen(name);
75 if (m < 1) /* Bug Fixed by N.Watazaki */
77 printf("\r%s\t- %s : ", name, msg);
79 ((size + (m * def_indicator_threshold - 1)) /
80 (m * def_indicator_threshold) *
81 def_indicator_threshold);
82 if (indicator_threshold)
83 i = ((size + (indicator_threshold - 1)) / indicator_threshold);
89 printf("\r%s\t- %s : ", name, msg);
92 printf("\r%s :", name);
96 printf("%s\t- ", name);
101 /* ------------------------------------------------------------------------ */
102 #ifdef NEED_INCREMENTAL_INDICATOR
107 reading_size += count;
108 if (!quiet && indicator_threshold) {
109 while (reading_size > indicator_count) {
112 indicator_count += indicator_threshold;
118 /* ------------------------------------------------------------------------ */
120 finish_indicator2(name, msg, pcnt)
129 pcnt = 100; /* (^_^) */
130 #ifdef NEED_INCREMENTAL_INDICATOR
131 printf("\r%s\t- %s(%d%%)\n", name, msg, pcnt);
138 /* ------------------------------------------------------------------------ */
140 finish_indicator(name, msg)
147 #ifdef NEED_INCREMENTAL_INDICATOR
148 printf("\r%s\t- %s\n", name, msg);
154 /* Local Variables: */
157 /* vi: set tabstop=4: */