-\versionid $Id: config.but,v 1.16 2001/11/29 22:32:37 simon Exp $
+\versionid $Id: config.but,v 1.17 2001/12/06 13:28:02 simon Exp $
\C{config} Configuring PuTTY
\S{config-hostname} The host name section
+\cfg{winhelp-topic}{session.hostname}
+
The top box on the Session panel, labelled \q{Specify your
connection by host name}, contains the details that need to be
filled in before PuTTY can open a session at all.
\S{config-saving} Loading and storing saved sessions
+\cfg{winhelp-topic}{session.saved}
+
The next part of the Session configuration panel allows you to save
your preferred PuTTY options so they will appear automatically the
next time you start PuTTY. It also allows you to create \e{saved
\S{config-closeonexit} \q{Close Window on Exit}
+\cfg{winhelp-topic}{session.coe}
+
Finally in the Session panel, there is an option labelled \q{Close
Window on Exit}. This controls whether the PuTTY session window
disappears as soon as the session inside it terminates. If you are
\H{config-logging} The Logging panel
+\cfg{winhelp-topic}{logging.main}
+
The Logging configuration panel allows you to save log files of your
PuTTY sessions, for debugging, analysis or future reference.
\S{config-logfilename} \q{Log file name}
+\cfg{winhelp-topic}{logging.filename}
+
In this edit box you enter the name of the file you want to log the
session to. The \q{Browse} button will let you look around your file
system to find the right place to put the file; or if you already
\S{config-logfileexists} \q{What to do if the log file already exists}
+\cfg{winhelp-topic}{logging.exists}
+
This control allows you to specify what PuTTY should do if it tries
to start writing to a log file and it finds the file already exists.
You might want to automatically destroy the existing log file and
\S{config-autowrap} \q{Auto wrap mode initially on}
+\cfg{winhelp-topic}{terminal.autowrap}
+
Auto wrap mode controls what happens when text printed in a PuTTY
window reaches the right-hand edge of the window.
\S{config-decom} \q{DEC Origin Mode initially on}
+\cfg{winhelp-topic}{terminal.decom}
+
DEC Origin Mode is a minor option which controls how PuTTY
interprets cursor-position control sequences sent by the server.
\S{config-crlf} \q{Implicit CR in every LF}
+\cfg{winhelp-topic}{terminal.lfhascr}
+
Most servers send two control characters, CR and LF, to start a new
line of the screen. The CR character makes the cursor return to the
left-hand side of the screen. The LF character makes the cursor move
\S{config-erase} \q{Use background colour to erase screen}
+\cfg{winhelp-topic}{terminal.bce}
+
Not all terminals agree on what colour to turn the screen when the
server sends a \q{clear screen} sequence. Some terminals believe the
screen should always be cleared to the \e{default} background
\S{config-blink} \q{Enable blinking text}
+\cfg{winhelp-topic}{terminal.blink}
+
The server can ask PuTTY to display text that blinks on and off.
This is very distracting, so PuTTY allows you to turn blinking text
off completely.
\S{config-answerback} \q{Answerback to ^E}
+\cfg{winhelp-topic}{terminal.answerback}
+
This option controls what PuTTY will send back to the server if the
server sends it the ^E enquiry character. Normally it just sends
the string \q{PuTTY}.
\S{config-localecho} \q{Local echo}
+\cfg{winhelp-topic}{terminal.localecho}
+
With local echo disabled, characters you type into the PuTTY window
are not echoed in the window \e{by PuTTY}. They are simply sent to
the server. (The \e{server} might choose to echo them back to you;
\S{config-localedit} \q{Local line editing}
+\cfg{winhelp-topic}{terminal.localedit}
+
Normally, every character you type into the PuTTY window is sent
immediately to the server the moment you type it.
\S{config-backspace} Changing the action of the Backspace key
+\cfg{winhelp-topic}{keyboard.backspace}
+
Some terminals believe that the Backspace key should send the same
thing to the server as Control-H (ASCII code 8). Other terminals
believe that the Backspace key should send ASCII code 127 (usually
\S{config-homeend} Changing the action of the Home and End keys
+\cfg{winhelp-topic}{keyboard.homeend}
+
The Unix terminal emulator \c{rxvt} disagrees with the rest of the
world about what character sequences should be sent to the server by
the Home and End keys.
\S{config-funkeys} Changing the action of the function keys and keypad
+\cfg{winhelp-topic}{keyboard.funkeys}
+
This option affects the function keys (F1 to F12) and the top row of
the numeric keypad.
\S{config-appcursor} Controlling Application Cursor Keys mode
+\cfg{winhelp-topic}{keyboard.appcursor}
+
Application Cursor Keys mode is a way for the server to change the
control sequences sent by the arrow keys. In normal mode, the arrow
keys send \c{ESC [A} through to \c{ESC [D}. In application mode,
\S{config-appkeypad} Controlling Application Keypad mode
+\cfg{winhelp-topic}{keyboard.appkeypad}
+
Application Keypad mode is a way for the server to change the
behaviour of the numeric keypad.
\S{config-nethack} Using NetHack keypad mode
+\cfg{winhelp-topic}{keyboard.nethack}
+
PuTTY has a special mode for playing NetHack. You can enable it by
selecting \q{NetHack} in the \q{Initial state of numeric keypad}
control.
\S{config-compose} Enabling a DEC-like Compose key
+\cfg{winhelp-topic}{keyboard.compose}
+
DEC terminals have a Compose key, which provides an easy-to-remember
way of typing accented characters. You press Compose and then type
two more characters. The two characters are \q{combined} to produce
\S{config-ctrlalt} \q{Control-Alt is different from AltGr}
+\cfg{winhelp-topic}{keyboard.ctrlalt}
+
Some old keyboards do not have an AltGr key, which can make it
difficult to type some characters. PuTTY can be configured to treat
the key combination Ctrl + Left Alt the same way as the AltGr key.
\S{config-bellstyle} \q{Set the style of bell}
+\cfg{winhelp-topic}{bell.style}
+
This control allows you to select various different actions to occur
on a terminal bell:
\S{config-belltaskbar} \q{Taskbar/caption indication on bell}
+\cfg{winhelp-topic}{bell.taskbar}
+
This feature controls what happens to the PuTTY window's entry in
the Windows Taskbar if a bell occurs while the window does not have
the input focus.
\S{config-bellovl} \q{Control the bell overload behaviour}
+\cfg{winhelp-topic}{bell.overload}
+
A common user error in a terminal session is to accidentally run the
Unix command \c{cat} (or equivalent) on an inappropriate file type,
such as an executable, image file, or ZIP file. This produces a huge
\S{config-winsize} Setting the size of the PuTTY window
+\cfg{winhelp-topic}{window.size}
+
The \q{Rows} and \q{Columns} boxes let you set the PuTTY window to a
precise size. Of course you can also drag the window to a new size
while a session is running.
\S{config-winsizelock} What to do when the window is resized
+\cfg{winhelp-topic}{window.resize}
+
These options allow you to control what happens when the user tries
to resize the PuTTY window.
\S{config-scrollback} Controlling scrollback
+\cfg{winhelp-topic}{window.scrollback}
+
These options let you configure the way PuTTY keeps text after it
scrolls off the top of the screen (see \k{using-scrollback}).
\S{config-cursor} Controlling the appearance of the cursor
+\cfg{winhelp-topic}{appearance.cursor}
+
The \q{Cursor appearance} option lets you configure the cursor to be
a block, an underline, or a vertical line. A block cursor becomes an
empty box when the window loses focus; an underline or a vertical
\S{config-font} Controlling the font used in the terminal window
+\cfg{winhelp-topic}{appearance.font}
+
This option allows you to choose what font, in what size, the PuTTY
terminal window uses to display the text in the session. You will be
offered a choice from all the fixed-width fonts installed on the
\S{config-title} Controlling the window title
+\cfg{winhelp-topic}{appearance.title}
+
The \q{Window title} edit box allows you to set the title of the
PuTTY window. By default the window title will contain the host name
followed by \q{PuTTY}, for example \c{server1.example.com - PuTTY}.
\S{config-mouseptr} \q{Hide mouse pointer when typing in window}
+\cfg{winhelp-topic}{appearance.hidemouse}
+
If you enable this option, the mouse pointer will disappear if the
PuTTY window is selected and you press a key. This way, it will not
obscure any of the text in the window while you work in your
\S{config-winborder} Controlling the window border
+\cfg{winhelp-topic}{appearance.border}
+
PuTTY allows you to configure the appearance of the window border to
some extent.
\S{config-warnonclose} \q{Warn before closing window}
+\cfg{winhelp-topic}{behaviour.closewarn}
+
If you press the Close button in a PuTTY window that contains a
running session, PuTTY will put up a warning window asking if you
really meant to close the window. A window whose session has already
\S{config-altf4} \q{Window closes on ALT-F4}
+\cfg{winhelp-topic}{behaviour.altf4}
+
By default, pressing ALT-F4 causes the window to close (or a warning
box to appear; see \k{config-warnonclose}). If you disable the
\q{Window closes on ALT-F4} option, then pressing ALT-F4 will simply
\S{config-altspace} \q{System menu appears on ALT-Space}
+\cfg{winhelp-topic}{behaviour.altspace}
+
If this option is enabled, then pressing ALT-Space will bring up the
PuTTY window's menu, like clicking on the top left corner. If it is
disabled, then pressing ALT-Space will just send \c{ESC SPACE} to
\S{config-altonly} \q{System menu appears on Alt alone}
+\cfg{winhelp-topic}{behaviour.altonly}
+
If this option is enabled, then pressing and releasing ALT will
bring up the PuTTY window's menu, like clicking on the top left
corner. If it is disabled, then pressing and releasing ALT will have
\S{config-alwaysontop} \q{Ensure window is always on top}
+\cfg{winhelp-topic}{behaviour.alwaysontop}
+
If this option is enabled, the PuTTY window will stay on top of all
other windows.
\S{config-fullscreen} \q{Full screen on Alt-Enter}
+\cfg{winhelp-topic}{behaviour.altenter}
+
If this option is enabled, then pressing Alt-Enter will cause the
PuTTY window to become full-screen. (See \k{using-fullscreen}).
Pressing Alt-Enter again will restore the previous window size.
\S{config-charset} Controlling character set translation
+\cfg{winhelp-topic}{translation.codepage}
+
During an interactive session, PuTTY receives a stream of 8-bit
bytes from the server, and in order to display them on the screen it
needs to know what character set to interpret them in.
\S{config-cyr} \q{Caps Lock acts as Cyrillic switch}
+\cfg{winhelp-topic}{translation.cyrillic}
+
This feature allows you to switch between a US/UK keyboard layout
and a Cyrillic keyboard layout by using the Caps Lock key, if you
need to type (for example) Russian and English side by side in the
\S{config-linedraw} Controlling display of line drawing characters
+\cfg{winhelp-topic}{translation.linedraw}
+
VT100-series terminals allow the server to send control sequences
that shift temporarily into a separate character set for drawing
lines and boxes. PuTTY has a variety of ways to support this
\S{config-linedrawpaste} Controlling the pasting of line drawing
characters
+\cfg{winhelp-topic}{selection.linedraw}
+
By default, when you copy and paste a piece of the PuTTY screen that
contains VT100 line and box drawing characters, PuTTY will translate
them into the \q{poor man's} line-drawing characters \c{+}, \c{-}
\S{config-rtfpaste} Pasting in Rich Text Format
+\cfg{winhelp-topic}{selection.rtf}
+
If you enable \q{Paste to clipboard in RTF as well as plain text},
PuTTY will write formatting information to the clipboard as well as
the actual text you copy. Currently the only effect of this will be
\S{config-mouse} Changing the actions of the mouse buttons
+\cfg{winhelp-topic}{selection.buttons}
+
PuTTY's copy and paste mechanism is modelled on the Unix \c{xterm}
application. The X Window System uses a three-button mouse, and the
convention is that the left button selects, the right button extends
\S{config-mouseshift} \q{Shift overrides application's use of mouse}
+\cfg{winhelp-topic}{selection.shiftdrag}
+
PuTTY allows the server to send control codes that let it take over
the mouse and use it for purposes other than copy and paste.
Applications which use this feature include the text-mode web
\S{config-rectselect} Default selection mode
+\cfg{winhelp-topic}{selection.rect}
+
As described in \k{using-selection}, PuTTY has two modes of
selecting text to be copied to the clipboard. In the default mode
(\q{Normal}), dragging the mouse from point A to point B selects to
\S{config-charclasses} Configuring word-by-word selection
+\cfg{winhelp-topic}{selection.charclasses}
+
PuTTY will select a word at a time in the terminal window if you
double-click to begin the drag. This panel allows you to control
precisely what is considered to be a word.
\S{config-boldcolour} \q{Bolded text is a different colour}
+\cfg{winhelp-topic}{colours.bold}
+
When the server sends a control sequence indicating that some text
should be displayed in bold, PuTTY can handle this two ways. It can
either change the font for a bold version, or use the same font in a
\S{config-logpalette} \q{Attempt to use logical palettes}
+\cfg{winhelp-topic}{colours.logpal}
+
Logical palettes are a mechanism by which a Windows application
running on an 8-bit colour display can select precisely the colours
it wants instead of going with the Windows standard defaults.
\S{config-colourcfg} Adjusting the colours in the terminal window
+\cfg{winhelp-topic}{colours.config}
+
The main colour control allows you to specify exactly what colours
things should be displayed in. To modify one of the PuTTY colours,
use the list box to select which colour you want to modify. The RGB
\S{config-termtype} \q{Terminal-type string}
+\cfg{winhelp-topic}{connection.termtype}
+
Most servers you might connect to with PuTTY are designed to be
connected to from lots of different types of terminal. In order to
send the right control sequences to each one, the server will need
\S{config-username} \q{Auto-login username}
+\cfg{winhelp-topic}{connection.username}
+
All three of the SSH, Telnet and Rlogin protocols allow you to
specify what user name you want to log in as, without having to type
it explicitly every time. (Some Telnet servers don't support this.)
\S{config-keepalive} Using keepalives to prevent disconnection
+\cfg{winhelp-topic}{connection.keepalive}
+
If you find your sessions are closing unexpectedly (\q{Connection
reset by peer}) after they have been idle for a while, you might
want to try using this option.
\S{config-nodelay} \q{Disable Nagle's algorithm}
+\cfg{winhelp-topic}{connection.nodelay}
+
Nagle's algorithm is a detail of TCP/IP implementations that tries
to minimise the number of small data packets sent down a network
connection. With Nagle's algorithm enabled, PuTTY's bandwidth usage
\S{config-termspeed} \q{Terminal-speed string}
+\cfg{winhelp-topic}{telnet.termspeed}
+
Telnet allows the client to send a text string that describes the
terminal speed. PuTTY lets you configure this, in case you find the
server is reacting badly to the default value. (I'm not aware of any
\S{config-environ} Setting environment variables on the server
+\cfg{winhelp-topic}{telnet.environ}
+
The Telnet protocol also provides a means for the client to pass
environment variables to the server. Many Telnet servers have
stopped supporting this feature due to security flaws, but PuTTY
\S{config-oldenviron} \q{Handling of OLD_ENVIRON ambiguity}
+\cfg{winhelp-topic}{telnet.oldenviron}
+
The original Telnet mechanism for passing environment variables was
badly specified. At the time the standard (RFC 1408) was written,
BSD telnet implementations were already supporting the feature, and
\S{config-ptelnet} Passive and active Telnet negotiation modes
+\cfg{winhelp-topic}{telnet.passive}
+
In a Telnet connection, there are two types of data passed between
the client and the server: actual text, and \e{negotiations} about
which Telnet extra features to use.
\S{config-telnetkey} \q{Keyboard sends telnet Backspace and Interrupt}
+\cfg{winhelp-topic}{telnet.specialkeys}
+
If this box is checked, the Backspace key on the keyboard will send
the Telnet special backspace code, and Control-C will send the
Telnet special interrupt code. You probably shouldn't enable this
\S{config-rlogin-termspeed} \q{Terminal-speed string}
+\cfg{winhelp-topic}{rlogin.termspeed}
+
Like Telnet, Rlogin allows the client to send a text string that
describes the terminal speed. PuTTY lets you configure this, in case
you find the server is reacting badly to the default value. (I'm not
\S{config-rlogin-localuser} \q{Local username}
+\cfg{winhelp-topic}{rlogin.localuser}
+
Rlogin allows an automated (password-free) form of login by means of
a file called \c{.rhosts} on the server. You put a line in your
\c{.rhosts} file saying something like \c{jbloggs@pc1.example.com},
\S{config-command} Executing a specific command on the server
+\cfg{winhelp-topic}{ssh.command}
+
In SSH, you don't have to run a general shell session on the server.
Instead, you can choose to run a single specific command (such as a
mail user agent, for example). If you want to do this, enter the
\S{config-ssh-pty} \q{Don't allocate a pseudo-terminal}
+\cfg{winhelp-topic}{ssh.nopty}
+
When connecting to a Unix system, most interactive shell sessions
are run in a \e{pseudo-terminal}, which allows the Unix system to
pretend it's talking to a real physical terminal device but allows
\S{config-ssh-comp} \q{Enable compression}
+\cfg{winhelp-topic}{ssh.compress}
+
This enables data compression in the SSH connection: data sent by
the server is compressed before sending, and decompressed at the
client end. Likewise, data sent by PuTTY to the server is compressed
\S{config-ssh-prot} \q{Preferred SSH protocol version}
+\cfg{winhelp-topic}{ssh.protocol}
+
This allows you to select whether you would like to use SSH protocol
version 1 or version 2. \#{FIXME: say something about this elsewhere?}
\S{config-ssh-macbug} \q{Imitate SSH 2 MAC bug}
+\cfg{winhelp-topic}{ssh.buggymac}
+
This option \e{should} now be unnecessary. It existed in order to
work around a bug in early versions (2.3.0 and below) of the SSH
server software from \cw{ssh.com}. The symptom of this problem would
\S{config-ssh-encryption} Encryption algorithm selection
+\cfg{winhelp-topic}{ssh.ciphers}
+
PuTTY supports a variety of different encryption algorithms, and
allows you to choose which one you prefer to use. You can do this by
dragging the algorithms up and down in the list box (or moving them
\S{config-ssh-tis} \q{Attempt TIS or CryptoCard authentication}
+\cfg{winhelp-topic}{ssh.auth.tis}
+
TIS and CryptoCard authentication are simple challenge/response
forms of authentication available in SSH protocol version 1 only.
You might use them if you were using S/Key one-time passwords, for
\S{config-ssh-tis} \q{Attempt keyboard-interactive authentication}
+\cfg{winhelp-topic}{ssh.auth.ki}
+
The SSH 2 equivalent of TIS authentication is called
\q{keyboard-interactive}. It is a flexible authentication method
using an arbitrary sequence of requests and responses; so it is not
\S{config-ssh-agentfwd} \q{Allow agent forwarding}
+\cfg{winhelp-topic}{ssh.auth.agentfwd}
+
This option allows the SSH server to open forwarded connections back
to your local copy of Pageant. If you are not running Pageant, this
option will do nothing.
\S{config-ssh-privkey} \q{Private key file for authentication}
+\cfg{winhelp-topic}{ssh.auth.privkey}
+
This box is where you enter the name of your private key file if you
are using public key authentication. See \k{pubkey} for information
about public key authentication in SSH.
\S{config-ssh-x11} X11 forwarding
+\cfg{winhelp-topic}{ssh.tunnels.x11}
+
If your server lets you run X Window System applications, X11
forwarding allows you to securely give those applications access to
a local X display on your PC.
\S{config-ssh-portfwd} Port forwarding
+\cfg{winhelp-topic}{ssh.tunnels.portfwd}
+
Port forwarding allows you to tunnel other types of network
connection down an SSH connection.
static int readytogo;
static int sesslist_has_focus;
+static int requested_help;
static struct prefslist cipherlist;
IDC_CURAPPLIC,
IDC_COMPOSEKEY,
IDC_CTRLALTKEYS,
- IDC_TELNETKEY,
keyboardpanelend,
terminalpanelstart,
IDC_ACTSTATIC,
IDC_TPASSIVE,
IDC_TACTIVE,
+ IDC_TELNETKEY,
telnetpanelend,
rloginpanelstart,
(cfg.fontheight < 0 ? -cfg.fontheight : cfg.fontheight));
}
+char *help_context_cmd(int id)
+{
+ switch (id) {
+ case IDC_HOSTSTATIC:
+ case IDC_HOST:
+ case IDC_PORTSTATIC:
+ case IDC_PORT:
+ case IDC_PROTSTATIC:
+ case IDC_PROTRAW:
+ case IDC_PROTTELNET:
+ case IDC_PROTRLOGIN:
+ case IDC_PROTSSH:
+ return "JI(`',`session.hostname')";
+ case IDC_SESSSTATIC:
+ case IDC_SESSEDIT:
+ case IDC_SESSLIST:
+ case IDC_SESSLOAD:
+ case IDC_SESSSAVE:
+ case IDC_SESSDEL:
+ return "JI(`',`session.saved')";
+ case IDC_CLOSEEXIT:
+ case IDC_COEALWAYS:
+ case IDC_COENEVER:
+ case IDC_COENORMAL:
+ return "JI(`',`session.coe')";
+ case IDC_LSTATSTATIC:
+ case IDC_LSTATOFF:
+ case IDC_LSTATASCII:
+ case IDC_LSTATRAW:
+ return "JI(`',`logging.main')";
+ case IDC_LGFSTATIC:
+ case IDC_LGFEDIT:
+ case IDC_LGFBUTTON:
+ case IDC_LGFEXPLAIN:
+ return "JI(`',`logging.filename')";
+ case IDC_LSTATXIST:
+ case IDC_LSTATXOVR:
+ case IDC_LSTATXAPN:
+ case IDC_LSTATXASK:
+ return "JI(`',`logging.exists')";
+
+ case IDC_DELSTATIC:
+ case IDC_DEL008:
+ case IDC_DEL127:
+ return "JI(`',`keyboard.backspace')";
+ case IDC_HOMESTATIC:
+ case IDC_HOMETILDE:
+ case IDC_HOMERXVT:
+ return "JI(`',`keyboard.homeend')";
+ case IDC_FUNCSTATIC:
+ case IDC_FUNCTILDE:
+ case IDC_FUNCLINUX:
+ case IDC_FUNCXTERM:
+ case IDC_FUNCVT400:
+ case IDC_FUNCVT100P:
+ case IDC_FUNCSCO:
+ return "JI(`',`keyboard.funkeys')";
+ case IDC_KPSTATIC:
+ case IDC_KPNORMAL:
+ case IDC_KPAPPLIC:
+ case IDC_NOAPPLICK:
+ return "JI(`',`keyboard.appkeypad')";
+ case IDC_NOAPPLICC:
+ case IDC_CURSTATIC:
+ case IDC_CURNORMAL:
+ case IDC_CURAPPLIC:
+ return "JI(`',`keyboard.appcursor')";
+ case IDC_KPNH:
+ return "JI(`',`keyboard.nethack')";
+ case IDC_COMPOSEKEY:
+ return "JI(`',`keyboard.compose')";
+ case IDC_CTRLALTKEYS:
+ return "JI(`',`keyboard.ctrlalt')";
+
+ case IDC_WRAPMODE:
+ return "JI(`',`terminal.autowrap')";
+ case IDC_DECOM:
+ return "JI(`',`terminal.decom')";
+ case IDC_LFHASCR:
+ return "JI(`',`terminal.lfhascr')";
+ case IDC_BCE:
+ return "JI(`',`terminal.bce')";
+ case IDC_BLINKTEXT:
+ return "JI(`',`terminal.blink')";
+ case IDC_ANSWERBACK:
+ case IDC_ANSWEREDIT:
+ return "JI(`',`terminal.answerback')";
+ case IDC_ECHOSTATIC:
+ case IDC_ECHOBACKEND:
+ case IDC_ECHOYES:
+ case IDC_ECHONO:
+ return "JI(`',`terminal.localecho')";
+ case IDC_EDITSTATIC:
+ case IDC_EDITBACKEND:
+ case IDC_EDITYES:
+ case IDC_EDITNO:
+ return "JI(`',`terminal.localedit')";
+
+ case IDC_BELLSTATIC:
+ case IDC_BELL_DISABLED:
+ case IDC_BELL_DEFAULT:
+ case IDC_BELL_WAVEFILE:
+ case IDC_BELL_VISUAL:
+ case IDC_BELL_WAVESTATIC:
+ case IDC_BELL_WAVEEDIT:
+ case IDC_BELL_WAVEBROWSE:
+ return "JI(`',`bell.style')";
+ case IDC_B_IND_STATIC:
+ case IDC_B_IND_DISABLED:
+ case IDC_B_IND_FLASH:
+ case IDC_B_IND_STEADY:
+ return "JI(`',`bell.taskbar')";
+ case IDC_BELLOVL:
+ case IDC_BELLOVLNSTATIC:
+ case IDC_BELLOVLN:
+ case IDC_BELLOVLTSTATIC:
+ case IDC_BELLOVLT:
+ case IDC_BELLOVLEXPLAIN:
+ case IDC_BELLOVLSSTATIC:
+ case IDC_BELLOVLS:
+ return "JI(`',`bell.overload')";
+
+ case IDC_ROWSSTATIC:
+ case IDC_ROWSEDIT:
+ case IDC_COLSSTATIC:
+ case IDC_COLSEDIT:
+ return "JI(`',`window.size')";
+ case IDC_RESIZESTATIC:
+ case IDC_RESIZETERM:
+ case IDC_RESIZEFONT:
+ case IDC_RESIZENONE:
+ case IDC_RESIZEEITHER:
+ return "JI(`',`window.resize')";
+ case IDC_SCROLLBAR:
+ case IDC_SCROLLBARFULLSCREEN:
+ case IDC_SAVESTATIC:
+ case IDC_SAVEEDIT:
+ case IDC_SCROLLKEY:
+ case IDC_SCROLLDISP:
+ return "JI(`',`window.scrollback')";
+
+ case IDC_CLOSEWARN:
+ return "JI(`',`behaviour.closewarn')";
+ case IDC_ALTF4:
+ return "JI(`',`behaviour.altf4')";
+ case IDC_ALTSPACE:
+ return "JI(`',`behaviour.altspace')";
+ case IDC_ALTONLY:
+ return "JI(`',`behaviour.altonly')";
+ case IDC_ALWAYSONTOP:
+ return "JI(`',`behaviour.alwaysontop')";
+ case IDC_FULLSCREENONALTENTER:
+ return "JI(`',`behaviour.altenter')";
+
+ case IDC_CURSORSTATIC:
+ case IDC_CURBLOCK:
+ case IDC_CURUNDER:
+ case IDC_CURVERT:
+ case IDC_BLINKCUR:
+ return "JI(`',`appearance.cursor')";
+ case IDC_FONTSTATIC:
+ case IDC_CHOOSEFONT:
+ return "JI(`',`appearance.font')";
+ case IDC_WINTITLE:
+ case IDC_WINEDIT:
+ case IDC_WINNAME:
+ return "JI(`',`appearance.title')";
+ case IDC_HIDEMOUSE:
+ return "JI(`',`appearance.hidemouse')";
+ case IDC_SUNKENEDGE:
+ case IDC_WINBSTATIC:
+ case IDC_WINBEDIT:
+ return "JI(`',`appearance.border')";
+
+ case IDC_TTSTATIC:
+ case IDC_TTEDIT:
+ return "JI(`',`connection.termtype')";
+ case IDC_LOGSTATIC:
+ case IDC_LOGEDIT:
+ return "JI(`',`connection.username')";
+ case IDC_PINGSTATIC:
+ case IDC_PINGEDIT:
+ return "JI(`',`connection.keepalive')";
+ case IDC_NODELAY:
+ return "JI(`',`connection.nodelay')";
+
+ case IDC_TSSTATIC:
+ case IDC_TSEDIT:
+ return "JI(`',`telnet.termspeed')";
+ case IDC_ENVSTATIC:
+ case IDC_VARSTATIC:
+ case IDC_VAREDIT:
+ case IDC_VALSTATIC:
+ case IDC_VALEDIT:
+ case IDC_ENVLIST:
+ case IDC_ENVADD:
+ case IDC_ENVREMOVE:
+ return "JI(`',`telnet.environ')";
+ case IDC_EMSTATIC:
+ case IDC_EMBSD:
+ case IDC_EMRFC:
+ return "JI(`',`telnet.oldenviron')";
+ case IDC_ACTSTATIC:
+ case IDC_TPASSIVE:
+ case IDC_TACTIVE:
+ return "JI(`',`telnet.passive')";
+ case IDC_TELNETKEY:
+ return "JI(`',`telnet.specialkeys')";
+
+ case IDC_R_TSSTATIC:
+ case IDC_R_TSEDIT:
+ return "JI(`',`rlogin.termspeed')";
+ case IDC_RLLUSERSTATIC:
+ case IDC_RLLUSEREDIT:
+ return "JI(`',`rlogin.localuser')";
+
+ case IDC_NOPTY:
+ return "JI(`',`ssh.nopty')";
+ case IDC_CIPHERSTATIC2:
+ case IDC_CIPHERLIST:
+ case IDC_CIPHERUP:
+ case IDC_CIPHERDN:
+ case IDC_SSH2DES:
+ return "JI(`',`ssh.ciphers')";
+ case IDC_BUGGYMAC:
+ return "JI(`',`ssh.buggymac')";
+ case IDC_SSHPROTSTATIC:
+ case IDC_SSHPROT1:
+ case IDC_SSHPROT2:
+ return "JI(`',`ssh.protocol')";
+ case IDC_CMDSTATIC:
+ case IDC_CMDEDIT:
+ return "JI(`',`ssh.command')";
+ case IDC_COMPRESS:
+ return "JI(`',`ssh.compress')";
+
+ case IDC_PKSTATIC:
+ case IDC_PKEDIT:
+ case IDC_PKBUTTON:
+ return "JI(`',`ssh.auth.privkey')";
+ case IDC_AGENTFWD:
+ return "JI(`',`ssh.auth.agentfwd')";
+ case IDC_AUTHTIS:
+ return "JI(`',`ssh.auth.tis')";
+ case IDC_AUTHKI:
+ return "JI(`',`ssh.auth.ki')";
+
+ case IDC_MBSTATIC:
+ case IDC_MBWINDOWS:
+ case IDC_MBXTERM:
+ return "JI(`',`selection.buttons')";
+ case IDC_MOUSEOVERRIDE:
+ return "JI(`',`selection.shiftdrag')";
+ case IDC_SELTYPESTATIC:
+ case IDC_SELTYPELEX:
+ case IDC_SELTYPERECT:
+ return "JI(`',`selection.rect')";
+ case IDC_CCSTATIC:
+ case IDC_CCLIST:
+ case IDC_CCSET:
+ case IDC_CCSTATIC2:
+ case IDC_CCEDIT:
+ return "JI(`',`selection.charclasses')";
+ case IDC_RAWCNP:
+ return "JI(`',`selection.linedraw')";
+ case IDC_RTFPASTE:
+ return "JI(`',`selection.rtf')";
+
+ case IDC_BOLDCOLOUR:
+ return "JI(`',`colours.bold')";
+ case IDC_PALETTE:
+ return "JI(`',`colours.logpal')";
+ case IDC_COLOURSTATIC:
+ case IDC_COLOURLIST:
+ case IDC_RSTATIC:
+ case IDC_GSTATIC:
+ case IDC_BSTATIC:
+ case IDC_RVALUE:
+ case IDC_GVALUE:
+ case IDC_BVALUE:
+ case IDC_CHANGE:
+ return "JI(`',`colours.config')";
+
+ case IDC_CODEPAGESTATIC:
+ case IDC_CODEPAGE:
+ return "JI(`',`translation.codepage')";
+ case IDC_CAPSLOCKCYR:
+ return "JI(`',`translation.cyrillic')";
+ case IDC_VTSTATIC:
+ case IDC_VTXWINDOWS:
+ case IDC_VTOEMANSI:
+ case IDC_VTOEMONLY:
+ case IDC_VTPOORMAN:
+ case IDC_VTUNICODE:
+ return "JI(`',`translation.linedraw')";
+
+ case IDC_X11_FORWARD:
+ case IDC_X11_DISPSTATIC:
+ case IDC_X11_DISPLAY:
+ return "JI(`',`ssh.tunnels.x11')";
+ case IDC_LPORT_ALL:
+ case IDC_PFWDSTATIC:
+ case IDC_PFWDSTATIC2:
+ case IDC_PFWDREMOVE:
+ case IDC_PFWDLIST:
+ case IDC_PFWDADD:
+ case IDC_SPORTSTATIC:
+ case IDC_SPORTEDIT:
+ case IDC_DPORTSTATIC:
+ case IDC_DPORTEDIT:
+ case IDC_PFWDLOCAL:
+ case IDC_PFWDREMOTE:
+ return "JI(`',`ssh.tunnels.portfwd')";
+
+ default:
+ return NULL;
+ }
+}
+
/* 2nd arg: NZ => don't redraw session list (use when loading
* a new session) */
static void init_dlg_ctrls(HWND hwnd, int keepsess)
case WM_INITDIALOG:
readytogo = 0;
SetWindowLong(hwnd, GWL_USERDATA, 0);
+ if (help_path)
+ SetWindowLong(hwnd, GWL_EXSTYLE,
+ GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_CONTEXTHELP);
+ else {
+ HWND item = GetDlgItem(hwnd, IDC_HELPBTN);
+ if (item)
+ DestroyWindow(item);
+ }
+ requested_help = FALSE;
SendMessage(hwnd, WM_SETICON, (WPARAM) ICON_BIG,
(LPARAM) LoadIcon(hinst, MAKEINTRESOURCE(IDI_CFGICON)));
/*
}
}
/* If at this point we have a valid session, go! */
- if (*cfg.host)
+ if (*cfg.host) {
+ if (requested_help) {
+ WinHelp(hwnd, help_path, HELP_QUIT, 0);
+ requested_help = FALSE;
+ }
EndDialog(hwnd, 1);
- else
+ } else
MessageBeep(0);
return 0;
+ case IDC_HELPBTN:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED) {
+ if (help_path) {
+ WinHelp(hwnd, help_path,
+ help_has_contents ? HELP_FINDER : HELP_CONTENTS,
+ 0);
+ requested_help = TRUE;
+ }
+ }
+ break;
case IDCANCEL:
+ if (requested_help) {
+ WinHelp(hwnd, help_path, HELP_QUIT, 0);
+ requested_help = FALSE;
+ }
EndDialog(hwnd, 0);
return 0;
case IDC_PROTTELNET:
break;
}
return 0;
+ case WM_HELP:
+ if (help_path) {
+ int id = ((LPHELPINFO)lParam)->iCtrlId;
+ char *cmd = help_context_cmd(id);
+ if (cmd) {
+ WinHelp(hwnd, help_path, HELP_COMMAND, (DWORD)cmd);
+ requested_help = TRUE;
+ } else {
+ MessageBeep(0);
+ }
+ }
+ break;
case WM_CLOSE:
+ if (requested_help) {
+ WinHelp(hwnd, help_path, HELP_QUIT, 0);
+ requested_help = FALSE;
+ }
EndDialog(hwnd, 0);
return 0;