Apr 1994 Albert Graef (ag@muwiinfa.geschichte.uni-mainz.de) Release 1.3 with many bug fixes and enhancements, too numerous to list them all. The most important user-visible changes are listed below, in no particular order. * Fixed bugs in drag and drop operations. * Applications are launched in the user's home directory if no files are specified, and in the directory containing the selected files otherwise. * Resources are now contained in the Xfm application defaults file, to be installed in /usr/lib/X11/app-defaults. * A bunch of additional resources for controlling existing and new xfm operations; see the Xfm applications default file for details. * Check for geometry resource for popups. This allows you to display dialog popups in a fixed place, instead of having to chase them around the screen. * Avoid unecessary folder updates in Move/Copy/Delete operations. * Check for identical source and target in move and copy operations. * Added an Abort button to the confirmation popup, which allows you to kill an operation (like Move, Delete) which may prompt you for more than one confirmation. * Confirmation for exiting xfm (configurable with the confirmQuit resource). * Made the -filemgr option work. * Prevent applications from locking up xfm with keyboard input. This bug was discovered by my four years old son Sebastian when he played around with the mouse. ;-) * Added overwrite confirmation for the move operation. * Added confirmation for removing applications in the applications window. * Added a status line to the file window which displays number of files and total byte size for the displayed directory and selection. * Distinguish between directories and other files in the file window popup menu. * Added a semaphore to prevent the automatic folder updates from breaking xfm. * Disabled the xfmc stuff. It will possibly be reintegrated in a future release. Trashcans and opening windows on floppy devices can now be realized easily without xfmc. In fact, the applications file distributed with xfm contains examples on how to do this. * Added support for color icons in XPM format. * Added support for user-defined file types. * Distinguish between push and drop actions for launching applications. * Allow all types of files to be installed on the application panel, with proper action settings depending on the file type. * Allow actions to prompt for parameters before launching an application. * Changed the format of the xfm applications files (which is now named ~/.xfm-apps by default) and added configuration files for file types (~/.xfmrc) and devices (~/.xfmdev). * Added an autosave feature for application files. * Reorganized menus and actions. The file window now has three menus (File, Folder and View), and the application menu is accessible as a popup by pressing the right mouse button in the application window. Pressing the button on an application invokes a popup menu with operations for this application, similar to the file window popup. This menu contains two new operations for moving and copying applications to the bottom of the applications window. * Added support for recursive copying and deletion operations. An extra confirmation resource allows you to be prompted before the contents of a directory is removed, in addition to the usual delete confirmations. * New operations: move/copy a file or a collection of files to a specified target (which may be an existing directory). The move operation replaces the rename operation in the previous release. I also added operations to create a new and empty file, to create symbolic links, and to empty the current directory (delete all items in it). * Added an operation to open a new file window from the application window, and allow the last file window to be closed. * Made the application and file windows respond to WM_DELETE_WINDOW messages. * The selection operations now only include . or .. in the selection when specified explitly. I also added a Remove button to the selections popup which allows you to remove the specified files from the selection. The pattern matcher now also understands ranges of characters such as [a-z]. * Added a collection of color icons, and edited existing bitmaps for cursors, directories, files, etc. Also designed some icons myself, like xfm_appmgr.xpm. Hope you like them. :-) * Added a LOAD action to the application manager which allows you to load different application files simply by double-clicking on the corresponding icon. In effect, this provides support for different application groups in the application manager. There is still only one applications window, though. :-( * Added support for auto-mounting and -unmounting of special file systems such as floppies. See the man page for details. * Double-clicking on the directory name label in a file window now updates the directory display. This is for those of you who are too impatient to wait for the automatic folder update to perform its task. It is also useful on some special file systems which do not always change the time stamp when updating a directory. (I noticed this under the msdos file system of Linux.) * Added a man page. Quick and dirty job, but it hopefully provides all necessary information. In any case, it is better than nothing. ;-) * And a plethora of smaller bug fixes (for which I probably introduced some new ;-). Wed Mar 17 00:00:05 1993 system admin (root@rachel) * Updated the README file, included a MANIFEST, and released version 1.2. * Cleaned up the source, placing xfm and xfmc in subdirectories with a top-level Imakefile that knows which things to make. It should still be possible to make in each subdirectory seperately. Tue Mar 16 19:37:43 1993 system admin (root@rachel) * Placed xfm under the GNU General Public License, added a copyright message to files that didn't have one. * Lots of minor cleanups and cosmetic changes. Now compiles with virtually no warnings with -Wall -Wno-parentheses. * Added an initialDisplayType resource, since there are differing opinions as to whether the first window should be of the same type as subsequent ones. * Incorporated numerous patches from Dave Safford (dave.safford@edu.tamu.sc) including the following: a timeout that updates windows when they have changed (by checking the timestamp), icons have different names (so they can be assigned colours), an edit option for the popup menu, and an option to hide files beginning with a '.'. Also added some new options to DEFAULTS to give some colour to the icons, and display the application manager on the left of the screen. Sat Mar 6 23:38:23 1993 system admin (root@rachel) * Added defaultEditor resource. This is the name of a program to be executed when a normal file is double-clicked on. Fri Mar 5 23:19:05 1993 system admin (root@rachel) * Fixed a major memory leak (failing to free the FileRecs on updating a window). Added function freeFileList() to FmDirs. Added some hooks for the debugging malloc library, included when DEBUG_MALLOC is defined. (ver 1.1h). Sun Dec 6 16:48:16 GMT 1992 * Made some minor cleanups, changed the README file, tested it for about 20 secs, and released it to a few alpha testers (ver 1.1g). Fri Oct 16 15:25:42 BST 1992 * New function: newFileWindow in FmFw.c. Replaces a common sequence of lines when opening a new file window. * Added some checking that the chdir function actually succeeded in createFileWindow() - it was failing sometimes when responding to messages from the client. * fileOpenButtonCb() now pops up windows by the cursor only if it was called from FmFwActions.c. * Uncommented a line from fileCloseCb() that caused an error in older versions of the X toolkit - the widgets could not be destoryed. Xfm should now use a lot less memory as this was a major memory leak. * Fixed some bugs in the communications module. There are still problems due to the event handler being called recursively - this is mainly a problem with the error handler which dispatches more events while waiting for the user to press 'ok'. Thu Oct 15 15:44:33 BST 1992 * Removed the function clearUpdateMarks(), and incorporated it into intUpdate(). * Finally completed the communications module so that arbitrary length messages can be sent from the client. It seems to work, but I'm a bit dubious. Wed Oct 14 12:54:37 BST 1992 * Removed special translations for labels, it messed up the click-drag stuff (ie. if you dragged on to a label, xfm got all confused). * Finally fixed the problem with symbolic links to non-existent files. Now, you get the directory displayed, and the offending icon(s) are greyed out, although they can still be used. You should still get a warning when this is happening. * I'm getting some strange behaviour, that results in error() being called recursively. For now I just ignore any subsequent errors, but I suspect this is a bug in the toolkit/server. * Removed the freeing of the bitmaps and cursors on exit. This is done by the server anyway (apparently). * improved the communications module somewhat - it now uses atoms for the two message types, to avoid problems with other messages. Still need to allow arbitrary length messages. Also - I'm getting an error when using the client from another machine. Tue Oct 13 11:54:18 BST 1992 * added sys/types.h before sys/stat.h in Fm.h. Removed sys/stat.h from some files since it is included in Fm.h anyway. This patch is required for Ultrix (apparently), and System V I think. Mon Oct 12 14:06:05 BST 1992 * Probably missed out a few more. * Fixed fnSub() in FmDirs.c - It was failing due to overlapping areas being handled incorrectly by strcpy, to the effect that if HOME was shorter than the name of the resource file, it crashed. Thanks to Peter Williams for this one. * Fixed FmDelete.c so that it deletes symbolic links properly. Sat Sep 26 15:20:08 BST 1992 * I've missed a few out here... Added support to handle the ClientMessage event, and either open a new window or update some of the existing ones. A small program called xfmc to send these signals is included. Currently very hacky, needs some work. * Added a signal handler for SIGCHLD that just calls waitpid(), this clears up the zombie processes generated by the application manager. * Patched in a fix for FmFw.c, when the text display is used and there exists a file owned by a user that has no entry in the password file, then it core dumped. Thanks to hkarhune@hydra.helsinki.fi for this one. * Action fileBeginDrag is now called when leaving the window with the button pressed. This solves problems with double clicking (you weren't allowed to move the mouse between clicks). * Added a floating menu activated by the third button with all the single file operations on it. The operations menu now has only delete and mkdir options. I think it's nicer this way. * Scrapped FmIcons.c for now. Looking for a more general solution. Sat Sep 12 19:35:50 BST 1992 * Added support for user defined icons in file windows: FmIcons.c. A new resource is added (iconMappings). * Cursors are now opaque (looks nicer :-) * Cursor changes to a no-entry symbol when over a directory that you do not have write access to. * New function abortXfm() in FmErrors.c for terminal errors during startup. Thu Sep 10 17:05:49 BST 1992 simonm (simonm@dcs.glasgow.ac.uk) * This file added. * Moved the 'move' operation to button 1 (press+move to initiate) * Added the select operation, put it on button 1. Button 1 now selects the file that the mouse is on, and deselects all others. Move defaults to select if the mouse doesn't move anywhere usefull. * Relegated the old toggle operation to button 2. * Added the ability to drag directories onto the root window to open them * Modified popupByCursor so that windows are not created half off the screen, modulo messing around by the window manager.