summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_console.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-10-16 14:08:28 +0000
committerCorinna Vinschen <corinna@vinschen.de>2003-10-16 14:08:28 +0000
commitabfc9c412cdb2c7d0d046c727730f44b1b8fc6ec (patch)
treeb0b52ca753f4e5e943402a2e907be8947fa0a585 /winsup/cygwin/fhandler_console.cc
parentb4d51d01c80d7392c73fcc93f5c5146e51ad7685 (diff)
downloadcygnal-abfc9c412cdb2c7d0d046c727730f44b1b8fc6ec.tar.gz
cygnal-abfc9c412cdb2c7d0d046c727730f44b1b8fc6ec.tar.bz2
cygnal-abfc9c412cdb2c7d0d046c727730f44b1b8fc6ec.zip
* dcrt0.cc: Remove local variable alternate_charset_active.
* fhandler.h: Add variable alternate_charset_active, functions str_to_con, con_to_str to dev_console structure. * fhandler_console.cc (con_to_str): Move function into dev_console class. (str_to_con): Ditto. (fhandler_console::read): Call con_to_str on dev_state. (fhandler_console::write_normal): Call str_to_con on dev_state. (fhandler_console::char_command): Change active_charset_active assignment to be on dev_state. * winsup.h: Remove global external variable alternate_charset_active.
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r--winsup/cygwin/fhandler_console.cc50
1 files changed, 25 insertions, 25 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 24c59c7d6..7386d9c1b 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -54,27 +54,6 @@ cp_convert (UINT destcp, char *dest, UINT srccp, const char *src, DWORD size)
return TRUE;
}
-/* The results of GetConsoleCP() and GetConsoleOutputCP() cannot be
- cached, because a program or the user can change these values at
- any time. */
-inline BOOL
-con_to_str (char *d, const char *s, DWORD sz)
-{
- return cp_convert (get_cp (), d, GetConsoleCP (), s, sz);
-}
-
-inline BOOL
-str_to_con (char *d, const char *s, DWORD sz)
-{
- if (alternate_charset_active)
- {
- /* no translation when alternate charset is active */
- memcpy(d, s, sz);
- return TRUE;
- }
- return cp_convert (GetConsoleOutputCP (), d, get_cp (), s, sz);
-}
-
/*
* Scroll the screen context.
* x1, y1 - ul corner
@@ -187,6 +166,27 @@ set_console_state_for_spawn ()
return 1;
}
+/* The results of GetConsoleCP() and GetConsoleOutputCP() cannot be
+ cached, because a program or the user can change these values at
+ any time. */
+inline BOOL
+dev_console::con_to_str (char *d, const char *s, DWORD sz)
+{
+ return cp_convert (get_cp (), d, GetConsoleCP (), s, sz);
+}
+
+inline BOOL
+dev_console::str_to_con (char *d, const char *s, DWORD sz)
+{
+ if (alternate_charset_active)
+ {
+ /* no translation when alternate charset is active */
+ memcpy(d, s, sz);
+ return TRUE;
+ }
+ return cp_convert (GetConsoleOutputCP (), d, get_cp (), s, sz);
+}
+
BOOL
fhandler_console::set_raw_win32_keyboard_mode (BOOL new_mode)
{
@@ -375,7 +375,7 @@ fhandler_console::read (void *pv, size_t& buflen)
/* Need this check since US code page seems to have a bug when
converting a CTRL-U. */
if ((unsigned char) ich > 0x7f)
- con_to_str (tmp + 1, tmp + 1, 1);
+ dev_state->con_to_str (tmp + 1, tmp + 1, 1);
/* Determine if the keystroke is modified by META. The tricky
part is to distinguish whether the right Alt key should be
recognized as Alt, or as AltGr. */
@@ -1118,10 +1118,10 @@ fhandler_console::char_command (char c)
dev_state->intensity = INTENSITY_DIM;
break;
case 10: /* end alternate charset */
- alternate_charset_active = FALSE;
+ dev_state->alternate_charset_active = FALSE;
break;
case 11: /* start alternate charset */
- alternate_charset_active = TRUE;
+ dev_state->alternate_charset_active = TRUE;
break;
case 24:
dev_state->underline = FALSE;
@@ -1434,7 +1434,7 @@ fhandler_console::write_normal (const unsigned char *src,
DWORD buf_len;
char buf[CONVERT_LIMIT];
done = buf_len = min (sizeof (buf), len);
- if (!str_to_con (buf, (const char *) src, buf_len))
+ if (!dev_state->str_to_con (buf, (const char *) src, buf_len))
{
debug_printf ("conversion error, handle %p",
get_output_handle ());