mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
updated for version 7.4.471
Problem: MS-Windows: When printer name contains multi-byte, the name is displayed as ???. Solution: Convert the printer name from the active codepage to 'encoding'. (Yasuhiro Matsumoto)
This commit is contained in:
@@ -1635,11 +1635,33 @@ mch_print_init(prt_settings_T *psettings, char_u *jobname, int forceit)
|
|||||||
char_u *printer_name = (char_u *)devname + devname->wDeviceOffset;
|
char_u *printer_name = (char_u *)devname + devname->wDeviceOffset;
|
||||||
char_u *port_name = (char_u *)devname +devname->wOutputOffset;
|
char_u *port_name = (char_u *)devname +devname->wOutputOffset;
|
||||||
char_u *text = _("to %s on %s");
|
char_u *text = _("to %s on %s");
|
||||||
|
#ifdef FEAT_MBYTE
|
||||||
|
char_u *printer_name_orig = printer_name;
|
||||||
|
char_u *port_name_orig = port_name;
|
||||||
|
|
||||||
|
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||||
|
{
|
||||||
|
char_u *to_free = NULL;
|
||||||
|
int maxlen;
|
||||||
|
|
||||||
|
acp_to_enc(printer_name, STRLEN(printer_name), &to_free, &maxlen);
|
||||||
|
if (to_free != NULL)
|
||||||
|
printer_name = to_free;
|
||||||
|
acp_to_enc(port_name, STRLEN(port_name), &to_free, &maxlen);
|
||||||
|
if (to_free != NULL)
|
||||||
|
port_name = to_free;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
prt_name = alloc((unsigned)(STRLEN(printer_name) + STRLEN(port_name)
|
prt_name = alloc((unsigned)(STRLEN(printer_name) + STRLEN(port_name)
|
||||||
+ STRLEN(text)));
|
+ STRLEN(text)));
|
||||||
if (prt_name != NULL)
|
if (prt_name != NULL)
|
||||||
wsprintf(prt_name, text, printer_name, port_name);
|
wsprintf(prt_name, text, printer_name, port_name);
|
||||||
|
#ifdef FEAT_MBYTE
|
||||||
|
if (printer_name != printer_name_orig)
|
||||||
|
vim_free(printer_name);
|
||||||
|
if (port_name != port_name_orig)
|
||||||
|
vim_free(port_name);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
GlobalUnlock(prt_dlg.hDevNames);
|
GlobalUnlock(prt_dlg.hDevNames);
|
||||||
|
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
471,
|
||||||
/**/
|
/**/
|
||||||
470,
|
470,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user