NFTP development progress: prior to 1.22

22 May 1998: Version 1.22 has been released
22 May 1998
Cursor now positioned correctly when going to yet unvisited "..". Fixed library bug which could crash NFTP. While building the distribution, Solaris appeared to not have (v)snprintf. Hey, SunSoft, it's 1998!
18 May 1998
Fixed bug when failed reget did not truncate file before starting over. Fixed(?) problem with firewall type=3 and nonstandard port.
17 May 1998
Spent several hours setting up and configuring Majordomo. Two mailing lists are available now.
16 May 1998
As a temporary solution, disabled job control support in FreeBSD version. Fixed couple bugs in the Shift-C (change directory) function when working with local files.
15 May 1998
Fixed NFTP crash when description in the bookmark entry is too long. Target release date for 1.22 is set to 20 May. Fixed bug when list of local files did not scroll horizontally.
10 May 1998
Ctrl-J now really updates the screen contents. Thought about future menu layout. First rough sketch:
    Bookmarks                 Ctrl-B
    History                F2/Ctrl-E
    Save bookmark         F4/Shift-B
    Login (anonymous)         Ctrl-L
    Login (private)           Ctrl-N
    Logoff                    Ctrl-K
    Redraw screen             Ctrl-J
    Suspend (Unix only)       Ctrl-Z
    Exit                         F10
    Sort by name        Shift-N
    Sort by extension   Shift-X
    Sort by size        Shift-S
    Sort by time        Shift-T
    Unsorted            Shift-Y
    Reverse sort order  Shift-E
    View file         F3/Ctrl-V
    View w/ext program  Shift-V
    Enter directory       Enter
    Change directory    Shift-C
    Change to root directory  \
    Re-read directory    Ctrl-R
    Save listing        Shift-L
    Change local drive  Shift-Z
    Make directory    F7/Ctrl-G
    Rename              Shift-R
    Delete            F8/Delete

    Select/deselect   Insert/Shift-M
    Select by mask                 +
    Deselect by mask               -
    Select all                Ctrl-A
    Deselect all              Ctrl-X
    Deselect in all dirs      Ctrl-Y
    Invert selection               *
    Download              F5/Shift-D
    Download everything       Ctrl-D
    Download by name         Shift-G
    Upload                F6/Shift-U
    Upload everything         Ctrl-U

    Hide descriptions Ctrl-O
    Load descriptions Shift-O
    Switch directory mode Ctrl-P
    Check connection Shift-A
    Send command Shift-Q
    Switch to control connection Space
    Switch remote/local Tab
    Show info                            Shift-I
    Edit settings                      F9/Ctrl-F
    Binary transfers                      Ctrl-T
    Autoswitching to control connection  Shift-J
    Use flags                            Shift-F
    Help              F1/?
    Main help      Shift-H
    Concise help   Shift-K
    Using menus
    About NFTP      Ctrl-W
This feature will not be in 1.22 yet.
9 May 1998
Help text for history. Scrambling passwords in history files. Updated key assignments: F2/Ctrl-E - history; Ctrl-F - edit nftp.ini (same as F9), Del - delete file/directory (same as F8), Ctrl-G - create directory (same as F7). Job control appeared not to work under FreeBSD (different signal() interface); don't know how to fix yet. Test version is released.
8 May 1998
Fixed bug when empty input on Ctrl-N would crash NFTP. Looked at my circa 1992 code for simple menuing system. Hmm, needs lots of work but could be used as a basis. Worked on history code (watermarks, fixing scroll bugs). Moved messages to NLS files. SIGTSTP is now simulated when terminal does not support it (OS/2 ssh port is an example). Alas, this is not 100% equivalent of terminal's SIGTSTP (signal is only generated when programs checks input buffers).
7 May 1998
Ctrl-L & Ctrl-N now recall not only hostname but also path.
6 May 1998
Worked on history feature. Enhanced installation script (Unix); it now detects previous installation and handles all kinds of target (/usr, /usr/local, ~/.nftp).
5 May 1998
DBCS support appeared to be wrong; I overdid the things. Should work now.
29 Apr 1998
DBCS support in screen display routines (waiting for test results). Coded Win32 version of new display support. On leave until 5 May.
28 Apr 1998
Rewrote OS/2 screen output routines using contents caching just like in Unix. Screen output is significantly faster now on my 486SX without L2 cache at home. "Snow" effects are completely gone. Throwed out some optimizations in bookmark redrawing routines which are no longer needed. To do: implementing and testing in the DBCS environment, same thing for Win32. History entries are now written even before DNS resolution. Flags are now read and written in bookmarks and history. Working ones: "p" -- always use passive mode for that site; "r" -- retry indefinitely; "f" -- inside firewall. Ctrl-N (private login) now remembers the previous login name and password.
26 Apr 1998
Introduced new option "start-prompt": 1 -- to open anonymous login prompt, 2 -- to open bookmark window, 3 -- to open history, 4 -- to open private login prompt. More elegant handling of startup options (as initial keystroke).
25 Apr 1998
History almost works now (except some rarely needed but important parts). Fixed subtle bug with high-half ASCII chars being translated incorrectly. Selecting new bookmark (or history entry) which is on the same site does not cause logoff/login procedure. NFTP is now much smarter at first-time installation (copies nftp.i to nftp.ini and to nftp.bmk if missing). Ukrainian DOS-Unix translation is now handled automatically when making distributions.
22 Apr 1998
Worked on history. Now it is read and written correctly, and even primitive cleanups are done. Had to change other things a bit (userid="" now means anonymous in Login()).
21 Apr 1998
Shift-U/Shift-D now work in Bookmark/Folders view.
20 Apr 1998
Started to work on history feature.
18 Apr 1998
Looks like problem with EINTR is fixed, and background transfers are working fine. Fixed another problem with job control, namely CPU hogging after exiting the shell (NFTP will now exit after transfer completion if you have logged out). "Information" (Shift-I) now displays current URL and offers to copy it to clipboard (on non-Unix systems).
17 Apr 1998
Looks like I got excited about job control functions a bit too early. In the background, transfer stops after some time. Don't know why yet. Fixed bug: when doing "retrieve from all dirs" while current directory is "/", subdirectory names lose first symbol. Worked on Ctrl-E input method. Error when local directory cannot be created when doing tree transfers is now reported.
Seen and heard Peter Hammill live here, in Moscow, on Everyone You Hold tour. Believe it or not. I still don't.
14 Apr 1998
Full job control seems to work OK (Unix). You can now stop NFTP with Ctrl-Z, resume with "fg", send to background with "bg", return to foreground with "fg". Keyboard state is restored correctly; screen is correctly cleared and restored. Works when idle or during transfers. When idle in the background, it will no longer eat CPU cycles. Tested under Linux so far. If you have a dialup connection, install NFTP on your ISP's machine and enjoy! Started to implement the dumbest method of keyboard control: Ctrl-E serves as a prefix key, and combinations give everything else. E.g., "Ctrl-E, 1" gives F1 etc. Caused by some extremely primitive terminal emulators or overly clever window managers (which interpret even PgUp, PgDn, Home, End keys). Also helps on very large distances and slow lines when components of Esc sequence may get separated by time interval large enough to be recognized as separate keys. Ctrl-E method does not use any timeout intervals.
13 Apr 1998
Ukrainian translation is available!
12 Apr 1998
Added code to recognize function keys on Sun native keyboard.
11 Apr 1998
"!index" is now also recognized as description file (used on
Version 1.21 has been released
5 Apr 1998
Version 1.21 goes public. Uploaded to (all versions), (OS/2), (OS/2, Linux), (all versions), (Linux), * (Win32), (Win32), (Win32), (Win32). Announcements were sent to comp.os.os2.announce, comp.os.linux.announce,,
4 Apr 1998
Fixing remaining glitches in the documentation, checking everything, preparing to 1.21 release. Hungarian and Russian NLS files are now automatically translated into proper encoding before including into Unix distributions. NFTP will now retry when 4xx code is received upon attempt to start transfer (this should clear the problem with "haven't been connected yet" syndrome).
3 Apr 1998
Reorganized listing parsing stuff making it more unified. Less code; ".." is now always shown on IBM ftpd sites. More strict tests for bookmark entries validity. Solaris version seems to work if I type "stty min 1" before starting. NFTP.dbg.* files now go into "debug" subdirectory (when debug=1 is specified in nftp.ini). Fixed "stty min 1" Solaris problem. Remaining Solaris glitches are connected with byte order different from Intel's. Added MacOS Peter's ftpd support. Solaris version finally seems to work OK.
2 Apr 1998
Worked on default bookmark file. Fixed problem with IBM ftpd not recognized when running on German OS/2 (ex: Install.cmd no longer deletes NFTP object from LaunchPad or WarpCenter. Password is not longer recorded in nftp.dbg.* files ;-).
30 March 1998
Started to work on SPARC Solaris port.
29 March
Moved messages from INI auto-updating system into NLS files. Introduced new option -- disable DNS lookups for numeric addresses (by default, no lookups are done now). Fixed listing display routine a bit (local listing now looks the same as remote). Fixed several elusive bugs in auto-reconnection routines.
28 March
NFTP now compiles and works under FreeBSD (I have installed 2.2.6). To be added soon are SPARC Solaris and Digital Unix.
27 March 1998
Fixed small glitch: Esc-Esc is now recognized as Esc key (was: Alt-Esc; Unix). Added Digital Unix, SPARC Solaris, FreeBSD to makefile. Makefile improvements. Small code cleanups regarding switching between CC, remote and local views. Tab no longer works in CC view.
26 March 1998
Command-line arguments now work under Unix too. Worked on default bookmark file.
25 March 1998
Worked on man page (Unix). Eliminated unnecessary CWDs.
22 March 1998
Fixed bug: read-only file cannot be uploaded. Fixed other upload bugs (batch upload did not work at all).
Rewrote transfer interface functions making the structure more unified.
Error when file to send/receive cannot be opened is now reported.
Changing transfer modes (binary/ascii) now works from all views, including local files and control connection.
Very long paths in the status line now get truncated from the head, not the tail.
Wrote LSM file (incomplete).
Downloaded files are no longer become "executable" (have the corresponding permission bit set).
Wrong TMPDIR, TEMP, TMP variables are now handled. Under Unix, /tmp is always used. Under others OSes, current directory is used when TMPDIR/TEMP/TMP points to missing directory.
21 March 1998
Returned from Tashkent
17 March 1998
Wrote deinstallation script (Unix). Started to work on man page (Unix).
16 March 1998
NFTP now sets 700 permissions on ~/.nftp directory when started (Unix). Wrote simple installation script (Unix).
11 March 1998
Auto updating of nftp.ini works (or at least seems to).
6 March 1998
Continued to work on mechanism of automatic nftp.ini updates when upgrading to next version
4 March 1998
Finished working on ANSI library. Started to work on mechanism of automatic nftp.ini updates when upgrading to next version
3 March 1998
Began to separate screen ANSI library from the rest of code (Unix). This thing is pretty useful on its own.
Version 1.20 has been released
25 Feb 1998
At the first look, ANSI driver works. Version 1.20 goes public (in OS/2, Linux and Windows 95/NT flavours).
23:40 Leaving Moscow for Tashkent.
24 Feb 1998
Added support for Unisys A series mainframes (was a request from Brian Gaber). Continuing to develop ANSI driver. Replaced multiple M_PARSING_UNIX_LISTING, etc. with single M_PARSING_LISTING.
23 Feb 1998
Fixed ANSI driver a little bit. Did a lot of work on NLS files (put new key defaults). I think new key scheme is finished.
22 Feb 1998
Started to develop Linux screen driver based on ANSI sequences. Keyboard is handled directly, via termios and select() (seems to works flawlessly). The goal is to stop cursing. It is not complete yet (needs optimization and some kind of backing-store because I can't read screen back) but almost working (wrong attributes and screen corruption). Some things still need work though.
Fixed (?) bug triggered by dropped control connection during transfer (NFTP would enter endless loop).
21 Feb 1998
Rewrote transfer progress indicator. Now it looks much better on large displays (to 130x60 and up). Hint: use "mode 130,60" to set desired window size (OS/2). Had to change NLS files a little.
20 Feb 1998
Moved description parsing code into my Tools library (I need it for FileJuggler). Updated default keys in nftp.ini. Added alphanumeric keys to keyboard.c.
19 Feb 1998
Almost completed new key assigments. Fighting with curses (the buggiest thing I saw in years; the reason is not only in ncurses themselves, of course).
15 Feb 1998
F9 now invokes editor on nftp.ini, then loads nftp.ini again. Needs some tweaking under Linux (disable curses before starting external program). Fixed rather unusual bug in Win32 version (null character is displayed as 'a' in some fonts!)
14 Feb 1998
Started these new pages.

NFTP home page // Send comment >