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

237 Commits

Author SHA1 Message Date
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
d08f9e8fce Fix minor breakage on Windows as a result of term_mouse revamp.
[originally from svn r2722]
2003-01-25 16:22:49 +00:00
Ben Harris
af4be2e83e Change the term_mouse interface a little so that it gets passed
both the raw and the cooked mouse button, with the mapping being done in
advance by the front-end.  This is useful because it allows the front-end to
use information other than the raw button (e.g. the modifier state) to decide
which cooked button to generate.
.
Front ends other than the Mac one are untested, but they just call
translate_button() themselves and pass the result to term_mouse().

[originally from svn r2721]
2003-01-25 16:16:45 +00:00
Jacob Nevins
123ff82f7a Statements after declarations, dammit
[originally from svn r2618]
2003-01-16 00:52:28 +00:00
Jacob Nevins
e8ebb4c879 Implement Simon's suggestion of moving DEFAULT_PROTOCOL into a per-backend-
link-module const variable `be_default_protocol' which suggests a sensible
default to the front end (which can ignore it). (DEFAULT_PORT is replaced by a
lookup in the backend[] table.)
Still not pretty, but it does mean that the recent fix for `ssh-default'
doesn't break PuTTYtel.

[originally from svn r2613]
2003-01-15 20:47:50 +00:00
Owen Dunn
8cb6506cd3 Use set_icon and set_title rather than SetWindowText. Should fix
inactive-title.

[originally from svn r2606]
2003-01-15 14:51:54 +00:00
Simon Tatham
b2374a64fd Deglobalise the Unicode module. Despite all my grand plans, I've
just done this the very simple way - bundle all the globals into a
data structure and pass pointers around. One particularly ugly wart
is that wc_to_mb now takes a pointer to this structure as an
argument (optional, may be NULL, and unused in any Unicode layer
that's even marginally less of a mess than the Windows one). I do
need to do this properly at some point, but for now this should just
about be adequate. As usual, the Mac port has not been updated.

[originally from svn r2592]
2003-01-14 18:28:23 +00:00
Owen Dunn
5c7bc54022 Ctrl-PgUp and Ctrl-PgDn now scroll by one line on Unix and Windows
[originally from svn r2582]
2003-01-14 11:24:26 +00:00
Simon Tatham
527c081a2e Oops - put the right `void *' in back->reconfig.
[originally from svn r2579]
2003-01-13 18:03:55 +00:00
Owen Dunn
011542a9d5 Make ^/ do the same as ^_ (wish control-slash)
[originally from svn r2576]
2003-01-13 15:06:56 +00:00
Simon Tatham
6af1a9e4e9 Having laid all the groundwork, we can now remove the global `cfg'
completely from putty.h. It's now static in each of the command-line
front ends, shared only between window.c and windlg.c in PuTTY
proper (I've tested this by doing #define cfg cfgsillyname in those
two files only, and it still links so nobody else is using that
symbol!), and part of the `inst' structure in pterm. I think that
only leaves the Unicode module as the last stubborn holdout in the
anti-global-variables campaign.

[originally from svn r2568]
2003-01-12 15:32:31 +00:00
Simon Tatham
2d469ba497 The logging module now contains a local copy of cfg too.
[originally from svn r2566]
2003-01-12 15:10:27 +00:00
Simon Tatham
ac2367bc72 The Unicode module no longer depends on `cfg', since it gets the
relevant bits of it passed in to init_ucs(). (Actually I pass in all
of it in the Windows version, since it's a bit hairy in there.)

[originally from svn r2565]
2003-01-12 14:59:54 +00:00
Simon Tatham
f49c8c5a07 The back ends now contain their own copies of the Config structure,
and have a function to pass in a new one. (Well, actually several
back ends don't actually bother to do this because they need nothing
out of Config after the initial setup phase, but they could if they
wanted to.)

[originally from svn r2561]
2003-01-12 14:48:29 +00:00
Simon Tatham
10eb26a7dd term->cfg is now a full copy of the Config structure, not a pointer;
and term_reconfig() now passes in a new structure which is copied
over the top. This means that the old and new structures can be
compared, and the _current_ as well as default states of auto wrap
mode, DEC origin mode, BCE, blinking text and character classes can
be conveniently reconfigured in mid-session without requiring a
terminal reset.

[originally from svn r2557]
2003-01-12 14:30:02 +00:00
Simon Tatham
5738dc219b The command-line routines now take a pointer to `cfg' as an
argument, so they don't depend on it being a global any more.

[originally from svn r2555]
2003-01-12 14:17:03 +00:00
Jacob Nevins
368ee4856b Fixing trivial warnings spotted by Mingw-2.0.0/gcc-3.2:
window.c:90: warning: `do_mouse_wheel_msg' declared `static' but never defined
Introduced in 1.185 [r1499]. This function doesn't appear to ever have
existed.

[originally from svn r2334]
[r1499 == d6016149bf]
2002-12-15 13:31:58 +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
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
79b086658d Further deglobalisation: settings.c now has a more sensible interface.
[originally from svn r2162]
2002-10-30 18:12:46 +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
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
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
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
a24d9d3029 Fix for `hostname-whitespace'; thanks to Justin Bradford.
[originally from svn r2080]
2002-10-16 11:35:13 +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
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
58238b10d3 Jordan Russell's mysterious workaround for an almost equally
mysterious Windows GDI bug. Looks unlikely to cause any other
trouble and it's pretty small, so it can go in.

[originally from svn r1963]
2002-09-15 22:18:02 +00:00
Simon Tatham
437d740fb3 Pageant's command line handling now uses my new split_into_argv()
function, because it's silly to have two (and because the old one
was not the same as the new one, violating the Principle of Least
Surprise).

[originally from svn r1811]
2002-08-06 17:57:37 +00:00
Simon Tatham
118fc8c81e Revamp of command-line handling. Most command line options should
now be processed in cmdline.c, which is called from all utilities
(well, not Pageant or PuTTYgen). This should mean we get to
standardise almost all options across almost all tools. Also one
major change: `-load' is now the preferred option for loading a
saved session in PuTTY proper. `@session' still works but is
deprecated.

[originally from svn r1799]
2002-08-04 21:18:56 +00:00
Simon Tatham
9157417fea Fix bug in the alternative code for -DNO_MULTIMON (was breaking
Cygwin build).

[originally from svn r1595]
2002-03-20 22:16:00 +00:00
Simon Tatham
6bc827158f Fix multi-monitor / full-screen problems and clean up the code a
little. Thanks to Wez Furlong for the patch.

[originally from svn r1591]
2002-03-13 22:15:14 +00:00
Simon Tatham
8375ad6bd8 Rev 1.189 [r1517] of this file introduced a bug. While it is correct
to avoid calling term_out() during a drag-select, it's false to
assume that all drags are selects - some are xterm mouse-reported
drags, and term_out absolutely _should_ be called in those so that
the application can show the dragged object moving. Should now be
fixed.

[originally from svn r1590]
[r1517 == 02a926f6c1]
2002-03-13 19:55:01 +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
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
dac0d45699 Ensure our network layer is properly cleaned up before PuTTY exits.
Specifically, we explicitly closesocket() all open sockets, which
appears to be necessary since otherwise Windows sends RST rather
than FIN. I'm _sure_ that's a Windows bug, but there we go.

[originally from svn r1574]
2002-03-06 20:13:22 +00:00
Simon Tatham
5e3663b48e Experimental checkin: re-enable support for the static WM_MOUSEWHEEL
even on systems where the version number check thinks we should be
expecting a dynamically registered message number. I have a
suspicion the version check isn't accurate in all circumstances; and
in any case, in a situation like this where Windows might send you
either of two things, it's better to be ready to deal with both than
to try and second-guess which one you'll get.

[originally from svn r1549]
2002-01-17 12:22:26 +00:00
Simon Tatham
ba435fa6a0 Patch from RDB: the xterm move-window sequences now don't screw up
when the window is e.g. maximised.

[originally from svn r1533]
2002-01-08 09:56:06 +00:00
Simon Tatham
c7aec27d6f Patch from RDB: make /DNO_MULTIMON (mentioned as a possible
compile-time definition in the Makefile) actually work. D'oh.

[originally from svn r1531]
2002-01-08 09:44:23 +00:00
Simon Tatham
02a926f6c1 Jordan Russell's patch (3rd of several). We now don't call TermOut()
if the PuTTY window has the mouse capture (i.e. a drag-select is in
progress). This means you can drag-select at your leisure without
the screen contents wandering around providing you with a moving
target. Likewise dragging the scrollbar to find a piece of history
in the scrollback.

[originally from svn r1517]
2001-12-29 14:47:59 +00:00
Simon Tatham
7423036505 Jordan Russell's patch: only process mouse drags when we have the
mouse capture, which in turn will only occur if the initial click
was in the PuTTY client area. Prevents mouse drag events without an
initiating click, and also prevents selection occurring at
unexpected moments such as if you move the mouse before releasing
the second click after double-clicking the title bar to maximise the
window.

[originally from svn r1515]
2001-12-29 14:05:07 +00:00