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

116 Commits

Author SHA1 Message Date
Ben Harris
563eef2870 Change a temporary buffer from unsigned chars to chars, avoiding a pointer-cast
warning.

[originally from svn r2215]
2002-11-17 01:56:01 +00:00
Ben Harris
a12a78bcb9 Rename CharWidth() to char_width(). The former name clashes with an API
function in Mac OS.

[originally from svn r2205]
2002-11-09 21:46:21 +00:00
Simon Tatham
0720fc12ad terminal.c should call the frontend beep() routine even with
mode==BELL_VISUAL, otherwise taskbar flashing won't happen on visual
bells. It's up to the frontend routine to spot BELL_VISUAL and avoid
making any noise.

[originally from svn r2155]
2002-10-28 21:58:07 +00:00
Simon Tatham
ac545e0530 Another deglobalisation bug: failed to initialise term->curstype.
Thanks to valgrind for finding this one (aha! I knew there would be
benefits from doing a Unix port!).

[originally from svn r2152]
2002-10-28 17:30:47 +00:00
Simon Tatham
ea429ee71a Retire another global in favour of adding a feature to the
terminal.c interface.

[originally from svn r2148]
2002-10-26 14:06:52 +00:00
Simon Tatham
4756c15fc9 Yet more global-removal. The static variables in logging.c are now
absent, and also (I think) all the frontend request functions (such
as request_resize) take a context pointer, so that multiple windows
can be handled sensibly. I wouldn't swear to this, but I _think_
that only leaves the Unicode stuff as the last stubborn holdout.

[originally from svn r2147]
2002-10-26 12:58:13 +00:00
Simon Tatham
0b2523eeda Line discipline module now uses dynamically allocated data. Also
fixed one or two other minor problems.

[originally from svn r2141]
2002-10-26 10:16:19 +00:00
Simon Tatham
72ff571148 Major destabilisation, phase 2. This time it's the backends' turn:
each backend now stores all its internal variables in a big struct,
and each backend function gets a pointer to this struct passed to
it. This still isn't the end of the work - lots of subsidiary things
still use globals, notably all the cipher and compressor modules and
the X11 forwarding authentication stuff. But ssh.c itself has now
been transformed, and that was the really painful bit, so from here
on it all ought to be a sequence of much smaller and simpler pieces
of work.

[originally from svn r2127]
2002-10-25 11:30:33 +00:00
Simon Tatham
a9bd716df8 Cleanups from yesterday's destabilisation: lots of stuff in
terminal.c was apparently relying on implicit initialisation to
zero, and also I've removed the backends' dependency on terminal.h
by having terminal sizes explicitly passed in to back->size().

[originally from svn r2117]
2002-10-23 12:41:35 +00:00
Simon Tatham
0a80c983e2 Major destabilisation, phase 1. In this phase I've moved (I think)
all the global and function-static variables out of terminal.c into
a dynamically allocated data structure. Note that this does not yet
confer the ability to run more than one of them in the same process,
because other things (the line discipline, the back end) are still
global, and also in particular the address of the dynamically
allocated terminal-data structure is held in a global variable
`term'. But what I've got here represents a reasonable stopping
point at which to check things in. In _theory_ this should all still
work happily, on both Unix and Windows. In practice, who knows?

[originally from svn r2115]
2002-10-22 16:11:33 +00:00
Simon Tatham
bf0e8374f2 Thanks to Richard B for pointing out that xterm has its own variants
of the alternate-screen and save-cursor control sequences, with
subtly different semantics and entertaining interactions with the
usual ones. No thanks to xterm for doing so in the first place :-(
This checkin should sort it all out.

[originally from svn r2112]
2002-10-22 10:31:23 +00:00
Simon Tatham
07878d8b7c Implement Richard's really clever idea about bell overload mode:
it's automatically deactivated by any keypress, so that command-line
beeps from (e.g.) filename completion don't suddenly stop occurring,
but it still provides a rapid response to an accidental spewing of a
binary to your terminal.

[originally from svn r2107]
2002-10-20 13:23:30 +00:00
Simon Tatham
e30ab28d34 Oops - check in leftovers from yesterday's development. That's what
I get for running most of my cvs commands in the unix subdir :-/

[originally from svn r2078]
2002-10-16 09:28:17 +00:00
Simon Tatham
c01c1db847 Fixes to terminal.c to support blinking and visual bells under Unix.
[originally from svn r2068]
2002-10-15 16:40:22 +00:00
Simon Tatham
8bc305cafe Only engage a GTK idle function when absolutely necessary, otherwise
the whole app spins on it and takes up CPU all the time.

[originally from svn r2052]
2002-10-14 23:32:00 +00:00
Simon Tatham
ffff6f32c7 Selection now supported in pterm. Required small modifications
outside the unix subdir, owing to more things needing to become
platform-dependent.

[originally from svn r2033]
2002-10-13 11:24:25 +00:00
Simon Tatham
6d0e9b205d First phase of porting. pterm now compiles and runs under Linux+gtk.
The current pty.c backend is temporarily a loopback device for
terminal emulator testing, the display handling is only just enough
to show that terminal.c is functioning, the keyboard handling is
laughable, and most features are absent. Next step: bring output and
input up to a plausibly working state, and put a real pty on the
back to create a vaguely usable prototype. Oh, and a scrollbar would
be nice too.
In _theory_ the Windows builds should still work fine after this...

[originally from svn r2010]
2002-10-09 18:09:42 +00:00
Simon Tatham
64c52b0d30 Begin destabilisation in the wake of 0.53! This checkin contains the
beginning of a Unix port. It's nowhere near done, and currently it
won't even compile on Unix. But this represents the start of the
process of separating out platform-specific code, and also contains
the mkfiles.pl changes required to support a Unix makefile and a
non-flat source tree.

[originally from svn r1993]
2002-10-07 16:45:23 +00:00
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