/* @(#)HISTORY 1.13 94/08/28 */ -------------------- Ftptool 4.6 8/28/94 -------------------- Doesn't re-read the remote/local directories if you change the "Show Hidden Files" properties. This fixes a hang that occurs when you're connected and do this. Only does environment/tilde on directory names in the text fields now. This properly handles real directories beginning with $ through the GUI. When using NONUNIX, the name of files is that in the entire line, so it includes spaces in filenames. Transfer status now works if you double-click to View a file. Doesn't choke if the remote machine has setuid, setgid, or sticky bits set but no corresponding execute permission. Doesn't delete the original file if you try to delete a textedit backup file on the remote server anymore (oops). Complains (and exits) if the .ftptoolrc is from a newer version of ftptool. Now is a bit more lenient when trying to cd up one level. Added support for DOS directory parsing. Added ability to specify different decompression schemes in the extensions list, and have a different compressor. Ignores '.' and '..' in remote UNIX directory listings (the wuarchive server gives back this info). This fixes recursive loops when transferring directories. Now allows things like 'host 21' as the hostname, and uses the second value as the one to connect to. You can also specify a service name here. Fixed the netrc addition code to be slightly faster. Ok, a lot faster (less stupidity on my part). Added a scrolling list to the Host window. This removes the restriction that menus have on long lists. Double-clicking on an entry will cause ftptool to try to connect to that site (if you aren't connected). The Account field should be treated like the password. It's now encrypted and masked in the window. Fixed a majorly wierd bug in the varargs handling of ftp commands. This could be the nasty one I haven't been able to track down that breaks random things (hopefully). Thanks R.K.Lloyd@compsci.liverpool.ac.uk. Also added HP/UX mods based on his suggestions. -------------------- Ftptool 4.5 12/4/92 -------------------- If you press return in the remote text field, the cached directory list is discarded and the directory is re-read. Fixed major bug where it did not fall back to LS if DIR is confused. Now maps upper case file names from VMS to lower case on the (i.e. FILE.EXT;1 to file.ext)? Now compiles under OW2 (I think :-) -------------------- Ftptool 4.4 11/13/92 -------------------- Fixed a bug that caused it to get confused when you aborted a transfer. Fixed a problem with batch recieve being confused about DST, which caused it to add an hour on each add or change. Fixed recursive directory transfers to try to do symbolic links. Now handles files with embedded spaces properly, if the NAME token is last in the DIR template (which it is for Unix machines). Unfortunately, files beginning with spaces will still be wrong. Added an optional Account field in the host info panel. Now erases the session log automatically each time you connect. Local d&d works. You can drag files from either scrolling list to the other to do gets and puts. Dragging files to the root window will start a view operation. Because dragging on a scrolling list selects/deselects items, and drag and drop will prevent this, you can now also use adjust (the middle button) to drag-select items without starting a drag. In batch mode, you can now have transfers repeated every X minutes. The Properties->Viewers now supports multiple extensions. You can teach ftptool what programs to start based on what extensions they have, or by a "magic" number (specifying the first few characters of the contents). The "magic" number overrides the extension. If you don't have the .ftptooltypes file yet, it preloads the postscript and archive viewers (from the older X resources, if you have them), and xv for GIF, JPG, and Rasterfiles. '~' now in the remote text field now interpreted on the remote machine and it no longer expands environment variables in the remote text field (it really didn't make sense anyway). No longer gets confused if you try to receive a directory that you don't have permission on. Now works (again) with gateways that filter packets. There was some code that munged a socket address, which seemed to work fine at Sun, but others had many problems. That's now fixed. A new ConfirmOverWrites property stops ftptool from overwriting local files it gets. Now comments (somewhat) the fields in the .ftptoolrc. You can now select the remote OS type: UNIX, VMS, or Other (which uses a specified template, as before). It should be easier to add support for other OS's this way. Ftptool got very confuse by empty filenames (files named ' '). Now, it temporarily uses non-unix mode if it gets an empty filename for the NAME token (uses 'ls' instead of 'dir' on that directory), so you can at least see the other files. Now positions many text items so that the first characters are visible, if they do not fit in the space given. ------------------- Ftptool 4.3 7/10/92 ------------------- Changed how it handles PWD responses. Should work a bit better as long as PWD responses are 257 or 251, and enclose the directory in double-quotes. Can now be compiled with OW2. No longer dies if the remote system runs out of space. New 'ignore case' property for directory lists and host menu. Added directory, file, dot-dot, and unknown-type glyphs to the remote and local lists. Added Delete buttons to local and remote list menus. Fixed it so it doesn't die when the remote machine runs out of space. The code is now fully prototyped for ANSI C You can now use tab to move between text items in the host info window. Ftptool now breaks up command lines for viewers into arguments, so you can pass options to the viewers. %f specifies the filename to view, so you can do something like this to use a larger font in textedit: 'textedit -scale extra_large %f'. Added a property to cause ftptool to ignore the case of aliases when sorting the host menu. If you changed your host list, but did not want to save it when quitting (said 'quit anyway' to the pop up), ftptool would still save it if it you had connected to any sites (to update the timestamp). Now, it won't save, but any timestamps will be lost. Fixed a problem where the session window could come up even if the tool is started iconic, if you are logging. Added code to make it compule under Ultrix (from Robert.Evans@cm.cf.ac.uk) and 386 SVR4 (guru@stasi.bradley.edu). I don't have any way of knowing if it work on those systems or fixing it if there's something specific to those systems that it breaks on, however. No longer uses saved window heights and widths if they are smaller than the default window size. Fixed the order of size changes when pressing '+' and '-' to avoid an apparent server bug. It seems that in 5.0, changing the parent frames size to be smaller than the childs can cause the server to crash. At least, that's what I think happened. Fixed (hopefully) the Total transfer gauge to work, and not crash. I've been transferring 100's of megabytes for a few hours, and it seems OK. Added "Total transferred" to status window. I think it actually works! Changed the layout of the Connect window to be simpler. Made 'Delete' and 'Change' in the Batch window work. Now automatically tries proxy FTP if it can't resolve the remote host name (if enabled). It is NOT enabled by default!!! Double-clicking a file tries to View it. Fixed line 113 of main.c from CURSOR_MASK_CHAR, OLC_BASIC_MASK_PTR, to CURSOR_MASK_CHAR, OLC_BUSY_MASK_PTR, Changed password size in host_list.c. Made deletion routines ignore '..'. Made it look up 'ftp' and 'ftp-passthru' values using getservbyname(), defaulting to values only if it can't find the services. Fixed the the writing out of boolean values to only "True" and "False". ------------------- Ftptool 4.2 3/27/92 ------------------- Reads and appends .signature when sending feedback. Stores defaults in .ftptooldefaults in home directory. At startup, reads $XAPPLRESDIR/Ftptool if present, then $HOME/.ftptooldefaults if present. For simplicity, $HOME/.ftptoollayout contains the layout. Removed the locking code. Looks for a system ftptoolrc (/usr/local/lib/ftptoolrc) if no $HOME/.ftptoolrc found. Dismisses host window if return pressed in password field. Allow 'm' as the first entry in the permissions field? case 'm': /* Cray and Convex migrated files */ mode = S_IFREG; break; Allows various uppercase letters from AIX 'ls' output. Added 'Save layout' option to Properties menu. Also made it a bit more accurate. If connect fails (with 421, it still says Connecting. Same thing for reading directory. USER and GROUP now take all non-whitespace characters in the field. ------------------- Ftptool 4.1 2/7/91 ------------------- Ported to SunOS 5.0 (SVR4). Added Makefile.50 temporarily. 4.0 skipped since other people are using test versions of 4.0, and the format of the host list changed again. Asks for confirmation of quit if you are still connected. Instead of 'connected', the icon label now shows the first 8 characters of the host name you're connected to. Option to compile against the resolver library for places without NIS (static executable compiled against /usr/lib/libresolv.a) Locks .ftptoolrc when reading/writing. Abort button actually works now. Added sunique/runique ability. Added 'percent complete' gauge. Added berkeley ftp code to ftptool. Fixes problems with some ftp servers providing welcome messages before login. Shows free space and percent free for local filesystem. Merged Host Information window and Host List window. Can schedule file transfer at later time. Transfer mode now a per-host attribute. Automatically saves host list if only timestamps have been changed. Fixed encryption routines to only output printable characters. Fixed bug that could cause dotfile symbolic links to appear even if you don't want to show dotfiles. Handles underscore and dash in login name. Fixed tar viewer to work. Dismiss buttons on pop-ups. Quit button on tar file viewer Doesn't quit on 'recoverable' errors during transfers, such as if you don't have permission to transfer a file, or the file has been deleted since you selected it. Fixed it to kill ftp if you quit via the button. ------------------- Ftptool 3.3 1/10/92 ------------------- If you double-click on a symbolic link, it will attempt to 'cd' there. You can (hopefully) view and transfer files (and directories) pointed to by symbolic links. Transfers are accomplished by trying to transfer the link as a file, and if that fails, transfer as a directory. However, it won't recursively do links in directories (it would not be nice if one was pointing into the directory structure being transferred. Displays 'Reading directory' when reading a directory (fancy that). Can now sort by type of file, so you can group directories. Would hang (then dump on Quit) if you ran out of space on the local system. Passwords now encrypted in .ftptoolrc file. NOT a strong encryptions, especially since the source is available! Quit button was not displayed on startup if OPEN LOOK mode not set. OPEN LOOK mode changed to boolean (shouldn't affect anything). Fixed hang problem if remote site allowed you to partially log in, but then didn't because of a limit. Can now use ~ and $ expansion in auto-local-cd field. Lowercase mode to change remote filenames to lowercase. This is for better VMS-type support along with below. User defined dir output format to (hopefully) handle non-UNIX cases! UNIX default: PERMS LINKS USER GROUP SIZE MONTH DAY TIME NAME causes remote filenames to be converted to lowercase. You can set non-unix mode with NONUNIX in the above field, so it always uses 'ls' for that host. Also, because non-unix machines might really use $ in the directory name, non-unix mode now disables $ expansion in the remote text field. Last Visited timestamp. ------------------- Ftptool 3.2 12/16/91 ------------------- No longer stops operation if the local directory is modified. No longer have to be connected to do local operations (compress/uncompress/ make tarfiles from local files) Host list now resizable. Now creates .Xdefaults if you don't have one. Tar viewer works (instead of crashing!) Properties now split into separate categories. Can sort local and remote directory lists independently. Can now automatically cd to a specific local directory for each host. ------------------- Ftptool 3.1 11/25/91 ------------------- If you kill it with SIGTERM, no longer gets error, and also kills ftp process. To somewhat handle non-OPEN LOOK Window Managers, set OpenLookMode property: 1. displays Quit button on main window. 2. Allows you to dismiss popups by selecting the View option again. props key on base window brings up properties window Fixed a bug where ftptool would crash when trying to view a local file if not connected. PostScript viewer now a property. Now uses the default password if you leave the password field blank. Removed batch mode. Now, you do batch transfers over the batch windows, and non-batch transfers over the directory lists. Fixed (hopefully) a freeze on timeouts (added too much again, and broke something). Caches the last directories now, so you can avoid the time delays. This will be settable via a property, since too many directories might cause exhaustion of memory. Though improving speed, it also causes listings to be out of date (local directories are stat'ed so they can be reread if they change). Fixed the delays on reading directories. Now it shouldn't hang when reading a remote directory, and shouldn't hang the whole window system (or at least, not as much). ------------------- Ftptool 3.0 11/8/91 ------------------- Doesn't have to reread the directory if you change sort modes. Defaults host info to first one in host list. Properties can open windows automatically. Geometry of windows can be saved. Batch mode! Can select a bunch of files to retrieve, in separate directories, then transfer them all at one time. ".." is back on the lists. ------------------- Ftptool 2.8 11/1/91 ------------------- If you have a '.' in your hostname, the domain will not be appended to your anonymous password (fix for non-Sun internal sites) property for the default password. won't core dump if you ^C it. doesn't hang if you don't have permission to read the directory. Changed "Within Sun/Outside Sun' to 'Directly Reachable/Indirect through Proxy" Man page (first attempt, bear with me) Imakefile (first attempt, bear with me) Fixed it to show the correct sort order in the properties window if you change it in your .Xdefaults Now sets your transfer mode only before a transfer, and sets to ASCII before reading the remote dir. This _may_ fix some bugs. ------------------- Ftptool 2.7 10/25/91 ------------------- blank lines in your .ftptoolrc don't break ftptool anymore. symbolic link values shown again (broke earlier, oops!) moved 'About Ftptool' to View menu Made it show more of the ftp error messages rather than its own (more accurate error messages) A machine was found that didn't understand 'pwd' or 'cdup'. Now, use 'quote xpwd' or 'quote xcup' if the first ones fail. ------------------- Ftptool 2.6 10/16/91 ------------------- I hate to have more and more releases, but another couple of sever bugs. Doesn't hang anymore if the remote server dies while transferring. Fixed a core dump bug with non-unix machines (left off a parameter to xv_set :-() Bonus (which means I probably broke this): Can pin remote and local list menus. ------------------- Ftptool 2.5 10/14/91 ------------------- 2 major bugs fixed (major enough for another release): Now that the temporary directory is deleted at each disconnect, a second View fails. fixed. fixed broken 'cd to selection' on local window list. Make it back off and use 'ls' if it thinks it's a non-unix machine. Add "Custom command" button. Allows you to type whatever command you want ('mget *' would be a good one). Doesn't care about the response, just outputs until an 'ftp>' prompt (may have to care if the return is 'timeout') ------------------- Ftptool 2.4 10/11/91 ------------------- Final bug fixing and code cleanup (hopefully) Ability to delete files. Fixed a bug in "dir" output parsing. Now print ftp errors in some instances ("host unknown" vs. "connect timed out") fixed bug which could hang it when transferring zero-length files. If the locations of the various windows end up outside the screen, they will now be placed at 0,0. Fixed "cd to selection". Also cleaned up a lot of code dealing with retrieving filenames from the selection window. Made "copy" and "delete" pull-rights on the File menu. ------------------- Ftptool 2.3 10/7/91 ------------------- Now copy arguments before xview consumes them, so they can be passed to viewer (things like -scale extra_large now work). Wouldn't create .ftptoolrc if it didn't exist. Clean up /var/tmp/ftp* at disconnect instead of exit? Exited upon a "Save Workspace". Oops. Sort by date was not sorting correctly. Change Outside/Inside Sun to Direct/Proxy, with proxy host on a per-host bases in .ftptoolrc. (The names weren't changed since I don't have better ones). Add initial directory to host info. Tries to be able to read the old format .ftptoolrc. Now sorts the host list. ------------------- Ftptool 2.2 9/28/91 ------------------- Oops. Bug fixes. Fixed bug in counting selected directories. Fixed painting of lists when busy. Fixed double-clicking on directories that are selected already. ------------------- Ftptool 2.1 9/27/91 ------------------- Local and remote functions go in their own windows, To add ability to resize scrolling lists, perhaps by placing them side-by-side? Machine connected to appears in title bar of remote window. Local machine appears in local window title bar. Additional exclusive properties for file transfer mode (binary, ascii, etc). A property sheet for local and remote files, showing all file information available when selecting file (shows last file selected, if multiple ones are selected). Ability to handle non-unix machines (and machines which have banner messages and such). Non-unix machines should work (VMS has been tested), but since the list format is non-standard and machine/OS dependent, only the filename (if that) can be determined. Ability to create tar files, and compress files.. Properties: hash marks are a property Don't display dot files (based on property) Option to sort by name or date or size, and ascending or descending order. Resizing windows and lists pretty much correctly (at least they do it!). Slightly more OPEN LOOK compliant. "Use" on personal host list window now connects automatically, if not already connected. Will notify you if you try to quit without saving your host list. Also, will put (needed) on the save option if you modified it. 'connected' on icon when connected. tilde and environment variable expansion. Double-clicking on a directory will cd there. Save defaults (logging, option mode, etc) to .Xdefaults. Read them at startup. Reading .netrc to create selectable ftp accounts/passwords (encrypted on menu) Default viewer property Archive viewer property Keepalive option to send a noop command every 600 seconds if you're idle If you try to cd to a directory that doesn't exist, create the directory Session Log and about window now pinned. Locate Choice and Clear all choices now back on scrolling list menus. Doesn't bring up Local Directory window if iconic. Status image in the corner, changes for every three blocks transfered (if hashing enabled) Spot help! (Install ftptool.info in $OPENWINHOME/lib/help) ------------------- Ftptool 2.0 9/19/91 ------------------- "Connect" button changes to "Disconnect" when connected. Button layout is somewhat OPEN LOOK compliant. At the top of the window: [Connect] [File v] [View v] [Abort] [Props...] Get View files Put Show pop-ups. Login, password, remote host is, and host on separate pop-up which connect brings up. (perhaps, but then you lose the notion of who you're connected to). Logging window can be brought up with Props. Determine file type in View and start appropriate editor (Pageview probably, what about Frame and Interleaf files?) Add ability to uncompress compressed files. Pressing a return in the directory text fields executes a CD. Change cursor to stopwatch when busy. Instead of error messages on choosing options that don't apply (using 'get file' when no remote file is selected), options are grayed out when they don't apply. Fixed bug with local directories (if you change your local directory between ftp sessions, it doesn't pick it up) Catch out-of-space errors. If you hit return in the Password text field, it will connect. View, get, put, and CD are in scrolling lists menus also. Add ability to extract tar files into specified direction (Viewing a tar file lists the contents, then you can extract it from there, or directly extract from View menu) Ftp site list (local to user, with comments). .ftptoolrc aliases sites to personal names and comments. connect button moved to host info popup. ------------------- Ftptool 1.4 9/15/91 ------------------- Fixed to repaint when blocked for ftp responses (notify_do_dispatch() and notify_no_dispatch()) Ability to View local files. Inactivate buttons and lists when putting/getting/viewing a file, since FRAME_BUSY is no longer allowable. Busy and Idle icons. Busy is inverted from the idle icon, and cycles between 4 icons while transferring. Ability to interrupt a file transfer (between files. No interrupting a current transfer yet). When doing transfers file, stat() the local directory to see whether it has been modified since we drew it, and reread it if so (losing local selection information). If we can't stat the local directory, it's possible that it was deleted, so change to /tmp (arbitraty choice). For remote dirs, may have to assume they won't change. ------------------- Ftptool 1.3 9/-3/91 ------------------- Fixed completion messages. Added date to file list. Now Sorts local directory listing. ------------------- Ftptool 1.2 9/13/91 ------------------- Fixed directory transfers, which I broke with the '/' above. ------------------- Ftptool 1.1 9/12/91 ------------------- Fixed it to use getpwuid(getuid()) rather than getlogin(). Since ftptool failed on at least one machine in engineering, also changed it to not exit(1) when it can't find the username. Assumes "unknown". Added a '/' to the end of directory names, since it wasn't obvious (and I agreed) that directories were bold. Now it looks like 'ls -F' Changed it to not print the directory name when reading it.