Drop sys_cp_wcstombs and save two arguments per call

* strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into
        sys_wcstombs.
        * wchar.h (sys_cp_wcstombs): Drop declaration.
        * fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2015-12-18 12:42:40 +01:00
parent 7d5b16ab9a
commit ac39f7b4e8
4 changed files with 12 additions and 14 deletions

View File

@ -1,3 +1,10 @@
2015-12-18 Corinna Vinschen <corinna@vinschen.de>
* strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into
sys_wcstombs.
* wchar.h (sys_cp_wcstombs): Drop declaration.
* fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs.
2015-12-16 Corinna Vinschen <corinna@vinschen.de> 2015-12-16 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid. * grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid.

View File

@ -218,8 +218,7 @@ tty_list::get_cttyp ()
inline DWORD inline DWORD
dev_console::con_to_str (char *d, int dlen, WCHAR w) dev_console::con_to_str (char *d, int dlen, WCHAR w)
{ {
return sys_cp_wcstombs (cygheap->locale.wctomb, cygheap->locale.charset, return sys_wcstombs (d, dlen, &w, 1);
d, dlen, &w, 1);
} }
inline UINT inline UINT

View File

@ -59,7 +59,7 @@ static const WCHAR tfx_chars[] = {
0xf000 | '|', '}', '~', 127 0xf000 | '|', '}', '~', 127
}; };
/* This is the table for the reverse functionality in sys_cp_wcstombs. /* This is the table for the reverse functionality in sys_wcstombs.
It differs deliberately in two code places (space and dot) to allow It differs deliberately in two code places (space and dot) to allow
converting back space and dot on filesystems only supporting DOS converting back space and dot on filesystems only supporting DOS
filenames. */ filenames. */
@ -410,8 +410,7 @@ __big5_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n,
function should be raised. function should be raised.
*/ */
size_t __reg3 size_t __reg3
sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len, sys_wcstombs (char *dst, size_t len, const wchar_t *src, size_t nwc)
const wchar_t *src, size_t nwc)
{ {
char buf[10]; char buf[10];
char *ptr = dst; char *ptr = dst;
@ -419,6 +418,8 @@ sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len,
size_t n = 0; size_t n = 0;
mbstate_t ps; mbstate_t ps;
save_errno save; save_errno save;
wctomb_p f_wctomb = cygheap->locale.wctomb;
const char *charset = cygheap->locale.charset;
memset (&ps, 0, sizeof ps); memset (&ps, 0, sizeof ps);
if (dst == NULL) if (dst == NULL)
@ -495,13 +496,6 @@ sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len,
return n; return n;
} }
size_t __reg3
sys_wcstombs (char *dst, size_t len, const wchar_t * src, size_t nwc)
{
return sys_cp_wcstombs (cygheap->locale.wctomb, cygheap->locale.charset,
dst, len, src, nwc);
}
/* Allocate a buffer big enough for the string, always including the /* Allocate a buffer big enough for the string, always including the
terminating '\0'. The buffer pointer is returned in *dst_p, the return terminating '\0'. The buffer pointer is returned in *dst_p, the return
value is the number of bytes written to the buffer, as usual. value is the number of bytes written to the buffer, as usual.

View File

@ -50,8 +50,6 @@ extern char *__locale_charset ();
#ifdef __INSIDE_CYGWIN__ #ifdef __INSIDE_CYGWIN__
#ifdef __cplusplus #ifdef __cplusplus
size_t __reg3 sys_cp_wcstombs (wctomb_p, const char *, char *, size_t,
const wchar_t *, size_t = (size_t) -1);
size_t __reg3 sys_wcstombs (char *dst, size_t len, const wchar_t * src, size_t __reg3 sys_wcstombs (char *dst, size_t len, const wchar_t * src,
size_t nwc = (size_t) -1); size_t nwc = (size_t) -1);
size_t __reg3 sys_wcstombs_alloc (char **, int, const wchar_t *, size_t __reg3 sys_wcstombs_alloc (char **, int, const wchar_t *,