summaryrefslogtreecommitdiff
path: root/sys/src/9/port
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-11-08 00:34:59 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2016-11-08 00:34:59 +0100
commit32dfbc7c50873ea4167a7e5352e2fd29f6304d37 (patch)
treea251c1765e8957ed0e6d7f8e1faee8c0a7bcab8e /sys/src/9/port
parent48b49361d8830d535e6dd3e696d58f856b2cd95f (diff)
devcons: simplify putstrn0()
Diffstat (limited to 'sys/src/9/port')
-rw-r--r--sys/src/9/port/devcons.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/sys/src/9/port/devcons.c b/sys/src/9/port/devcons.c
index f254d85e7..76be5ec46 100644
--- a/sys/src/9/port/devcons.c
+++ b/sys/src/9/port/devcons.c
@@ -114,9 +114,7 @@ putstrn0(char *str, int n, int usewrite)
{
int m;
char *t;
-
- if(!islo())
- usewrite = 0;
+ int (*wq)(Queue*, void*, int);
/*
* how many different output devices do we need?
@@ -132,12 +130,10 @@ putstrn0(char *str, int n, int usewrite)
* 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 @@ putstrn0(char *str, int n, int usewrite)
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;
}
}