ref: 6cc8b8ebb561b409879f165a54175b6321c4612d
parent: 4953423f7b6d412a5fca6ef5b4ee34b209cc6b64
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Nov 7 19:34:59 EST 2016
devcons: simplify putstrn0()
--- a/sys/src/9/port/devcons.c
+++ b/sys/src/9/port/devcons.c
@@ -114,10 +114,8 @@
{int m;
char *t;
+ int (*wq)(Queue*, void*, int);
- if(!islo())
- usewrite = 0;
-
/*
* how many different output devices do we need?
*/
@@ -132,12 +130,10 @@
* if there's a serial line being used as a console,
* put the message there.
*/
- if(kprintoq != nil && !qisclosed(kprintoq)){- if(usewrite)
- qwrite(kprintoq, str, n);
- else
- qiwrite(kprintoq, str, n);
- }else if(screenputs != nil)
+ wq = usewrite && islo() ? qwrite : qiwrite;
+ if(kprintoq != nil && !qisclosed(kprintoq))
+ (*wq)(kprintoq, str, n);
+ else if(screenputs != nil)
screenputs(str, n);
if(serialoq == nil){@@ -149,20 +145,12 @@
t = memchr(str, '\n', n);
if(t != nil) {m = t-str;
- if(usewrite){- qwrite(serialoq, str, m);
- qwrite(serialoq, "\r\n", 2);
- } else {- qiwrite(serialoq, str, m);
- qiwrite(serialoq, "\r\n", 2);
- }
+ (*wq)(serialoq, str, m);
+ (*wq)(serialoq, "\r\n", 2);
n -= m+1;
str = t+1;
} else {- if(usewrite)
- qwrite(serialoq, str, n);
- else
- qiwrite(serialoq, str, n);
+ (*wq)(serialoq, str, n);
break;
}
}
--
⑨