home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / misc_utils / newlist / newlist.doc < prev    next >
Text File  |  1991-03-08  |  12KB  |  278 lines

  1.  
  2.                             NewList 4.5
  3.                                 by
  4.  
  5.                             Phil Dietz
  6.                        10542 Cuming Street
  7.                          Omaha, Nebraska
  8.                               68114
  9.  
  10.                             10-Feb-91
  11.  
  12.       This is TuitionWare.  Send a buck to help me get through college.
  13.     (It's only a buck.  It's not like 35.00 that some dingos ask for.
  14.     If ya can't afford a buck, send a floppy.  Their equal currency
  15.     to me.   :-)   One buck for unlimited updates.  One buck for a
  16.     REAL list program.  One buck and all of your enhancements will
  17.     come true.  SUBLIMINAL HINT:    B     U     C     K
  18.  
  19. What is Newlist?
  20.  
  21.        AmigaDOS is great.  It not only allows you to manipulate files
  22.     graphically VIA workbench, but it also allows you to manipulate
  23.     files on a command line basis.  Commodore utilized the command
  24.     line interface by offering powerful commands to help the user
  25.     do what he wants to do.  One of the handiest is LIST.  It not only
  26.     gives a directory listing of names, but also offers filesizes, file
  27.     protection, and file creation.
  28.    
  29.        But LIST isn't perfect.  It doesn't offer much sorting.  It doesn't
  30.     offer much date manipulation.  It doesn't allow name filters, so
  31.     immense directories HAVE TO BE shown.  TRUE, LIST is small, but
  32.     sometimes POWER comes first.
  33.  
  34. What does that mean?
  35.  
  36.        NewList offers the SPEED of list, and the POWER of a database.
  37.     Now directories can be sorted not only by name, but also by size or
  38.     date.  Now directories can be sorted through an alphabet filter
  39.     so only certain files will be shown (like D through G).  A quick
  40.     option has been added to utilize the screen space, so no more
  41.     2 column output by MR. dir. :-)  Are you tired of the date format?
  42.     Now you can create your own!
  43.  
  44. Ain't it like LS?
  45.  
  46.        Well sorta.  After I finished newlist, I checked out LS offered
  47.     for the Amiga.  Yeah, it's real similar.  All the flags and stuff
  48.     (except letter filters! and date creation!) but trust me, LS isn't the
  49.     best.  The biggest problem with LS is that the code NEEDS TO BE
  50.     OPTIMIZED!  All sorts of nasty dirty lookin' booger pickin' stuff was 
  51.     in it.  Stack consuming non-dynamic arrays, global variables, GOTOs,
  52.     and alot of little things.  NewList was designed around speed- algorithim,
  53.     structure selection, and all.  Every type of area was analyzed;using
  54.     trees, lists, hash tables, AmigaDOS structures, the whole tomato.
  55.     Only the fastest and smallest 'c' structures were allowed.
  56.     The only restriction was the 'c' Compiler itsself.  Lattice 5.10
  57.     should come closer to the GOD-LIKE ASSEMBLER level....
  58.  
  59. Features of NewList:
  60.  
  61.    1)  It's PURE!  NewList is REALLY quick if it's resident.
  62.    2)  Very fast algorithms.
  63.    3)  Completely dynamic.
  64.    4)  Tons of sorts and filters (including the needed BY DATE!)
  65.    5)  Full UNIX WILDCARD (n*l*s? = newlist) and character filtering.
  66.    6)  A slick date construction kit with 5 premades.
  67.    7)  ANSI.
  68.    8)  a slick multi-columnar quick option to utilize screen space.
  69.    9)  ENV: support!
  70.   10)  Tons O' Flags and Switches!
  71.  
  72.  
  73. Usage:  NewList ?
  74.  
  75. NewList  [-o] [-a] [-b] [-k] [-d01234] [-df "DATE STRING"] [-r] [-sn|-ss|-sd]
  76.          [-gd|-gf] [-n] [-h] [-c] [-fA] [-tZ] [-i] [-l #] [-q]<path and wild>
  77.  
  78.        [-o]  Overlook ENV:NEWLIST settings.  Must be first position!
  79.        [-a]  DONT translate day to Today, Yesterday, etc. if applicable.
  80.   [-b] [-k]  Displays BLOCKS, DiskKEYS, or by default filesize.
  81.   [-d01234]  Five different Date/Time Formats.
  82.       [-df]  Date Format string.  See documentation.
  83.        [-r]  Displays list in REVERSE order from bottom<->top.
  84.       [-sn]  Sorts by name.  Same as [-s].
  85.   [-ss|-sd]  Sorts by Size or by Date respectively.
  86. [-gd] [-gf]  Groups display to show ONLY dirs or ONLY files.
  87.        [-n]  Displays COMMENTS if available.
  88.        [-h]  No Header Displayed.
  89.        [-c]  CASE is checked so only lower or upper case are shown.
  90.              [-f] or [-t] MUST be set to an alphabet letter to work.
  91. [-fA] [-tZ]  Displays only files that start with letters from A to Z.
  92.        [-i]  Ignore .info files!
  93.      [-l #]  Only display files made in the last # days.
  94.        [-q]  Quick and simple directory.  (ONLY -snds/-r/-i/-l allowed).
  95.  
  96.  
  97. FLAGS IN DEPTH:
  98.  
  99.    [-o]   When you want to OVERLOOK the ENV:NEWLIST variable.  Using
  100.           [-o] instead of another overriding flag yields the normal
  101.           print-as-being-read format.  This flag MUST be in the first
  102.           position (ie  newlist -o ram:).
  103.  
  104.    [-a]   Forgets about the TODAY, YESTERDAY, bologna.
  105.  
  106. [-b] [-k] Instead of the default display of filesize, newlist will
  107.           instead display BLOCKS or DISKKEYS respectively.
  108.  
  109. [-d01234] Five different pre-made date formats ranging from the
  110.           fully expanded 1st grade letterhead (Friday, November 9, 1990,
  111.           05:30:24 PM) to the default LIST format to slashes, dots,
  112.           and dashes to DateStamp values.
  113.  
  114.   [-df]   Allows you to create your own Date format.  The format is
  115.           -df "DATE STRING".  Mark RinFret offers an easy to use Date
  116.           maker, so I added it.  Here are the flags available:
  117.  
  118.             y => year minus 1900
  119.             Y => full year value
  120.             m => month value as integer
  121.             M => month name
  122.             d => day of month (1..31)
  123.             D => day name ("Monday".."Sunday")
  124.             h => hour in twenty-four hour notation
  125.             H => hour in twelve hour notation
  126.             i => 12 hour indicator for H notation (AM or PM)
  127.             I => same as i
  128.             n => minutes    (sorry...conflict with m = months)
  129.             N => same as n
  130.             s => seconds
  131.             S => same as s
  132.             t => prints TODAY, YESTERDAY, or Day of the week.
  133.  
  134.                 Simply make a C string like printf.
  135.                "Date: %02d-%M-%02y at %02h:02n:02s" 
  136.  
  137.                               yields
  138.                     Date: 11-Jan-90 at 01:03:20
  139.  
  140.     It's Easy.  If you are daring you can even include ANSI codes for spice.
  141.  
  142.   [-r]    Displays a list in REVERSE from top to bottom.  WHY?  Simple.
  143.           Instead of waiting for the whole list to scroll by to see a
  144.           file at the bottom, you can reverse the list and crtl-c to
  145.           stop quick!  It's also handy when sorting by date.  All of
  146.           the newest files will be displayed first.
  147.  
  148.   [-sn]   Sorts files alphabetically.  a synonym is just [-s].
  149.  
  150.   [-ss]   Sorts files by file size.
  151.  
  152.   [-sd]   Sorts files by date of creation.  Very handy!!
  153.  
  154. [-gd -gf] Groups the display so ONLY dirs or ONLY files are shown
  155.           respectively.  This is an option of LIST I had to add.
  156.  
  157.    [-n]   Do you hate seeing those huge FILENOTES destroying your
  158.           directory list?  This flag will toggle if you want to see them.
  159.           If not present, a simple "Comment" will be shown to tell you
  160.           "hey mister, you can read me if you wanna."
  161.  
  162.    [-h]   Doesn't display the header file.....ohhhhh.....big deal!
  163.           Well it does seem off place in the -q quick directory, so
  164.           it might help.  Another LIST option (holy cow!)
  165.  
  166.    [-c]   When using the letter filters, this flag will also take into
  167.           affect the CASE of the filter letter.  So now only upper or
  168.           only lower case files can be displayed.
  169.  
  170.           NOTE: [-fA] or [-tZ] must be set to an alphabetic character
  171.                 to utilize case sensativity!  The default letters are
  172.                 SPACE and , so [-c] will not work unless you change them!
  173.  
  174.   [-fA]   The MINIMUM letter for the filter.  Let's say you only want to
  175.           view files greater than or equal t.  Simply set -ft.  Very
  176.           handy for printing lists where you left off the night before.
  177.           Remember -f as  FROM A
  178.  
  179.   [-tZ]   The MAXIMUM letter for the filter.  Only files less than or equal
  180.           to the letter will be shown.  To see files h through l 
  181.           simply set   -fh -tl.
  182.           Remember -t as TO Z
  183.  
  184.    [-i]   Ignore .info files!
  185.  
  186.  [-l #]   Show files last made since # days ago.
  187.           Now you can view files that were made in the last two weeks
  188.           without viewing a whole directory. (ie newlist -l 14)
  189.  
  190.    [-q]   Gives a QUICK and easy listing of the directory.  The entire
  191.           screen will be utilized and multi-columns will be created.
  192.           Because of its simplicity, not all of the flags are usuable.
  193.           Names will be white, and directories will be another color.
  194.  
  195.  <path>   the directory to view.  Wildcards are supported.  (Yes, UNIX style
  196.           and yes, complex.   ie.  *ew?is*  = newlist)
  197.  
  198.  
  199.     All of the flags and path can be used together (-q has exceptions)
  200.     and in any order.  newlist dh0: -s -r =  newlist -s dh0: -r 
  201.  
  202.     Thus you can view a directory through a case sensative character filter,
  203.     sorted by date in reverse order, total blocks used, with a
  204.     custom dateformat string, hiding .info files, and a UNIX wildcard.
  205.  
  206. Environment Variable support:
  207.  
  208.       ENV: variables are NOW supported (just like I said I would).  Now
  209.    long customized argument lists can be spared!  The variable
  210.    ENV:NEWLIST contains any flags you want to have automagically set upon
  211.    initiating newlist4.  To utilize the env: support, use ED
  212.    or CED and create ENV:NEWLIST by typing in the flags you want
  213.    to have default (ie. -r -sd).
  214.  
  215.       With ENV: comes a diminished return.  Now if you want the standard
  216.    list type display (files out of order and displayed as they are read)
  217.    , then the new -o option must be used.  An alternative is to simply 
  218.    delete ENV:NEWLIST.
  219.   
  220.    NOTE: to override the ENV:NEWLIST, you can enter [-o] or you can type
  221.          any different flag.  Suppose  ENV:NEWLIST is "-r -sd -d3",
  222.          to sort by size simply  newlist4 -ss.
  223.  
  224. How to Create ENV: variables:
  225.  
  226.       Make sure ENV: is assigned to a directory.  Now use the Commodore
  227.    supplied command setenv.  Here is an example of its use:
  228.  
  229.            setenv  newlist  "-q -sd -r -i"
  230.  
  231.  
  232. BUGS with AmigaDOS supplied LIST?
  233.  
  234.        Yes, there are some bugs with list.  One of THE biggest is that you
  235.     cannot name your directories PAT, KEYS, DATES, NODATES, SUB,
  236.     SINCE, SORT, TO, UPTO, QUICK, BLOCK, NOHEAD, FILES, DIRS, or
  237.     LFORMAT.  The parser interprets them as flags and not your dir!
  238.     Technically you CAN name the directory to these statements,
  239.     but the only way to view the directory correctly is to CD to it
  240.     first!!  I wonder why they didn't incorporate a simple -b flag instead
  241.     of the cumbersome BLOCK??  
  242.  
  243. BUG with LS?
  244.  
  245.        Besides the sloppy code, some of the UNIX ported material was not
  246.     thought out in porting to the amiga.  The ONE thing LS forgot about
  247.     was the one floppy user!  The ONLY way to survive a dir was to type
  248.     dir myflopname:.  A system requester would say insert myflopname: then
  249.     you'd insert the disk and click ok.  Well, ls's error trapping
  250.     removes the requesters so the one drive user is doomed!
  251.     Oh well.  Not to many of them left. Not me....! :-)
  252.  
  253.  
  254. ~~~~~~~~~~~~~~~~
  255.  
  256. Comments:  First off.  Rename newlist to nl (for newlist), stick it in
  257.            your c: directory, and PURE it.  People use names that are short
  258.            and you know that you want to type nl instead of newlist.
  259.            Then edit your Startup-Sequence to make nl RESIDENT upon bootup.
  260.            (add  RESIDENT c:nl or ARES c:nl)
  261.  
  262.            Enjoy.  PLEASE send a buck.  I need it.  I'll be your friend...
  263.            If you'd like to join the National Organization NCEMRS
  264.            or NCEMRSoft please contact me.  NCEMRSoft is a group of 
  265.            programmers for the Amiga and Mac that share ideas, algorithms,
  266.            beers, etc.  We ain't no lamer computer club.  It just gives
  267.            you a title and a source for help and code optimization.
  268.            Members range come from U of Neb-Linc, U of Neb-Oma, U of Texas,
  269.            MSstate, Iowa State, and others!
  270.  
  271.            For quick response mail until May 10, 1991 to:
  272.   
  273.                Phil Dietz -- NCEMRSoft               or email to
  274.                442 Abel North                  231b3678@fergvax.unl.edu
  275.                880 n 17th Street               235b5271@fergvax.unl.edu
  276.                Lincoln, NE  68508
  277.  
  278.