1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 18:07:59 +00:00
Commit Graph

198 Commits

Author SHA1 Message Date
Simon Tatham
ae476d5567 ANSI remote printer support. Raw mode only.
[originally from svn r1581]
2002-03-09 17:59:15 +00:00
Simon Tatham
fcb31d5cfe Well, there was bound to be one I'd forgotten: the new Features
panel should include an option to disable xterm mouse reporting. So
now it does. Woo.

[originally from svn r1579]
2002-03-09 11:47:39 +00:00
Simon Tatham
8c81f53a56 Oops. I wrote in the docs that no-remote-resize also included
no-remote-move-window, so I'd better live up to that...

[originally from svn r1577]
2002-03-06 23:06:07 +00:00
Simon Tatham
2df966b43c Add the Features panel, allowing you to disable a bunch of the more
controversial terminal features.

[originally from svn r1576]
2002-03-06 23:04:20 +00:00
Simon Tatham
d21683f92c The `wrapnext' flag should be saved and restored with the cursor
position. Failure to do this can give wrapnext==TRUE even with the
cursor not in the rightmost column.

[originally from svn r1572]
2002-03-02 17:37:48 +00:00
Simon Tatham
fdbd697801 from_backend() should always be called with len > 0. Only rlogin
mode ever failed to do this, and only Plink actually had a problem
with it, so this didn't become obvious for a while. rlogin mode is
fixed, and all implementations of from_backend() now contain an
assertion so that we should spot errors of this type more quickly in
future.

[originally from svn r1571]
2002-03-01 13:17:45 +00:00
Simon Tatham
349e2ce9e2 Patch from RDB: the ESC[8...t resize sequence and the ESC[18t size
report should both quote rows before columns, not vice versa.

[originally from svn r1534]
2002-01-08 09:56:31 +00:00
Simon Tatham
3ed0d44f16 Retired the #ifdef DUMP_PACKETS stuff in ssh.c because I'm utterly
sick of recompiling to enable packet dumps. SSH packet dumping is
now provided as a logging option, and dumps to putty.log like all
the other logging options. While I'm at it I cleaned up the format
so that packet types are translated into strings for easy browsing.
POSSIBLE SIDE EFFECT: in the course of this work I had to re-enable
the SSH1 packet length checks which it turns out hadn't actually
been active for some time, so it's possible things might break as a
result. If need be I can always disable those checks for the 0.52
release and think about it more carefully later.

[originally from svn r1493]
2001-12-14 14:57:50 +00:00
Simon Tatham
bb1f5cec31 Add support for most of the ESC[<low number>t sequences, which xterm
uses to manipulate the window (minimise, maximise, front, back,
move, resize) and report things about the window (is it minimised or
maximised, how big is it, what's its title). Missing are ESC[4;X;Yt
(resize to a specified pixel size; our resize code doesn't like it)
and ESC[19;X;Yt (report size of _screen_ in _characters_, which it
isn't even obvious how to do when you've got a variable font size).

[originally from svn r1414]
2001-11-25 15:21:25 +00:00
Simon Tatham
d2c9937691 Rectangular-block selection. Enabled by Alt+drag, unless you
configure it to be the default in which case it's _dis_abled by
Alt+drag.

[originally from svn r1350]
2001-10-31 18:50:09 +00:00
Simon Tatham
4badd37b4b Word-by-word (double-click) selection now spans line breaks if the
line break was created by wrapping. (Equivalently, if the selection
would _paste_ as a single word without a newline in the middle, then
it will _select_ in the same way.)

[originally from svn r1347]
2001-10-30 22:02:15 +00:00
Simon Tatham
9bbe53d700 Fix silly scrolling-vs-selection bug: if you selected text on line
9, then did ANSI Delete Line on line 10, the selection highlight
would move up a line even though it wasn't over any text that
actually moved. Easy to reproduce in the likes of vi. Trivial fix.

[originally from svn r1334]
2001-10-28 09:38:43 +00:00
Simon Tatham
cb102602a9 Better robustness in visual bell timeouts: handling GetTickCount
wraparound, not referencing vbell_timeout if in_vbell==FALSE, that
sort of thing. I doubt it'll fix the reported problems with screen
vbells, since none of the failure modes I've just prevented looked
all that probable to me, but it's nice to have extra robustness
anyway.

[originally from svn r1314]
2001-10-23 19:51:23 +00:00
Simon Tatham
7e1272bb53 D'oh, trivial typo which was completely breaking log-all-output.
[originally from svn r1308]
2001-10-12 21:39:16 +00:00
Simon Tatham
39c3f9b8bc Fix pasting of newlines in local line editing mode. Possibly not a
very _good_ fix; something might want doing after the release.

[originally from svn r1277]
2001-09-19 20:07:15 +00:00
Simon Tatham
6364ff3e71 terminal.c's from_backend() no longer calls term_out(), because
term_out() can in turn call ldisc_send() which calls back to
from_backend() when local echo is enabled. This was giving rise to
crazy re-entrancy stuff and stack overflows. Instead from_backend()
deposits its data in a bufchain which term_out() empties the next
time it's called.

[originally from svn r1276]
2001-09-18 19:41:07 +00:00
Simon Tatham
8c532d7668 Fix flaky scrollbar update when scrollback was reset to bottom.
[originally from svn r1275]
2001-09-18 19:04:21 +00:00
Simon Tatham
b4501dec57 Selection point movement on scroll should move selanchor as well as
selstart and selend, otherwise all those worthy ideals go *foom*
while the mouse buttons are held down.

[originally from svn r1274]
2001-09-18 18:59:37 +00:00
Simon Tatham
3d3ef9b8a4 Three more patches from RDB: one to make Atomica work right, one to
fiddle with the widths of characters in DBCS screen fonts, and (the
big one) one to enable a mode in which resizing the window locks the
terminal size and lets the font change, instead of vice versa. That
should shut up a few feature requests!

[originally from svn r1269]
2001-09-15 15:54:24 +00:00
Simon Tatham
6403725639 Scrollback viewing position, and selection endpoints, now keep pace
with the scrollback movement. (The former is of course only
detectable when reset-scrollback-on-activity is disabled.)

[originally from svn r1266]
2001-09-12 20:38:40 +00:00
Simon Tatham
d27684019b Roman Pompejus's patch (heavily hacked) for parametric log file
names with date, time and hostname automatically embedded.

[originally from svn r1255]
2001-09-09 09:58:20 +00:00
Simon Tatham
51eeeae237 Jan Holmen Holsten's patch for drag-selects to scroll the scrollback.
[originally from svn r1252]
2001-09-08 12:37:48 +00:00
Simon Tatham
e2c086b090 RDB's session logging patch: due to some ghastly special case, UTF-8
characters that failed the UTF-8 canonicality rules were being sent
to the session log twice. Sounds trivial, but I bet it'd have
confused anyone who turned on session logging precisely to track
down a canonicality bug :-)

[originally from svn r1244]
2001-09-07 22:51:52 +00:00
Simon Tatham
5fad95e748 Jacob's patch to cause Shift to return to copy-and-paste when xterm
mouse tracking is enabled. (This can be turned off if your app
really wants Shift+mouse, but it defaults to on for general
usefulness.)

[originally from svn r1235]
2001-09-07 20:35:38 +00:00
Simon Tatham
c87fa98d09 Extensive changes that _should_ fix the socket buffering problems,
by ceasing to listen on input channels if the corresponding output
channel isn't accepting data. Has had basic check-I-didn't-actually-
break-anything-too-badly testing, but hasn't been genuinely tested
in stress conditions (because concocting stress conditions is non-
trivial).

[originally from svn r1198]
2001-08-25 17:09:23 +00:00
Simon Tatham
48226525f7 Robert de Bath's implementation of ESC [ Z (backtab)
[originally from svn r1155]
2001-06-23 16:59:00 +00:00
Simon Tatham
9736adfcfa Oops - fixing the line-resizing segfault introduced a new
line-resizing segfault! Remind me to test under Minefield next time.
Should now be fine, as I've just done so.

[originally from svn r1141]
2001-05-21 13:33:12 +00:00
Simon Tatham
38b6d276d2 RDB: fix various UTF-8 glitches.
[originally from svn r1138]
2001-05-19 15:21:05 +00:00
Simon Tatham
26d63c3a96 SCO ACS patch from RDB. Apparently required for the Linux console
terminfo.

[originally from svn r1137]
2001-05-19 14:12:41 +00:00
Simon Tatham
b5a6c88da4 Fix from RDB: patch up mis-aimed fallthroughs in a terminal
emulation switch. (Bug was introduced in mouse reporting.)

[originally from svn r1134]
2001-05-19 11:34:20 +00:00
Simon Tatham
c1f41f9822 Terminal fix from RDB: probably didn't mean to compare a Y value
with a column count!

[originally from svn r1133]
2001-05-19 11:33:03 +00:00
Simon Tatham
df6c9ab083 Small terminal fix from RDB: CSI 1 K should erase the cursor
position itself, as well as everything to the left of it.

[originally from svn r1132]
2001-05-19 11:32:38 +00:00
Simon Tatham
079b6bc6f6 Reinstate the Shift-Ins paste behaviour, which was accidentally
broken by the mouse button redesignation that came with xterm mouse
reporting.

[originally from svn r1130]
2001-05-17 10:06:54 +00:00
Simon Tatham
aca29ffb7b Fix the line-resizing bug in scroll(). (Thanks to RDB for pointing
it out. A line was removed from the scrollback, cleared, and placed
at the bottom of the screen. Fine, except that the clearing process
assumed the line was the right length already, and thanks to lazy
resizing this wasn't necessarily the case. Segfaults and memory
corruption ensued.)

[originally from svn r1129]
2001-05-17 08:53:13 +00:00
Simon Tatham
8e5e0225e5 Scrollbar was failing to update when no scrollback-reset event had happened
[originally from svn r1126]
2001-05-14 13:31:14 +00:00
Simon Tatham
29cce22a90 Fix the sense of posdiff(), causing the extend-selection mouse
action to work correctly again.

[originally from svn r1125]
2001-05-13 16:13:39 +00:00
Simon Tatham
84e58edf9f Glenn Maynard's patch (as adapted by Jacob) for taskbar flashing
when a bell occurs and the window is minimised.

[originally from svn r1123]
2001-05-13 14:42:17 +00:00
Simon Tatham
fb473cc16c Placate gcc's `-Wall' warnings.
[originally from svn r1121]
2001-05-13 14:02:28 +00:00
Simon Tatham
26f1085038 RDB's Unicode patch. Fonts are now used in Unicode mode where
possible and we have a single unified means of trying to display any
Unicode code point. Instead of the various ad-hoc translation modes
we had before, we now have a single `codepage' option which allows
us to treat the incoming (and outgoing) text as any given character
set, and locally we map that to Unicode and back.

[originally from svn r1110]
2001-05-10 08:34:20 +00:00
Simon Tatham
7d86bbfbe2 From RDB: a few extra escape sequences seen in SCO terminals.
[originally from svn r1106]
2001-05-09 13:35:08 +00:00
Simon Tatham
9318b84598 Fix due to Robert de Bath: backspace should not cross line
boundaries when auto wrap is disabled.

[originally from svn r1101]
2001-05-09 12:48:01 +00:00
Simon Tatham
3730ada5ce Run entire source base through GNU indent to tidy up the varying
coding styles of the various contributors! Woohoo!

[originally from svn r1098]
2001-05-06 14:35:20 +00:00
Simon Tatham
93101b5a71 Wez Furlong's patch to add xterm mouse reporting and proper mouse
wheel support.

[originally from svn r1097]
2001-05-06 14:20:41 +00:00
Simon Tatham
059998d17b Remove diagnostics and attempt to work around VC compiler bug :-(
[originally from svn r1096]
2001-05-03 10:10:53 +00:00
Simon Tatham
56a5e6fdf3 Extra diagnostics in the hope that we can track down the problem with
the nightlies. I must remember to take it all out again when we do!

[originally from svn r1095]
2001-05-02 14:45:25 +00:00
Simon Tatham
321adcb4b9 The bell overload times are now measured in milliseconds, although
the config box still enters them in seconds (it allows fractions).

[originally from svn r1089]
2001-04-28 15:47:26 +00:00
Simon Tatham
296cad5962 Remove stray diagnostics. When will I learn?
[originally from svn r1088]
2001-04-28 15:33:48 +00:00
Simon Tatham
fc56312b45 Implement lazy horizontal resizing of screen and scrollback.
[originally from svn r1087]
2001-04-28 15:32:25 +00:00
Simon Tatham
9525da2826 Arrange that explicit visual bells performed using ESC[?5h and
ESC[?5l in immediate succession will still give a visibly long flash
of the screen.

[originally from svn r1086]
2001-04-28 14:39:16 +00:00
Simon Tatham
34d2d98bdd Two more small bugs introduced by the B-tree reorg: scroll() now
requires fix_cpos() to be called after it (otherwise cpos might point
to a line that isn't where you remember it being), and a mis-aimed
incpos() was causing forward selection dragging not to include the
char under the mouse. Both fixed.

[originally from svn r1063]
2001-04-17 09:25:52 +00:00
Simon Tatham
04b2c2b53e Fix alternate-screen bugs introduced by move to B-trees. Alternate
screen wasn't being correctly cleared on creation, and also wasn't
inhibiting scrollback like it should have.

[originally from svn r1061]
2001-04-17 08:53:31 +00:00
Simon Tatham
3abea3d4ea Having now compiled the last few days' changes with MSVC, it's turned
up a bunch of warnings, mostly unused variables. All fixed.

[originally from svn r1058]
2001-04-17 08:24:29 +00:00
Simon Tatham
559b00b90a Terminal now uses unsorted counted tree234 as its basic data type.
Should speed up scrollback to usable levels no matter how big your
scrollback buffer.

[originally from svn r1055]
2001-04-16 21:25:13 +00:00
Simon Tatham
f6ea0f9396 Oops - remove rogue debug messages!
[originally from svn r1040]
2001-04-13 11:01:56 +00:00
Simon Tatham
a8116a8dae New improved bell handling. Choice between visual and audible bell;
configurable bell overload handling. Thanks to Robert de Bath for
galvanising me into doing this, but I've had to rip most of his code
out and redo it myself...

[originally from svn r1039]
2001-04-13 10:52:36 +00:00
Simon Tatham
ac5bebc71d Jordan Russell's patch to match the PuTTY cursor blink rate to the
system-configured one.

[originally from svn r1036]
2001-04-11 10:03:46 +00:00
Simon Tatham
8e91c62bfa We can now configure the terminal's answerback string when it receives ^E.
[originally from svn r1031]
2001-04-09 12:43:46 +00:00
Simon Tatham
2c39b69a52 Default handling of VT100 line drawing characters in cut and paste is
now to translate them into poor man's characters (+--+ and |). We also
have an option to disable this (and map line drawing characters to the
corresponding ASCII code as before). Thanks to Robert de Bath.

[originally from svn r1029]
2001-04-09 11:59:35 +00:00
Simon Tatham
7a79df8fe6 Rethink the whole line discipline architecture. Instead of having
multiple switchable line disciplines, we now have a single unified
one which changes its behaviour based on option settings. Each
option setting can be suggested by the back end and/or the terminal
handler, and can be forcibly overridden by the configuration. Local
echo and local line editing are separate, independently switchable,
options.

[originally from svn r895]
2001-01-24 14:08:20 +00:00
Simon Tatham
d9de560388 The `wrapnext' variable now states whether we _would_ wrap next
character if we were wrapping, not whether we _will_ wrap next
character. Makes for saner behaviour with vertical-line cursor and
also when changing autowrap mode while on rightmost column. Does
entail small behavioural changes to backspace and destructive-
backspace when in rightmost column with Auto Wrap off, but I don't
think they should be catastrophic, or indeed that there's a well
defined Right Behaviour.

[originally from svn r872]
2001-01-17 17:25:58 +00:00
Simon Tatham
c68959b584 Introduce alternative cursor shapes: underline, vertical line
[originally from svn r870]
2001-01-17 16:57:33 +00:00
Simon Tatham
48b368d3ed Disable logging completely if the user selects Cancel when told the
file already exists

[originally from svn r851]
2001-01-08 16:24:13 +00:00
Simon Tatham
3a2a06b1fc Improved session logging courtesy of Roman Pompejus
[originally from svn r846]
2001-01-07 18:24:59 +00:00
Simon Tatham
d75f3687fb Correct pointer types in new clipme function
[originally from svn r812]
2000-11-24 22:27:51 +00:00
Simon Tatham
9147f68fb6 Ron Kuris's "copy everything to clipboard" patch
[originally from svn r808]
2000-11-21 19:28:25 +00:00
Simon Tatham
384eeb3f76 Fix miscellaneous compiler warnings. Thanks to Jacob Nevins
[originally from svn r755]
2000-10-24 10:47:49 +00:00
Simon Tatham
bbbda4110b Created a shiny new abstraction for the socket handling. Has many
advantages:
 - protocol modules can call sk_write() without having to worry
   about writes blocking, because blocking writes are handled in the
   abstraction layer and retried later.
 - `Lost connection while sending' is a thing of the past.
 - <winsock.h> is no longer needed in most modules, because
   "putty.h" doesn't have to declare `SOCKET' variables any more,
   only the abstracted `Socket' type.
 - select()-equivalent between multiple sockets will now be handled
   sensibly, which opens the way for things like SSH port
   forwarding.

[originally from svn r744]
2000-10-23 10:32:37 +00:00
Simon Tatham
6eb613e3c4 Three new configurable options:
- Robert de Bath's Compose key is now off by default and configurable on
 - The ages-old controversy over whether ALT by itself should bring the
   System menu up is now controllable by a config option
 - You can now independently configure whether scrollback resets on a
   keypress _and_ whether it resets on screen activity.

[originally from svn r741]
2000-10-21 16:30:58 +00:00
Simon Tatham
e32603347c Introduce a sane interface function, from_backend(), for backends to
use when they have data from the network. Replaces the utterly daft
inbuf / inbuf_head / term_out() interface, which only made sense
when feeding to terminal.c. (terminal.c now implements
from_backend() as a small function that gateways to the old
interface.)

As a side effect, from_backend() also has an `is_stderr' parameter,
so scp can once again separate the server's pronouncements on stderr
from the actual protocol progress on stdout.

[originally from svn r729]
2000-10-20 13:51:46 +00:00
Simon Tatham
a80fa10287 Remember to update scrollbar when scrollback is reset
[originally from svn r727]
2000-10-20 12:31:02 +00:00
Simon Tatham
fe2ee468e6 Turn off paste-as-poorman for line drawing chars until it's configurable
[originally from svn r702]
2000-10-10 16:02:08 +00:00
Simon Tatham
b5957e5732 Scroll regions of two lines are allowed
[originally from svn r700]
2000-10-10 10:50:14 +00:00
Simon Tatham
fd5588d087 Robert de Bath's big patch:
- cope with strange WinSock wrappers not supporting SIOCATMARK
  - define yet more terminal compatibility modes
  - support UK-ASCII (just like US-ASCII but # is a sterling sign)
  - support connection keepalives at a configurable interval

[originally from svn r692]
2000-10-09 12:53:32 +00:00
Simon Tatham
e48981def4 Miscellaneous fixes to try to make other compilers happier
[originally from svn r691]
2000-10-09 12:19:09 +00:00
Simon Tatham
7b6106d62a Add a parameter to write_clip() so that windlg.c need not call term_deselect
[originally from svn r681]
2000-10-06 12:32:25 +00:00
Simon Tatham
4f3def030a Add an invisible System Caret for blind-helper-software to track
[originally from svn r627]
2000-09-25 16:17:53 +00:00
Simon Tatham
bed673083b Yet another pedantic fix for scroll margin setting :-)
[originally from svn r586]
2000-09-11 14:47:57 +00:00
Simon Tatham
0d5d39064a Robert de Bath's Big Patch, part 1
[originally from svn r516]
2000-07-26 12:13:51 +00:00
Simon Tatham
7a01fd48b6 Make beep optional - thanks to Antal Novak
[originally from svn r507]
[this commit reordered to come after creation of 0.49 tag]
2000-06-24 17:00:49 +00:00
Simon Tatham
e0fac426c5 Hack to work around the rootshell.com xterm DoS problem. A better
fix might be possible, but it's unclear whether this is a productive
strategy in the long term.

[originally from svn r495]
2000-06-05 16:33:58 +00:00
Simon Tatham
7d85289621 Patch to RDB's blinking cursor: make it configurable and by default
off. It's terribly distracting.

[originally from svn r423]
2000-03-17 10:46:59 +00:00
Simon Tatham
693e51c934 RDB's patch. Oodles of new terminal functionality, including
ATTR_BLINK (as bold background) and VT52 support. Plus a
compatibility tracking system whereby all escape sequences can be
disabled for a pure-VT102 compatibility mode or other levels.

[originally from svn r421]
2000-03-17 10:39:05 +00:00
Simon Tatham
30ee1109f1 Robert de Bath's patch: ARG_DEFAULT is now zero because it's
apparently defined behaviour for _all_ CSI-type sequences that ESC[Q
should be equivalent to ESC[0Q. Which is a pain in the wossname and
not a sane way to do it, but if the standards say it then I suppose
... :-(

[originally from svn r406]
2000-03-11 14:16:55 +00:00
Simon Tatham
118524f442 Robert de Bath's patch: be a little more careful of main and
alternate screens when resizing the window. Should avoid lines of
alternate screen showing up in scrollback buffer.

[originally from svn r403]
2000-03-11 14:10:10 +00:00
Simon Tatham
06060def52 Robert de Bath's patch: sort out once and for all the confusion
between ESC [ ... Q and ESC [ ... ? Q (for all values of Q).

[originally from svn r402]
2000-03-11 14:08:36 +00:00
Simon Tatham
9e6856ef8e Oops - that unscroll stuff was a little broken...
[originally from svn r348]
1999-12-09 17:10:28 +00:00
Simon Tatham
396d6cd422 Turn #ifdef LOG into a command-line option for debugging use
[originally from svn r330]
1999-11-30 11:22:30 +00:00
Simon Tatham
97b5df1691 Oops - fix total idiocies in applying that patch
[originally from svn r329]
1999-11-30 11:13:33 +00:00
Simon Tatham
a8d5838ebc Robert de Bath's multi-purpose patch, slightly modified.
- ^E answerback is now `PuTTY'.
 - The framework is now in place for the scrollback to reset to
   bottom on display _or_ keyboard events _or_ both. An actual
   configurable option isn't yet present, but most of the code is in
   place.
 - Try to deal with the problems where incoming data gets dropped
   after decoding but before display.
 - Scrollback behaviour has changed: instead of keying it off
   `scroll' versus `delete top line', things now go into the
   scrollback from _either_ of those but only if the primary screen
   is selected. Should fix problems with `less' and talkers.
 - must_update variable has gone because rdb correctly observed that
   it didn't seem to be doing a great deal :-)

[originally from svn r328]
1999-11-30 10:52:07 +00:00
Simon Tatham
429b6f4a83 Added local-editing line discipline to make raw backend usable
[originally from svn r287]
1999-11-09 12:05:34 +00:00
Simon Tatham
e913e99b40 Oleg Panashchenko's Cyrillic support patch
[originally from svn r277]
1999-11-08 11:08:09 +00:00
Simon Tatham
97731141ad Fix misparse of ESC[?9r sequence; I must find out what it _should_ do
[originally from svn r176]
1999-07-07 13:16:41 +00:00
Simon Tatham
9a5b63aa03 Allow CSI 0;0r to set default scroll region (previously did nothing useful)
[originally from svn r85]
1999-03-11 10:27:12 +00:00
Simon Tatham
0fc1c0c9c9 Improve drag select (dragging outside LHS doesn't now select first
char too)

[originally from svn r20]
1999-01-22 09:36:21 +00:00
Simon Tatham
e68a529cc9 Add SSH don't-allocate-pty option, and corresponding LF-implies-CR
terminal setting

[originally from svn r16]
1999-01-15 11:30:40 +00:00
Simon Tatham
3352f57942 Fix breakage in window redraw
[originally from svn r14]
1999-01-15 11:28:11 +00:00
Simon Tatham
60ab6a5d82 John Sullivan's patches plus more fixes:
- Stop using the identifier `environ' as some platforms make it a macro
  - Fix silly error box at end of connection in FWHACK mode
  - Fix GPF on maximise-then-restore
  - Use SetCapture to allow drag-selecting outside the window
  - Correctly update window title when iconic and in win_name_always mode

[originally from svn r12]
1999-01-08 13:10:19 +00:00
Simon Tatham
c74130d423 Initial checkin: beta 0.43
[originally from svn r11]
1999-01-08 13:02:13 +00:00