8000 Fix output-delay and input-mode line combination bug · tio/tio@0dddece · GitHub
[go: up one dir, main page]

Skip to content

Commit 0dddece

Browse files
committed
Fix output-delay and input-mode line combination bug
1 parent 037de9d commit 0dddece

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/tty.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,22 +257,23 @@ ssize_t tty_write(int fd, const void *buffer, size_t count)
257257
{
258258
ssize_t retval = 0, bytes_written = 0;
259259
size_t i;
260+
unsigned char *cbuf = (unsigned char *)buffer;
260261

261262
if (option.map_o_ltu)
262263
{
263264
// Convert lower case to upper case
264-
for (i = 0; i<count; i++)
265+
for (i = 0; i < count; i++)
265266
{
266-
*((unsigned char*)buffer+i) = toupper(*((unsigned char*)buffer+i));
267+
cbuf[i] = toupper(cbuf[i]);
267268
}
268269
}
269270

270271
if (option.output_delay || option.output_line_delay)
271272
{
272273
// Write byte by byte with output delay
273-
for (i=0; i<count; i++)
274+
for (i = 0; i < count; i++)
274275
{
275-
retval = write(fd, buffer, 1);
276+
retval = write(fd, &cbuf[i], 1);
276277
if (retval < 0)
277278
{
278279
// Error
@@ -284,7 +285,7 @@ ssize_t tty_write(int fd, const void *buffer, size_t count)
284285
fsync(fd);
285286
tcdrain(fd);
286287

287-
if (option.output_line_delay && *(unsigned char*)buffer == '\n')
288+
if (option.output_line_delay && cbuf[i] == '\n')
288289
{
289290
delay(option.output_line_delay);
290291
}

0 commit comments

Comments
 (0)
0