View | Details | Raw Unified | Return to bug 1025
Collapse All | Expand All

(-)ttymodes.c.orig (-2 / +28 lines)
Lines 241-246 Link Here
241
}
241
}
242
242
243
/*
243
/*
244
 * Encode a special character into SSH line format.
245
 */
246
static u_int
247
special_char_encode(cc_t c)
248
{
249
#ifdef _POSIX_VDISABLE
250
	if (c == _POSIX_VDISABLE)
251
		return 255;
252
#endif /* _POSIX_VDISABLE */
253
	return c;
254
}
255
256
/*
257
 * Decode a special character from SSH line format.
258
 */
259
static cc_t
260
special_char_decode(u_int c)
261
{
262
#ifdef _POSIX_VDISABLE
263
	if (c == 255)
264
		return _POSIX_VDISABLE;
265
#endif /* _POSIX_VDISABLE */
266
	return c;
267
}
268
269
/*
244
 * Encodes terminal modes for the terminal referenced by fd
270
 * Encodes terminal modes for the terminal referenced by fd
245
 * or tiop in a portable manner, and appends the modes to a packet
271
 * or tiop in a portable manner, and appends the modes to a packet
246
 * being constructed.
272
 * being constructed.
Lines 287-293 Link Here
287
#define TTYCHAR(NAME, OP) \
313
#define TTYCHAR(NAME, OP) \
288
	debug3("tty_make_modes: %d %d", OP, tio.c_cc[NAME]); \
314
	debug3("tty_make_modes: %d %d", OP, tio.c_cc[NAME]); \
289
	buffer_put_char(&buf, OP); \
315
	buffer_put_char(&buf, OP); \
290
	put_arg(&buf, tio.c_cc[NAME]);
316
	put_arg(&buf, special_char_encode(tio.c_cc[NAME]));
291
317
292
#define TTYMODE(NAME, FIELD, OP) \
318
#define TTYMODE(NAME, FIELD, OP) \
293
	debug3("tty_make_modes: %d %d", OP, ((tio.FIELD & NAME) != 0)); \
319
	debug3("tty_make_modes: %d %d", OP, ((tio.FIELD & NAME) != 0)); \
Lines 375-381 Link Here
375
#define TTYCHAR(NAME, OP) \
401
#define TTYCHAR(NAME, OP) \
376
	case OP: \
402
	case OP: \
377
	  n_bytes += arg_size; \
403
	  n_bytes += arg_size; \
378
	  tio.c_cc[NAME] = get_arg(); \
404
	  tio.c_cc[NAME] = special_char_decode(get_arg()); \
379
	  debug3("tty_parse_modes: %d %d", OP, tio.c_cc[NAME]); \
405
	  debug3("tty_parse_modes: %d %d", OP, tio.c_cc[NAME]); \
380
	  break;
406
	  break;
381
#define TTYMODE(NAME, FIELD, OP) \
407
#define TTYMODE(NAME, FIELD, OP) \

Return to bug 1025