View | Details | Raw Unified | Return to bug 901 | Differences between
and this patch

Collapse All | Expand All

(-)openssh-3.8.1p1.old/progressmeter.c (-4 / +33 lines)
Lines 106-117 Link Here
106
	time_t now;
106
	time_t now;
107
	off_t transferred;
107
	off_t transferred;
108
	double elapsed;
108
	double elapsed;
109
	int percent;
109
	int gauge_pos, percent;
110
	off_t bytes_left;
110
	off_t bytes_left;
111
	int cur_speed;
111
	int cur_speed;
112
	int hours, minutes, seconds;
112
	int hours, minutes, seconds;
113
	int i, len;
113
	int i, len;
114
	int file_len;
114
	int file_len, gauge_len;
115
115
116
	transferred = *counter - cur_pos;
116
	transferred = *counter - cur_pos;
117
	cur_pos = *counter;
117
	cur_pos = *counter;
Lines 140-148 Link Here
140
	} else
140
	} else
141
		bytes_per_second = cur_speed;
141
		bytes_per_second = cur_speed;
142
142
143
	/* setup column widths; winsize = window size + 1! */
144
	file_len = strlen(file);
145
	if (win_size >= 69 && bytes_left > 0) {
146
		if (file_len < 20)
147
			file_len = 20;
148
		gauge_len = win_size - 39 - file_len;
149
		if (gauge_len < 10)
150
			gauge_len = 10;
151
		gauge_len = (gauge_len / 10) * 10;
152
		file_len = win_size - 38 - gauge_len;
153
	} else {
154
		file_len = win_size - 35;
155
		gauge_len = 0;
156
	}
157
143
	/* filename */
158
	/* filename */
144
	buf[0] = '\0';
145
	file_len = win_size - 35;
146
	if (file_len > 0) {
159
	if (file_len > 0) {
147
		len = snprintf(buf, file_len + 1, "\r%s", file);
160
		len = snprintf(buf, file_len + 1, "\r%s", file);
148
		if (len < 0)
161
		if (len < 0)
Lines 150-155 Link Here
150
		for (i = len;  i < file_len; i++ )
163
		for (i = len;  i < file_len; i++ )
151
			buf[i] = ' ';
164
			buf[i] = ' ';
152
		buf[file_len] = '\0';
165
		buf[file_len] = '\0';
166
	} else {
167
		strlcpy(buf, "\r", win_size);
168
	}
169
170
	/* gauge */
171
	if (gauge_len > 0) {
172
		strlcat(buf, " [", win_size);
173
		len = strlen(buf);
174
		gauge_pos = ((float)cur_pos / end_pos) * gauge_len;
175
		for (i = 0; i < gauge_len; ++i)
176
			buf[i + len] =
177
			    i < gauge_pos ? '=' :
178
			    i > gauge_pos ? ' ' :
179
			    '>';
180
		buf[len + gauge_len] = '\0';
181
		strlcat(buf, "]", win_size);
153
	}
182
	}
154
183
155
	/* percent of transfer done */
184
	/* percent of transfer done */

Return to bug 901