1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00
putty-source/windows
Simon Tatham f4519b6533 Add UTF-8 support to the new Windows ConsoleIO system.
This allows you to set a flag in conio_setup() which causes the
returned ConsoleIO object to interpret all its output as UTF-8, by
translating it to UTF-16 and using WriteConsoleW to write it in
Unicode. Similarly, input is read using ReadConsoleW and decoded from
UTF-16 to UTF-8.

This flag is set to false in most places, to avoid making sudden
breaking changes. But when we're about to present a prompts_t to the
user, it's set from the new 'utf8' flag in that prompt, which in turn
is set by the userauth layer in any case where the prompts are going
to the server.

The idea is that this should be the start of a fix for the long-
standing character-set handling bug that strings transmitted during
SSH userauth (usernames, passwords, k-i prompts and responses) are all
supposed to be in UTF-8, but we've always encoded them in whatever our
input system happens to be using, and not done any tidying up on them.
We get occasional complaints about this from users whose passwords
contain characters that are encoded differently between UTF-8 and
their local encoding, but I've never got round to fixing it because
it's a large piece of engineering.

Indeed, this isn't nearly the end of it. The next step is to add UTF-8
support to all the _other_ ways of presenting a prompts_t, as best we
can.

Like the previous change to console handling, it seems very likely
that this will break someone's workflow. So there's a fallback
command-line option '-legacy-charset-handling' to revert to PuTTY's
previous behaviour.
2022-11-26 10:49:03 +00:00
..
utils split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
agent-client.c Formatting: standardise on "func(\n", not "func\n(". 2022-08-03 20:48:46 +01:00
cliloop.c Reorganise Windows HANDLE management. 2021-05-24 15:27:38 +01:00
CMakeLists.txt Handle the -batch option centrally in cmdline.c. 2022-11-26 10:31:18 +00:00
config.c Macro wrapper on ctrl_radiobuttons to fill in the NULL. 2022-06-01 11:14:21 +01:00
conpty.c pterm.exe: load the ConPTY API at run time. 2022-05-21 09:53:03 +01:00
console.c Add UTF-8 support to the new Windows ConsoleIO system. 2022-11-26 10:49:03 +00:00
controls.c Rewrite some manual char-buffer-handling code. 2022-09-14 16:10:29 +01:00
cryptoapi.h Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
dialog.c Rewrite some manual char-buffer-handling code. 2022-09-14 16:10:29 +01:00
gss.c Rewrite some manual char-buffer-handling code. 2022-09-14 16:10:29 +01:00
handle-io.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
handle-socket.c New facility, platform_start_subprocess. 2022-09-01 20:43:23 +01:00
handle-wait.c Fix an unused variable. 2021-05-27 09:48:32 +01:00
help.c windows/storage.c: factor out low-level Registry access. 2022-04-24 08:38:27 +01:00
help.h New feature: k-i authentication helper plugins. 2022-09-01 20:43:23 +01:00
help.rc2 Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
installer.wxs Windows installer: remove explicit InstallScope setting. 2022-10-12 20:01:17 +01:00
jump-list.c Formatting: miscellaneous. 2022-08-03 20:48:46 +01:00
local-proxy.c New facility, platform_start_subprocess. 2022-09-01 20:43:23 +01:00
make_install_images.sh Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
msifixup.py Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
named-pipe-client.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
named-pipe-server.c Rename 'ret' variables passed from allocation to return. 2022-09-14 16:10:29 +01:00
network.c Rename 'ret' variables passed from allocation to return. 2022-09-14 16:10:29 +01:00
no-jump-list.c Add some missing #includes. 2022-09-03 11:59:12 +01:00
nohelp.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
noise.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pageant-rc.h winpgnt: say 'click to focus' in async passphrase prompt. 2021-04-22 20:00:46 +01:00
pageant.c split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
pageant.ico
pageant.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pageant.rc Certificate-aware handling of key fingerprints. 2022-08-05 18:08:59 +01:00
pageants.ico
platform.h split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
plink.c Handle the -batch option centrally in cmdline.c. 2022-11-26 10:31:18 +00:00
plink.rc
printing.c Rename 'ret' variables passed from allocation to return. 2022-09-14 16:10:29 +01:00
pscp.ico
pscp.rc
psftp.rc
psocks.c Rename most of the platform source files. 2021-04-26 18:00:01 +01:00
pterm.c split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
pterm.ico Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
pterm.rc New application: a Windows version of 'pterm'! 2021-05-08 17:51:27 +01:00
ptermcfg.ico Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
putty-common.rc2 Windows host-key warning: reinstate shortcut. 2022-10-21 20:41:36 +01:00
putty-rc.h Centralise most details of host-key prompting. 2022-07-07 18:05:32 +01:00
putty.c split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
putty.ico
putty.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
putty.rc Move icon declarations out of putty-common.rc2. 2021-05-08 17:33:25 +01:00
puttycfg.ico
puttygen-rc.h PuTTYgen: option to control Argon2 flavour. 2021-02-23 18:26:50 +00:00
puttygen.c split_into_argv: add special case for program name. 2022-11-26 10:32:36 +00:00
puttygen.ico
puttygen.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
puttygen.rc Windows PuTTYgen: also display certificate info. 2022-07-30 17:16:55 +01:00
puttyins.ico
puttytel.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
puttytel.rc Move icon declarations out of putty-common.rc2. 2021-05-08 17:33:25 +01:00
rcstuff.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
README-msi.txt Remove note about .CHM on network drives. 2019-03-18 21:53:45 +00:00
security-api.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
select-cli.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
select-gui.c Handle WM_NETEVENT in Windows Pageant. 2022-02-04 19:32:47 +00:00
serial.c Add memsets after allocation of all Backend implementors. 2021-10-30 17:28:28 +01:00
sftp.c Rename 'ret' variables passed from allocation to return. 2022-09-14 16:10:29 +01:00
sharing.c Windows: factor out mutex lock/unlock from sharing.c. 2022-01-03 12:12:05 +00:00
sizetip.c Formatting change to braces around one case of a switch. 2020-02-16 11:26:21 +00:00
storage.c Rename 'ret' variables passed from allocation to return. 2022-09-14 16:10:29 +01:00
test_screenshot.c Standalone screenshot utility. 2022-04-02 17:26:24 +01:00
unicode.c Make decode_utf8() read from a BinarySource. 2022-11-09 19:21:02 +00:00
version.rc2 FIXME about Windows resource CHMfulness hint. 2019-03-18 22:02:13 +00:00
website.url Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
win-gui-seat.h windows/window.c: move (most) static vars into WinGuiSeat. 2022-09-13 11:47:39 +01:00
window.c Support horizontal scroll events in mouse tracking. 2022-11-26 10:29:27 +00:00
x11.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00