summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2005-08-06 13:47:13 (UTC)
committer Michael Krelin <hacker@klever.net>2005-08-06 13:47:13 (UTC)
commitfc7dc5278f4590c74e41b3ce89d093a05550ec44 (patch) (unidiff)
tree0c51dff7fad22caddab72ff125e2d7ace9c7e813
parentc71a33aff5d0bbe32dc9d0f732c11a87e5909d47 (diff)
downloadkinsole-fc7dc5278f4590c74e41b3ce89d093a05550ec44.zip
kinsole-fc7dc5278f4590c74e41b3ce89d093a05550ec44.tar.gz
kinsole-fc7dc5278f4590c74e41b3ce89d093a05550ec44.tar.bz2
fixed XP uninstall and prepared 1.1.1 releaseHEAD1.1.1master
git-svn-id: http://svn.klever.net/kin/kinsole/trunk@132 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--COPYING2
-rw-r--r--KTAGS2
-rw-r--r--help/kinsole.rtf4
-rw-r--r--help/kinsole.xml5
-rw-r--r--install/install.cpp10
-rw-r--r--install/install.rc10
-rw-r--r--kinsole.cpp4
-rw-r--r--kinsole.rc10
8 files changed, 30 insertions, 17 deletions
diff --git a/COPYING b/COPYING
index 9abe63f..b71fe11 100644
--- a/COPYING
+++ b/COPYING
@@ -1,19 +1,19 @@
1Copyright (c) 1998-2004 Klever Group (http://www.klever.net/) 1Copyright (c) 1998-2005 Klever Group (http://www.klever.net/)
2 2
3Permission is hereby granted, free of charge, to any person obtaining a copy of 3Permission is hereby granted, free of charge, to any person obtaining a copy of
4this software and associated documentation files (the "Software"), to deal in 4this software and associated documentation files (the "Software"), to deal in
5the Software without restriction, including without limitation the rights to 5the Software without restriction, including without limitation the rights to
6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7of the Software, and to permit persons to whom the Software is furnished to do 7of the Software, and to permit persons to whom the Software is furnished to do
8so, subject to the following conditions: 8so, subject to the following conditions:
9 9
10The above copyright notice and this permission notice shall be included in all 10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software. 11copies or substantial portions of the Software.
12 12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19SOFTWARE. 19SOFTWARE.
diff --git a/KTAGS b/KTAGS
index dfc79bb..25b6254 100644
--- a/KTAGS
+++ b/KTAGS
@@ -1,12 +1,12 @@
1 help-license-date ./help/kinsole.xml /<license\s/;"kind:d 1 help-license-date ./help/kinsole.xml /<license\s/;"kind:d
2 help-news ./help/kinsole.xml/<newsfor\s/ 2 help-news ./help/kinsole.xml/<newsfor\s/
3 install-version ./install/install.cpp /^#define\s\+KINAME\s\+"/;"kind:v 3 install-version ./install/install.cpp /^#define\s\+VERSION\s\+"/;"kind:v
4 install-vsinfo-date install/install.rc /^\s\+VALUE\s\+"LegalCopyright",/;"kind:d 4 install-vsinfo-date install/install.rc /^\s\+VALUE\s\+"LegalCopyright",/;"kind:d
5 install-vsinfo-numeric-version install/install.rc /^\s\+FILEVERSION\s\+/;"kind:v 5 install-vsinfo-numeric-version install/install.rc /^\s\+FILEVERSION\s\+/;"kind:v
6 install-vsinfo-string-version install/install.rc /^\s\+VALUE\s\+"FileVersion",/;"kind:v 6 install-vsinfo-string-version install/install.rc /^\s\+VALUE\s\+"FileVersion",/;"kind:v
7 kinsole-version kinsole.cpp /^#define\s\+DAMN_KIN_VERSION\s\+"/;"kind:v 7 kinsole-version kinsole.cpp /^#define\s\+DAMN_KIN_VERSION\s\+"/;"kind:v
8 license-date COPYING :1;"kind:d 8 license-date COPYING :1;"kind:d
9 usage-date kinsole.cpp /, Copyright (c) /;"kind:d 9 usage-date kinsole.cpp /, Copyright (c) /;"kind:d
10 vsinfo-date kinsole.rc /VALUE\s\+"LegalCopyright",/;"kind:d 10 vsinfo-date kinsole.rc /VALUE\s\+"LegalCopyright",/;"kind:d
11 vsinfo-numeric-version kinsole.rc /^\s\+FILEVERSION\s\+/;"kind:v 11 vsinfo-numeric-version kinsole.rc /^\s\+FILEVERSION\s\+/;"kind:v
12 vsinfo-string-version kinsole.rc /^\s\+VALUE\s\+"FileVersion",/;"kind:v 12 vsinfo-string-version kinsole.rc /^\s\+VALUE\s\+"FileVersion",/;"kind:v
diff --git a/help/kinsole.rtf b/help/kinsole.rtf
index f0b6c8a..f3eeb2d 100644
--- a/help/kinsole.rtf
+++ b/help/kinsole.rtf
@@ -1,80 +1,82 @@
1{\rtf1\ansi 1{\rtf1\ansi
2@{\footnote 2@{\footnote
3THIS FILE WAS AUTOMATICALLY GENERATED FROM XML DOCUMENT. 3THIS FILE WAS AUTOMATICALLY GENERATED FROM XML DOCUMENT.
4DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD 4DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD
5} 5}
6{\fonttbl{\f0\froman Times New Roman;}{\f1\fswiss Arial;}{\f3\froman Symbol;}}{\colortbl; 6{\fonttbl{\f0\froman Times New Roman;}{\f1\fswiss Arial;}{\f3\froman Symbol;}}{\colortbl;
7 \red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; 7 \red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
8 \red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255; 8 \red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
9 \red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128; 9 \red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;
10 \red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} 10 \red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
11 11
12\pard\plain\keepn 12\pard\plain\keepn
13#{\footnote About} 13#{\footnote About}
14${\footnote About KINSole} 14${\footnote About KINSole}
15{ \f1\fs18\b\sb120 About KINSole} 15{ \f1\fs18\b\sb120 About KINSole}
16\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b KINSole} is our {\i Win32} implementation of client side of the {\i telnet} protocol described in details in the {\uldb {\b RFC854}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc854.txt")} and related RFCs (namely {\uldb {\b RFC855}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc855.txt")}, {\uldb {\b RFC857}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc857.txt")}, {\uldb {\b RFC1091}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1091.txt")}, {\uldb {\b RFC1073}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1073.txt")}, {\uldb {\b RFC1572}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1572.txt")} and others). It uses {\i Win32} console and, therefore, can be run both windowed and in fullscreen mode. 16\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b KINSole} is our {\i Win32} implementation of client side of the {\i telnet} protocol described in details in the {\uldb {\b RFC854}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc854.txt")} and related RFCs (namely {\uldb {\b RFC855}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc855.txt")}, {\uldb {\b RFC857}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc857.txt")}, {\uldb {\b RFC1091}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1091.txt")}, {\uldb {\b RFC1073}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1073.txt")}, {\uldb {\b RFC1572}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1572.txt")} and others). It uses {\i Win32} console and, therefore, can be run both windowed and in fullscreen mode.
17\par\sa120\sb120\qj\pard \f1\fs18\sb120 17\par\sa120\sb120\qj\pard \f1\fs18\sb120
18\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}} 18\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}}
19{ 19{
20\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998-2004 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")} 20\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998-2005 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")}
21\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 21\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
22\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
23\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24} 24}
25\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")} 25\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")}
26\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")} 26\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")}
27\page 27\page
28 28
29\pard\plain\keepn 29\pard\plain\keepn
30#{\footnote News} 30#{\footnote News}
31${\footnote What's new} 31${\footnote What's new}
32{ \f1\fs18\b\sb120 What's New} 32{ \f1\fs18\b\sb120 What's New}
33\par\pard\plain\f1\fs24\qc\cf2\b 1.1.1 - August 6th, 2005
34\par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed uninstall procedure so that it works on XP
33\par\pard\plain\f1\fs24\qc\cf2\b 1.1 - July 11th, 2004 35\par\pard\plain\f1\fs24\qc\cf2\b 1.1 - July 11th, 2004
34\par\pard\plain\fi0\li0\f1\fs18 \bullet No changes in code. License change. 36\par\pard\plain\fi0\li0\f1\fs18 \bullet No changes in code. License change.
35\par\pard\plain\f1\fs24\qc\cf2\b 1.00 Beta 2 - March 7th, 1998 37\par\pard\plain\f1\fs24\qc\cf2\b 1.00 Beta 2 - March 7th, 1998
36\par\pard\plain\fi0\li0\f1\fs18 \bullet Better copying from {\b KINSole} window. 38\par\pard\plain\fi0\li0\f1\fs18 \bullet Better copying from {\b KINSole} window.
37\par\pard\plain\fi0\li0\f1\fs18 \bullet Better handling of cursor position when resizing window. 39\par\pard\plain\fi0\li0\f1\fs18 \bullet Better handling of cursor position when resizing window.
38\par\pard\plain\fi0\li0\f1\fs18 \bullet Sending {\b CR/LF} pair when pressing {\b ENTER}. This is of help when telnetting to non-telnet ports. 40\par\pard\plain\fi0\li0\f1\fs18 \bullet Sending {\b CR/LF} pair when pressing {\b ENTER}. This is of help when telnetting to non-telnet ports.
39\par\pard\plain\fi0\li0\f1\fs18 \bullet Corrected bug, preventing {\b KINSole} from pasting text to remote twice. 41\par\pard\plain\fi0\li0\f1\fs18 \bullet Corrected bug, preventing {\b KINSole} from pasting text to remote twice.
40\par\pard\plain\fi0\li0\f1\fs18 \bullet Improved handling of echoing. Previously {\b KINSole} didn't turn echo off on some systems, namely {\b Solaris}. 42\par\pard\plain\fi0\li0\f1\fs18 \bullet Improved handling of echoing. Previously {\b KINSole} didn't turn echo off on some systems, namely {\b Solaris}.
41\par\pard\plain\fi0\li0\f1\fs18 \bullet Typo causing {\b KINSole} not to show diamond characters in {\b VT10x} mode corrected. 43\par\pard\plain\fi0\li0\f1\fs18 \bullet Typo causing {\b KINSole} not to show diamond characters in {\b VT10x} mode corrected.
42\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b GPF} when invoking {\b KINSole} with {\b -t} option fixed. 44\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b GPF} when invoking {\b KINSole} with {\b -t} option fixed.
43\par\pard\plain\fi0\li0\f1\fs18 \bullet Hotkey ({\b Alt-INS}) for copy operation added. Not supposed to work under {\b\cf6 Windows NT}. 45\par\pard\plain\fi0\li0\f1\fs18 \bullet Hotkey ({\b Alt-INS}) for copy operation added. Not supposed to work under {\b\cf6 Windows NT}.
44\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b Paste} is made aware of local echoing. 46\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b Paste} is made aware of local echoing.
45\par\pard\plain\fi0\li0\f1\fs18 \bullet Default terminal type when telnetting to non-telnet port is now {\b TTY}. 47\par\pard\plain\fi0\li0\f1\fs18 \bullet Default terminal type when telnetting to non-telnet port is now {\b TTY}.
46\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b Timing Mark} telnet option ({\uldb {\b RFC860}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc860.txt")}) implemented ({\b Alt-T}). 48\par\pard\plain\fi0\li0\f1\fs18 \bullet {\b Timing Mark} telnet option ({\uldb {\b RFC860}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc860.txt")}) implemented ({\b Alt-T}).
47\par\pard\plain\fi0\li0\f1\fs18 \bullet Improved handling of window icon when starting from other {\i Win32} command line application. 49\par\pard\plain\fi0\li0\f1\fs18 \bullet Improved handling of window icon when starting from other {\i Win32} command line application.
48\page 50\page
49 51
50\pard\plain\keepn 52\pard\plain\keepn
51#{\footnote Using} 53#{\footnote Using}
52${\footnote Using KINSole} 54${\footnote Using KINSole}
53{ \f1\fs18\b\sb120 Using {\b KINSole}} 55{ \f1\fs18\b\sb120 Using {\b KINSole}}
54\par\sa120\sb120\qj\pard \f1\fs18\sb120 You may run {\b KINSole} from your MS-DOS prompt by typing '{\i kinsole host port}'. 56\par\sa120\sb120\qj\pard \f1\fs18\sb120 You may run {\b KINSole} from your MS-DOS prompt by typing '{\i kinsole host port}'.
55\par\sa120\sb120\qj\pard \f1\fs18\sb120 If you need to know more about custom options, please proceed to the {\uldb Command Line Options}{\v CmdOptions} section. 57\par\sa120\sb120\qj\pard \f1\fs18\sb120 If you need to know more about custom options, please proceed to the {\uldb Command Line Options}{\v CmdOptions} section.
56\page 58\page
57 59
58\pard\plain\keepn 60\pard\plain\keepn
59#{\footnote CmdOptions} 61#{\footnote CmdOptions}
60${\footnote Command Line Options} 62${\footnote Command Line Options}
61{ \f1\fs18\b\sb120 Command Line Options} 63{ \f1\fs18\b\sb120 Command Line Options}
62\par\sa120\sb120\qj\pard \f1\fs18\sb120 Usage: 64\par\sa120\sb120\qj\pard \f1\fs18\sb120 Usage:
63\par\sa120\sb120\qj\pard \f1\fs18\sb120 KINSole [{\i options} ]{\i host}[ {\i port}] 65\par\sa120\sb120\qj\pard \f1\fs18\sb120 KINSole [{\i options} ]{\i host}[ {\i port}]
64\par\sa120\sb120\qj\pard \f1\fs18\sb120 Available options are:\pard 66\par\sa120\sb120\qj\pard \f1\fs18\sb120 Available options are:\pard
65\par \fi0\li0 \bullet {\b -r {\i ##}} or {\b -{\i ##}} - Try to set the number of rows in console screen buffer. 67\par \fi0\li0 \bullet {\b -r {\i ##}} or {\b -{\i ##}} - Try to set the number of rows in console screen buffer.
66\par \fi0\li0 \bullet {\b -c {\i ##}} - Try to set the number of columns in console screenbuffer. 68\par \fi0\li0 \bullet {\b -c {\i ##}} - Try to set the number of columns in console screenbuffer.
67\par \fi0\li0 \bullet 69\par \fi0\li0 \bullet
68\par\sa120\sb120\qj\f1\fs16 Note: Changing of console's screenbuffer size either from command line or on remote host's request (ESC[?3h vt100/vt102 control sequence) may not work when in fullscreen mode. 70\par\sa120\sb120\qj\f1\fs16 Note: Changing of console's screenbuffer size either from command line or on remote host's request (ESC[?3h vt100/vt102 control sequence) may not work when in fullscreen mode.
69\par \fi0\li0 \bullet {\b -l {\i username}} - Pass username to remote server in environment if remote server allows. 71\par \fi0\li0 \bullet {\b -l {\i username}} - Pass username to remote server in environment if remote server allows.
70\par \fi0\li0 \bullet {\b -e {\i var}={\i val}} - Pass environment variable to remote server. 72\par \fi0\li0 \bullet {\b -e {\i var}={\i val}} - Pass environment variable to remote server.
71\par \fi0\li0 \bullet {\b -v {\i var}={\i val}} - Pass user environment variable to remote server. 73\par \fi0\li0 \bullet {\b -v {\i var}={\i val}} - Pass user environment variable to remote server.
72\par \fi0\li0 \bullet {\b -t {\i termtype}} - Change preferred terminal type to pass to remote server. This option does not really force specific terminal emulation. Final decision on terminal type is left up to server. Both sides are supposed to negotiate terminal type when connecting so that both sides may feel satisfied. Default preference is {\b vt102}.\pard 74\par \fi0\li0 \bullet {\b -t {\i termtype}} - Change preferred terminal type to pass to remote server. This option does not really force specific terminal emulation. Final decision on terminal type is left up to server. Both sides are supposed to negotiate terminal type when connecting so that both sides may feel satisfied. Default preference is {\b vt102}.\pard
73\page 75\page
74 76
75\pard\plain\keepn 77\pard\plain\keepn
76#{\footnote HotKeys} 78#{\footnote HotKeys}
77${\footnote Hot Keys} 79${\footnote Hot Keys}
78{ \f1\fs18\b\sb120 Hot Keys} 80{ \f1\fs18\b\sb120 Hot Keys}
79\par\sa120\sb120\qj\pard \f1\fs18\sb120 While running {\b KINSole} you may use these key combinations:\pard 81\par\sa120\sb120\qj\pard \f1\fs18\sb120 While running {\b KINSole} you may use these key combinations:\pard
80\par \fi0\li0 \bullet {\b Alt-X/Alt-Q} - Terminate telnet session and leave {\b KINSole}. 82\par \fi0\li0 \bullet {\b Alt-X/Alt-Q} - Terminate telnet session and leave {\b KINSole}.
diff --git a/help/kinsole.xml b/help/kinsole.xml
index c08aa01..c7f7dd8 100644
--- a/help/kinsole.xml
+++ b/help/kinsole.xml
@@ -1,60 +1,63 @@
1<?xml version="1.0"?> 1<?xml version="1.0"?>
2<winhelp> 2<winhelp>
3 <topic id="About" title="About KINSole"> 3 <topic id="About" title="About KINSole">
4 <heading scroll="no">About KINSole</heading> 4 <heading scroll="no">About KINSole</heading>
5 <p><kin>KINSole</kin> is our <term>Win32</term> implementation of client side of the <term>telnet</term> protocol described in details in the <rfc num="854"/> and related RFCs (namely <rfc num="855"/>, <rfc num="857"/>, <rfc num="1091"/>, <rfc num="1073"/>, <rfc num="1572"/> and others). It uses <term>Win32</term> console and, therefore, can be run both windowed and in fullscreen mode.</p> 5 <p><kin>KINSole</kin> is our <term>Win32</term> implementation of client side of the <term>telnet</term> protocol described in details in the <rfc num="854"/> and related RFCs (namely <rfc num="855"/>, <rfc num="857"/>, <rfc num="1091"/>, <rfc num="1073"/>, <rfc num="1572"/> and others). It uses <term>Win32</term> console and, therefore, can be run both windowed and in fullscreen mode.</p>
6 <p/> 6 <p/>
7 <p><b><i>Enjoy!</i></b></p> 7 <p><b><i>Enjoy!</i></b></p>
8 <license years="1998-2004"/> 8 <license years="1998-2005"/>
9 <credits/> 9 <credits/>
10 </topic> 10 </topic>
11 <topic id="News" title="What's new"> 11 <topic id="News" title="What's new">
12 <heading scroll="no">What's New</heading> 12 <heading scroll="no">What's New</heading>
13 <newsfor version="1.1.1" date="August 6th, 2005">
14 <ni>Fixed uninstall procedure so that it works on XP</ni>
15 </newsfor>
13 <newsfor version="1.1" date="July 11th, 2004"> 16 <newsfor version="1.1" date="July 11th, 2004">
14 <ni>No changes in code. License change.</ni> 17 <ni>No changes in code. License change.</ni>
15 </newsfor> 18 </newsfor>
16 <newsfor version="1.00 Beta 2" date="March 7th, 1998"> 19 <newsfor version="1.00 Beta 2" date="March 7th, 1998">
17 <ni>Better copying from <kin>KINSole</kin> window.</ni> 20 <ni>Better copying from <kin>KINSole</kin> window.</ni>
18 <ni>Better handling of cursor position when resizing window.</ni> 21 <ni>Better handling of cursor position when resizing window.</ni>
19 <ni>Sending <b>CR/LF</b> pair when pressing <b>ENTER</b>. This is of help when telnetting to non-telnet ports.</ni> 22 <ni>Sending <b>CR/LF</b> pair when pressing <b>ENTER</b>. This is of help when telnetting to non-telnet ports.</ni>
20 <ni>Corrected bug, preventing <kin>KINSole</kin> from pasting text to remote twice.</ni> 23 <ni>Corrected bug, preventing <kin>KINSole</kin> from pasting text to remote twice.</ni>
21 <ni>Improved handling of echoing. Previously <kin>KINSole</kin> didn't turn echo off on some systems, namely <b>Solaris</b>.</ni> 24 <ni>Improved handling of echoing. Previously <kin>KINSole</kin> didn't turn echo off on some systems, namely <b>Solaris</b>.</ni>
22 <ni>Typo causing <kin>KINSole</kin> not to show diamond characters in <b>VT10x</b> mode corrected.</ni> 25 <ni>Typo causing <kin>KINSole</kin> not to show diamond characters in <b>VT10x</b> mode corrected.</ni>
23 <ni><b>GPF</b> when invoking <kin>KINSole</kin> with <b>-t</b> option fixed.</ni> 26 <ni><b>GPF</b> when invoking <kin>KINSole</kin> with <b>-t</b> option fixed.</ni>
24 <ni>Hotkey (<b>Alt-INS</b>) for copy operation added. Not supposed to work under <product>Windows NT</product>.</ni> 27 <ni>Hotkey (<b>Alt-INS</b>) for copy operation added. Not supposed to work under <product>Windows NT</product>.</ni>
25 <ni><b>Paste</b> is made aware of local echoing.</ni> 28 <ni><b>Paste</b> is made aware of local echoing.</ni>
26 <ni>Default terminal type when telnetting to non-telnet port is now <b>TTY</b>.</ni> 29 <ni>Default terminal type when telnetting to non-telnet port is now <b>TTY</b>.</ni>
27 <ni><b>Timing Mark</b> telnet option (<rfc num="860"/>) implemented (<b>Alt-T</b>).</ni> 30 <ni><b>Timing Mark</b> telnet option (<rfc num="860"/>) implemented (<b>Alt-T</b>).</ni>
28 <ni>Improved handling of window icon when starting from other <term>Win32</term> command line application.</ni> 31 <ni>Improved handling of window icon when starting from other <term>Win32</term> command line application.</ni>
29 </newsfor> 32 </newsfor>
30 </topic> 33 </topic>
31 <topic id="Using" title="Using KINSole"> 34 <topic id="Using" title="Using KINSole">
32 <heading scroll="no">Using <kin>KINSole</kin></heading> 35 <heading scroll="no">Using <kin>KINSole</kin></heading>
33 <p>You may run <kin>KINSole</kin> from your MS-DOS prompt by typing '<i>kinsole host port</i>'.</p> 36 <p>You may run <kin>KINSole</kin> from your MS-DOS prompt by typing '<i>kinsole host port</i>'.</p>
34 <p>If you need to know more about custom options, please proceed to the <a href="#CmdOptions">Command Line Options</a> section.</p> 37 <p>If you need to know more about custom options, please proceed to the <a href="#CmdOptions">Command Line Options</a> section.</p>
35 </topic> 38 </topic>
36 <topic id="CmdOptions" title="Command Line Options"> 39 <topic id="CmdOptions" title="Command Line Options">
37 <heading scroll="no">Command Line Options</heading> 40 <heading scroll="no">Command Line Options</heading>
38 <p>Usage:</p> 41 <p>Usage:</p>
39 <p>KINSole [<i>options</i> ]<i>host</i>[ <i>port</i>]</p> 42 <p>KINSole [<i>options</i> ]<i>host</i>[ <i>port</i>]</p>
40 <p>Available options are:</p> 43 <p>Available options are:</p>
41 <ul> 44 <ul>
42 <li><b>-r <i>##</i></b> or <b>-<i>##</i></b> - Try to set the number of rows in console screen buffer.</li> 45 <li><b>-r <i>##</i></b> or <b>-<i>##</i></b> - Try to set the number of rows in console screen buffer.</li>
43 <li><b>-c <i>##</i></b> - Try to set the number of columns in console screenbuffer.</li> 46 <li><b>-c <i>##</i></b> - Try to set the number of columns in console screenbuffer.</li>
44 <li><note>Note: Changing of console's screenbuffer size either from command line or on remote host's request (ESC[?3h vt100/vt102 control sequence) may not work when in fullscreen mode.</note></li> 47 <li><note>Note: Changing of console's screenbuffer size either from command line or on remote host's request (ESC[?3h vt100/vt102 control sequence) may not work when in fullscreen mode.</note></li>
45 <li><b>-l <i>username</i></b> - Pass username to remote server in environment if remote server allows.</li> 48 <li><b>-l <i>username</i></b> - Pass username to remote server in environment if remote server allows.</li>
46 <li><b>-e <i>var</i>=<i>val</i></b> - Pass environment variable to remote server.</li> 49 <li><b>-e <i>var</i>=<i>val</i></b> - Pass environment variable to remote server.</li>
47 <li><b>-v <i>var</i>=<i>val</i></b> - Pass user environment variable to remote server.</li> 50 <li><b>-v <i>var</i>=<i>val</i></b> - Pass user environment variable to remote server.</li>
48 <li><b>-t <i>termtype</i></b> - Change preferred terminal type to pass to remote server. This option does not really force specific terminal emulation. Final decision on terminal type is left up to server. Both sides are supposed to negotiate terminal type when connecting so that both sides may feel satisfied. Default preference is <b>vt102</b>.</li> 51 <li><b>-t <i>termtype</i></b> - Change preferred terminal type to pass to remote server. This option does not really force specific terminal emulation. Final decision on terminal type is left up to server. Both sides are supposed to negotiate terminal type when connecting so that both sides may feel satisfied. Default preference is <b>vt102</b>.</li>
49 </ul> 52 </ul>
50 </topic> 53 </topic>
51 <topic id="HotKeys" title="Hot Keys"> 54 <topic id="HotKeys" title="Hot Keys">
52 <heading scroll="no">Hot Keys</heading> 55 <heading scroll="no">Hot Keys</heading>
53 <p>While running <kin>KINSole</kin> you may use these key combinations:</p> 56 <p>While running <kin>KINSole</kin> you may use these key combinations:</p>
54 <ul> 57 <ul>
55 <li><b>Alt-X/Alt-Q</b> - Terminate telnet session and leave <kin>KINSole</kin>.</li> 58 <li><b>Alt-X/Alt-Q</b> - Terminate telnet session and leave <kin>KINSole</kin>.</li>
56 <li><b>Alt-Y</b> - Send <b>AYT (Are You There)</b> telnet command. Remote host (if it supports telnet protocol as it's supposed to) should provide you with visible/printable/audible feedback stating that it's alive. You may want to use it when running program which takes unusually long time to finish and you suspect that your connection is dead.</li> 59 <li><b>Alt-Y</b> - Send <b>AYT (Are You There)</b> telnet command. Remote host (if it supports telnet protocol as it's supposed to) should provide you with visible/printable/audible feedback stating that it's alive. You may want to use it when running program which takes unusually long time to finish and you suspect that your connection is dead.</li>
57 <li><b>Shift-INS</b> Paste text from Windows Clipboard.</li> 60 <li><b>Shift-INS</b> Paste text from Windows Clipboard.</li>
58 <li><b>Ctrl-Break</b> Send <b>IP (Interrupt Process)</b> telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case.</li> 61 <li><b>Ctrl-Break</b> Send <b>IP (Interrupt Process)</b> telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case.</li>
59 <li><b>Alt-INS</b> - Invoke <b>copying</b> from <kin>KINSole</kin> screen buffer.</li> 62 <li><b>Alt-INS</b> - Invoke <b>copying</b> from <kin>KINSole</kin> screen buffer.</li>
60 <li><b>Alt-T</b> - Send <b>TIMING-MARK</b> request. As soon as response comes <kin>KINSole</kin> will flash window thrice or beep if window handle is not available for some reason.</li> 63 <li><b>Alt-T</b> - Send <b>TIMING-MARK</b> request. As soon as response comes <kin>KINSole</kin> will flash window thrice or beep if window handle is not available for some reason.</li>
diff --git a/install/install.cpp b/install/install.cpp
index aa474d5..bbc2b3b 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -1,65 +1,73 @@
1#include "resource.h" 1#include "resource.h"
2#include "../shared-code/install.h" 2#include "../shared-code/install.h"
3 3
4 #define KINAME"KINSole 1.1" 4#define VERSION "1.1.1"
5 #define KINAME"KINSole " VERSION
5 #define SKINAME"KINSole" 6 #define SKINAME"KINSole"
6 7
7BOOL Install(void) 8BOOL Install(void)
8{ 9{
9STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path"); 10STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path");
10STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath"); 11STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath");
11LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); 12LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings");
12STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath); 13STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath);
13 if(!path) 14 if(!path)
14 return NULL; 15 return NULL;
15STRING winDir(_MAX_PATH); 16STRING winDir(_MAX_PATH);
16 17
17 GetWindowsDirectory(winDir,_MAX_PATH); 18 GetWindowsDirectory(winDir,_MAX_PATH);
18 INSTALLFILE("KINSole.ex_",winDir,"KINSole.exe"); 19 INSTALLFILE("KINSole.ex_",winDir,"KINSole.exe");
19 MAKE_PATH(path); 20 MAKE_PATH(path);
20STRING shortPath = GET_SHORT_PATH(path); 21STRING shortPath = GET_SHORT_PATH(path);
21 if(!shortPath){ 22 if(!shortPath){
22 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); 23 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
23 return FALSE; 24 return FALSE;
24 } 25 }
25 if(!( 26 if(!(
26 INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") && 27 INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") &&
27 INSTALLFILE("KINSole.cn_",path,"KINSole.cnt") 28 INSTALLFILE("KINSole.cn_",path,"KINSole.cnt")
28 )){ 29 )){
29 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); 30 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
30 return FALSE; 31 return FALSE;
31 } 32 }
32 ADDMENU("Klever Group","KINSole Help",path,SKINAME ".hlp"); 33 ADDMENU("Klever Group","KINSole Help",path,SKINAME ".hlp");
33 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group", SKINAME "Path",path); 34 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group", SKINAME "Path",path);
34 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path); 35 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path);
35FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF"); 36FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF");
36 if(!inf){ 37 if(!inf){
37 MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK); 38 MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK);
38 return FALSE; 39 return FALSE;
39 } 40 }
40 INF_FILE_HEADER(inf); 41 INF_FILE_HEADER(inf);
41 INF_FILE_SECTION(inf,"Uninstall"); 42 INF_FILE_SECTION(inf,"Uninstall");
42 fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n"); 43 fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n");
43 44
44 INF_FILE_SECTION(inf,"kFiles"); 45 INF_FILE_SECTION(inf,"kFiles");
45 INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath); 46 INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath);
46 INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME); 47 INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME);
47 INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf"); 48 INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf");
48 49
49 INF_REMOVE_ROOT(inf,SKINAME "WFiles",winDir); 50 INF_REMOVE_ROOT(inf,SKINAME "WFiles",winDir);
50 INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe"); 51 INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe");
51 52
52 INF_FILE_SECTION(inf,"kReg"); 53 INF_FILE_SECTION(inf,"kReg");
53 INF_UNINSTALL_REG(inf,SKINAME); 54 INF_UNINSTALL_REG(inf,SKINAME);
54 55
55 INF_FILE_SECTION(inf,"kMenu"); 56 INF_FILE_SECTION(inf,"kMenu");
56 INF_MENU_GROUP(inf,1,"Klever Group"); 57 INF_MENU_GROUP(inf,1,"Klever Group");
57 INF_MENU_ITEM(inf,1,"KINSole Help"); 58 INF_MENU_ITEM(inf,1,"KINSole Help");
58 fclose(inf); 59 fclose(inf);
59 60
60 REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall"); 61 REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall");
62 REG_UNINSTALL_ICON(SKINAME,path,SKINAME ".exe",0);
63 REG_UNINSTALL_COMMENT(SKINAME,"Klever " KINAME);
64 REG_UNINSTALL_VERSION(SKINAME,VERSION);
65 REG_UNINSTALL_LOCATION(SKINAME,path);
66 REG_UNINSTALL_PUBLISHER(SKINAME,"Klever Group");
67 REG_UNINSTALL_URLS(SKINAME,"http://www.klever.net/","http://kin.klever.net/kinsole/");
68
61 69
62 MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in 'Programs/Klever Group' menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK); 70 MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in 'Programs/Klever Group' menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK);
63 71
64 return TRUE; 72 return TRUE;
65} 73}
diff --git a/install/install.rc b/install/install.rc
index 04ae8f4..4b81d3e 100644
--- a/install/install.rc
+++ b/install/install.rc
@@ -86,97 +86,97 @@ BEGIN
86 BOTTOMMARGIN, 66 86 BOTTOMMARGIN, 66
87 HORZGUIDE, 37 87 HORZGUIDE, 37
88 END 88 END
89END 89END
90#endif // APSTUDIO_INVOKED 90#endif // APSTUDIO_INVOKED
91 91
92 92
93#ifdef APSTUDIO_INVOKED 93#ifdef APSTUDIO_INVOKED
94///////////////////////////////////////////////////////////////////////////// 94/////////////////////////////////////////////////////////////////////////////
95// 95//
96// TEXTINCLUDE 96// TEXTINCLUDE
97// 97//
98 98
991 TEXTINCLUDE DISCARDABLE 991 TEXTINCLUDE DISCARDABLE
100BEGIN 100BEGIN
101 "resource.h\0" 101 "resource.h\0"
102END 102END
103 103
1042 TEXTINCLUDE DISCARDABLE 1042 TEXTINCLUDE DISCARDABLE
105BEGIN 105BEGIN
106 "#include ""afxres.h""\r\n" 106 "#include ""afxres.h""\r\n"
107 "\0" 107 "\0"
108END 108END
109 109
1103 TEXTINCLUDE DISCARDABLE 1103 TEXTINCLUDE DISCARDABLE
111BEGIN 111BEGIN
112 "#include ""custom.rch""\0" 112 "#include ""custom.rch""\0"
113END 113END
114 114
115#endif // APSTUDIO_INVOKED 115#endif // APSTUDIO_INVOKED
116 116
117 117
118///////////////////////////////////////////////////////////////////////////// 118/////////////////////////////////////////////////////////////////////////////
119// 119//
120// Icon 120// Icon
121// 121//
122 122
123// Icon with lowest ID value placed first to ensure application icon 123// Icon with lowest ID value placed first to ensure application icon
124// remains consistent on all systems. 124// remains consistent on all systems.
125IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico" 125IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico"
126 126
127#ifndef _MAC 127#ifndef _MAC
128///////////////////////////////////////////////////////////////////////////// 128/////////////////////////////////////////////////////////////////////////////
129// 129//
130// Version 130// Version
131// 131//
132 132
133VS_VERSION_INFO VERSIONINFO 133VS_VERSION_INFO VERSIONINFO
134 FILEVERSION 1,1,0,0 134 FILEVERSION 1,1,1,0
135 PRODUCTVERSION 1,1,0,0 135 PRODUCTVERSION 1,1,1,0
136 FILEFLAGSMASK 0x3fL 136 FILEFLAGSMASK 0x3fL
137#ifdef _DEBUG 137#ifdef _DEBUG
138 FILEFLAGS 0x1L 138 FILEFLAGS 0x1L
139#else 139#else
140 FILEFLAGS 0x0L 140 FILEFLAGS 0x0L
141#endif 141#endif
142 FILEOS 0x40004L 142 FILEOS 0x40004L
143 FILETYPE 0x1L 143 FILETYPE 0x1L
144 FILESUBTYPE 0x0L 144 FILESUBTYPE 0x0L
145BEGIN 145BEGIN
146 BLOCK "StringFileInfo" 146 BLOCK "StringFileInfo"
147 BEGIN 147 BEGIN
148 BLOCK "040904b0" 148 BLOCK "040904b0"
149 BEGIN 149 BEGIN
150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" 150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
151 VALUE "FileDescription", "INSTALL: KINSole, telnet client\0" 151 VALUE "FileDescription", "INSTALL: KINSole, telnet client\0"
152 VALUE "FileVersion", "1, 1, 0, 0\0" 152 VALUE "FileVersion", "1, 1, 1, 0\0"
153 VALUE "InternalName", "INSTALL\0" 153 VALUE "InternalName", "INSTALL\0"
154 VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0" 154 VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0"
155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" 155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
156 VALUE "OriginalFilename", "INSTALL.EXE\0" 156 VALUE "OriginalFilename", "INSTALL.EXE\0"
157 VALUE "ProductName", "KINSole\0" 157 VALUE "ProductName", "KINSole\0"
158 VALUE "ProductVersion", "1, 1, 0, 0\0" 158 VALUE "ProductVersion", "1, 1, 1, 0\0"
159 END 159 END
160 END 160 END
161 BLOCK "VarFileInfo" 161 BLOCK "VarFileInfo"
162 BEGIN 162 BEGIN
163 VALUE "Translation", 0x409, 1200 163 VALUE "Translation", 0x409, 1200
164 END 164 END
165END 165END
166 166
167#endif // !_MAC 167#endif // !_MAC
168 168
169#endif // English (U.S.) resources 169#endif // English (U.S.) resources
170///////////////////////////////////////////////////////////////////////////// 170/////////////////////////////////////////////////////////////////////////////
171 171
172 172
173 173
174#ifndef APSTUDIO_INVOKED 174#ifndef APSTUDIO_INVOKED
175///////////////////////////////////////////////////////////////////////////// 175/////////////////////////////////////////////////////////////////////////////
176// 176//
177// Generated from the TEXTINCLUDE 3 resource. 177// Generated from the TEXTINCLUDE 3 resource.
178// 178//
179#include "custom.rch" 179#include "custom.rch"
180///////////////////////////////////////////////////////////////////////////// 180/////////////////////////////////////////////////////////////////////////////
181#endif // not APSTUDIO_INVOKED 181#endif // not APSTUDIO_INVOKED
182 182
diff --git a/kinsole.cpp b/kinsole.cpp
index 01286f3..7fa3f8b 100644
--- a/kinsole.cpp
+++ b/kinsole.cpp
@@ -1,67 +1,67 @@
1#include <stdio.h> 1#include <stdio.h>
2 2
3 #ifdef_DEBUG 3 #ifdef_DEBUG
4#include <afxwin.h> 4#include <afxwin.h>
5#else 5#else
6#define ASSERT(f) ((void)0) 6#define ASSERT(f) ((void)0)
7#define VERIFY(f) ((void)(f)) 7#define VERIFY(f) ((void)(f))
8#define TRACE0(sz) 8#define TRACE0(sz)
9#define TRACE1(sz, p1) 9#define TRACE1(sz, p1)
10#define TRACE2(sz, p1, p2) 10#define TRACE2(sz, p1, p2)
11#define TRACE3(sz, p1, p2, p3) 11#define TRACE3(sz, p1, p2, p3)
12#endif 12#endif
13 13
14#include <winsock.h> 14#include <winsock.h>
15#include "resource.h" 15#include "resource.h"
16#include "windowsx.h" 16#include "windowsx.h"
17 17
18 #define DAMN_KIN_NAME "KINSole" 18 #define DAMN_KIN_NAME "KINSole"
19 #define DAMN_KIN_VERSION"1.1" 19 #define DAMN_KIN_VERSION"1.1.1"
20 20
21#ifdef _DEBUG 21#ifdef _DEBUG
22#define new DEBUG_NEW 22#define new DEBUG_NEW
23#undef THIS_FILE 23#undef THIS_FILE
24static char THIS_FILE[] = __FILE__; 24static char THIS_FILE[] = __FILE__;
25#endif 25#endif
26 26
27enum { 27enum {
28 WM_USERSOCKET = WM_USER+16, 28 WM_USERSOCKET = WM_USER+16,
29 WM_USERKEY, 29 WM_USERKEY,
30 WM_USERNOP 30 WM_USERNOP
31}; 31};
32enum { 32enum {
33 tnIAC = 255, 33 tnIAC = 255,
34 tnSE = 240, 34 tnSE = 240,
35 tnNOP = 241, 35 tnNOP = 241,
36 tnDM = 242, 36 tnDM = 242,
37 tnBreak = 243, 37 tnBreak = 243,
38 tnIP = 244, 38 tnIP = 244,
39 tnAO = 245, 39 tnAO = 245,
40 tnAYT = 246, 40 tnAYT = 246,
41 tnEC = 247, 41 tnEC = 247,
42 tnEL = 248, 42 tnEL = 248,
43 tnGA = 249, 43 tnGA = 249,
44 tnSB = 250, 44 tnSB = 250,
45 tnWILL = 251, 45 tnWILL = 251,
46 tnWONT = 252, 46 tnWONT = 252,
47 tnDO = 253, 47 tnDO = 253,
48 tnDONT = 254 48 tnDONT = 254
49}; 49};
50 50
51WSADATA wsaData; 51WSADATA wsaData;
52ATOM wsaWC = NULL; 52ATOM wsaWC = NULL;
53HWND wsaW = NULL; 53HWND wsaW = NULL;
54 54
55CHAR remoteHost[256]; 55CHAR remoteHost[256];
56CHAR remoteProt[256]; 56CHAR remoteProt[256];
57sockaddr_in remoteSIN; 57sockaddr_in remoteSIN;
58 58
59 59
60SOCKET telnetSocket; 60SOCKET telnetSocket;
61HANDLE hConsoleInput; 61HANDLE hConsoleInput;
62HANDLE hConsoleOutput; 62HANDLE hConsoleOutput;
63HWND hConsoleWindow; 63HWND hConsoleWindow;
64HANDLE hConsoleThread; 64HANDLE hConsoleThread;
65DWORD consoleThreadID; 65DWORD consoleThreadID;
66HANDLE hDispatchThread; 66HANDLE hDispatchThread;
67DWORD dispatchThreadID; 67DWORD dispatchThreadID;
@@ -505,97 +505,97 @@ WNDCLASS wc;
505 printf("Failed to initialize winsock services\n"); 505 printf("Failed to initialize winsock services\n");
506 return FALSE; 506 return FALSE;
507 } 507 }
508 return TRUE; 508 return TRUE;
509} 509}
510void DeinitializeWinsock() 510void DeinitializeWinsock()
511{ 511{
512 if(wsaW) 512 if(wsaW)
513 ::DestroyWindow(wsaW); 513 ::DestroyWindow(wsaW);
514 wsaW=NULL; 514 wsaW=NULL;
515 if(wsaWC) 515 if(wsaWC)
516 ::UnregisterClass("_WSTFWC_",::GetModuleHandle(NULL)); 516 ::UnregisterClass("_WSTFWC_",::GetModuleHandle(NULL));
517 wsaWC=NULL; 517 wsaWC=NULL;
518 WSACleanup(); 518 WSACleanup();
519} 519}
520 520
521HWND GetThisConsoleWnd() 521HWND GetThisConsoleWnd()
522{ 522{
523DWORD pid = GetCurrentProcessId(); 523DWORD pid = GetCurrentProcessId();
524CHAR title[512]; 524CHAR title[512];
525CHAR* t = title; 525CHAR* t = title;
526 if(!GetConsoleTitle(title,sizeof(title))) 526 if(!GetConsoleTitle(title,sizeof(title)))
527 t = NULL; 527 t = NULL;
528HWND hrv = FindWindowEx(NULL,NULL,"tty",t); 528HWND hrv = FindWindowEx(NULL,NULL,"tty",t);
529HWND nopro = NULL; 529HWND nopro = NULL;
530UINT nopros=0; 530UINT nopros=0;
531 do{ 531 do{
532 DWORD wpid; 532 DWORD wpid;
533 if(!GetWindowThreadProcessId(hrv,&wpid)) 533 if(!GetWindowThreadProcessId(hrv,&wpid))
534 continue; 534 continue;
535 if(wpid==pid) 535 if(wpid==pid)
536 return hrv; 536 return hrv;
537 nopro=hrv; 537 nopro=hrv;
538 nopros++; 538 nopros++;
539 hrv = FindWindowEx(NULL,hrv,"tty",t); 539 hrv = FindWindowEx(NULL,hrv,"tty",t);
540 }while(hrv); 540 }while(hrv);
541 if(nopros==1){ 541 if(nopros==1){
542 ASSERT(nopro); 542 ASSERT(nopro);
543 return nopro; 543 return nopro;
544 } 544 }
545 return NULL; 545 return NULL;
546} 546}
547 547
548main(int argc,char*argv[]) 548main(int argc,char*argv[])
549{ 549{
550 if(argc<2){ 550 if(argc<2){
551usagebye: 551usagebye:
552 printf( 552 printf(
553 DAMN_KIN_NAME " " DAMN_KIN_VERSION ", Copyright (c) 1998-2004 Klever Group (http://www.klever.net/)\n\n" 553 DAMN_KIN_NAME " " DAMN_KIN_VERSION ", Copyright (c) 1998-2005 Klever Group (http://www.klever.net/)\n\n"
554 "Usage:\t" DAMN_KIN_NAME " [<options> ]<host-name/ip-address>[ <port>]\n\n" 554 "Usage:\t" DAMN_KIN_NAME " [<options> ]<host-name/ip-address>[ <port>]\n\n"
555 "Options are:\n" 555 "Options are:\n"
556 "-r## or -##\tSet number of rows in console screenbuffer\n" 556 "-r## or -##\tSet number of rows in console screenbuffer\n"
557 "-c##\t\tSet number of columns in console screenbuffer\n" 557 "-c##\t\tSet number of columns in console screenbuffer\n"
558 "\tnote: changing console screenbuffer size may not work properly\n" 558 "\tnote: changing console screenbuffer size may not work properly\n"
559 "\twhen in full-screen mode\n" 559 "\twhen in full-screen mode\n"
560 "-l<user>\tPass username to remote server in environment\n" 560 "-l<user>\tPass username to remote server in environment\n"
561 "-e<var>=<val>\tPass environment variable to remote server\n" 561 "-e<var>=<val>\tPass environment variable to remote server\n"
562 "-v<var>=<val>\tPass user environment variable to remote server\n" 562 "-v<var>=<val>\tPass user environment variable to remote server\n"
563 "-t<termtype>\tChange preferred terminal type\n" 563 "-t<termtype>\tChange preferred terminal type\n"
564 "\tnote: there are only two different terminal emulations in this\n" 564 "\tnote: there are only two different terminal emulations in this\n"
565 "\trelease - one for dumb terminal and one for vt terminal\n" 565 "\trelease - one for dumb terminal and one for vt terminal\n"
566 ); 566 );
567 CleanEnvars(); 567 CleanEnvars();
568 return 1; 568 return 1;
569 } 569 }
570 if(!InitializeWinsock()){ 570 if(!InitializeWinsock()){
571 DeinitializeWinsock(); 571 DeinitializeWinsock();
572 return 2; 572 return 2;
573 } 573 }
574CONSOLE_SCREEN_BUFFER_INFO csbi; 574CONSOLE_SCREEN_BUFFER_INFO csbi;
575int ac = 0; 575int ac = 0;
576CHAR *ho = NULL, *po = NULL; 576CHAR *ho = NULL, *po = NULL;
577HANDLE hConsole = CreateFile("CONOUT$",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, 577HANDLE hConsole = CreateFile("CONOUT$",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,
578 NULL,OPEN_EXISTING,0,NULL); 578 NULL,OPEN_EXISTING,0,NULL);
579 ASSERT(hConsole); 579 ASSERT(hConsole);
580 // *** GetStdHandle(STD_OUTPUT_HANDLE);// *?*?* Do something about redirections and not only here. 580 // *** GetStdHandle(STD_OUTPUT_HANDLE);// *?*?* Do something about redirections and not only here.
581 VERIFY(GetConsoleScreenBufferInfo(hConsole,&csbi)); 581 VERIFY(GetConsoleScreenBufferInfo(hConsole,&csbi));
582BOOL bSized=FALSE; 582BOOL bSized=FALSE;
583 bTermPulled=FALSE; 583 bTermPulled=FALSE;
584 for(int tmp=1;tmp<argc;tmp++){ 584 for(int tmp=1;tmp<argc;tmp++){
585 char* v = argv[tmp]; 585 char* v = argv[tmp];
586 ASSERT(v && *v); 586 ASSERT(v && *v);
587 if((*v)=='/' || (*v)=='-'){ 587 if((*v)=='/' || (*v)=='-'){
588 int lines = atoi(&v[1]); 588 int lines = atoi(&v[1]);
589 if(lines){ 589 if(lines){
590 if(lines<csbi.dwSize.Y){ 590 if(lines<csbi.dwSize.Y){
591 SMALL_RECT wi = {0,0,csbi.dwSize.X-1,lines-1}; 591 SMALL_RECT wi = {0,0,csbi.dwSize.X-1,lines-1};
592 VERIFY(SetConsoleWindowInfo(hConsole,TRUE,&wi)); 592 VERIFY(SetConsoleWindowInfo(hConsole,TRUE,&wi));
593 } 593 }
594 COORD ns = {csbi.dwSize.X,lines}; 594 COORD ns = {csbi.dwSize.X,lines};
595 if(SetConsoleScreenBufferSize(hConsole,ns)) 595 if(SetConsoleScreenBufferSize(hConsole,ns))
596 bSized=TRUE; 596 bSized=TRUE;
597 }else if(v[1]=='r'){ 597 }else if(v[1]=='r'){
598 int lines = atoi(&v[2]); 598 int lines = atoi(&v[2]);
599 if(lines){ 599 if(lines){
600 if(lines<csbi.dwSize.Y){ 600 if(lines<csbi.dwSize.Y){
601 SMALL_RECT wi = {0,0,csbi.dwSize.X-1,lines-1}; 601 SMALL_RECT wi = {0,0,csbi.dwSize.X-1,lines-1};
diff --git a/kinsole.rc b/kinsole.rc
index 6e45d44..531055e 100644
--- a/kinsole.rc
+++ b/kinsole.rc
@@ -18,98 +18,98 @@
18#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 18#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
19#ifdef _WIN32 19#ifdef _WIN32
20LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 20LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
21#pragma code_page(1252) 21#pragma code_page(1252)
22#endif //_WIN32 22#endif //_WIN32
23 23
24///////////////////////////////////////////////////////////////////////////// 24/////////////////////////////////////////////////////////////////////////////
25// 25//
26// Icon 26// Icon
27// 27//
28 28
29// Icon with lowest ID value placed first to ensure application icon 29// Icon with lowest ID value placed first to ensure application icon
30// remains consistent on all systems. 30// remains consistent on all systems.
31IDI_IKON ICON DISCARDABLE "res/kinsole.ico" 31IDI_IKON ICON DISCARDABLE "res/kinsole.ico"
32 32
33#ifdef APSTUDIO_INVOKED 33#ifdef APSTUDIO_INVOKED
34///////////////////////////////////////////////////////////////////////////// 34/////////////////////////////////////////////////////////////////////////////
35// 35//
36// TEXTINCLUDE 36// TEXTINCLUDE
37// 37//
38 38
391 TEXTINCLUDE DISCARDABLE 391 TEXTINCLUDE DISCARDABLE
40BEGIN 40BEGIN
41 "resource.h\0" 41 "resource.h\0"
42END 42END
43 43
442 TEXTINCLUDE DISCARDABLE 442 TEXTINCLUDE DISCARDABLE
45BEGIN 45BEGIN
46 "#include ""afxres.h""\r\n" 46 "#include ""afxres.h""\r\n"
47 "\0" 47 "\0"
48END 48END
49 49
503 TEXTINCLUDE DISCARDABLE 503 TEXTINCLUDE DISCARDABLE
51BEGIN 51BEGIN
52 "\r\n" 52 "\r\n"
53 "\0" 53 "\0"
54END 54END
55 55
56#endif // APSTUDIO_INVOKED 56#endif // APSTUDIO_INVOKED
57 57
58 58
59#ifndef _MAC 59#ifndef _MAC
60///////////////////////////////////////////////////////////////////////////// 60/////////////////////////////////////////////////////////////////////////////
61// 61//
62// Version 62// Version
63// 63//
64 64
65VS_VERSION_INFO VERSIONINFO 65VS_VERSION_INFO VERSIONINFO
66 FILEVERSION 1,1,0,0 66 FILEVERSION 1,1,1,0
67 PRODUCTVERSION 1,1,0,0 67 PRODUCTVERSION 1,1,1,0
68 FILEFLAGSMASK 0x3fL 68 FILEFLAGSMASK 0x3fL
69#ifdef _DEBUG 69#ifdef _DEBUG
70 FILEFLAGS 0x29L 70 FILEFLAGS 0x29L
71#else 71#else
72 FILEFLAGS 0x28L 72 FILEFLAGS 0x28L
73#endif 73#endif
74 FILEOS 0x4L 74 FILEOS 0x4L
75 FILETYPE 0x1L 75 FILETYPE 0x1L
76 FILESUBTYPE 0x3L 76 FILESUBTYPE 0x3L
77BEGIN 77BEGIN
78 BLOCK "StringFileInfo" 78 BLOCK "StringFileInfo"
79 BEGIN 79 BEGIN
80 BLOCK "040904b0" 80 BLOCK "040904b0"
81 BEGIN 81 BEGIN
82 VALUE "CompanyName", "Klever Group (http://www.klever.net)\0" 82 VALUE "CompanyName", "Klever Group (http://www.klever.net)\0"
83 VALUE "FileDescription", "KINSole, telnet client\0" 83 VALUE "FileDescription", "KINSole, telnet client\0"
84 VALUE "FileVersion", "1, 1, 0, 0\0" 84 VALUE "FileVersion", "1, 1, 1, 0\0"
85 VALUE "InternalName", "KINSOLE\0" 85 VALUE "InternalName", "KINSOLE\0"
86 VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0" 86 VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0"
87 VALUE "LegalTrademarks", "Klever Group (http://www.klevernet/)\0" 87 VALUE "LegalTrademarks", "Klever Group (http://www.klevernet/)\0"
88 VALUE "OriginalFilename", "KINSOLE.EXE\0" 88 VALUE "OriginalFilename", "KINSOLE.EXE\0"
89 VALUE "ProductName", "KINSole\0" 89 VALUE "ProductName", "KINSole\0"
90 VALUE "ProductVersion", "1, 1, 0, 0\0" 90 VALUE "ProductVersion", "1, 1, 1, 0\0"
91 END 91 END
92 END 92 END
93 BLOCK "VarFileInfo" 93 BLOCK "VarFileInfo"
94 BEGIN 94 BEGIN
95 VALUE "Translation", 0x409, 1200 95 VALUE "Translation", 0x409, 1200
96 END 96 END
97END 97END
98 98
99#endif // !_MAC 99#endif // !_MAC
100 100
101#endif // English (U.S.) resources 101#endif // English (U.S.) resources
102///////////////////////////////////////////////////////////////////////////// 102/////////////////////////////////////////////////////////////////////////////
103 103
104 104
105 105
106#ifndef APSTUDIO_INVOKED 106#ifndef APSTUDIO_INVOKED
107///////////////////////////////////////////////////////////////////////////// 107/////////////////////////////////////////////////////////////////////////////
108// 108//
109// Generated from the TEXTINCLUDE 3 resource. 109// Generated from the TEXTINCLUDE 3 resource.
110// 110//
111 111
112 112
113///////////////////////////////////////////////////////////////////////////// 113/////////////////////////////////////////////////////////////////////////////
114#endif // not APSTUDIO_INVOKED 114#endif // not APSTUDIO_INVOKED
115 115