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

1322 Commits

Author SHA1 Message Date
Simon Tatham
87f9446a26 Support XDM-AUTHORIZATION-1 for connecting to local X servers. If
we're going to be a security program, we can at least make a token
effort to use the most secure local X auth available! And I'm still
half-tempted to see if I can support it for remote X servers too...

[originally from svn r2537]
2003-01-11 09:31:54 +00:00
Simon Tatham
86977efa81 Introduce framework for authenticating with the local X server.
Windows and Mac backends have acquired auth-finding functions which
do nothing; Unix backend has acquired one which actually works, so
Plink can now do X forwarding believably.
(This checkin stretches into some unlikely parts of the code because
there have been one or two knock-on effects involving `const'. Bah.)

[originally from svn r2536]
2003-01-10 18:33:35 +00:00
Simon Tatham
35cd654c75 Unix plink now catches SIGWINCH and propagates local terminal
resizes to the remote end.

[originally from svn r2515]
2003-01-09 18:28:01 +00:00
Simon Tatham
f928707849 Support asynchronous connect() in Unix networking. Now a port
forwarding to a nonexistent host shouldn't hold up the rest of the
program.

[originally from svn r2514]
2003-01-09 18:14:24 +00:00
Simon Tatham
4d86f5979d I'm sick of all those #ifdefs in settings.c, and in any case plink
and pterm need at least one default setting to be _different_ (pterm
needs the default term type to be `xterm', while plink needs it to
be taken from $TERM). So here's a completely new alternative
mechanism for platform- and app-specific default settings. Ben will
probably want to check the integrity of the Mac port, since I've
fiddled with it without testing that it still compiles.

[originally from svn r2513]
2003-01-09 18:06:29 +00:00
Simon Tatham
b527354246 Ahem. Now pterm actually uses wc_to_mb in a situation where it needs
to pass in a default character, it would help if wc_to_mb actually
_honoured_ the default-character parameter.

[originally from svn r2490]
2003-01-07 13:09:56 +00:00
Simon Tatham
106bf20b35 Work around a weird bug in gdk_draw_text_wc().
[originally from svn r2437]
2003-01-03 17:52:51 +00:00
Simon Tatham
ea5be2db38 Fixes to direct-to-font mode: I'd inadvertently enabled it for any
font whose encoding comes up as CS_NONE - but this is also true for
iso10646-1 fonts, since libcharset doesn't support wide-character
encodings! Hence UTF-8 cut and paste was enabled in ordinary modes,
but disabled in UTF-8 mode, which was a bit embarrassing. Now we
have a dedicated flag variable indicating direct-to-font mode.

[originally from svn r2425]
2003-01-02 16:17:56 +00:00
Simon Tatham
2435c54597 sk_nonamelookup() should ensure the sockaddr it returns has `error'
set to NULL. Otherwise it'll be random uninitialised goop. Not good.

[originally from svn r2416]
2003-01-02 10:07:50 +00:00
Simon Tatham
cab553028a Proper support for using the font's own character encoding. If we
know what that encoding actually is, we can do our best to support
additional charsets (VT100 linedrawing, SCO ACS, UTF-8 mode) using
the available characters; if we don't, we fall back to a mode where
we disable all Unicode cut-and-paste and assume any Unicode
character is undisplayable.

[originally from svn r2413]
2003-01-01 22:25:25 +00:00
Simon Tatham
d97ac46223 Support for double-width (CJK) characters, using the xterm-like
options -fw and -fwb to specify wide and wide-bold fonts.

[originally from svn r2412]
2003-01-01 21:53:22 +00:00
Simon Tatham
ad2bbc52a4 First draft of Unicode support in pterm. It's pretty complete: it
does UTF-8 copy and paste (falling back to normal strings if
necessary), it understands X font encodings and translates things
accordingly so that if you have a Unicode font you can ask for
virtually any single-byte encoding and get it (Mac-Roman pterm,
anyone?), and so on. There's work left to be done (wide fonts for
CJK spring to mind), but I reckon this is a pretty good start.

[originally from svn r2395]
2002-12-31 12:20:34 +00:00
Simon Tatham
a564ad3140 Support for doing DNS at the proxy end. I've invented a new type of
SockAddr, which just contains an unresolved hostname and is created
by a stub function in *net.c. It's an error to pass this to most of
the real-meat functions in *net.c; these fake addresses should have
been dealt with by the time they get down that far. proxy.c now
contains name_lookup(), a wrapper on sk_namelookup() which decides
whether or not to do real DNS, and the individual proxy
implementations each deal sensibly with being handed an unresolved
address and avoid ever passing one down to *net.c.

[originally from svn r2353]
2002-12-18 16:23:11 +00:00
Simon Tatham
8304f4e0dc Stop proxying connections to localhost by default; should fix
`x11-proxy-crash'.

[originally from svn r2348]
2002-12-18 12:18:54 +00:00
Simon Tatham
99b870dbc6 Implement `portfwd-loopback-choice'. Works on local side in Unix as
well, though it's a lot less useful since you still can't bind to
low-numbered ports of odd loopback IPs. Should work in principle for
SSH2 remote forwardings as well as local ones, but OpenSSH seems
unwilling to cooperate.

[originally from svn r2344]
2002-12-18 11:39:25 +00:00
Owen Dunn
269557cb64 Avoid potential memory leak.
[originally from svn r2278]
2002-12-04 12:53:42 +00:00
Simon Tatham
06a8f88e58 #include <signal.h>. Compiled fine without it on Debian 3.0, but not
on 2.2. Wonder what changed.

[originally from svn r2277]
2002-12-04 12:40:36 +00:00
Owen Dunn
cd3252bb66 Changed to use strerror()
[originally from svn r2276]
2002-12-04 12:39:32 +00:00
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
Ben Harris
8280e645e4 Add a "Config *" argument to term_init(), and use that instead of the global
cfg throughout the terminal emulator.  Not tested in PuTTY and pterm, but they
just pass in &cfg.

[originally from svn r2248]
2002-11-23 19:01:01 +00:00
Simon Tatham
0c110dcd10 Fixes for more robust handling of command-line parse errors.
[originally from svn r2236]
2002-11-20 20:09:02 +00:00
Simon Tatham
57d1921d04 Largely-placeholder man page for Plink, for the sake of not
irritating `make install'. Thanks RJK, again.

[originally from svn r2234]
2002-11-20 19:49:59 +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
a1125a8052 Improve robustness in random seed file handling.
[originally from svn r2200]
2002-11-07 20:01:04 +00:00
Simon Tatham
a44ba79e2e Packet-level logging should now work properly in Unix Plink.
[originally from svn r2193]
2002-11-05 13:21:03 +00:00
Simon Tatham
3a084e9333 Fix command-line error handling in pterm. (Hint: wrapping a multi-
statement macro in `do ... while (0)' and putting a `continue'
within it don't go well together. Oops.)

[originally from svn r2192]
2002-11-05 13:20:42 +00:00
Simon Tatham
64e9693c4d Substitute -' (magical hyphen) for \-' (inert minus sign) in the
manpage. Fixes Debian bug #167761.

[originally from svn r2190]
2002-11-05 09:37:31 +00:00
Simon Tatham
82e447c1d0 Improve shadow bold mode: set the default shadow bold offset to +1
not -1 (it turns out _most_ X fonts prefer the former, though
irritatingly my favourite real X font used to prefer the latter
which was why I made the X version of my Font Of Choice do so too),
and also clip to the boundaries of the rectangle we should be
drawing text in. This still doesn't completely prevent display
corruption in the case where text drawn in one sweep is partially
overwritten in a future one, but gnome-terminal has this problem
too, and now we've got the right default SB offset _and_ offer the
opportunity to reconfigure it I think this is pretty good for now.

[originally from svn r2184]
2002-11-02 16:16:35 +00:00
Simon Tatham
d6739ada35 Another signal-handling refinement from RJK: the SIGCHLD handler
should be prepared to reap more than one child per invocation if
necessary, since we do after all have two.

[originally from svn r2183]
2002-11-02 16:05:26 +00:00
Simon Tatham
53eb272766 Improve the noise collection for the internal random pool.
[originally from svn r2182]
2002-11-02 15:23:20 +00:00
Simon Tatham
93e9fadc75 RJK's general signal-handling robustness patch. Should fix the weird
spin behaviour occasionally seen after pterm's child process dies.

[originally from svn r2181]
2002-11-02 14:35:57 +00:00
Simon Tatham
f7d23ae746 Prevent another segfault. Oops.
[originally from svn r2178]
2002-11-01 18:51:22 +00:00
Simon Tatham
c20ffe59a3 Add a .cvsignore for the Unix subdir
[originally from svn r2176]
2002-11-01 13:37:39 +00:00
Simon Tatham
fd3bc934d9 Improve handling of oobinline sockets; Plink in telnet mode now
doesn't hang when you hit ^C, which is nice. I think a better
solution would involve nonblocking sockets; as it stands it's a
little dependent on what may be quirks of the Linux socket layer.

[originally from svn r2175]
2002-11-01 13:36:48 +00:00
Simon Tatham
48147ab3a8 Implement access to the SSH agent. This ought to make agent
forwarding work as well, of course.

[originally from svn r2172]
2002-11-01 12:55:13 +00:00
Simon Tatham
d833765b78 Replace a \r\n with an ordinary \n - this isn't Windows!
[originally from svn r2171]
2002-11-01 12:54:51 +00:00
Simon Tatham
057eabf46d Stop the segfault on failure to resolve a host name.
[originally from svn r2170]
2002-11-01 12:54:22 +00:00
Simon Tatham
9c5fe60bfe Add a \n at the end of an error message - oops.
[originally from svn r2169]
2002-11-01 12:54:03 +00:00
Simon Tatham
317180ed49 First attempt at a Unix port of Plink. Seems to basically work;
doesn't yet use the SSH agent, no way to specify arbitrary config
options, no manpage yet, couple of other fiddly things need doing,
but it makes SSH connections and doesn't fall over horribly so I say
it's a good start. Now to run it under valgrind...

[originally from svn r2165]
2002-10-31 19:49:52 +00:00
Simon Tatham
db71c5006e RJK's `pterm --help' patch. I _must_ find a better alternative to
this init sequence - it surely can't be right that `pterm --help'
with no DISPLAY complains at the lack of DISPLAY rather than giving
a help message!

[originally from svn r2164]
2002-10-30 18:22:37 +00:00
Simon Tatham
52bdffbfe0 More preparatory work: remove the <windows.h> include from lots of
source files in which it's no longer required (it was previously
required in anything that included <putty.h>, but not any more).
Also moved a couple of stray bits of exposed WinSock back into
winnet.c (getservbyname from ssh.c and AF_INET from proxy.c).

[originally from svn r2160]
2002-10-30 17:57:31 +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
ec5a7ee940 CloseOnExit now defaults to COE_ALWAYS for pterm, bringing it back
into line with most other xtermalikes. On Unix, the exit code of a
shell is the last exit code of one of its child processes, even if
it's an interactive shell - so some pterms will close and some will
not for no particularly good reason. Power-detaching a screen
session is especially bad for this.
COE_NORMAL is still useful for specialist purposes (running a single
command in its own pterm), but I don't think it's a sane default,
unfortunately.

[originally from svn r2154]
2002-10-28 17:39:21 +00:00
Simon Tatham
963742fd4e Fix Alt+numberpad in pterm. For a start, there was a bug whereby if
a pterm came up while Alt was down, then releasing it would cause a
^@ to be generated. Also, though, I've decided that Alt plus a
single numberpad key should not generate a low-numbered control
code, because that's too easy to do by mistake and the codes are too
powerful. Anyone who really _wants_ to create a ^C or ^D from the
numberpad can do Alt-03 or Alt-04 easily enough; two-digit codes and
more such as Alt-65 are unaffected.

[originally from svn r2153]
2002-10-28 17:34:45 +00:00
Simon Tatham
9a5939e9cf First bug discovered as a result of global-removal: pasting into
pterm caused a crash because I had the wrong prototype for the
selection_received event handler. Should be fixed.

[originally from svn r2150]
2002-10-28 09:38:28 +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
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
24530b945e Port forwarding module now passes backend handles around properly.
As a result I've now been able to turn the global variables `back'
and `backhandle' into module-level statics in the individual front
ends. Now _that's_ progress!

[originally from svn r2142]
2002-10-26 10:33: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
ba0468b983 Oops; remembering to call term_provide_resize_fn in the Unix front
end would probably help. Thanks Colin.

[originally from svn r2140]
2002-10-25 22:00:22 +00:00
Simon Tatham
528a826574 Fix the nasty flashing-light-grey-on-resize problem, after MCV
helpfully alerted me to the existence of gdk_window_set_background().

[originally from svn r2129]
2002-10-25 11:58:59 +00:00
Simon Tatham
6e2a0c079b pty backend now supports the changed function interface, so pterm
now compiles and runs again after the major destabilisation.
Unfortunately it wasn't feasible to actually encapsulate all of the
pty backend's data, since the utmp helper and the need to fork and
drop privileges before doing anything else at all rather confuses
matters. So the data handle passed around to the pty backend is a
null pointer, and the pty backend is just as global-ridden as it
always has been. Shame, but such is life.

[originally from svn r2128]
2002-10-25 11:50:51 +00:00
Simon Tatham
bdb47167d1 Implement handling of all Close On Exit modes. Default is to close
only on clean exit, which is a departure from most xterm-alikes but
Ian reckons people will love me for it. If this turns out to be
wrong, we can always change the default for Unix.

[originally from svn r2120]
2002-10-23 14:21:12 +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
48314f7dc0 Make -ut work the right way round! :-)
[originally from svn r2114]
2002-10-22 13:27:58 +00:00
Simon Tatham
5ce13aad0f Stop `pterm -ut-' leaving the unnecessary utmp helper as a zombie
process (Debian bug #165887).

[originally from svn r2113]
2002-10-22 13:26:57 +00:00
Simon Tatham
45c494ff9d Make sure SIGINT and SIGQUIT haven't been nobbled in our child
process by weird POSIX-required shell behaviour.

[originally from svn r2110]
2002-10-21 23:01:34 +00:00
Simon Tatham
068da38044 Don't bother closing fds 0-2 before dup2ing over them; there's no
need, and it means we always have a valid open stderr.

[originally from svn r2109]
2002-10-21 23:00:18 +00:00
Simon Tatham
a14e970585 VT100 line drawing characters should only happen between 0x5F and
0x7E, not everywhere else. Silly me thought nobody would bother to
depend on this :-)

[originally from svn r2108]
2002-10-21 22:59:14 +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
de8789b8f2 ScrollOnKey wasn't working because I failed to set seen_key_event in
pterm.c.

[originally from svn r2106]
2002-10-20 12:44:29 +00:00
Simon Tatham
a219808b15 Reject unrecognised command-line options; thanks rjk.
[originally from svn r2102]
2002-10-18 15:26:54 +00:00
Simon Tatham
14a7d67b26 Fix typo in man page. Thanks Richard.
[originally from svn r2101]
2002-10-18 10:38:22 +00:00
Simon Tatham
dc7afc9ca7 Oops - that fix wasn't _quite_ right, since it killed all
non-function keys completely :-/

[originally from svn r2096]
2002-10-17 16:58:24 +00:00
Simon Tatham
7d7b523977 Make the shadow bold offset configurable, after discovering that
7x13 goes the other way to all other X fonts I've ever seen. (Arrgh.)

[originally from svn r2095]
2002-10-17 16:51:01 +00:00
Simon Tatham
34bdd30857 This should fix the bug causing Alt-Shift to generate Escape.
[originally from svn r2093]
2002-10-17 16:45:17 +00:00
Simon Tatham
3c6a770e9f Add the -xrm command-line option, to allow specification of an
arbitrary X resource which doesn't have a dedicated command-line
option.

[originally from svn r2089]
2002-10-16 22:54:58 +00:00
Simon Tatham
e70c66b8b0 Add a man page.
[originally from svn r2088]
2002-10-16 22:43:35 +00:00
Simon Tatham
ac3d4e70ad A few more command-line options.
[originally from svn r2086]
2002-10-16 16:00:38 +00:00
Simon Tatham
1f2ee65ae9 Implement reading of X resources, and -name to change the name under
which to look them up.

[originally from svn r2084]
2002-10-16 14:32:06 +00:00
Simon Tatham
1aed45b4e1 Fix utmp and pty handling so that GTK never complains about running
set[ug]id. All privs-requiring pty operations are done at the very
start of the run, then privs are dropped before initialising GTK.
Utmp is handled by forking a still-privileged subprocess at this
point, and later asking it (through a pipe) to stamp utmp. The
subprocess cleans up utmp on exit, which has the additional
advantage that if the main pterm process suffers some sort of
unexpected termination (up to and including SIGKILL) the subprocess
can still mop up utmp.

[originally from svn r2082]
2002-10-16 12:17:51 +00:00
Simon Tatham
5bc8f34f58 Bug `shift-backspace': whichever of ^H and ^? is configured for
Backspace, Shift-Backspace should do the _other_ one. Thanks to
Justin Bradford.

[originally from svn r2079]
2002-10-16 09:40:36 +00:00
Simon Tatham
4f3806f735 Support bold-as-font, by means of a separate bold font (if one was
supplied) or shadow bolding (if not). As usual, can't yet be turned
on without a recompile.

[originally from svn r2077]
2002-10-15 18:42:48 +00:00
Simon Tatham
07a69c5245 Configure the pty so that it agrees with our idea of whether
Backspace sends ^H or ^?.

[originally from svn r2076]
2002-10-15 18:36:18 +00:00
Simon Tatham
d3983ca06b Support underline and vertical-line cursors as well as block.
[originally from svn r2075]
2002-10-15 18:18:25 +00:00
Simon Tatham
58ee7d86a6 If we can't load the specified font, give an error message rather
than segfaulting.

[originally from svn r2074]
2002-10-15 17:41:22 +00:00
Simon Tatham
12189e7193 Printer support: cfg.printer is assumed to be a Unix command through
which to pipe printed data. Of course by default printing is
disabled; typically cfg.printer would be set to `lpr', perhaps with
some arguments.

[originally from svn r2073]
2002-10-15 17:38:04 +00:00
Simon Tatham
80063aeef7 Scrollbar can now be configured to go on the left (although the
current configuration mechanism doesn't support it).

[originally from svn r2072]
2002-10-15 17:24:13 +00:00
Simon Tatham
3584334835 Support ALT + numeric keypad for typing in strange character codes.
[originally from svn r2071]
2002-10-15 17:18:24 +00:00
Simon Tatham
5b061e20cf Add newline at EOF in uxucs.c. Thanks Richard. :-)
[originally from svn r2070]
2002-10-15 16:52:45 +00:00
Simon Tatham
0fdab304de Support scrolling with the mouse wheel (X servers apparently usually
send a button 4 press for an upward wheel movement and a button 5
press for a downward one). Untested since my own trackball's button
4 does nothing obvious. Someone with a mouse wheel should give this
a workout.

[originally from svn r2069]
2002-10-15 16:50:42 +00:00
Simon Tatham
6f9ce1b724 Support for blinking text and blinking cursor. Won't actually be
accessible until there's a way to configure it on, but it worked in
tests.

[originally from svn r2067]
2002-10-15 16:38:10 +00:00
Simon Tatham
69f78385ab Use the appalling gnome-terminal hack for server-controlled resizes
rather than the gtk_window_set_policy approach; the GNOME people say
that the former is the Right Thing in spite of the latter looking
obviously plausible.

[originally from svn r2066]
2002-10-15 16:24:42 +00:00
Simon Tatham
851a376359 Remove some rogue diagnostics.
[originally from svn r2065]
2002-10-15 15:44:23 +00:00
Simon Tatham
e18cf6b714 Don't forget to initialise the pixel size parameters of the window
as passed to the pty...

[originally from svn r2064]
2002-10-15 15:16:21 +00:00
Simon Tatham
8782e6a3b0 Richard's patch to make the scrollbar configurably absent. (Still
want a new option to configure it to be on the LHS though. And some
lunatic is bound to ask for an xterm-style scrollbar too... :-)

[originally from svn r2062]
2002-10-15 14:55:19 +00:00
Simon Tatham
c15a6ada0c Support for all the server-side window configuration requests,
including server-controlled resizing. Irritatingly I've had to use a
deprecated option to gtk_window_set_policy() to make this work,
resulting in me raising GNOME bug #95818 to ask for it to be un-
deprecated again...

[originally from svn r2061]
2002-10-15 14:31:06 +00:00
Simon Tatham
0c011dcbe0 Introduce the ability to control whether the shell run in pterm is a
login shell or not. Also moved these new pieces of configuration
into the Config structure, though they won't stay there forever
since they will need to be moved out into platform-dependent config.

[originally from svn r2060]
2002-10-15 13:07:18 +00:00
Simon Tatham
0813c25bf6 Finish up utmp processing: add the -ut- command-line option to
suppress stamping it at all. (I suppose this ought to be part of the
cfg structure really.)

[originally from svn r2059]
2002-10-15 12:42:58 +00:00
Simon Tatham
6118021749 Support for utmp, wtmp and lastlog. Probably not terribly portable
as yet, but seems to work plausibly on Linux.

[originally from svn r2058]
2002-10-15 12:29:52 +00:00
Simon Tatham
cec0515b2c Support for BSD-style pty devices. Tested under Linux; might need
minor tweaks to run under other BSD-style OSes.

[originally from svn r2056]
2002-10-15 10:49:38 +00:00
Simon Tatham
b8625a2bf5 Trim wide text properly at the RH edge of the screen.
[originally from svn r2055]
2002-10-15 09:30:16 +00:00
Simon Tatham
74f8f8e8ac Support for line attributes: ESC #3, #4 and #6 for double-width and
double-height text.

[originally from svn r2054]
2002-10-15 00:22:48 +00:00
Simon Tatham
cf74237900 Don't cause the mouse pointer to reappear just because it's changed
shape.

[originally from svn r2053]
2002-10-14 23:39:07 +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
7dff77fccf Set up the palette _before_ trying to paint the window black.
[originally from svn r2051]
2002-10-14 22:14:54 +00:00
Simon Tatham
1d65d8ae5f Add the -log option, which activates full session logging. Should be
handy next time I need to debug any weird terminal problems...

[originally from svn r2050]
2002-10-14 10:33:34 +00:00
Simon Tatham
6b2f5c95ab Support server requests for colour palette changes.
[originally from svn r2048]
2002-10-14 10:21:35 +00:00
Simon Tatham
a8ba9f422b Don't forget to call term_paste() when we get the chance, or big
pastes won't go through. (Not sure whether I should remove this
weird behaviour completely for pterm. It's a bit bizarre.)

[originally from svn r2047]
2002-10-14 10:14:12 +00:00
Simon Tatham
209fe88b79 Support NetHack keypad mode. :-)
[originally from svn r2046]
2002-10-14 10:06:07 +00:00
Simon Tatham
e0c7339695 Support for hiding the mouse pointer on keypresses. Currently
activated by `-hide' on the command line.

[originally from svn r2045]
2002-10-14 09:58:27 +00:00
Simon Tatham
76cda50683 xterm-class programs should exit when their primary child process
dies, rather than waiting around until the last open handle on the
pty closes.

[originally from svn r2044]
2002-10-14 09:18:34 +00:00
Simon Tatham
b3072e227e SEL_NL is different between Windows and Unix; move it out into the
platform-specific header files.

[originally from svn r2043]
2002-10-14 09:06:31 +00:00
Simon Tatham
3c3fd86691 Various faffs in the pty allocation process to get controlling
terminals right. Irritatingly this was working when run from another
[xsp]term but not when run from my GNOME panel. I think it's now
more robust.

[originally from svn r2041]
2002-10-14 08:56:55 +00:00
Simon Tatham
6758c89927 Window title configurability: -T to set it from the command line,
support for the xterm escape sequences to set it, and support for
the xterm escape sequence to query it.

[originally from svn r2040]
2002-10-14 00:05:37 +00:00
Simon Tatham
598018644a Don't forget to set $TERM when we spawn the pty. Of course I haven't
noticed this until now because I've always been spawning it _from_
another xterm! :-)

[originally from svn r2039]
2002-10-13 23:57:40 +00:00
Simon Tatham
e6d2d5260f gnome-terminal insists on receiving the selection as COMPOUND_TEXT
rather than STRING, so we can now supply that too. Pasting both ways
between pterm and gnome-terminal now works.

[originally from svn r2038]
2002-10-13 23:48:31 +00:00
Simon Tatham
bacc5cf102 Added two simple command-line arguments: -fn (so I can have my Font
Of Choice back :-) and -e to run a command other than $SHELL.

[originally from svn r2037]
2002-10-13 12:54:17 +00:00
Simon Tatham
0dff7f90da Resizing of pterm now works, and the size information is correctly
sent on to the pty.

[originally from svn r2036]
2002-10-13 12:44:01 +00:00
Simon Tatham
504c198e73 Deal with the appalling mouse pointer colours. (Why doesn't GTK let
us select our own mouse pointer fg and bg for standard pointers?
It's ludicrous that we can only do it for pixmap-derived ones. :-( )

[originally from svn r2035]
2002-10-13 12:17:03 +00:00
Simon Tatham
b4cf83ed6b Shift-Ins pastes.
[originally from svn r2034]
2002-10-13 11:27:39 +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
b65b4e36f5 Fix underline, which I cleverly broke while adding support for the
window border. Oops.

[originally from svn r2032]
2002-10-13 09:57:07 +00:00
Simon Tatham
534c8b4c4a Scrollbar now exists and functions; so do Shift-PgUp / Shift-PgDn.
[originally from svn r2031]
2002-10-13 09:54:36 +00:00
Simon Tatham
5aee6cf2af Stop hard-coding a nonstandard font. We now default to `fixed', and
pick up the font's real width and height. This means I now _can't_
use my font of choice until I implement some command-line options; I
wonder what feature will appear next :-)

[originally from svn r2027]
2002-10-10 14:42:56 +00:00
Simon Tatham
33a54aaa8a And that's it! pty.c is now a real pty backend rather than a
loopback interface; pterm now runs $SHELL and gives every impression
of being not a bad terminal emulator. I'm quite pleased with that. :-)

[originally from svn r2015]
2002-10-10 12:40:05 +00:00
Simon Tatham
77096ce405 Half-decent keyboard handling for pterm. Not very well done - it
would have been better to abstract the general key-handling rules
away from the platform-specific keysyms rather than doing clone-
and-hack as I've done - but it'll serve for now. Now all I need is a
real pty back end and pterm should be a just-about-usable prototype.

[originally from svn r2013]
2002-10-10 12:14:05 +00:00
Simon Tatham
77a43c5d7a Temporary hack which makes vt100 line drawing work in the prototype
pterm.

[originally from svn r2012]
2002-10-10 11:33:46 +00:00
Simon Tatham
622f9b44f0 A sensible minimum of do_text() and do_cursor() is now implemented.
This means pterm actually _looks_ like the PuTTY terminal emulator
engine, instead of merely giving evidence to the expert eye that
said engine is hidden in there somewhere :-)

[originally from svn r2011]
2002-10-10 10:40:30 +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