Граф коммитов

25 Коммитов

Автор SHA1 Сообщение Дата
Ben Harris d60ea36673 Add a Config * argument to ldisc_create(), and use it in place of the global
cfg throughout ldisc.c.  Not tested other than on Mac, but all other ports
just pass &cfg as this argument for now.

[originally from svn r2250]
2002-11-23 20:02:38 +00:00
Simon Tatham 948f95d5e8 Reorganised the Unicode layer somewhat: moved luni_send and
lpage_send out into the line discipline, making them _clients_ of
the Unicode layer rather than part of it. This means they can access
ldisc->term, which in turn means I've been able to remove the
temporary global variable `term'. We're slowly getting there.

[originally from svn r2143]
2002-10-26 11:08:59 +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 6e549a6db3 Oops - repercussions of the close-on-exit stuff which I forgot to
check in. I must stop doing my Unix checkins in the Unix subdir :-(

[originally from svn r2125]
2002-10-24 14:12:55 +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 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 726f9dde7e Add a configurable option to make Return in Telnet send an ordinary
^M instead of the Telnet New Line code. Unix-type telnetds don't
care one way or the other; RDB claims some telnetds prefer Telnet
NL; and now someone has found one that can't deal with Telnet NL and
prefers ^M. Sigh.

[originally from svn r1520]
2001-12-29 17:21:26 +00:00
Simon Tatham 830c1ea580 Now that we can configure whether ^C and friends generate Telnet IP
and friends, we should honour the user's choice even in line editing
mode. In particular, Telnet talkers don't like us randomly spraying
Telnet IP whenever the user accidentally hits ^C, so this is not a
helpful default.

[originally from svn r1316]
2001-10-24 11:50:07 +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 38b6d276d2 RDB: fix various UTF-8 glitches.
[originally from svn r1138]
2001-05-19 15:21:05 +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 e001f1533e From RDB: a patch to allow special keys (^C, ^Z, Delete, Return) to
send Telnet special sequences (Interrupt Process, Suspend, Erase
Char, End Of Line) instead of their ASCII equivalents. In particular
Return -> Telnet End Of Line is _always_ enabled irrespective of the
configuration, while the others are optional. Also in this patch, an
entertainingly ghastly use of `switch' to allow literal ^M^J to do
the same thing as magic-^M (the Return key) when in Raw protocol.

[originally from svn r1109]
2001-05-09 15:12:26 +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 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 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 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 e48981def4 Miscellaneous fixes to try to make other compilers happier
[originally from svn r691]
2000-10-09 12:19:09 +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 c9e236eb39 Avoid the ldisc passing zero-length strings to back->send(). VMS
sshd has interesting behaviour on receiving a zero-length SSH data
packet.

[originally from svn r508]
2000-06-26 12:55:47 +00:00
Simon Tatham b715fa4276 RDB's patch: ^U sends Telnet Erase Line; line ending is now \r or \r\n
depending on protocol, so local ldisc works with ssh

[originally from svn r417]
2000-03-17 10:31:14 +00:00
Simon Tatham 4b3c825ec7 Robert de Bath's patch: ^C ^Z and ^D send Telnet specials in terminal line
discipline; also switching disciplines in midsession works better

[originally from svn r400]
2000-03-11 14:03:04 +00:00
Simon Tatham 11821d4d27 Fix some picky compiler warnings kindly provided by Borland C++ 5.5
[originally from svn r396]
2000-03-08 10:21:13 +00:00
Simon Tatham 8446532e4a Cleanups to remove warnings for GNU/mingw32 compilation
[originally from svn r325]
1999-11-22 10:07:24 +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