home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: OtherApp / OtherApp.zip / FSHL125.LZH / WHATS.NEW < prev   
Text File  |  1992-04-03  |  14KB  |  296 lines

  1. FSHL Version 1.25
  2.  
  3. Oberon Software
  4. 518 Blue Earth Street
  5. Mankato, MN 56001
  6. April 3, 1992
  7.  
  8.   -------------------------------------------------------------
  9.  
  10. Copyright 1990-92, Oberon Software, Mankato, MN - All Rights Reserved
  11.  
  12.   -------------------------------------------------------------
  13.  
  14. Installing FSHL in the PROTSHELL statement:
  15.  
  16. **** OS/2 1.3 and OS/2 2.0 betas thru 6.149 ****
  17.  
  18. Place FSHL.EXE and it's parameters where CMD.EXE would usually go in
  19. the PROTSHELL statement itself.  Set COMSPEC to FSHL.EXE and remember
  20. to set CMD_EXE to the path for the real CMD.EXE.  Example:
  21.  
  22. PROTSHELL=C:\OS2\PMSHELL.EXE C:\OS2\OS2.INI C:\OS2\OS2SYS.INI D:\PBIN\FSHL.EXE -FD:\USR\FSHL.CFG -KD:\CMD\FSTART
  23. SET COMSPEC=D:\PBIN\FSHL.EXE
  24. SET CMD_EXE=C:\OS2\CMD.EXE
  25.  
  26.  
  27. **** OS/2 2.0 since beta release 6.167 and GA ****
  28.  
  29. Instead of setting the command processor in the PROTSHELL statement
  30. itself, OS/2 now uses a group of environment variables to specify the
  31. PROTSHELL parameters.  The important one is OS2_SHELL for our
  32. purposes; it will specify FSHL and its parameters.  In the example
  33. below, I've only included the 'interesting' SET commands (at least as
  34. far as FSHL is concerned).
  35.  
  36. PROTSHELL=C:\OS2\PMSHELL.EXE
  37. SET OS2_SHELL=D:\PBIN\FSHL.EXE -FD:\USR\FSHL.CFG -KD:\CMD\FSTART
  38. SET COMSPEC=D:\PBIN\FSHL.EXE
  39. SET CMD_EXE=C:\OS2\CMD.EXE
  40.  
  41.  
  42. ----------------------------------------------------------------------
  43.  
  44. New FSHL internal commands:
  45.  
  46. ctrlsearch      ctrlsearch [on|off]
  47.                   Sets or queries the default method for searching
  48.                   the history buffer for a partial match.  The
  49.                   default in ON, meaning that to search for a
  50.                   partial command line, you must use the Control
  51.                   key with either the up or down arrow to initiate
  52.                   the search and the regular arrow keys will cycle
  53.                   through each entry in the history buffer.  When
  54.                   this mode is set OFF then the control key is NOT
  55.                   required to search for partial command lines.  The
  56.                   only way to search the entire buffer is to clear
  57.                   the command line before using the up or down
  58.                   arrows.  In this case, you must also be aware that the
  59.                   cursor will remain at the beginning of the command
  60.                   as each is displayed instead of at the end.
  61.                   If the parameter is omitted, the current state of this
  62.                   setting will be reported.  Note that 'fshlinfo'
  63.                   has been enhanced to also report this state.
  64.  
  65.                   You can set this mode OFF on the FSHL command line
  66.                   with the switch: "-u".
  67.  
  68. fshlinsert      fshlinsert [on|off]
  69.                   Sets or queries the default insert/overstrike
  70.                   mode for the command line editor.  If the
  71.                   parameter is 'ON', FSHL will default to insert
  72.                   mode on the command line, if it is 'OFF' it
  73.                   will default to overstrike mode.  If the
  74.                   parameter is omitted, the current state of this
  75.                   setting will be reported.  Note that 'fshlinfo'
  76.                   has been enhanced to also report this state.
  77.  
  78.                   You can set this mode ON on the FSHL command line
  79.                   with the switch: "-i".
  80.  
  81. installdll      installdll dllname [token list]
  82.                   Allows the installation of a DLL (user or third
  83.                   party written) which may contain actions to be
  84.                   executed for the listed tokens.  Thereafter
  85.                   any of the tokens in the token list will act
  86.                   in a similar fashion to a normal 'alias' except
  87.                   that the DLL routine will be called.
  88.                   If the "token list' is omitted, the DLL will
  89.                   be removed from memory.
  90.  
  91.                   This DLL MUST have the following entry point:
  92.                         USHORT APIENTRY PROCESS(PCHAR, PCHAR);
  93.                   The two parameters will be the token which
  94.                   initiated this call to the DLL and its command
  95.                   line parameters respectively.  The return
  96.                   value from the function will placed into the
  97.                   ERRORLEVEL.
  98.                   The DLL may optionally have one or both of the
  99.                   following two entry points:
  100.                         USHORT APIENTRY INIT(VOID);
  101.                         USHORT APIENTRY CLEANUP(VOID);
  102.                   INIT will be called immediately after loading
  103.                   the DLL to allow it to allocated resources or
  104.                   perform whatever action it feels it must.  If
  105.                   INIT returns nonzero, the DLL will immediately
  106.                   be unloaded and an error message printed.
  107.                   CLEANUP is called when the DLL is unloaded
  108.                   under normal conditions.  This will allow the
  109.                   DLL to free any allocated resources and/or
  110.                   perform any other actions it deems necessary
  111.                   at this point.
  112.                   See the supplied source code for TestDLL for
  113.                   a very contrived example.
  114.  
  115.                   Note that the token lists for the installed DLLs
  116.                   are checked first before any other FSHL alias,
  117.                   FSHL internal, or OS/2 internal command.  After
  118.                   FSHL aliases are expanded, the list is rechecked.
  119.  
  120.                   Also note that installed DLLs are inherited by
  121.                   child invocations of FSHL but not vice versa.
  122.                   If a child uninstalls an inherited DLL, it will
  123.                   still be installed for the parent.  This behavior
  124.                   is analogous to the say SET environment variables
  125.                   behave with respect to parent and child processes.
  126.  
  127. pfalias         pfalias[!] [1-48] [definition]
  128. pfalias!          Allows the setting of macros to the various PF
  129.                   function keys (1-12 are the normal keys, 13-24 are
  130.                   the shifted function keys, 25-36 are Ctrl+PF keys,
  131.                   and 37-48 are Alt+PF Keys).  If the "pfalias!" form
  132.                   is used, a carriage return is appended to the key
  133.                   definition.  If the "definition" parameter is
  134.                   omitted, the key definition is cleared.  If no
  135.                   parameters are given, a list of existing definitions
  136.                   is printed to screen.  These function key settings
  137.                   are global to all invocations of FSHL in a given
  138.                   session (just like command historys work).  When
  139.                   a PF key is typed at the command line the
  140.                   associated string in 'typed' at the cursor just as
  141.                   is the user had typed it.
  142.  
  143. prty            prty idle|normal|timecrit|foreground command [args]
  144.                   Allows execution of "command" at the specified
  145.                   priority level.  Whatever priority FSHL itself is
  146.                   running at is restored after execution of the
  147.                   command.
  148.  
  149. restorehistory  restorehistory filename
  150.                   Reads a file, created previously by the FSHL
  151.                   "savehistory" command and replaces the entire
  152.                   history buffer with the saved buffer.
  153.  
  154. savehistory     savehistory filename
  155.                   Saves the current history buffer to a file for
  156.                   later use with the FSHL "restorehistory" command.
  157.  
  158. window          window min|max|restore|size|move|tasklist
  159.                   Only works if FSHL is executing in VIO windowed
  160.                   session. Min, max, restore, size, and move perform
  161.                   the equivalent of selecting that item from the
  162.                   window's System menu.  Tasklist brings the system
  163.                   Task List to the foreground as if Ctrl+ESCAPE were
  164.                   keyed at the keyboard.  Note that "window min" and
  165.                   "window tasklist" WILL indeed work in a full screen
  166.                   session.  In both cases, it will cause the PM
  167.                   Desktop and the Tasklist to surface.
  168.  
  169. ----------------------------------------------------------------------
  170.  
  171. New feature:  File Name Completion
  172.  
  173. At any FSHL prompt, if you press Alt-> (Alt-"Greater-Than" or, if you
  174. prefer, Alt-"period") FSHL will look at the "word" just under the
  175. cursor (or just to the left if the cursor is over white space) and
  176. expand it into a list of matching file names.  If matches are found,
  177. the string is replaced immediately with the first match.  Subsequent
  178. presses of Alt-> will progress through the list.  Alt-< will move
  179. backwards through the list.  Either way, the list will "wrap".  That
  180. is, when the end is reached the display will start over from the
  181. other end.
  182.  
  183. Notes on pattern matching:
  184.  
  185. If you press Alt-> or Alt-< with the cursor over the string "foo",
  186. FSHL will first try to find a file which exactly matches "foo".  If
  187. the file exists, nothing apparent will happen; you are done.  If a
  188. SUBDIRECTORY named "foo" exists, however, a backslash will be
  189. appending to "foo", making it "foo\" and you will then be able to
  190. cycle through all the file names in that subdirectory.  If neither of
  191. these two events occured, then FSHL will transform the string into
  192. "foo*" and try one more time and you will be able to cycle through
  193. your file names like "foolishness" and "food preparation in the
  194. 90's".  If there are still no matches at this point, FSHL will emit a
  195. short beep to inform you of that fact.
  196.  
  197. If the string contains any *'s or ?'s, then only that string will be
  198. matched (i.e., it will not test it as a possible subdirectory).  If
  199. the string ends with a backslash (i.e., "foo\") then FSHL will not
  200. try to treat it like a possible file name and will instead match
  201. "foo\*".
  202.  
  203. ----------------------------------------------------------------------
  204.  
  205. New Pseudo Environment variable: _DATEYMD_
  206.  
  207. Returns the current date packed into YYYMMDD format.  For instance,
  208. while "echo %_DATE_%" would print something like "Mon Mar 16, 1992",
  209. "echo %_DATEYMD_%" would print 19920316.
  210.  
  211. ----------------------------------------------------------------------
  212.  
  213. Programming APIs:
  214.  
  215. There are now two methods for you to programmatically extend and/or
  216. access FSHL features.  One method is the 'InstallDLL' interface
  217. (see above under 'installdll' for information regarding programming
  218. add-on DLLs and also see the source for TestDLL for a simple
  219. example).  The second is via the supplied FSHLCALL.DLL module.  This
  220. module contains two entry points which you may access from your
  221. program:
  222.  
  223. USHORT FindFshl(void);
  224.         Returns the version number of the parent FSHL process or
  225.         zero if you are not running as a child of FSHL.
  226.  
  227. USHORT CallFshl(PSZ pszCmd, PUSHORT pusRetCode);
  228.         'pszCmd' is a pointer to a buffer containing any arbitrary
  229.         command line.  It will be submitted to the invocation of
  230.         FSHL which is your most immediate predicessor which will
  231.         treat it in all respects as though it were typed at the
  232.         command line.  This is to say, alias expansion and expansion
  233.         of environment variables will take place as normal.
  234.         'pusRetCode' will be set to the return code (i.e., the
  235.         ERRORLEVEL) from the command after its successful completion.
  236.         The return value is zero on success, 0xffff on failure (if,
  237.         for instance FSHL is not an ancestor of the current
  238.         process).
  239.  
  240. A header file, FSHLCALL.H and an import library, FSHLCALL.LIB, are
  241. also supplied for your use.  It is recommended, however, that you
  242. dynamically load FSHLCALL.DLL via DosLoadModule() rather than link
  243. with the import library so that your program may continue to function
  244. properly should it find itself in the situation where FSHL is not a
  245. parent process.
  246.  
  247.  
  248. THE DIFFERENCE BETWEEN THE TWO APIS:
  249.  
  250. 1) Use the "InstallDLL" interface to create new built-in FSHL
  251. commands or to enhance old ones.
  252.  
  253. 2) Use the CALLFSHL interface if your program needs to change
  254. something in the parent FSHL's environment such as the current
  255. working directory, disk drive, setting of an environment variable,
  256. etc.
  257.  
  258. 3) The CALLFSHL interface could also be used as an alternative to
  259. "shelling out" to an operating system command from your program to
  260. avoid starting another process.
  261.  
  262. ----------------------------------------------------------------------
  263.  
  264. Other comments:
  265.  
  266. Note that there are two new switches for the FSHL invocation command
  267. line:
  268.  
  269.         -i      Sets default insert/overstrike mode to 'Insert'
  270.         -u      Sets default "CtrlSearch" method to 'off'
  271.  
  272. Previously the state of the following toggles was not preserved into
  273. child invocations of FSHL:
  274.  
  275.         Delimiter Set
  276.         CtrlSearch
  277.         FshlInsert
  278.  
  279. This situation has been corrected.
  280.  
  281.  
  282. ----------------------------------------------------------------------
  283.  
  284. DOS and Windows programs:
  285.  
  286. Under OS/2 2.0 you may now execute any DOS or Windows app directly
  287. from the FSHL command line.  Executing a batch file (.BAT) or a
  288. Windows executable will behave exactly as CMD.EXE does (i.e., the
  289. current session is hidden for the duration of the batch file or
  290. Windows session and is restored upon completion.  Any other DOS app
  291. (.EXE or .COM file) executed from the FSHL command line will spawn an
  292. independant session wherein that program is run and you may switch
  293. back to the original FSHL session if you wish without disrupting the
  294. DOS app.
  295.  
  296.