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

140 Commits

Author SHA1 Message Date
Simon Tatham
be5133f376 Arnaud Desitter points out a silly mistake in retrieve_cutbuffer()
(don't test for `int *nbytes' being <= 0, test for the integer it
points to being <= 0!).

[originally from svn r4254]
2004-05-24 11:30:15 +00:00
Simon Tatham
2ff7b4385f Fix indentation after Richard B's patch in rev 1.137 [r3409].
[originally from svn r4241]
[r3409 == 7798a59987]
2004-05-22 14:21:27 +00:00
Simon Tatham
46f26ee483 Richard B's patch to enable users to explicitly request shadow bold
by disabling bold-font-name guessing (if their bold fonts are ugly).
I've turned the UI inside out, but the meat is pretty much the same.

[originally from svn r3410]
2003-08-21 18:39:17 +00:00
Simon Tatham
7798a59987 Richard B's patch to support X cut buffers as well as ordinary
selections, meaning that (a) a pterm can leave copied text in the
cut buffer after it terminates so that applications can pick it up
even though it isn't still around to deliver the selection in
person, and (b) pterm can pick up things left in this way by other
apps.
Downside is that all of this only happens in ISO8859-1, because X is
weird like that.

[originally from svn r3409]
2003-08-21 18:07:27 +00:00
Simon Tatham
11c9c018ec Richard Boulton's patch for improved correctness in selection
handling (generally, selection request timestamps should be set to
the timestamp on the event that caused them).

[originally from svn r3408]
2003-08-21 18:03:06 +00:00
Simon Tatham
d49e6e1476 Real COMPOUND_TEXT support! I was expecting to have to read the spec
and implement the required subset of ISO-2022 in libcharset, but it
turns out that Xlib provides conversion functions between UTF-8 and
compound text, which are just about ideal for us. So now we can
paste multilingual stuff both to and from emacs21. Rock on.

[originally from svn r3193]
2003-05-13 19:57:17 +00:00
Simon Tatham
ef2ccb56cf Allow pterm to receive selections in compound text format. Doesn't
actually _understand_ compound text yet - anything with
non-ASCII-or-8859-1 characters will fail miserably - but it will at
least successfully receive plain text if the pasting application
doesn't see fit to give it out in any other format.

[originally from svn r3192]
2003-05-13 18:43:30 +00:00
Simon Tatham
99bef3d3cf Debian bug #193013 points out that the (default-)one-pixel border is
not redrawn when the window background colour is reconfigured mid-
session. In addition, the Official Window Background is not reset,
meaning that opaque resizes etc will flicker in the old background
colour. This checkin should fix both.

[originally from svn r3190]
2003-05-13 18:14:14 +00:00
Simon Tatham
4b5ce3f46f pterm will now attempt to guess suitable names for any missing fonts
from the ones given; so it'll ask for a font twice as wide as your
base one if you don't specify a wide font, it'll ask for a bolded
version of your base font if you don't specify a bold font, and
similarly for a wide/bold font. Should solve Debian bug #187389; at
least it works for me.

[originally from svn r3175]
2003-05-10 10:15:00 +00:00
Simon Tatham
724fee3dca Stupid braino in get_window_title (thanks Colin): window and icon
titles were being reported the wrong way round. Should fix half of
Debian bug #191751.

[originally from svn r3173]
2003-05-10 09:05:41 +00:00
Simon Tatham
9a242f06ba Fixes for Debian bug #192701 (64-bit gccs warn about casts between
ptrs and ints of different size and -Werror makes this serious).
The GTK bits are done by Colin's patch to use GINT_TO_POINTER
(thanks); the uxnet bits are done by cleaning up the rest of the
code. In particular, network.h now typedefs `OSSocket' to be a type
capable of holding whatever the OS's socket data type is that
underlies our socket abstraction. Individual platforms can make this
typedef themselves if they define OSSOCKET_DEFINED to prevent
network.h redoing it; so the Unix OSSocket is now int. Default is
still void *, so other platforms should be unaffected.

[originally from svn r3171]
2003-05-10 08:35:54 +00:00
Simon Tatham
24d6da8041 Reinstate `-T title', in pterm only.
[originally from svn r3165]
2003-05-06 19:55:00 +00:00
Simon Tatham
6bb121ecb9 Colin's const-fixing Patch Of Death. Seems to build fine on Windows
as well as Unix, so it can go in.

[originally from svn r3162]
2003-05-04 14:18:18 +00:00
Simon Tatham
082cf832c5 Support for non-ISO-8859-1 X keysyms. So in particular, pterm in a
Euro-supporting font with a Euro-enabled X key map will now actually
generate a Euro character rather than shrugging and doing nothing.

[originally from svn r3151]
2003-04-27 11:10:48 +00:00
Simon Tatham
3a3e4d1818 Make the `vtmode' config option work under X. In the process I've
had to move another of its values out into wincfg.c - paradoxically,
this was the `font has X encoding' option! (Because the Unix font
handling code expects to be able to tell for _itself_ whether it has
a font with X-encoded line drawing glyphs.)

[originally from svn r3145]
2003-04-26 14:22:42 +00:00
Simon Tatham
88e0914f91 Aha, _that's_ why the icon title didn't work properly in pterm:
gtk_window_set_title() overwrote both titles at once. Icon title is
now working properly under X, and since X was the reason for the
whole icon/window title separation _anyway_ they default to being
separate.

[originally from svn r3144]
2003-04-26 13:55:47 +00:00
Simon Tatham
426dc87712 Don't block SIGPIPE until _after_ pterm forks, since otherwise the
blockage will propagate to the child process.

[originally from svn r3139]
2003-04-25 15:44:01 +00:00
Simon Tatham
041dcfd83d Unix makefile now uses -O2, which massively cuts down key exchange
time. This gives rise to a whole bunch of spare warnings, one or two
of which might have been actual bugs; now all resolved.

[originally from svn r3134]
2003-04-23 13:48:09 +00:00
Simon Tatham
214b306909 Support for New Session, Duplicate Session and the Saved Sessions
submenu in Unix PuTTY, and Duplicate Session also in pterm. You do
_not_ want to know how this is done. Be warned.

[originally from svn r3110]
2003-04-12 17:37:15 +00:00
Simon Tatham
eaaef4573c Further fiddlings with the size reconfiguration stuff; now
everything seems to work right even when the only thing changed was
the window border.

[originally from svn r3109]
2003-04-12 11:03:44 +00:00
Simon Tatham
a9b6ceb700 Mid-session reconfiguration of scrollback was failing (in Unix)
except when width or height had _also_ been changed. Fixed.

[originally from svn r3108]
2003-04-12 10:44:14 +00:00
Simon Tatham
56a4e967da Implement the ldisc `special' mechanism in Unix, without which local
line editing didn't work at all.

[originally from svn r3107]
2003-04-12 09:27:56 +00:00
Simon Tatham
bc4e41154a Close On Exit and Warn On Close fixes: (a) pty_reconfig needs to
remember changes in COE so it knows whether to print a message, and
(b) once the session has already ended, Warn On Close should shut up.

[originally from svn r3102]
2003-04-12 08:27:03 +00:00
Simon Tatham
c16bde1741 When I implemented the GTK messagebox() function and everything that
needed to use it, I completely forgot about askappend(). D'oh.

[originally from svn r3101]
2003-04-11 18:44:05 +00:00
Simon Tatham
d93f7113d1 Rationalisation of the system of frontend handles. Most modular bits
of PuTTY (terminal, backend, logctx etc) take a `void *' handle
passed to them from the frontend, and used as a context for all
their callbacks. Most of these point at the frontend structure
itself (on platforms where this is meaningful), except that the
handle passed to the backend has always pointed at the terminal
because from_backend() was implemented in terminal.c. This has
finally bitten Unix PuTTY, because both backend and logctx have
been passing their respective and very different frontend handles to
logevent(), so I've fixed it.
from_backend() is now a function supplied by the _frontend_ itself,
in all cases, and the frontend handle passed to backends must be the
same as that passed to everything else. What was from_backend() in
terminal.c is now called term_data(), and the typical implementation
of from_backend() in a GUI frontend will just extract the terminal
handle from the frontend structure and delegate to that.
This appears to work on Unix and Windows, but has most likely broken
the Mac build.

[originally from svn r3100]
2003-04-11 18:36:27 +00:00
Simon Tatham
8e3c37d309 Implement Warn On Close.
[originally from svn r3099]
2003-04-11 18:15:47 +00:00
Simon Tatham
ed46f3aa53 `Copy All' ought to de-highlight any existing selection, in line
with any other operation that shifts the X selection to stuff other
than the highlighted text.

[originally from svn r3098]
2003-04-11 18:10:13 +00:00
Simon Tatham
1be4188a3c `Copy All' context-menu item, for what it's worth.
[originally from svn r3097]
2003-04-11 17:59:36 +00:00
Simon Tatham
d710c84dec Cutting and pasting from the Unix Event Log.
[originally from svn r3095]
2003-04-11 17:40:52 +00:00
Simon Tatham
2e1503e520 Implemented Change Settings under Unix. We are gradually getting there.
[originally from svn r3092]
2003-04-10 18:00:50 +00:00
Simon Tatham
f03cf02cc8 All the stderr messages in this file now use appname rather than
guessing wrongly.

[originally from svn r3089]
2003-04-10 11:57:11 +00:00
Simon Tatham
406d2d8a32 Minor improvements to subsidiary window placement; with any luck the
Event Log should go off the side of the screen rather less often now.

[originally from svn r3088]
2003-04-10 08:53:43 +00:00
Simon Tatham
b49980b953 Event Log for Unix PuTTY. Doesn't yet allow X selection of its
contents, and doesn't automatically maintain scroll position at the
bottom when new entries are added while the list is open, but it's a
start.

[originally from svn r3087]
2003-04-09 18:46:45 +00:00
Simon Tatham
98a608c2e4 Rename pterm's -T option to -title, to avoid clashing with PuTTY's
-T (don't allocate a pty) option.

[originally from svn r3079]
2003-04-08 14:02:34 +00:00
Simon Tatham
fe666b2432 While writing gtkdlg.c I learned how to specify a window's initial
position in GTK, so I can now implement the other half of -geometry
which I'd previously believed to be impossible in GTK. It's still
not perfect, because GTK apparently provides no way for us to get
hold of the X reparent event in order to support negative geometries
in a manner which takes account of the WM borders; but for positive
position it's at least an improvement on the previous version!

[originally from svn r3078]
2003-04-08 13:49:12 +00:00
Simon Tatham
30497ff683 Ctrl+rightclick now pops up a context menu in Unix PuTTY and pterm.
This menu is not yet fully populated, but it has an About box (yet
another licence location :-/ ) and supports the new configurable
specials menu (thus making Unix PuTTY do one tiny thing which
OpenSSH-in-a-pterm can't :-).

[originally from svn r3062]
2003-04-05 16:05:00 +00:00
Simon Tatham
3bd0415579 Turned the old `Telnet Command' System-submenu into a more general
`Special Command' menu, in which any backend can place its own list
of magical things the user might want to ask the backend to do. In
particular I've implemented the recently proposed "break" extension
in SSH2 using this mechanism.
NB this checkin slightly breaks the Mac build, since it needs to
provide at least a stub form of update_specials_menu().

[originally from svn r3054]
2003-04-04 20:21:05 +00:00
Simon Tatham
7706da5e17 Various error-handling fixes, mostly in Unix PuTTY but one (failure
to save a session) crosses over into the platform-independent side.

[originally from svn r3041]
2003-04-01 18:10:25 +00:00
Simon Tatham
62844b4590 Support for PuTTY-style command-line arguments in Unix PuTTY. I
think it's now actually usable as a day-to-day SSH client, even if
things like the Event Log are still missing. So I call that a decent
lunch hour's work :-)

[originally from svn r3034]
2003-03-31 12:10:53 +00:00
Simon Tatham
3a41ec782e And everyone's favourite cosmetic change: Unix PuTTY now doesn't
claim to be pterm in the window title :-)

[originally from svn r3032]
2003-03-31 11:42:45 +00:00
Simon Tatham
823f52c540 Checkin of last night's work on GTK message boxes. Unix PuTTY now
has proper GUI prompts for host keys etc, so it should now be usable
without a controlling tty.

[originally from svn r3028]
2003-03-31 11:21:07 +00:00
Simon Tatham
a3428ae953 Having created and used uxsel, it actually turns out to be
practically trivial to put all the pieces together and create a
working prototype of Unix PuTTY! It's missing a lot of things -
notably GUI request boxes for host keys and logfiles and so forth,
the Event Log, mid-session reconfiguration, session loading and
saving, sensible population of the character sets drop-down list and
probably other fiddly little things too - but it will put up a
config box and then create a GUI window containing an SSH connection
to the host you specified, so it's _basically_ there. Woo!

[originally from svn r3020]
2003-03-29 19:52:50 +00:00
Simon Tatham
5107780c54 pterm now uses the new uxsel module, so it's one step closer to
being able to be a PuTTY as well as a pterm. In the process I've
also moved icky things like actually reading from the pty fd and
printing the `terminated on signal' messages into pty.c where they
obviously should have been in the first place. Also there's been one
interesting repercussion in the terminal code: terminal.c's
from_backend now calls term_out() directly rather than expecting the
front end to call it afterwards. This has had the entertaining side
effect of fixing a Windows-specific bug whereby activity in a port
forwarding through a PuTTY with a blinking cursor caused the cursor
to blink to ON (!!!!). So, a surprisingly far-reaching checkin as it
turns out...

[originally from svn r3017]
2003-03-29 18:30:14 +00:00
Simon Tatham
d36a4c3685 Introduced wrapper macros snew(), snewn() and sresize() for the
malloc functions, which automatically cast to the same type they're
allocating the size of. Should prevent any future errors involving
mallocing the size of the wrong structure type, and will also make
life easier if we ever need to turn the PuTTY core code from real C
into C++-friendly C. I haven't touched the Mac frontend in this
checkin because I couldn't compile or test it.

[originally from svn r3014]
2003-03-29 16:14:26 +00:00
Simon Tatham
83da92826e Richard B's patch to add WINDOWID support to pterm.
[originally from svn r2912]
2003-03-06 12:57:37 +00:00
Simon Tatham
f26b7aa0d3 Created new data types Filename' and FontSpec', intended to be
opaque to all platform-independent modules and only handled within
per-platform code. `Filename' is there because the Mac has a magic
way to store filenames (though currently this checkin doesn't
support it!); `FontSpec' is there so that all the auxiliary stuff
such as font height and charset and so on which is needed under
Windows but not Unix can be kept where it belongs, and so that I can
have a hope in hell of dealing with a font chooser in the forthcoming
cross-platform config box code, and best of all it gets the horrid
font height wart out of settings.c and into the Windows code where
it should be.
The Mac part of this checkin is a bunch of random guesses which will
probably not quite compile, but which look roughly right to me.
Sorry if I screwed it up, Ben :-)

[originally from svn r2765]
2003-02-01 12:54:40 +00:00
Simon Tatham
52882fa006 And another bit missing from the settings changes: pterm's platform
default for CloseOnExit was encoded wrongly. Hopefully this should
be everything now; I'm really starting to get sick of picking up the
pieces after my two checkins yesterday. Perhaps I should have waited
until I had a brain before doing them in the first place.

[originally from svn r2746]
2003-01-28 12:06:37 +00:00
Simon Tatham
c370336a92 xterm apparently supports ESC[90m through ESC[97m to set bright
foreground colours, and ESC[100m through ESC[107m to set bright
background colours. Hence, so do we. Bright-foreground is
distinguishable from bold, and bright-background distinguishable
from blink, when it leaves terminal.c; the front end may then choose
to display them in the same way if it's configured to do so. This
change makes the xterm backend for Turbo Vision (!!!) work properly.
Untested on Mac.

[originally from svn r2734]
2003-01-27 23:03:31 +00:00
Simon Tatham
6aa4211f6e Remove all `enum'-typed variables from the Config structure.
Everything in there which is integral is now an actual int, which
means my forthcoming revamp of the config box will be able to work
with `int *' pointers without fear of doom.

[originally from svn r2733]
2003-01-27 18:02:24 +00:00
Simon Tatham
063469571a Fix Unix breakage from term_mouse() revamp too.
[originally from svn r2723]
2003-01-25 16:23:48 +00:00