2008-02-06 Corinna Vinschen * fhandler.h (fhandler_console::trunc_buf): Add to use as cache for truncated multibyte characters on input. (fhandler_console::write_replacement_char): Declare new method. * fhandler_console.cc (CONVERT_LIMIT): Raise to 64K. (fhandler_console::fhandler_console): Initialize trunc_buf. (ERR): Define as independent value again. (fhandler_console::write_replacement_char): New method to print replacement chars. (fhandler_console::write_normal): Add handling for truncated multibyte sequences. Call next_char instead of pathetic CharNextExA function. Don't change src, rather just work with found later on. * miscfuncs.cc (is_cp_multibyte): Move here from strfuncs.cc. Don't call Windows function, restrict to well-known ANSI/OEM codepages and UTF-8. (next_char): Call CharNextExA only for doublebyte codepages. Implement for UTF-8 here. * strfuncs.cc (is_cp_multibyte): Move to miscfuncs.cc. * winsup.h (next_char): Declare. * include/limits.h (MB_LEN_MAX): Set to maximum value of MB_CUR_MAX as defined by newlib for now. 2008-02-05 Corinna Vinschen * autoload.cc (CharToOemA): Remove. (CharNextExA): Define. * environ.cc (codepage_init): Un-static. Set active_codepage to active codepage. Default to ansi regardless of buf pointer. * fhandler.h (dev_console::get_console_cp): New method. (dev_console::con_to_str): Change declaration according to new implementation. (dev_console::str_to_con): Ditto. * fhandler_console.cc (cp_convert): Remove. (dev_console::con_to_str): Redefine to take WCHAR as incoming console char. (dev_console::get_console_cp): Return correct codepage according to alternate_charset_active setting. (dev_console::str_to_con): Redefine to create WCHAR buffer for console output. (fhandler_console::read): Read console input as WCHARs. (base_chars): Fix typo in comment. (fhandler_console::char_command): Save and restore console output buffer using UNICODE functions. (fhandler_console::write_normal): Convert to write output in UNICODE. Use CharNextExA to recognize multibyte characters in input. Workaround problem with UTF-8 and MultiByteToWideChar. Simplify the loop for printing "normal" characters. * strfuncs.cc (active_codepage): New variable to store active codepage. (get_cp): Call codepage_init() if active_codepage is uninitialized. Just return active_codepage. (is_cp_multibyte): New function. * winsup.h (active_codepage): Declare. (codepage_init): Declare. (is_cp_multibyte): Declare. 2008-02-03 Brian Dessent * smallprint.cc (__small_vsprintf): Use HEAP_NOTHEAP for type. * strfuncs.cc (sys_wcstombs_alloc): Guard use of ccalloc to !__OUTSIDE_CYGWIN__ for use in cygserver. (sys_mbstowcs_alloc): Ditto. 2008-02-01 Corinna Vinschen * miscfuncs.cc (cygwin_wcsncasecmp): Never access more than n characters. (cygwin_strncasecmp): Ditto. Fix for strings longer than n. 2008-02-01 Corinna Vinschen * string.h: Re-enable inline strcasematch and strncasematch implementations and rename to ascii_strcasematch/ascii_strncasematch. * dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where applicable. * environ.cc: Ditto. * fhandler_process.cc: Ditto. * hookapi.cc: Ditto. * path.cc: Ditto. * spawn.cc: Ditto. * strace.cc: Ditto. * syscalls.cc: Ditto. * uinfo.cc: Ditto. * winf.cc: Ditto. 2008-01-31 Corinna Vinschen * dcrt0.cc (dll_crt0_1): Use GetCommandLineW and convert to current codepage. * environ.cc (set_file_api_mode): Always set file api to ANSI if not using the OEM codepage. (codepage_init): Allow "utf8" codepage. * fhandler_clipboard.cc (set_clipboard): Convert clipbuf to void and cast as needed. Always convert input to wide char and write CF_UNICODETEXT to clipboard. (fhandler_dev_clipboard::read): Read CF_UNICODETEXT from clipboard and convert to current codepage if CYGWIN_NATIVE format is not available. * fhandler_console.cc: Drop redundant undef. * smallprint.cc (__small_vsprintf): Convert PWCHAR and UNICODE_STRING to current codepage for printing. * strfuncs.cc: Use PWCHAR throughout. (get_cp): Return CP_UTF8 for utf8_cp codepage setting. (sys_wcstombs): Allow NULL target buffer. (sys_wcstombs_alloc): New function. (sys_mbstowcs_alloc): Ditto. * winsup.h (codepage_type): Add utf8_cp. (HEAP_NOTHEAP): Define. (sys_wcstombs_alloc): Declare. (sys_mbstowcs_alloc): Declare. 2008-01-31 Corinna Vinschen * cygheap.h (struct cwdstuff): Add dir member to store cwd handle. (cwdstuff::get_handle): New method. * path.cc (cwdstuff::set): When doit is true, always try to get directory handle. Fail if duplicating handle fails. Store handle in dir. Fix potential SEGV when setting drive_length. 2008-01-28 Corinna Vinschen * path.cc: Fix Samba version in comment. 2008-01-24 Corinna Vinschen * path.cc (fs_info::update): Fix old-style Samba test to support recent as well as upcoming Samba releases. 2008-01-22 Corinna Vinschen * ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define. * path.cc (struct smb_extended_info): Define. (fs_info::update): Request object id info to get Samba information. Set flags according to new implementation. * path.h (struct fs_info): Add samba_version to status_flags. Implement flags() and samba_version() using IMPLEMENT_STATUS_FLAG. 2008-01-21 Corinna Vinschen * fhandler_disk_file.cc (fhandler_disk_file::link): Open file with READ_CONTROL for Vista/Longhorn's sake. 2008-01-15 Corinna Vinschen * Makefile.in (install-libs): Overwrite newlib's libg.a with symlink to libcygwin.a. 2008-01-15 Corinna Vinschen * Makefile.in (DLL_OFILES): Remove memmem.o. * memmem.cc: Remove in favor of newlib implementation. 2008-01-07 Corinna Vinschen * fhandler.h: Update copyright. * include/limits.h: Ditto. 2008-01-06 Christopher Faylor * fhandler.h (fhandler_base::is_tty): Make bool. (fhandler_serial::is_tty): Ditto. (fhandler_termios::is_tty): Ditto. (fhandler_base::is_slow): Return bool value. (fhandler_socket::is_slow): Ditto. (fhandler_serial::is_slow): Ditto. (fhandler_console::is_slow): Ditto. (fhandler_tty_common::is_slow): Ditto. (fhandler_tty_master::is_slow): Ditto. (fhandler_dev_null::is_slow): Ditto. 2008-01-06 Christopher Faylor * include/limits.h (TTY_NAME_MAX): Increase size to same as linux to allow for (at least) null terminating byte for "/dev/console". 2008-01-01 Christopher Faylor * tty.cc: Update copyright. * pipe.cc: Ditto. 2008-01-01 Christopher Faylor * newsym: First stab at understanding data as well as functions. * pipe.cc (fhandler_pipe::init): Move more intelligence here. (fhandler_pipe::create): Simplify based on above change. * tty.cc (tty_list::allocate): Remove non-NT code.