diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-11-08 00:34:59 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-11-08 00:34:59 +0100 |
commit | 32dfbc7c50873ea4167a7e5352e2fd29f6304d37 (patch) | |
tree | a251c1765e8957ed0e6d7f8e1faee8c0a7bcab8e /sys/src/9/port | |
parent | 48b49361d8830d535e6dd3e696d58f856b2cd95f (diff) |
devcons: simplify putstrn0()
Diffstat (limited to 'sys/src/9/port')
-rw-r--r-- | sys/src/9/port/devcons.c | 28 |
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; } } |