Softpanorama

May the source be with you, but remember the KISS principle ;-)
Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Softpanorama Bulletin
Vol 24, No.10 (October, 2012)

Prev | Contents | Next

Bulletin 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
Jan Feb Mar Apr May Jun Jul Sept Oct Nov Dec

OFM standard 1999 (basic OFM requirements) Version 3.11

Dr. Nikolai Bezroukov

Version 3.11 (revised November 2012)

Change Records

[Nov 08, 2012] New results for OFM1999 compatibility test produced.

[Nov 07, 2012] Compete revision of the standard version 3.0 produced

[Oct 18, 2012] MC 4.8.1 has problem with new implementation of Ctrl-O when on return active panel is not change even is current directory was changed in shell.

I modified Ctrl-O description to account for this possible implementation bug.

Introduction

Reverse engineering and generalizing basic functionality of OFM managers is a difficult, non-rewarding, but necessary work. I did it because I am afraid about possible disappearance of a set of valuable ideas invented by various talented implementers. Many of them like the Norton Commander creator John Socha and FAR creator Eugene Roshal participated in the OFM design only for a short time (1994-1989 for John Socha, 1997-2001 for Eugene Roshal) and then completely abandoned the field. Actually, I have a feeling that John Socha was very surprised when he read one of the versions of my  The Orthodox File Manager(OFM) Paradigm   eBook :-).

Some of historically important OFM managers are now belong to abandonware (all Norton line of products, Volkov Commander, DN to name just a few). Some are now long gone and difficult to find. And not all of them were open source. I am afraid that without reflection in the literature in a way reusable by subsequent generation of programmers those ideas and unique feature invented by previous generation of OFM developers will be gone and need to be reinvented again, may be in crippled form.

I have a huge advantage to observe the field almost from the very beginning and working with several different OFM during my more then 20 years experience with this type of file managers. At the same them the amount of time and effort I was able to spend on this work is limited (actually the recent revision happened only due to a week long isolation produced by tropical storm Sandy as NJ was hit really hard;-) So the result in some parts are raw. But I think that they can provide a solid foundation to additional work and hope my efforts to create those standards will be useful for new OFM implementers including those who are attracted to existing open source projects like FAR and Midnight Commander. Useful because to understand the key ideas is much easier it you put all your knowledge into some framework. This standard and two subsequent standards (OFM2004 and OF2012) are imperfect, but useable framework of analyzing functionality and enhancing exiting OFM projects as well as can save time for those who try to implement a new OFM, especially in scripting languages such as Python, Perl or Ruby.

I try to update the Orthodox File Managers Standards once in five year with the last update made in Oct-Nov. 2012. to reflect progress in OFM implementations and changes in the field. This one (OFM1999) was the first and is now in its third revision (version 3.0). It was followed by the OFM2004 (advanced OFM implementations) and OFM2012 (Cutting Edge Features of Orthodox File Managers).   Actually the last revision of OFM1999 was done after seven years after the second, not five due to various circumstances and the workload of the  author.

Important notes:

OFM1999 Requirements

For inclusion into this section of the standard the feature needs to be present either in MC (as a leading Unix-based implementation), FAR or NC 5.0 or be consistently implemented in at least two other major OFM implementations (for example XTree virtual file system is consistently implemented in Total Commander and Northern Captain with the hotkey binding Ctrl-B) and have stable semantics. Hotkey assignments listed below can be different from recommended, if key remapping capability is implemented in a particular OFM, otherwise 0.66 coefficient is used if semantically operation in implemented correctly. If the weight is not stated it should be assumed to be 3)

  1. Interface look & feel
    1. Symmetrical panels (but controlled separately) with user definable fields in each (left and right separately) and ability to switch to one of several predefined templates. In the picture ten templates are defined: Brief, Medium, Full, Wide, Detailed and so on...

    2. Information line (infoline) should be present at the bottom of each panel, by default displaying the current file (or overflow of the current file name, in the name column is too narrow for full name and if space allows additional attributes not displayed in the panel view (such as ownership and permissions).
    3. Top and bottom menus. Top menu can be by default hidden (activated with F9 or click my mouse on the top border) and provide with access to configuration and commands without shortcuts
    4. Bottom menu should be "mouse clickable" and should change the displayed key shortcuts,  if you press and hold  Ctrl, Alt, Shift for "F-operations" such as F1-F9. If due to keyboard driver limitations there is no possibility to provide change by "Press and hold"  rolodex style rotate buttons should be provided.
    5. Ability to position panels both horizontally and vertically should be present. Unequal split between left and right or upper and lower panels should be possible. 
    6. Command window should be present by default in minimized form, as a single line with shell prompt. Should allow entering multiple command in shell.  
    7. Ability to hide left or right or both panels exposing terminal shell screen should be present
    8. Ability to shrink both panels 50% exposing shell terminal screen should be present
    9. Separate menu of settings for left and right panel
  2. Navigational and basic hot keys compatibility
    1. Enter compatibility. If command line is not empty, then pressing Enter should execute the current file if it has executable attribute. If not extension menu should be used for determining operation to be performed (typically view). If command line contain one of more commands, pressing Enter should result in their execution. They should be processed by first performing macrosubstitution of OFM variables and then executed one by one. Results of execution should be available via scrollable command window visible via Ctrl-O
    2. The Tab key should change active panel to passive and passive to active;

    3. Ctrl-\ key should go to the root of logical drive (Windows), or show the list of directory favorites (Unix)

    4. Ctrl-PgDn and Ctrl-PgUp move to the upper (current subdirectory) and lower level (parent i.e. CD ..) directories; in Unix Ctrl-ArrowLeft and Ctrl-ArrowRight can be used instead.  The importance of this feature is that it permit exit from several level of directories without changing the command line that might contain partially typed command. This way you can assemble command line while traversing directory for its components, for example file names. If mouse clicks on directory can be used instead for the same purpose this feature can be judged as compatible.

    5. Ctrl-R / Ctrl-U  compatibility.  Ctrl-R -- should reread the directory; that should work for virtual filesystems for example FTP VFS as well. Ctrl-U -- should swap panels;
    6. Quick search via Alt-letter should activate instant search on the panel: you start typing letters with alt-letter prefix and instant search using already typed prefix is performed.
    7. Alt-letter (or Ctrl-Alt-letter for GUI-based versions) quick search option should be available for both regular and tree views of the panel. It should work as instant search for the typed prefix.
    8. Ctrl-Enter during quick search should move to the next item with given prefix
    9.  Alt-F1 and Alt-F2 (Ctrl_Alt-F1/F2 In Windows should produce the list of logical drives and allow selection of any of them. In Unix should produce the list of mount points (df -k) and allow to selection any of them.

    10. Ctrl-L should switch to the information panel. Information panel should provide at least statistics about the current directory and current drive. If directory description file (by default file dirinfo in Windows implementations) is available it should be displayed as well (Default for dirinfo descriptions in UNIX-based implementations should be README file). If multiple files match user-defined regular expression specified in dirinfo,  the first should be displayed. The file that serve as dirinfo file should be user-definable with the possibility to define it with regular expression (this way multiple files can be defined, if desirable).

    11. Ctrl-Q should switch to quick view in which movement of cursor on the active panel changes the view of the file in the passive panel.

  3. Shell window compatibility  
    1. OFM should behave like tile windows manager and be able to expand command line (which is a minimized to a single line third, borderless shell terminal window) -- to full screen, to half screen vertically, to half screen horizontally and to quarter of the screen (half with one panel hidden):
    2. Command line should allow to execute multiple command from it with macrosubstitution of macrovariables and shortcuts to the current file to the command line (Ctrl-Enter) as well as  path to left and right panels (Ctrl-[/Ctrl-]).
    3. Ctrl-O should maximize expand shell terminal windows to maximum size (hide both panels by default):
      1. In the resulting screen standard shell terminal functionality should be present as if this is a telnet session to localhost. For example, if the shell for a particular OS provides browsing of shell history with arrow keys this should work.
      2. If current directory was changed during the work in command window, the active directory in the panel should reflect the new directory on return to panel view by pressing Ctrl-O again.
    4. Terminal session look& feel compatibility. Expanded window should behave like terminal session  (like in GNU screen). For bash at least the following features should be present:
      1. Ability to change command prompt (Unix)
      2. "Arrow" access to history  (Unix)
      3. Ctrl-R search in command history (Unix)
      4. Ability to scroll windows back
    5. Change of directory in shell terminal windows leads to change of active panel directory on return to panel view. If commands in command window changed the content of the current directory then the active panel should instantly reflect those changes.
    6. Ctrl-F1/Ctrl-F2 should provide a view of the shell screen with overlaid one panel (hide one panel exposing underling shell terminal window and results of execution of previous command, if any).
    7. Ability to shrink panels 50% or gradual shirking/expansion of panels (vertical shrinking compatibility
      1. With one panel hidden (left or right) in both half window mode and full terminal windows mode.
      2. Ability to expand active panel to full screen
  4. Compatibility of F1..F12 and other F-keys operations
    1. F1 -- should not only invoke hypertext help, it should invoke help on any item of the toolbar and any item of tool bar menus. The help should be context sensitive. HTML based format is preferable. Context help should be implemented: if some dialog is opened the help should be about this particular dialog, not the general help tree.

    2. F2 -- availability of user menu or equivalent (start menu). Should provide the possibility to run user shell scripts with substitution of macro variables from the panels. Each item of the menu should be activated by its own letter (hotkey). Format of the macro variables is not defined in this standard but following Midnight Commander conventions is recommended.

    3. Invocation of viewer and editor.
      1. F3 -- should invoke built-in viewer

      2. F4 -- should invoke built-in editor (optional)
      3. Alt-F3 and Alt-F4 should select alternative viewer and editor. There should be a configurable option is Command menu to specify this external viewer and editor

      4. Optional: Additional option in Options menu to specify invocation of built-in viewer and editor in the panel mode instead of full screen mode. At this mode all command line insertion capabilities should be redirected to editor (Ctrl-[, Ctrl-], Ctrl-F, etc). switch primary and alternative viewer, so that alternative viewer/editor can be selected via F3/F4 and primary (built-in) via Alt-F3 and Alt-F4.

    4. Copy Operation
      1. F5 -- should copy/move subtrees if applied to directories; Should work with selected files and permit specifying "quick target" via F10.

      2. Shift-F5 should either copy file within the same directory and should gives possibility to specify the path and name.
      3. Alt-F5 should create a symbolic link  from the file in the current directory to the directory in passive panel.
      4.  Copy "overwrite" dialog windows should contain information about the size and date of creation of files. If target is newer then source the info should be in red
    5. Move operation
      1. F6 should be able to move subtrees. Movement of directories within the same logical drive does not result in copy operation;
      2. Shift-F6 should permit renaming of the file or directory with the capability of editing the old name (not reentering it).
      3. Alt-F6 should create hardlink
      4. Copy "overwrite" dialog windows should contain information about the size and date of creation of files.  If target is newer then source the info should be in red
    6. F7 should create directories. Shift-F7 or similar combination should create soft link to the current directory on active panel in the directory in passive panel
    7. F8 should delete files or directory subtree if applied to the directory with non-empty subdirectories. In case the group is selected the operation is performed on each member of the group. F8 operation should perform deletion of subtrees is it is applied to the directory with non-empty subdirectories.
       
    8. F9 and F10 -- Main menu activation and exit (For GUI versions F10 can activate menu too, instead of exit -- this is Windows standard)
       
    9. (optional) F11/F12 compatibility. F11 -- chmod/chown, F12 -- macrorecoder
  5. Tree View Panel compatibility: This is a mode similar to Microsoft File Explorer mode with some notable differences.
    1. Ability to copy files to the tree target (if you change passive panel to active with Tab key or mouse and try to copy file the target will be the directory on the tree that was current).
    2. Movement of the cursor on the panel with tree representation should not lead to change of the directory on the passive panel (Microsoft File Explorer mode). + and - or ArrowLeft/ArrowRight should expand collapse directories.  Enter or double mouse click should change directory of the passive panel to the current on tree panel.
    3. Quick search in tree mode (Alt-letter, Ctrl-S) with jump to directories with the same prefix down the tree. In quick search mode Ctrl-Enter should jump to the next directory with the same prefix (If no prefix is specified it find the next directory with the same name, if any). Note: search should be activated; in normal mode it should paste the current directory into the command line.
    4. F5/F6 compatibility from tree view to passive panel.
    5. Same level of nesting of directories navigation. Gray+ (or spacebar), Gray- (or backspace) should move up and down the tree to the next branch on the same level.

      Alternative keys

      1.   PgUp/PgDown can also be used for same level navigation on tree , especially in GUI based OFM as they are pretty much useless for anything else.
      2. ArrowLeft, ArrowRight also can be used, especially in Unix OFMs.
    6. Quick view tree navigation: Invocation of Ctrl-Q on tree panel should lead to quick mode of navigating the tree -- changing tree in one panel should make the current (highlighted) directory current on the second (passive) panel. There should be two navigation option:
      1. Tree browsing. In this mode changing the directory on the active panel should lead to display of the content of this directory on the passive panel.
      2. Dirinfo mode. If dirinfo file is present in the directory it is displayed. If not some statistics about directory is displayed. 
    7. Enter should change passive panel directory to current on tree view.  Ctrl-Enter should copy file to the command line
    8. F4 in treeview mode should invoke attribute changing dialog box that should allow to edit directory attributes
    9.  Navigation keys such as Home/End and PgUp/PgDown should work.
  6. Directory Search Panel compatibility (aka NCD panel, aka FindFolder):

    The directory search panel (find folder). Activated by Alt-F10. Also should be present as an option in the top menu as Command/Find folder in Far, Command/Directory tree in mc, ). This panel should instantly provide a quick search window. It should be also accessible from copy/move dialogs  (via F10) as it is often used not only for the "directory completion" and traversing of the tree, but also for the quick selection of the target directory for copy/move operations. Here for example is how FAR NCD tree looks like:

     

    1. Initial Focus of the tree. Alt-F10 or other hot key used for NCD tree should produce tree view of the current panel starting with the current directory (not root!) and provide the ability to select new current directory on this representation with Enter. 
    2. Refocusing the tree( F5).  You can put any directory "in focus" (position it in the middle of the panel) by pressing F5 and simultaneously maximize panel to full screen. Pressing  F5  again will restore the window to the previous size.
    3. Rescanning behavior (using F2). Pressing F2 rescan the disk. Pressing Alt-F10 should not produce rescanning of the disk without reason, but rescanning should be available as an option (usually via Ctrl-R or F2)
    4. Quick search input line should be enabled automatically at the bottom of this panel - any input other than control symbols is considered as a search prefix
    5. Ctrl-Enter should jump down the tree to the next directory with the same prefix.
    6. Copy(F5), move(F6) and FindFile (Alt-F7) operation should provide the possibility to select the target from the quick tree search panel (preferably via F10).
  7. File/Directories selection/deselection compatibility:
    1. Ins should select a single file (cursor may move one line down if such option is set); If Ins is pressed on already selected file it should be deselected (toggle).
    2. Gray+ and Gray- should select and deselect file using a regular expressions (as a minimum, shell basic regular expressions). For example, with basic regular expressions the expression *a*.* should select files like my_bak.tmp and my_bat.txt, not all files) (MC, FAR, Total Commander, NCW).
    3. Gray+/Gray- operations should be persistent (second selection operation adds to existing selection);
    4. Gray *  inverts the current selection
    5. Named (savable/restorable) selections -- projects (Total Commander)
    6. Select by file type, date range or custom script (FindFile-style selection)  (Total Commander)
    7. Selections history should be available (Ctrl-Up) and browsable with the same keys as file command history and mouse-clickable [^] icon.
    8. Ability to separate individual regex with ";" or "|" 
    9. Option for extended or Perl-style regular expressions support.
    10. Optional:
      • Shift-Grey+ / ShiftGrey- select all and deselect everything regardless of the current selection (This can be done using asterisk in regular selection)
      • Restore Selection operation (no standard key exist, Ctrl-M (FAR) can be used ). It should restore highlighting of files selected for last copying operation.
  8. Quick view compatibility:
    1. Panelized Build-in viewer should be invoked for all files.  Depending of type files are displayed either in text view or hex view.  Moves of the cursor up and down in the current panel in quick view mode should change the content of the current file in the passive panel with the viewer ( Infopanel)
       
    2. For archive basic stats and content of the dirinfo file should be shown (list of information files should be customizable with a regular expressions (or a set of regular expressions), but default should include  File_id.diz, README, read.me, readme.1st). In case no description is available the top part of the toc of the archive should be shown.
       
    3. For directories basic stats and dirinfo file should be displayed. Behavior should mirror the behavior for archives.  Stats should include number of subfolders, files and total subtree size in bytes. Here is an example from FAR:

       
    4. For executables the header should be shown. In windows typical ownership info should be displayed, if it is present. There should be capability to invoke a script on exec files.
       
    5. If there are selected files exit from the internal viewer in info panel via F3 should display the next highlighted file, not the next file
       
    6. In tree view Windows File Explorer mode should be implemented: ability to view files in a new current directories on each movement of the cursor tot he directory as in Windows File Explorer
       
  9. Macro recorder compatibility
    1. Keyboard macros should be available in panel view and editor.
    2. Ability to edit macros
    3. Availability of internal macrolanguage with conditional constructs and loops
    4. Macro can overwrite standard key assignments
  10. FindFile compatibility (Alt-F7)
    1. Reversible implementation of at least View( F3 and edit (F4) -- after exiting user return to the search panel without researching; irreversible implementation of Jump (Enter).
      Please note that search can be used as a poor man command completion in the current directory: it's very convenient for files with long names and for search operation and essentially bridges search operation and wide (double-width) panel representation.
    2. Unix find search expressions or equivalent should be supported. Here is example of FindFile dialog from FAR:

    3. The ability to search by content (regular expression like in Grep)
    4. Search history
    5. Panelize option or availability of all other file operations directly from the search panel (optional if Script-based VFS is implemented as in MC); Refresh (Ctrl-R) should work for panelized view. All file operations should work with the panel.
    6. Quick selection of the start directory using tree search panel (F10)
  11. Command line execution compatibility:
    1. The ability to view the results of shell command execution by hiding both panels using special hotkey (usually Ctrl-O) It should also work the same way from built-in viewer and editor.

      Note: NC it was also possible to shrink panels to 50% providing visibility of shell execution as well as subset of files in panels. This feature was never implemented in most OFMs and as of October 2012 removed from the minimal standard.

    2. Cursor movement keys should work like in OS shell when panels are hidden
    3. Change of the current directory via command or script execution changes the directory on the active panel;
    4. The "special paste" operation compatibility. The following operation should be supported for command line (minimized shell window) mode:
      1. Inserting current path from left and right panels (Ctrl-[ and Ctrl-])
      2. Inserting the  current file with Ctrl-Enter  (if one or several files are selected they should be inserted into the command line instead of the current). Same with full path  Ctrl-Shift-Enter
      3. Inserting the list of selected file on the current panel
      4. Optional
        • Inserting the current file from the passive panel (Ctrl-F)
        • Inserting the  current file with abs path from the passive panel
  12. Sorting directories compatibility:
    1. The ability to view files (and optionally directories, but directories should generally precede files) sorted by name, time, size, and unsorted order (minimum is "NETSU" (sorting by Name, Extension, modification Time, Size, and Unsorted). The ability to sort by creation time, access time and descriptions is optional. For Unix, the ability to sort by permissions, owner and group is recommended ("NETSUPOG").
    2. Directories first option should be provided.
    3. Mouse click on any header (name, size, time, etc) in the panel view should change the sorting order for this attribute. Second mouse click on the same button reverses the sorting order (Windows Commander 3.03; NCW 1.0);
    4. Sorting Groups (aka sorting mapping function) should be available, for example, directories, or  (htm|html|shtml) as one group.
    5. Ctrl-I should proved the ability to define named file panel filters. Here named means that those filters that you have given a name will be saved on exit and restored on reentry (FAR) so that they can be reused in other sessions:

    6. Ability to name filters and save restore named filter should be provided (FAR)
  13. User menu script invocation compatibility (GUI implementations can provide alternative methods to run custom scripts with parameters taken from the panel):
    1. The ability to specify the hotkey and the label for each script
    2. Hierarchy of user menu files (local/user/global)
    3. Multiple commands can be written without need to create a separate batch file
    4. Include files should be permitted in the user menu (hierarchical menu)
    5. The ability to use macros for elements from both passive and active panels in user menu commands (the current file, the selected files, the current path are minimum, MC schemes are recommended, while NC-style is deprecated:
      1. The MC-style naming system for macro substitution symbols for active panel (see below the set for passive panel)
        • "%f" The current file name.
        • "%F" The current file in the unselected panel.
        • "%d" The current directory name.
        • "%D" The directory name of the unselected panel.
        • "%t" The currently tagged files.
        • "%T" The tagged files in the unselected panel.
        • "%u" and "%U" Similar to the %t and %T macros, but after the operation all selected files are untagged. That means that this macro can be used only once per menu entry (or extension entry), because on the second and subsequent invocations there will be no tagged files.
        • "%s" and "%S"  The tagged files if there are any. Otherwise the current file.
        • "%cd" This is a special macro that is used to change the current directory to the directory specified in front of it. This is used primarily as an interface to the VFS.
        • "%view"  the invocation of the internal viewer. An argument to force the viewer in a particular mode can be passed: ASCII to force the viewer into ASCII mode; hex to force the viewer into hex mode;
        • "%%" The % character
        • "%{some text}" Popup an input box and prompts for the substitution.   The user should be able to cancel input ( ESC or F10 recommended).
        • Note: Instead of Case change method for macrovariables in active and passive panels (as in %f and %F) there can be a special prefix that turns macro symbols for active panel to macro symbols to passive panel, if applicable, for example %f is the current file name on active panel but %-f is the current name on the passive panel. 
      2. NC-style naming system for macro substitution symbols in OFMs (not recommended for Unix implementations, they should use mc-style symbols, see above). At least the following macro symbols should be defined:
          !           The current file name without extension
          !.!         The current file name with extension
          ^!          The current filename of the passive panel without extension
          ^!.!        The current filename of the passive panel
          !&        List of names of selected files
          !:          The current drive
          !\  or !/   The current path

        Some prefix or suffix (for example ^) can be used to define the same macros for the passive panel to refer to the passive panel.

        NC style is deprecated and should be avoided in new implementations of OFMs
  14. Additional file commands compatibility:
    1. File attribute command (no hot key specified, should be available via menu) should permit changing of attributes and file stamps of a single file or group of files, or subtree (if applied to the directory) as well as ownership (in Unix);
    2. File timestamps editing
    3. File ownership
    4. Rename tool
    5. Diff tool
    6. File case conversion command should permit changing of the case of the file or group of files (not applicable to DOS implementations)
  15. Association (extension menu) management compatibility:
    1. Multiple associations. The ability to specify one or several associations for the same extension using regular expressions
    2. Internal editable file that take precedence over system associations
    3. Hierarchy of association files (global/user)
    4. Ability to specify actions for View, Edit and Enter operations in the same file
    5. Usage of regular expression in determining the association
    6. Ability to use file type instead of file name (as returned by Unix file command)
    7. The ability to use the same macrovariables in associations in the file association table as in the user menu.
  16. Compare directories:
    1. Simple attributes comparison
    2. Comparison rules/filters should be provided (only size, only date, etc) generally equivalent in capabilities to search. Can be provided as a different command (synchronize command like in Total Commander)
    3. Strong comparison (comparison by equivalence of file content, possibly using MD5) should be provided.
    4. Option to ignore date of creation and other data stamps  (important for FTP VFS)
    5. Synchronize option or command
  17. Built-in viewer:

    Note: Should be able to work in full screen mode and in panel mode (at least in quick view).
    Optional:
    User should be able to invoke the viewer in the panel mode not only in quick view, but also via some hotkey (for example Alt-F3). This is very useful if 132 screen mode is used.

    1. End should go to the end of the file; Home to the beginning of the file;
    2. Wrap/unwrap feature (F2);The ability to view file in hex should be provided (via F4)
    3.  Ctrl-O shows command line screen
    4. The ability to search for regular expression (F7); to repeat search (Shift-F7).
      •  "/" and "?" keys should serve as additional hotkeys for regular expressions search forwards/backwards as in many Unix tools.  
      •  The ability to search in reverse direction (Alt-F7 or Ctrl-Alt-F7);
    5. Pressing F3 should exit the viewer -- very convenient key assignment for quick exit from the viewer (MC,FAR);
    6.  + should go to the next file, - to prev
    7. Bottom menu changes when Ctrl and/or Alt is pressed.
    8. Bookmarks for file positions should be available
    9. Ability to go to specific line number and specify offset in percents
    • Optional: mouse click on the current line number should open panel to specify line number to go.
  18. Built-in Editor
    1. Look and feel
      1. The bottom menu changes when Ctrl or Alt keys are pressed;
      2. The ability to view hex representation of the current symbol in the upper menu;
      3. Top menu provided with F9 and replaces information line
      4. Syntax highlighting
    2. DOS/Unix compatibility
      1. Autodetection of Unix/Dos style text files and preservation of the style in save.
      2. Ability to change style on save.
    3. Windows style way of selecting blocks of text. Shift-Arrow should select line block;
    4. Special hot key to go to a line number (Ctrl-G). Optional: mouse click on the current line number should open panel to specify the line number to go.
    5. Hotkey for finding matching bracket should be provided.
    6. Open/Close/Save compatibility
      1. The ability to create new file (Shift-F4) instead of editing current;
      2. F2 - Save changes without exiting; Shift-F2 save with new name (SaveAs);
      3. Esc,F10 - Exit (should produce save prompt if changes were made); Shift-F10 - save and exit.
    7. Search compatibility. The ability to search for text string and regular expression in search option (F7) and repeat search option (Shift-F7); Optional: Search for same text in reverse direction;
    8. Basic keys compatibility
      1. Backspace - Delete character left of the cursor; Ctrl-Backspace - delete word left of the cursor
      2. Del - delete character under the cursor; Ctrl-Del - delete word right of the cursor;
      3. Home -- Go to start of line; End - Go to end of line;
      4. PgUp/PgDn - Move up/down one page;
      5. Ctrl-Home - Go to top of file; Ctrl-End - Go to bottom of file; Ctrl-PgUp/PgDn might be synonyms or to top/end or go to top line/bottom line of the screen;
      6. Ctrl-Q -- Quote character (insertion of special characters)
      7. Ctrl-Y -- delete current line; Ctrl-T -- delete current word;
      8. Ins - Toggle Insert/Overstrike mode; Optional: hot key for Auto-indent mode;
      9. Ctrl-O shows command line window with the ability to execute commands.
      10. User menu should be provided with at least one additional macrovariable %b to allow to pipe block to the script and insert the result of the script to the position after the cursor
    9. User menu. User menu should be provides with at lease one additional macrovariable (%b) allowing to insert the test after the cursor or block and pipe the block into script.

      Optional: User should be able to invoke the editor in the panel mode via some hotkey (for example Alt-F4). This is very useful if 132 symbol terminal width is used. In panel mode all command line insertion hotkeys should be redirected to the current position of the cursor in editor (Ctrl-[, Ctrl-], etc)
       

  19. Archive virtual file system  (optional if plug-ins are supported and corresponding plug-in provided)
    1. Viewing Archive VFS like regular directory. Operations view(F3), Edit(F4), copy(F5), move/rename (F6), delete(F8) should be supported like with directories. Files can be selected, deselected as in regular folder;
    2. Compress/extract directories and file into/from archive. Extract command should permit creation of a folder with the name of archive without extension for extraction ( FAR, DN).
    3. Navigation compatibility:
      • pressing of the Enter key on the archive file should produce the listing of archive content in the panel;
      • Any operation for leaving the folder should work as closing the archive view.
      • Quick search (alt-<letter>) should work on archive VFS panel.
      • Ability to view self-extracting archives via Ctrl-PgDn (like diving in the directory)
    4. Support of at least ZIP, GZIP, TAR, ISO and RAR formats.
  20. History and favorites compatibility.
    1. Command history (in panel view) should be available both via hotkey (Alt-F8)
      1. C-shell-style browsing mode should be available. In C-shell style browsing mode the retrieval of a command from the history into the command line should be possible with the hotkeys, for example (Alt-E, Alt-X like in NC5).
      2.  The possibility of  exporting command history to a flat file and retrieving command history form the file.
    2. Browsable history of commands in command like in all dialogs via on [^] or Ctrl-Up
    3. History invocation on mouse click on [^] or Ctrl-Up
    4. In additions in all  dialogs (For example Mark/Unmark dialogs, visited directories, viewed edited files, etc) it should be  scrollable with mouse wheel (FAR)
    5. Visited directories history (folder history Alt-F11 in FAR)
    6. Viewed and edited files history
    7. Directory favorites list should be available (Ctrl-\ in Unix)
    8. Ability to panelize history of visited/edited files (hotlist)
    9. Command completion: Alt-Tab or Ctrl-End at the end of the command line complete the command starting with these symbols from the command history. In case several variant of completion are possible they should either displayed or it should be possible to press Ctrl-End several times to find the next command in the history that has the same prefix
  21. Infopanel and infoline compatibility
    1. Ctrl-L should switch to the information panel. Information panel should provide at least information about one special file defined in Options/Infopanel Settings submenu of the top menu. The default is  dirinfo in Windows implementations and  README for Unix implementation, or both. If one of defined dirinfo files is available in the directory it should be displayed in the opposite panel. There should be the possibility to define it with regular expression (this was multiple files can be defined, if desirable). Several file can be defined, separated with semicolons. If multiple files are present only the first is displayed.  Information panel consists of two parts upper (that is optional) and lower.

    2. Upper part should provide one or two lines basic statistics (total bytes in the directory, total number of files and free bytes on the harddrive) about the current directory and current drive (see FAR as reference implementation).
    3. Lower half should display so called "directory description" (dirinfo) file. the latter a special file user-definable with a regular expression. If such file is present it should be displayed in the bottom half. If multiple files match regular expression the first match should be displayed with the capability to move to the next match via F10. For example this was the capability to view README file can be provided. (new in OFM2004 revision 1.3, Oct 2012).
    4. If infopanel is made active with Tab, all F-keys should be applicable and process the dirinfo file as a source.  F3 in this panel should switch to view of dirinfo file and F4 to its editing. On the picture below File_id.diz serves as dirinfo file (in FAR the set of dirinfo files is fixed).
       
    5. If there is no file corresponding to regular expressions in infopanel definition additional information about the system should be displayed. Here is an example from FAR
    6. For directories you should be able to view dirinfo file in full screen by pressing F3 key
    7. Infoline at the bottom of the panel should display file name (or "overflow" for long names) and additional (custom) attributes.
    8. Extension menu definable infoline attributes similar to custom template of columns for panel

The Most Recent Results of the OFM1999 Compatibility Testing

(the data are current as of November  7, 2012)

Summary

OFM1999 score (average of all 21 tests)   NC VC DN FAR Total
CMD
NCW MC FC
Scores   68 71 73 89 70 68 66 75

Detailed Results

[an error occurred while processing this directive]



Etc

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least


Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: October, 11, 2015