mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1835: print document name does not support multi-byte
Problem: Print document name does not support multi-byte. Solution: Use StartDocW() if needed. (Yasuhiro Matsumoto, closes #2478)
This commit is contained in:
parent
518bc174ed
commit
2290b1f8aa
@ -1678,8 +1678,10 @@ init_fail_dlg:
|
||||
mch_print_begin(prt_settings_T *psettings)
|
||||
{
|
||||
int ret;
|
||||
static DOCINFO di;
|
||||
char szBuffer[300];
|
||||
#if defined(FEAT_MBYTE)
|
||||
WCHAR *wp = NULL;
|
||||
#endif
|
||||
|
||||
hDlgPrint = CreateDialog(GetModuleHandle(NULL), TEXT("PrintDlgBox"),
|
||||
prt_dlg.hwndOwner, PrintDlgProc);
|
||||
@ -1687,10 +1689,29 @@ mch_print_begin(prt_settings_T *psettings)
|
||||
wsprintf(szBuffer, _("Printing '%s'"), gettail(psettings->jobname));
|
||||
vimSetDlgItemText(hDlgPrint, IDC_PRINTTEXT1, (char_u *)szBuffer);
|
||||
|
||||
vim_memset(&di, 0, sizeof(DOCINFO));
|
||||
di.cbSize = sizeof(DOCINFO);
|
||||
di.lpszDocName = (LPCSTR)psettings->jobname;
|
||||
ret = StartDoc(prt_dlg.hDC, &di);
|
||||
#if defined(FEAT_MBYTE)
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
wp = enc_to_utf16(psettings->jobname, NULL);
|
||||
if (wp != NULL)
|
||||
{
|
||||
DOCINFOW di;
|
||||
|
||||
vim_memset(&di, 0, sizeof(di));
|
||||
di.cbSize = sizeof(di);
|
||||
di.lpszDocName = wp;
|
||||
ret = StartDocW(prt_dlg.hDC, &di);
|
||||
vim_free(wp);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
DOCINFO di;
|
||||
|
||||
vim_memset(&di, 0, sizeof(di));
|
||||
di.cbSize = sizeof(di);
|
||||
di.lpszDocName = (LPCSTR)psettings->jobname;
|
||||
ret = StartDoc(prt_dlg.hDC, &di);
|
||||
}
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
/* Give focus back to main window (when using MDI). */
|
||||
|
@ -761,6 +761,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1835,
|
||||
/**/
|
||||
1834,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user