Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
263 commits
Select commit Hold shift + click to select a range
8f77480
WinGuiSeat refactoring: fix a missing context parameter.
sgtatham Sep 16, 2022
3254d76
Merge GSSAPI and cmake fixes from 'pre-0.78'.
sgtatham Sep 18, 2022
18e3bcf
Merge further FreeBSD build fixes from 'pre-0.78'.
sgtatham Sep 19, 2022
bbdf504
Merge non-GTK build fix from 'pre-0.78'.
sgtatham Sep 19, 2022
85014f8
Merge miscellaneous fixes from 'pre-0.78'.
sgtatham Oct 12, 2022
1a1e2f2
Merge man page install fix from 'pre-0.78'.
jtn20 Oct 19, 2022
b003ab8
Merge PuTTYgen cosmetic/doc fixes from 'pre-0.78'.
jtn20 Oct 20, 2022
ca58e96
Merge public-key docs fixes from 'pre-0.78'.
jtn20 Oct 21, 2022
61b3cde
Merge cosmetic and docs fixes from 'pre-0.78'.
jtn20 Oct 21, 2022
7528593
Merge host-key warning tweaks from 'pre-0.78'.
jtn20 Oct 21, 2022
d9584eb
Merge docs typos fix from 'pre-0.78'.
jtn20 Oct 21, 2022
2622e52
Merge cert expr tweak from 'pre-0.78'.
jtn20 Oct 22, 2022
25d0a85
Merge build fix and checklist update from 'pre-0.78'.
sgtatham Oct 22, 2022
afebe80
README: remove mention of doc/Makefile.
jtn20 Oct 22, 2022
f229aab
Rewrap a paragraph in README.
jtn20 Oct 23, 2022
b2dbde1
Merge comment fix from 'pre-0.78'.
jtn20 Oct 23, 2022
8b751c7
Merge -pwfile semantics fix from 'pre-0.78'.
sgtatham Oct 23, 2022
9701a3d
Merge osc_strlen fix from 'pre-0.78'.
sgtatham Oct 23, 2022
63edea0
Update version number for 0.78 release.
sgtatham Oct 23, 2022
538c8fd
authplugin-example.py: Mention documentation.
jtn20 Oct 24, 2022
329a4cd
authplugin-example.py: Flush stderr.
jtn20 Oct 24, 2022
fe2acf9
Merge tag '0.78'
sgtatham Oct 29, 2022
2916f92
Merge tag '0.78', for real this time.
sgtatham Oct 29, 2022
d39bcae
Some checklist updates for the Windows Store.
sgtatham Oct 29, 2022
f9a8213
Docs: add a 'pdf' cmake target.
jtn20 Oct 29, 2022
79b1cb2
testcrypt: remove some pointless macros.
sgtatham Oct 30, 2022
ebceb8b
Windows: fix terminal hang with resize forbidden.
jtn20 Nov 2, 2022
f78a1a9
Docs: fix typo in SUPDUP section.
jtn20 Nov 2, 2022
68db3d1
Use correct date in cert check error.
jtn20 Nov 5, 2022
9209c7e
Tweak another certified-host-key-prompt.
jtn20 Nov 6, 2022
c8ba48b
PuTTY WinMain: comment when config box pops up.
jtn20 Nov 6, 2022
991e22c
Implement a BinarySink writing to a fixed-size buffer.
sgtatham Nov 9, 2022
834b58e
Make encode_utf8() output to a BinarySink.
sgtatham Nov 9, 2022
d89f2bf
Fix typo in decode_utf8 tests.
sgtatham Nov 9, 2022
69e217d
Make decode_utf8() read from a BinarySource.
sgtatham Nov 9, 2022
b72c9ab
New script to generate Unicode data tables.
sgtatham Nov 8, 2022
430af47
Polish the output of read_ucd.py.
sgtatham Nov 8, 2022
4bb3723
Commit read_ucd.py's output and switch over to it.
sgtatham Nov 11, 2022
4cb429e
Update to Unicode 15.
sgtatham Nov 9, 2022
b35d23f
Implement Unicode normalisation.
sgtatham Nov 9, 2022
d3e186e
Function to check a UTF-8 string for unknown characters.
sgtatham Nov 9, 2022
854d78e
Fix build failure on Visual Studio.
sgtatham Nov 11, 2022
3cfbd3d
Support xterm any-event mouse tracking
Dec 20, 2019
fec6719
Fix duplicate call to term_resize_request_completed().
sgtatham Nov 14, 2022
5f2eff2
Build option to disable scrollback compression.
sgtatham Nov 20, 2022
819efc3
Support horizontal scroll events in mouse tracking.
sgtatham Nov 22, 2022
1625fd8
Handle the -batch option centrally in cmdline.c.
sgtatham Nov 24, 2022
dbd0bde
New utility function burnwcs().
sgtatham Nov 24, 2022
f91c312
split_into_argv: add special case for program name.
sgtatham Nov 24, 2022
80aed96
New system for reading prompts from the console.
sgtatham Nov 24, 2022
f4519b6
Add UTF-8 support to the new Windows ConsoleIO system.
sgtatham Nov 25, 2022
c14f0e0
Stop selectable GTK message boxes clobbering PRIMARY.
sgtatham Nov 27, 2022
95b9268
GTK: fix crash changing font size when terminal maximised.
sgtatham Dec 4, 2022
5ade8c0
ldisc: fix unwanted double-action of ^U.
sgtatham Dec 21, 2022
9f2e1e6
Prevent sending double-EOF in raw backend.
sgtatham Dec 21, 2022
6fcc7ed
Formatting: fix a few mis-spaced assignments.
sgtatham Dec 28, 2022
d509a2d
Formatting: normalise to put a space after condition keywords.
sgtatham Dec 28, 2022
add3f89
Formatting: normalise to { on same line.
sgtatham Dec 28, 2022
752f502
Fix typo in 'plink -share' documentation.
sgtatham Dec 30, 2022
37f67bc
Another minor docs typo.
sgtatham Dec 30, 2022
943e54d
FAQ about private key configuration control move.
jtn20 Jan 7, 2023
8901431
It's a new year.
jtn20 Jan 7, 2023
e289265
Fix build failure on systems without fstatat.
sgtatham Jan 18, 2023
343f64c
'private key' -> 'SSH private key' in new FAQ.
jtn20 Jan 22, 2023
658ec04
Move Windows definition of CP_UTF8 into windows subdir.
sgtatham Jan 28, 2023
9d308b3
Reinstate putty.chm in Windows binary zipfiles.
sgtatham Feb 4, 2023
9e01de7
decode_utf8: add an enumeration of failure reasons.
sgtatham Feb 17, 2023
4341ba6
Add platform-independent fontspec_new_default() function.
sgtatham Feb 18, 2023
edce3fb
Add platform-independent Unicode setup function.
sgtatham Feb 18, 2023
334d4f3
Add some extra stub modules.
sgtatham Feb 18, 2023
23c408d
Move the logeventf wrappers into their own source file.
sgtatham Feb 18, 2023
b5645f7
Document our long-standing workarounds policy.
sgtatham Feb 28, 2023
fd43ff6
Move SessionSpecial definitions into their own header.
sgtatham Mar 4, 2023
7a48837
Add a test rig for ldisc's local line editing.
sgtatham Mar 4, 2023
1a7e4ec
New centralised version of local line editing.
sgtatham Mar 4, 2023
f9943e2
term_get_userpass_input: support the prompts->utf8 flag.
sgtatham Mar 4, 2023
1b8fb1d
terminal: remove the 'screen' parameter from lineptr().
sgtatham Mar 4, 2023
c890449
Expose lineptr and unlineptr outside terminal.c.
sgtatham Mar 4, 2023
57536cb
Initial work on a terminal test program.
sgtatham Mar 4, 2023
21a31c1
Add some tests of line wrapping.
sgtatham Mar 5, 2023
9ba742a
Make backspace take account of LATTR_WRAPPED2.
sgtatham Mar 5, 2023
069f7c8
Fix behaviour of backspace in a 1-column terminal.
sgtatham Mar 5, 2023
ed5bf9b
Fix printing double-width char in rightmost column without wrap.
sgtatham Mar 5, 2023
259de04
Run test_lineedit and test_terminal in the main build.
sgtatham Mar 5, 2023
a76109c
Add some missing casts in ctype functions.
sgtatham Mar 5, 2023
adb0fd1
term_init(): initialise term->ldisc.
sgtatham Mar 5, 2023
c8426a7
Build test_terminal for Windows too.
sgtatham Mar 5, 2023
74aa3cb
term_init(): actually, memset the whole structure to 0.
sgtatham Mar 5, 2023
a890ffb
Formatting: fix an ugly static array in terminal.c.
sgtatham Mar 7, 2023
9adfa79
split_into_argv: stop using isspace().
sgtatham Mar 15, 2023
acaa326
Start a windows/test subdirectory.
sgtatham Mar 15, 2023
10e1ac7
Add a Unicode version of split_into_argv().
sgtatham Mar 15, 2023
2357dee
Fix allocations at the start of split_into_argv.
sgtatham Mar 15, 2023
cedeb75
Windows installer: restore InstallScope setting.
jtn20 Mar 17, 2023
dff4bd4
Improve error reporting from x11_verify().
sgtatham Apr 1, 2023
8e7e3c5
Improve time-safety of XDM-AUTHORIZATION-1 validation.
sgtatham Apr 1, 2023
775d969
Fix potential corruption when writing help file.
sgtatham Apr 7, 2023
6a27ae7
Remove a completely unused loop in RTF pasting.
sgtatham Apr 7, 2023
d67c13e
Fix potential null-pointer dereference in ssh_reconfig.
sgtatham Apr 10, 2023
b77e985
Add support for HMAC-SHA512.
sgtatham Apr 21, 2023
289d123
Put HMAC-SHA-512 below HMAC-SHA-256 in priority.
sgtatham Apr 21, 2023
62b69a4
Fix factor-of-1000 error in Unix bell overload config.
sgtatham Apr 26, 2023
fe63b5d
Uppity: add a stunt mode --close-after-banner.
sgtatham Apr 29, 2023
d6e6919
Packet protocol layers: new 'final_output' method.
sgtatham Apr 29, 2023
99bbbd8
userauth: refactor banner handling.
sgtatham Apr 29, 2023
e8becb4
userauth: ensure banner output is printed when connection closes.
sgtatham Apr 29, 2023
356ccf4
Merge SSH fixes from 'pre-0.79'.
sgtatham May 4, 2023
14d4754
Merge bug-compatibility-mode rename from 'pre-0.79'.
jtn20 May 5, 2023
afb3dab
Remove some pointless 'static' qualifiers.
sgtatham May 27, 2023
322984d
do_text_internal: fix bug in the lpDx_maybe mechanism.
sgtatham May 27, 2023
6aca7f1
windows/window.c: move more variables into WinGuiSeat.
sgtatham May 27, 2023
8cf372d
NTRU: remove a pointless failure check.
sgtatham May 28, 2023
d22ccba
Fix UTF-8 flag checks in the Windows conio system.
sgtatham May 28, 2023
5f43d11
Add UTF-8 flag to the Windows message_box() wrapper.
sgtatham May 29, 2023
36db937
New utility function: dupwcs.
sgtatham May 28, 2023
392be3e
New utility function: decode_utf8_to_wide_string.
sgtatham May 29, 2023
059f42a
New Windows utility function: GetDlgItemTextW_alloc.
sgtatham May 29, 2023
e1c6f61
New Windows utility function: request_file_w.
sgtatham May 29, 2023
1adcb20
dialog.c: give ctrl->fileselect.filter an opaque type.
sgtatham May 29, 2023
85680c7
Make x11_get_auth_from_authfile take a Filename.
sgtatham May 28, 2023
8bd75b8
Some support for wide-character filenames in Windows.
sgtatham May 28, 2023
dfa91df
Cleanup: make an enum for the values of CONF_cursor_type.
sgtatham May 29, 2023
fd9bc8c
Cleanup: make symbolic names for CONF_bold_style bits.
sgtatham May 29, 2023
5e055a3
Cleanup: make an enum for the values of CONF_mouse_is_xterm.
sgtatham May 29, 2023
68d89b0
Add lots more stub versions of standard code modules.
sgtatham May 29, 2023
b60e62b
Merge PSFTP multiple-connections fixes from 'pre-0.79'.
sgtatham Jun 7, 2023
2ae1905
Merge docs tweaks from 'pre-0.79'.
jtn20 Jul 12, 2023
fecb51b
Merge Windows Pageant / OpenSSH fix from 'pre-0.79'.
sgtatham Jul 12, 2023
ab8ae9a
Merge log file name tweaks from 'pre-0.79'.
jtn20 Jul 16, 2023
64dbda7
Merge SSH cert UI tweak from 'pre-0.79'.
jtn20 Jul 19, 2023
5acaf75
Merge docs improvement from 'pre-0.79'.
sgtatham Jul 20, 2023
d5b2fd9
Unix: conditionalise test_lineedit and test_terminal.
sgtatham Jul 26, 2023
08d178a
Merge GPG key update from 'pre-0.79'.
sgtatham Jul 31, 2023
0945fc5
Fix breakage in winegcc build script.
sgtatham Aug 19, 2023
29fef36
Merge share_receive fix from 'pre-0.79'.
sgtatham Aug 19, 2023
06d7c39
Fix typo in comment.
jtn20 Aug 22, 2023
a1d80e4
testcrypt: allow null return from ssh2_mac_new.
jtn20 Aug 22, 2023
5ced517
cryptsuite: gracefully handle unavailable HW accel.
jtn20 Aug 22, 2023
13e2dfd
Merge tag '0.79'
sgtatham Aug 26, 2023
da550c3
CHECKLST.txt: suggest writing Windows Store blurb ahead of time.
sgtatham Aug 26, 2023
3d34007
Remove a couple of double-typedefs.
sgtatham Aug 27, 2023
bd27962
CMakeLists.txt: explicitly ask for C99.
sgtatham Aug 27, 2023
bdbd5f4
Rationalise the code that resets terminal scrollback.
sgtatham Sep 3, 2023
cfdff82
settings.c: missing 'const' in gppfont().
sgtatham Sep 22, 2023
6371702
Expose conf_clear(), for test purposes.
sgtatham Sep 22, 2023
954db6f
Conditionalise FontSpec structure definition.
sgtatham Sep 22, 2023
b567c9b
New test program 'test_conf', mostly transitional.
sgtatham Sep 22, 2023
72bbca9
Move the enum of Conf data types out into putty.h.
sgtatham Sep 22, 2023
860bd0d
Replace conf.c's type arrays with a new conf_key_info[].
sgtatham Sep 22, 2023
8e95208
Begin moving saved-setting semantics into conf_key_info.
sgtatham Sep 22, 2023
41b4f78
Make test_conf return failure status on failure!
sgtatham Sep 22, 2023
30d3b60
Fix type mismatches in new conf_key_info.
sgtatham Sep 22, 2023
92594f3
test_conf: directly check consistency of conf_key_info.
sgtatham Sep 22, 2023
374bb48
Remove spurious 'clipboard' storage enumeration.
sgtatham Sep 22, 2023
b29758c
Add ability to specify custom load and save separately.
sgtatham Sep 22, 2023
4ec4892
Centralise defaults for non-saved options.
sgtatham Sep 22, 2023
18ba4fe
conf.h: improve comments for a couple of options.
sgtatham Sep 22, 2023
1cd0f17
Tiny fixes in the SOCKS proxy code.
sgtatham Sep 23, 2023
aa1552b
Add a missing seen_disp_event for ESC # 3 and friends.
sgtatham Sep 25, 2023
6a6efd3
Further reorganisations of seen_disp_event().
sgtatham Sep 25, 2023
7b10e34
Recognise and discard the APC terminal escape sequence.
sgtatham Oct 19, 2023
968ac6d
Merge tag '0.80'.
sgtatham Dec 18, 2023
f026516
Release checklist updates in the wake of 0.80.
sgtatham Dec 19, 2023
b846178
Fix mis-merges from the 0.80 branch.
sgtatham Dec 19, 2023
8f34c84
It's a new year.
jtn20 Feb 22, 2024
83cc94a
docs: Stop recommending newsgroups.
jtn20 Feb 22, 2024
5519ea6
Add a FAQ about the.earth.li.
sgtatham Mar 20, 2024
d1a2d21
dsa_nonce_recover.py: feature to talk to an agent.
sgtatham Apr 7, 2024
909e2dc
Typo in CHECKLST.txt.
sgtatham Apr 7, 2024
f0f058c
Merge 0.81 branch.
sgtatham Apr 15, 2024
c19b8b5
Link from PGP keys appendix/page to checksum FAQ.
jtn20 Apr 17, 2024
6b10eaa
Post-0.81 checklist updates.
sgtatham Apr 19, 2024
640c702
More Unicode samples for utf8.txt, most of which fail.
sgtatham May 6, 2024
b6ef4f1
Support Unicode flag glyphs in terminal.c (works in GTK).
sgtatham May 6, 2024
4318387
Stop ignoring the Unicode tag character range.
sgtatham May 24, 2024
f454c84
Rename SocketPeerInfo to SocketEndpointInfo.
sgtatham Jun 26, 2024
23b15db
Allow sockets to retrieve their local endpoint info.
sgtatham Jun 26, 2024
c1d9da6
Pass the calling Socket to plug_log.
sgtatham Jun 26, 2024
7618e07
Log outgoing address + port numbers in the Event Log.
sgtatham Jun 29, 2024
807ed08
Centralise stub plug/socket functions.
sgtatham Jun 29, 2024
b717434
README: clarify that you need to run vcvars32 first.
sgtatham Jun 29, 2024
a5bcf3d
Pad RSA signature blobs if they're made with SHA-2.
sgtatham Jul 8, 2024
400c895
settings.c: Don't ignore boolean settings
distorted-mdw Jul 12, 2024
22f8122
Suppress syntax warnings on Python 3.12.
cjwatson Aug 1, 2024
3c3c179
Don't set term->wrapnext when not in auto-wrapping mode.
sgtatham Aug 10, 2024
6439c93
Add a Features checkbox to disable bracketed paste mode.
sgtatham Aug 10, 2024
81dcace
Windows: assign the right handle into conio->hout.
sgtatham Aug 10, 2024
8005738
Fix infinite loop on a truncated RFC4176 public key file.
sgtatham Aug 10, 2024
e11c83a
Windows: add 'Copy' and 'Paste' to the window's system menu.
sgtatham Aug 17, 2024
52bb6a3
Fix warnings building on Ubuntu 24.04.
sgtatham Sep 8, 2024
109c60b
Fix build failure on Debian bullseye from last commit.
sgtatham Sep 8, 2024
79ff0d0
sign.sh: stop telling gpg to load the 'idea' extension.
sgtatham Sep 10, 2024
1441023
read_ucd.py: tolerate whitespace in EastAsianWidth.txt.
sgtatham Sep 22, 2024
2c77437
Update all Unicode tables to Unicode 16.0.0.
sgtatham Sep 22, 2024
fca6ce1
Unix Pageant: make stdout line-buffered in --debug mode.
sgtatham Sep 23, 2024
2b93417
Support running UNIX Pageant in foreground mode, without debugging ou…
the-13th-letter Sep 18, 2024
10b5c11
pageant --foreground: close stdout after printing env setup.
sgtatham Sep 23, 2024
20a6274
Tweak wording in the Unix Pageant man page.
sgtatham Sep 23, 2024
31ab5b8
Windows: respect CONF_window_border when maximised.
sgtatham Sep 23, 2024
964890f
Stringify all the CONF_foo identifiers, for debugging.
sgtatham Sep 23, 2024
ed62159
Some int -> size_t cleanup in terminal.c API.
sgtatham Sep 24, 2024
c4c4d2c
dup_mb_to_wc, dup_wc_to_mb: remove the 'flags' parameter.
sgtatham Sep 24, 2024
32b8da1
clipme(): remove some obsolete diagnostic code.
sgtatham Sep 24, 2024
4f756d2
Rework Unicode conversion APIs to use a BinarySink.
sgtatham Sep 24, 2024
75b6e12
Add two new string types to the Conf system.
sgtatham Sep 23, 2024
55d413a
Add UTF-8 versions of dlg_editbox_{get,set}.
sgtatham Sep 23, 2024
dc4ac7c
conf_editbox_handler: support the new string types.
sgtatham Sep 23, 2024
7980722
Document the split_into_argv functions better.
sgtatham Sep 26, 2024
841bf32
New abstraction for command-line arguments.
sgtatham Sep 25, 2024
b57fb48
Change type of CONF_username to the new CONF_TYPE_STR_AMBI.
sgtatham Sep 23, 2024
7415063
Add and use cmdline_arg_to_filename().
sgtatham Sep 24, 2024
ecfa6b2
Don't print long usage messages on a command-line error.
sgtatham Sep 25, 2024
11d1f37
Don't exit(1) after printing PGP key fingerprints.
sgtatham Sep 25, 2024
7d9d72b
Fix double line-wrapping in the -pgpfp message box.
sgtatham Sep 26, 2024
f809554
Switch CONF_remote_cmd to being STR_AMBI.
sgtatham Sep 26, 2024
b7da41a
Add a docs appendix about privacy considerations.
sgtatham Sep 27, 2024
89c8825
Fix Xterm216+ Alt-Fn on Windows
alars Oct 1, 2024
eacf7ff
privacy.but: document the Windows jump list.
sgtatham Oct 5, 2024
9c4cadc
msifixup.py: replace pipes.quote with shlex.quote.
sgtatham Oct 7, 2024
bed0a8b
Ensure the whole window is visible at startup
sgtatham Oct 16, 2024
8e6797e
Typo: remove redundant word in a comment.
sgtatham Oct 20, 2024
c635c55
connect_to_host(): add missing sk_close on socket error.
sgtatham Oct 22, 2024
33881a1
privacy.but: fix depth of subheadings.
sgtatham Oct 23, 2024
47df948
privacy.but: greater emphasis on checking host keys.
sgtatham Nov 3, 2024
28a5d72
privacy.but: pedantically mention DNS lookups.
sgtatham Nov 3, 2024
2357271
Add IANA kex name sntrup761x25519-sha512.
jtn20 Nov 9, 2024
2de61ec
Correct version number in comment.
jtn20 Nov 17, 2024
f71db7f
Docs: index 'bracketed paste' verbatim.
jtn20 Nov 17, 2024
1b4a88f
pscp: Fix short help message.
jtn20 Nov 17, 2024
29c729a
Unix Pageant: fix usage message about --encrypted.
jtn20 Nov 17, 2024
01c404c
Document the two 'legacy' options.
sgtatham Nov 18, 2024
52b2419
Make the -legacy-foo options not SAVEABLE.
sgtatham Nov 21, 2024
a71866a
Disable UTF-8 console handling on pre-NT Windows.
sgtatham Nov 21, 2024
19d479d
Fix memory leaks in conf_try_set_*.
sgtatham Nov 21, 2024
41473d9
Fix a memory leak in Windows f_open.
sgtatham Nov 21, 2024
4e50c86
Stop accidentally sending wchar_t as terminal input!
sgtatham Nov 21, 2024
b1ae070
Windows Plink: accept a Unicode remote command line.
sgtatham Oct 26, 2024
d5d5eef
Re-fix retention of window border on maximise.
sgtatham Nov 23, 2024
628a948
Docs: -legacy-charset-handling also applies to PuTTY.
jtn20 Nov 23, 2024
725870d
Windows: better -legacy-stdio-prompts fidelity.
jtn20 Nov 24, 2024
b5fe588
Fix comment about LE_EOF_ALWAYS.
jtn20 Nov 24, 2024
5a9f8c3
f_open: use non-Unicode pathnames on legacy Windows.
sgtatham Nov 24, 2024
0b4f758
Windows: make is_interactive() match Unix.
sgtatham Nov 24, 2024
4dec8fd
pscp -ls: fix a segfault just before exiting.
sgtatham Nov 24, 2024
0244bca
Unix PuTTY/pterm: remove a premature cmdline_arg_list_free.
sgtatham Nov 25, 2024
b26077b
Update version number for 0.82 release.
sgtatham Nov 25, 2024
4b75bd5
导入 0.81 版翻译
larryli Dec 18, 2024
3bc189d
fix
larryli Dec 18, 2024
41aedd9
Merge branch 'master' into translate/0.82
larryli Dec 19, 2024
2cd3b3e
remove unsupported arm32
larryli Dec 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ jobs:
- { platform: "x64", archive: "-x64" }
- { platform: "Win32", archive: "" }
- { platform: "ARM64", archive: "-arm64" }
- { platform: "ARM", archive: "-arm" }

steps:
- name: Checkout
Expand Down
5 changes: 4 additions & 1 deletion Buildscr
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module putty
ifeq "$(RELEASE)" "" set Ndate $(!builddate)
ifneq "$(Ndate)" "" in . do echo $(Ndate) | perl -pe 's/(....)(..)(..)/$$1-$$2-$$3/' > date
ifneq "$(Ndate)" "" read Date date
set Epoch 18819 # update this at every release
set Epoch 19052 # update this at every release
ifneq "$(Ndate)" "" in . do echo $(Ndate) | perl -ne 'use Time::Local; /(....)(..)(..)/ and print timegm(0,0,0,$$3,$$2-1,$$1) / 86400 - $(Epoch)' > days
ifneq "$(Ndate)" "" read Days days

Expand Down Expand Up @@ -140,6 +140,9 @@ delegate -
in putty do cmake . -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS="-fsanitize=address -fsanitize=leak" -DSTRICT=ON
in putty do make -j$(nproc) VERBOSE=1
in putty do python3 test/cryptsuite.py
in putty do ./test_lineedit
in putty do ./test_terminal
in putty do ./test_conf
enddelegate

delegate -
Expand Down
49 changes: 35 additions & 14 deletions CHECKLST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ Making a release candidate build
- Make a preliminary gpg signature, but don't run the full release-
signing procedure. (We use the presence of a full set of GPG
signatures to distinguish _abandoned_ release candidates from the
one that ended up being the release.) In the 'build.X.YZ-rcN.out'
one that ended up being the release.) In the 'build-X.YZ-rcN.out'
directory, run
sh sign.sh -r -p putty
which will generate a clearsigned file called
Expand Down Expand Up @@ -164,13 +164,24 @@ Preparing to make the release

- Prepare some 'what's new in this release' blurb for the Windows
Store. This should be very brief - even briefer than the website
news item. Keep it to a couple of sentences in a single paragraph,
templated along the lines of 'X.YZ adds support for this, that and
the other, and fixes bugs including this and that', or 'X.YZ is a
bug-fix release, mostly in the area of Foo, with one important fix
to Bar'.
news item.
* Keep it to a couple of sentences in a single paragraph,
templated along the lines of
X.YZ adds support for this, that and the other, and fixes bugs
including this and that.
or
X.YZ is a bug-fix release, mostly in the area of Foo, with one
important fix to Bar.
* Might as well check this into putty-aux too.

- Prepare a toot! I'm on Mastodon, so I should announce the release
there. This means writing a cut-down 500-char announcement, maybe
more like the website news item than like the email.
* Include any relevant hashtags. Refer to the software as #PuTTY;
if you mention SSH then write it as #SSH; similarly if we're
fixing a #vulnerability. That's how people will find the toot.
* Again, commit to putty-aux for team review.

- Update the wishlist, in a local checkout:
* If there are any last-minute wishlist entries (e.g. security
vulnerabilities fixed in the new release), write entries for
Expand All @@ -196,6 +207,21 @@ Preparing to make the release
sh sign.sh -r putty # and enter the release key passphrase
chmod -R a-w putty

- If the release is on a branch (which I expect it generally will
be), prepare a merge of that branch to main. Even if the branch
consists of nothing but cherry-picks _from_ main, this will mean
that the 'update version number' change appears on main and the
snapshots start announcing themselves as post-X.YZ. But also, if
there's anything new on the branch, this is how it gets on to main
as well.

- Log in to the MS Partner Center and make sure everything is in
order. If the UI has completely changed, make sure you can find
your way around the new one; if it wants you to read an enormous
document of revised T&Cs, get that out of the way in advance, so it
doesn't suddenly become a delay in the middle of the actual
release.

The actual release procedure
----------------------------

Expand All @@ -219,18 +245,12 @@ locally, this is the procedure for putting it up on the web.
correctly and work:
../putty/release.pl --version=X.YZ --postcheck

- If the release is on a branch (which I expect it generally will
be), merge that branch to main, so that the 'update version number'
change appears on main and the snapshots start announcing
themselves as post-X.YZ.

- Push all the git repositories:
* run 'git push' in the website checkout
* run 'git push' in the wishlist checkout
* push from the main PuTTY checkout. Typically this one will be
pushing both the release tag and the merge we just made to the
main branch, plus removing the pre-release branch, so you'll
want some
pushing both the release tag and the merge to the main branch,
plus removing the pre-release branch, so you'll want some
commands along these lines:
git push origin main # update the main branch
git push origin --tags # should push the new release tag
Expand Down Expand Up @@ -276,6 +296,7 @@ locally, this is the procedure for putting it up on the web.
+ Mail that release announcement to
<putty-announce@lists.tartarus.org>.
+ Post it to comp.security.ssh.
+ Post the prepared toot to Mastodon.
+ Mention it in <TDHTT> on mono.

- Edit the master ~/adm/puttysnap.sh to disable pre-release builds,
Expand Down
37 changes: 33 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ add_subdirectory(utils)
add_subdirectory(stubs)

add_library(logging OBJECT
logging.c)
logging.c utils/logeventf.c)

add_library(eventloop STATIC
callback.c timing.c)
Expand All @@ -36,7 +36,8 @@ add_library(crypto STATIC
add_subdirectory(crypto)

add_library(network STATIC
errsock.c logging.c x11disp.c
errsock.c x11disp.c
$<TARGET_OBJECTS:logging>
proxy/proxy.c
proxy/http.c
proxy/socks4.c
Expand All @@ -54,7 +55,7 @@ add_library(agent STATIC

add_library(guiterminal STATIC
terminal/terminal.c terminal/bidi.c
ldisc.c config.c dialog.c
ldisc.c terminal/lineedit.c config.c dialog.c
$<TARGET_OBJECTS:logging>)

add_library(noterminal STATIC
Expand Down Expand Up @@ -87,6 +88,11 @@ add_executable(test_decode_utf8
target_compile_definitions(test_decode_utf8 PRIVATE TEST)
target_link_libraries(test_decode_utf8 utils ${platform_libraries})

add_executable(test_unicode_norm
utils/unicode-norm.c)
target_compile_definitions(test_unicode_norm PRIVATE TEST)
target_link_libraries(test_unicode_norm utils ${platform_libraries})

add_executable(test_tree234
utils/tree234.c)
target_compile_definitions(test_tree234 PRIVATE TEST)
Expand All @@ -111,7 +117,8 @@ add_executable(bidi_test
target_link_libraries(bidi_test guiterminal utils ${platform_libraries})

add_executable(plink
${platform}/plink.c)
${platform}/plink.c
stubs/no-lineedit.c)
# Note: if we ever port Plink to a platform where we can't implement a
# serial backend, this be_list command will need to become platform-
# dependent, so that it only sets the SERIAL option on platforms where
Expand Down Expand Up @@ -151,8 +158,30 @@ target_link_libraries(psocks
eventloop console network utils
${platform_libraries})

add_executable(test_conf
test/test_conf.c
stubs/no-agent.c
stubs/no-callback.c
stubs/no-gss.c
stubs/no-ldisc.c
stubs/no-network.c
stubs/no-timing.c
proxy/noproxy.c # FIXME: move this to stubs
)
be_list(test_conf TestConf SSH SERIAL OTHERBACKENDS)
target_link_libraries(test_conf sshclient otherbackends settings network crypto utils ${platform_libraries})

foreach(subdir ${platform} ${extra_dirs})
add_subdirectory(${subdir})
endforeach()

# Nasty bodge: we'd like to run this command inside unix/CMakeLists,
# adding the 'charset' library to everything that links with utils.
# But that wasn't allowed until cmake 3.13 (see cmake policy CMP0073),
# and we still have a min cmake version less than that. So we do it
# here instead.
if(platform STREQUAL unix)
target_link_libraries(utils charset)
endif()

configure_file(cmake/cmake.h.in ${GENERATED_SOURCES_DIR}/cmake.h)
2 changes: 1 addition & 1 deletion LATEST.VER
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.81
0.82
19 changes: 14 additions & 5 deletions README
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
This is the README for PuTTY, a free Windows and Unix Telnet and SSH
client.
PuTTY source code README
========================

This is the README for the source code of PuTTY, a free Windows and
Unix Telnet and SSH client.

PuTTY is built using CMake <https://cmake.org/>. To compile in the
simplest way (on any of Linux, Windows or Mac), run these commands in
the source directory:
simplest way (on any of Linux, Windows or Mac), the general method is
to run these commands in the source directory:

cmake .
cmake --build .

Then, to install in the simplest way on Linux or Mac:
These commands will expect to find a usable compile toolchain on your
path. So if you're building on Windows with MSVC, you'll need to make
sure that the MSVC compiler (cl.exe) is on your path, by running one
of the 'vcvars32.bat' setup scripts provided with the tools. Then the
cmake commands above should work.

To install in the simplest way on Linux or Mac:

cmake --build . --target install

Expand Down
1 change: 1 addition & 0 deletions cmake/cmake.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#cmakedefine01 HAVE_BINARY_SETPGRP
#cmakedefine01 HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE
#cmakedefine01 HAVE_PANGO_FONT_MAP_LIST_FAMILIES
#cmakedefine01 HAVE_G_APPLICATION_DEFAULT_FLAGS

#cmakedefine01 HAVE_AES_NI
#cmakedefine01 HAVE_SHA_NI
Expand Down
4 changes: 4 additions & 0 deletions cmake/gtk.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ if(GTK_FOUND)
${HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE} PARENT_SCOPE)
set(HAVE_PANGO_FONT_MAP_LIST_FAMILIES
${HAVE_PANGO_FONT_MAP_LIST_FAMILIES} PARENT_SCOPE)
check_c_source_compiles("
#include <gtk/gtk.h>
int f = G_APPLICATION_DEFAULT_FLAGS;
int main(void) {}" HAVE_G_APPLICATION_DEFAULT_FLAGS)
endfunction()
pango_check_subscope()
endif()
10 changes: 10 additions & 0 deletions cmake/winegcc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# options that CMake gets wrong.

init=true
link=true
for arg in init "$@"; do
if $init; then
set --
Expand All @@ -21,9 +22,18 @@ for arg in init "$@"; do
# suffix.
-l*.lib) set -- "$@" "${arg%.lib}";;

# Options that mean we're not linking.
-E | -S | -c) link=false set -- "$@" "$arg";;

# Anything else, we leave unchanged.
*) set -- "$@" "$arg";;
esac
done

if $link; then
# winegcc requires this library for _wfopen
set -- "$@" -lucrtbase
fi

echo "$@" >&2
exec winegcc "$@"
5 changes: 3 additions & 2 deletions cmdgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -717,10 +717,11 @@ int main(int argc, char **argv)

/*
* If run with at least one argument _but_ not the required
* ones, print the usage message and return failure.
* ones, fail with an error.
*/
if (!infile && keytype == NOKEYGEN) {
usage(true);
fprintf(stderr, "puttygen: expected an input key file name, "
"or -t for a type of key to generate\n");
RETURN(1);
}

Expand Down
Loading