home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / RIPKT100.ZIP / RIPKIT.ZIP / FLAG32.ZIP / FLAG.HIS < prev    next >
Text File  |  1994-01-17  |  17KB  |  314 lines

  1.                           Update History for FLAG.PPS
  2.  
  3. NOTE:  The numbers in parentheses, after each item in the history, represents
  4. lines in the CURRENT source code that correspond with the changes that are
  5. being described.  This level of detail is included in the HISTORY solely for
  6. the benefit of programmers (even those learning to program) who want to try to
  7. understand the changes being made and why they were made.
  8.  
  9. IMPORTANT:  The line numbers shown are only good so far as changing from one
  10. version number to the next.  Example:  The line numbers shown under the
  11. version 2.0 release notes are INVALID for the version 2.1 release because
  12. version 2.1 added information up near the top of the file shifting everything
  13. down.  In order to properly compare previous source code changes by line number
  14. you will need to obtain a copy of that release and compare it to the release
  15. before it.
  16.  
  17. Version 3.2 released on 01/17/94
  18. --------------------------------
  19. - One more fix to PREFILER which was not allowing the files displayed on the
  20.   very first screen to be "flagged" with a mouse.
  21.  
  22.  
  23. Version 3.1 released on 12/28/93
  24. --------------------------------
  25. - Found that the copy of PREFILER inside of FLAG30.ZIP was dated 11/11/93 when
  26.   it should have been the one dated 11/13/93 which contained some fixes in it.
  27.   Updated *just* the PREFILER file.
  28.  
  29.  
  30. Version 3.0 released on 12/18/93
  31. --------------------------------
  32. - WARNING!  To use version 3.0 you *must* be using PCBoard v15.1.  At the time
  33.   of this writing, PCBoard v15.1 is in wide area beta and can be downloaded
  34.   from the Salt Air BBS via the BETA door.
  35.  
  36. - The goals for this release of FLAG.PPE were:  1) reduction of code size and
  37.   the number of .PPE files required, 2) increase in speed, 3) addition of
  38.   foreign language support, 4) addition of RIPscrip support, and 5) a few
  39.   examples of new items in PPL 2.0 (included in PCBoard v15.1).  These goals
  40.   have been accomplished in the following changes:
  41.  
  42.   1) Reduction of code size was done mostly by taking advantage of new commands
  43.      in PPL 2.0.  Some functions that were previously implemented via PPL
  44.      source code are now wired into PCBoard and available to all PPL programs
  45.      without having to duplicate the source code.
  46.  
  47.      Lines 390-431 replace what was formerly in lines 290-349.  The interesting
  48.      thing is that there were a total of 42 non-comment lines in the previous
  49.      version and there are only 23 lines of non-comment lines in this version.
  50.      In other words, what formerly required 42 lines of PPL source code has
  51.      been reduced to just 23 lines of PPL source code *AND* at the same time
  52.      those 23 lines have the added ability of handling RIPscrip.
  53.  
  54.      Further reduction in the PPE file size was accomplished by eliminating
  55.      some of the variables that were being used and were no longer needed.
  56.  
  57.      Also, the PPE file size was reduced by using the /NOUVAR switch on the
  58.      PPLC command line.  (see COMPILE.BAT for compiling FLAG.PPE)
  59.  
  60.      Only one FLAG.PPE is included now (FLAG2.PPE is no longer required).
  61.      This is because PCBoard v15.1 has been modified so that the flagging
  62.      "more?" prompt is no longer issued *unless* there are filenames on the
  63.      screen to be flagged.  In addition, v15.1 was modified so that AFTER a
  64.      file display, if there are filenames on the screen that can be flagged,
  65.      PCBoard will issue an extra flagging "more?" prompt.
  66.  
  67.      NOTE:  If you previously used FLAG v2.x then you can now UN-install the
  68.             FLAG2.PPE file from your PCBTEXT file.  This is done by using
  69.             MKPCBTXT and pressing F3 to get to records 223 and 585.  Once in
  70.             the record, press F4 to restore the default text.
  71.  
  72.   2) Speed increases came about in the form of a) load-time, b) run-time.  The
  73.      reduction in load-time was a byproduct of the size reduction mentioned
  74.      above.  Also, by virtue of PCBoard v15.1 only displaying a flagging
  75.      "more?" prompt when necessary, it avoids loading FLAG.PPE only to
  76.      immediately unload it due to not finding any files to flag.
  77.  
  78.      The run-time speed was improved by jumping out of the PPE at an earlier
  79.      time (if it was not needed) and by using PPL 2.0 statements to scan the
  80.      screen.  The new PPL 2.0 statements call functions of PCBoard v15.1 which
  81.      are compiled down to machine code and operate faster than native PPL
  82.      statements that accomplish the same thing.
  83.  
  84.   3) The addition of foreign language support was accomplished by moving the
  85.      display prompts out to files called FLAGOLD, FLAGNEW and FLAGBAR.  These
  86.      files display the old prompt, the new prompt, and the flag bar.  Each of
  87.      these files are displayed using DISPFILE with the "LANG" parameter which
  88.      tells PCBoard to search for language-specific versions of the files.  For
  89.      example, if the caller is using the German language, the files
  90.      FLAGOLD.GER, FLAGNEW.GER, and FLAGBAR.GER will be used automatically.
  91.  
  92.      FLAG30.ZIP includes a few example prompt files.  It is important to note
  93.      that each of these files are purposely saved WITHOUT an ending CR/LF
  94.      (carriage return/line feed) sequence at the end.  This avoids the mistake
  95.      of moving the cursor down to the next line.  The addition of other
  96.      languages is as easy as adding new FLAGOLD, FLAGNEW and FLAGBAR files with
  97.      a separate extension.
  98.  
  99.      NOTE:  Moving these prompts out to a file further reduced the .PPE file
  100.      size.  However, it can be argued that the prompt display is now slightly
  101.      slower because PCBoard has to locate the file before it can be displayed.
  102.  
  103.   4) The addition of RIPscrip support comes in two steps:
  104.  
  105.      a) FLAG.PPE now sets the "mouse region" so that the caller can point to
  106.         a filename and click on it.
  107.  
  108.      b) However, in order for the region to be "meaningful", you must first
  109.         ensure that the caller is in the proper font and that the text window
  110.         is in a pre-determined location on screen.  This *requires* that you
  111.         first set the screen up!
  112.  
  113.         PCBoard v15.1 adds the ability to use a "Command Display Files"
  114.         directory.  See PCBSetup : File Locations : System Files.
  115.  
  116.         In this Command Display Files directory, PCBoard will locate display
  117.         files that are associated with various "commands" in PCBoard.
  118.  
  119.         These display files are used to send something to the caller BEFORE a
  120.         command is processed.  For example, if the user types "U" to upload a
  121.         file, PCBoard will look in the Command Files directory for a file
  122.         called "U" and, if one exists, it will display it to the caller.
  123.  
  124.         PCBoard v15.1 also has a special file called "PREFILE" which is
  125.         displayed just prior to showing the contents of a DIR file.  By
  126.         creating a PREFILE for RIPscrip users (called PREFILER, note the "R"
  127.         extension), you can define the text window, set the font, and even
  128.         display some extra mouse buttons on the screen such as to view or flag
  129.         a file, or to stop the display, etc.
  130.  
  131.         The PREFILER file included can be used as is.  But you must define the
  132.         Command Display Files location first.  Do this by going into PCBSetup
  133.         and specifying a directory such as this:
  134.  
  135.               C:\PCB\CMDFILES
  136.  
  137.         Then copy PREFILER into that directory.  Without PREFILER (or a
  138.         comparable pre-defined RIPscrip scene), the RIPscrip support in
  139.         FLAG.PPE v3.0 is useless!  In addition, you will probably want to
  140.         have your RIPscrip menus set up to "reset" the screen AFTER the caller
  141.         has viewed your file areas.  This will generally be automatic in the
  142.         display of your menus.
  143.  
  144.   5) Switched the INTEGER variables to BYTE.  Added use of the CONTINUE
  145.      statement to jump past the rest of a WHILE loop.  Utilized the new
  146.      SCRFILE and MOUSEREG statements.
  147.  
  148. - Added new code to handle the "V" command for viewing files.  If the caller
  149.   types "V" and presses ENTER, then FLAG.PPE will now prompt the caller, using
  150.   the PROMPTSTR statement, for the name of the file to view.
  151.  
  152.   (lines 227-278)
  153.  
  154. - There is also some sample (commented-out) code between lines 240 and 271
  155.   which, if uncommented, could be used to define different archive formats
  156.   for different conferences on your system.  For instance, you could have
  157.   ZIP in one conference, ARC in another, ZOO in another, etc.
  158.  
  159. - Changed the method for restoring the cursor to the original line.  Instead
  160.   of the more complex code previously used, FLAG.PPE now simply uses the ANSI
  161.   commands for saving and restoring the cursor position.
  162.  
  163.  
  164. Version 2.2 released on 09/28/93
  165. --------------------------------
  166. - Modified FLAG.PPS (and FLAG2.PPS) so that the screen is SAVED whenever
  167.   performing a "V" command (file view) and upon entering FLAG.PPE (or
  168.   FLAG2.PPE) the screen is restored.
  169.  
  170.   This may sound backwards, restoring before saving, but it works.  It works
  171.   because PCBoard knows enough not to restore a screen that was never saved.
  172.   So the first time FLAG.PPE is executed, nothing is restored.  But if the
  173.   caller views a file, then the screen is saved into PCBoard's memory.  Then,
  174.   immediately upon returning from the file view, the next time FLAG.PPE is
  175.   run, it again tries to restore the screen and this time there is a saved
  176.   screen to be restored so PCBoard properly restores it.
  177.  
  178.   (lines 72-24, 152 and 237-239)
  179.  
  180. Version 2.1 released on 09/22/93
  181. --------------------------------
  182. - NOTE:  Renamed the help file from FLAG.HLP to FLAGHLP and included both
  183.   english and german versions.  The german version was uploaded to Salt Air
  184.   by Mike Paschen (thanks!).
  185.  
  186.   I liked calling it FLAG.HLP since a "DIR FLAG.*" would find everything having
  187.   to do with FLAG.PPE, but oh well, for the "greater good" we need to have the
  188.   filename be extensionless to accomodate foreign languages.  <smile>  Don't
  189.   forget to delete (or rename) your FLAG.HLP file.
  190.  
  191.   (line 196)
  192.  
  193. - Using ideas from sample code provided by Gary Meeker, modified the findfile
  194.   routine to allow it to perform better validation of file listing lines.
  195.   Gary provided code that allowed it to also check to see that the file date
  196.   and file size information was correct.  These additional checks help ensure
  197.   that FLAG.PPE won't accidently highlight a line that is not a file listing
  198.   or even a file listing where the file is unavailable because it is offline
  199.   or deleted.
  200.  
  201.   The implementation was slightly different from Gary's code, but the ideas
  202.   are the same.  For performance reasons, the findfile routine now tests the
  203.   size and date values first (because these are faster than the filename
  204.   verification tests) and then, if they are successful, it moves on and checks
  205.   the filename.  The file size is simply checked to ensure that it is greater
  206.   than zero.  The file date is read into a variable of type "DATE" which
  207.   converts the file date to a julian value.  Then the julian value is tested
  208.   to see if it is greater than zero which would indicate that the file date is
  209.   a valid file date.  If any of these tests fail (size, date or filename) then
  210.   findfile moves up the screen looking for more filenames as it did before.
  211.  
  212.   (lines 36-37 and 287-304)
  213.  
  214. - Some people have asked for the ability to flag files AFTER the file list is
  215.   completed (at the File List Command prompt).  This release includes a second
  216.   PPE (called FLAG2.PPE) which has just TWO differences:
  217.  
  218.      1) The prompt was changed (see nprompt and oprompt)
  219.      2) And the "H" key processing was removed so that PCBoard could display
  220.         the default help instead of the FLAGHLP file.
  221.  
  222.   I almost hated putting FLAG2.PPS together since the source code is nearly
  223.   identical, it seems almost too redundant.  However, creating a single
  224.   FLAG.PPE that handled both prompts (the "more?" prompt as well as the "File
  225.   List Command" promt) would actually have required a lot more effort than this
  226.   simple change required.  So that's why there is now a FLAG.PPE and FLAG2.PPE
  227.   instead of just one.
  228.  
  229. - Also, to make things easier, an INSTALL.BAT is now included to install
  230.   FLAG.PPE and/or FLAG2.PPE into your system.
  231.  
  232.  
  233. Version 2.0 released on 09/14/93
  234. --------------------------------
  235. - The number one request for this release was to add (H)elp processing.  This
  236.   was done by using the hotkey approach (the approach most people suggested)
  237.   whereby if H or ? is pressed, it would immediately display the help.
  238.  
  239.   NOTE:  I saw two submissions from other authors that made similar changes,
  240.   the flaw in both was that they did not check to see that "H" was the first
  241.   key pressed.  So if a caller tried to type "F THISFILE" he would only get
  242.   as far as typing "F T" because when the "H" was pressed it would jump to the
  243.   help routine.  This was avoided by checking the "len" variable to ensure that
  244.   no other keystrokes were already in the "text" buffer.
  245.  
  246.   (lines 188-196)
  247.  
  248. - Several modifications were made to enhance the perceived speed of operation
  249.   from remote (especially for slow baud rates).  These modifications were:
  250.  
  251.   - Moving the cursor only when needed. (removing the GOSUB moveup call)
  252.   - Issuing a single command to move the cursor up or down multiple lines at
  253.     once instead of moving one line at a time. (lines 234-240 and 295)
  254.   - Separating the restoreline processing so that, if the prompt being restored
  255.     is about to be erased, it won't even bother restoring the line.  Instead,
  256.     it will just move the cursor where it belongs.  (lines 122-123, 137, 147
  257.     and 150, also see 234-240 and 247-250)
  258.  
  259.   NOTE:  There is a small delay when pressing ESC from remote.  This delay is
  260.   a result of PCBoard waiting to see if the ESC character is part of an ANSI
  261.   command coming from the caller.  It cannot be sped up because the delay is
  262.   a necessary part of recognizing valid ANSI commands.
  263.  
  264. - Added tests for commas, colons, backslashes, asterisks and greater than/
  265.   less than (< and >) characters when checking for invalid filenames on the
  266.   screen.  This was done to reduce the possibility of matching on a non-
  267.   filename on the screen.
  268.  
  269.   (line 287)
  270.  
  271. - If no files were found, it would not jump out of the PPE filename search
  272.   properly.  It needed to restore the line.  Fixed by putting an ELSE clause
  273.   where it checks to see if (filename<>"") which calls restoreline.
  274.  
  275.   (lines 146-147)
  276.  
  277. - Also, modified the logic for dealing with the top line of the screen when
  278.   it is searching for a filename.  At the top of the findfile subroutine it
  279.   now checks to see if the cursor is already at the top line and, if so, it
  280.   simply drops out.  That simplifies the WHILE/ENDWHILE loop by letting us put
  281.   the "GOSUB moveup" line processing inside the loop.  Actually, the moveup
  282.   call has been replaced with a an "upcount" variable which counts the number
  283.   of lines to move up and, if cursor movement is necessary, it then moves the
  284.   cursor all at once.
  285.  
  286.   (lines 273-276, 280-281, and 295)
  287.  
  288. - A unique feature of PPL is that if the caller presses a "special key" such
  289.   as the UP, DOWN, PGUP, PGDN, etc, keys, the INKEY() function will actually
  290.   return a NAME for the key (i.e. pressing DOWN returns the value "DOWN" when
  291.   INKEY() is called).  Because of this, if a caller pressed DOWN the word
  292.   "DOWN" would actually be added into the text that FLAG.PPE was gathering up
  293.   into the "text" variable (used for stuffing the keyboard buffer).  Fixed by
  294.   checking the length of the "key" variable to make sure it is equal to 1
  295.   before adding it into the "text" variable.   Also, INKEY() will return a
  296.   control character (such as CTRL-A) so we need to filter out characters that
  297.   are less than a SPACE at the same time.
  298.  
  299.   (lines 176 and 186)
  300.  
  301. - Added a test, up at the top of the main part of the program, to determine if
  302.   the caller has ANSI enabled.  If not, then FLAG.PPE just displays the
  303.   original prompt and exits out to let PCBoard handle the input.  The reason
  304.   for this change is that the FLAG.PPE cursor positioning and highlighting can
  305.   only occur if the caller has ANSI capabilities on his end.
  306.  
  307.   (lines 32, 57, and 63-66)
  308.  
  309.  
  310. Version 1.0 released on 09/09/93
  311. --------------------------------
  312. - Initial release.
  313.  
  314.