2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: ConsoleOutput.C /main/1 1996/07/29 16:48:10 cde-hp $ */
24 // Copyright (c) 1996 James Clark
25 // See the file COPYING for copying permission.
28 #pragma implementation
32 #include "ConsoleOutput.h"
40 namespace SP_NAMESPACE {
45 class ConsoleOutputCharStream : public OutputCharStream {
47 ConsoleOutputCharStream(HANDLE h);
54 OutputCharStream *ConsoleOutput::makeOutputCharStream(int fd)
56 HANDLE h = (HANDLE)_get_osfhandle(fd);
58 if (GetConsoleMode(h, &flags))
59 return new ConsoleOutputCharStream(h);
64 ConsoleOutputCharStream::ConsoleOutputCharStream(HANDLE h)
69 void ConsoleOutputCharStream::flush()
73 void ConsoleOutputCharStream::flushBuf(Char c)
76 unsigned short ch = c;
77 WriteConsoleW(h_, &ch, 1, &nWritten, 0);
80 #else /* not SP_WIDE_SYSTEM */
82 OutputCharStream *ConsoleOutput::makeOutputCharStream(int)
87 #endif /* not SP_WIDE_SYSTEM */