home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_2.iso / files / 653.lha / Wild_v2.0 / wildargs.doc.pp / wildargs.doc
Text File  |  1992-07-08  |  4KB  |  145 lines

  1.  
  2.                                  wildargs
  3.                                  --------
  4.            Documentation for version 1.0, on December 31th, 1991
  5.  
  6.                               by Bruno Costa
  7.  
  8.  
  9.  
  10. WARNING
  11.  
  12.   Although  this  program  is public domain (see DISCLAIMER below), I would
  13. appreciate  if  you take the time to write me a line or two (E-Mail please)
  14. if  you  are  using  any of my programs or if you have any kind of ideas or
  15. suggestions  (This  is  not  too  much  to  ask,  is  it?).   If  you  feel
  16. particularly  generous,  I  would  like  to  receive a disk with any useful
  17. programs you have written, preferrably with source.  Thanks!
  18.  
  19.  
  20. DESCRIPTION
  21.  
  22.   wildargs  is  a  small set of routines to easily expand wildcards for any
  23. program  under  Kickstart  2.0.  The main routine (wildargs()) works on the
  24. argc  and  argv  variables  received  by your program, changing them if any
  25. wildcards  are  expanded.   There  is  an  additional  routine  that can be
  26. optionally  called  before  wildargs()  to  set wildcard expanding options,
  27. wildoptions().
  28.  
  29.  
  30. OPTIONS
  31.  
  32.   usage:  int wildargs (int *argcptr, char ***argvptr)
  33.  
  34.   This  routine  changes  argc  and  argv  to  reflect the expansion of any
  35. wildcards  that  may  be present.  It works like most Unix shells, i.e., it
  36. expands  ANY  wildcards  present  in  the  line,  substituting the original
  37. wildcard  by  the  set of filenames that match it, separated by blanks.  If
  38. there is no match, the wildcard will be substituted by nothing.
  39.  
  40.   usage:  void wildoptions (int options)
  41.  
  42.   There are three options that can be controlled by this routine:
  43.  
  44.   WILD_FILES:     if set, names of files will be considered in the wildcard
  45.                   expansion.
  46.   WILD_DIRS:      if set,  names  of  directories will be considered in the
  47.                   wildcard expansion.
  48.   WILD_KEEPSTAR:  if set, a lonely '*' will not be changed to '#?' (so that
  49.                   the meaning of the * as the current window is kept).
  50.  
  51.   These  options  are flags that can be OR'ed together, and they default to
  52. WILD_FILES | WILD_DIRS.   You  must  select  at  least one of WILD_FILES or
  53. WILD_DIRS.
  54.  
  55.  
  56. EXAMPLES
  57.  
  58.   Consider the following program (test.c) in the next examples:
  59.  
  60.   /* test.c - tests wildcard expansion */
  61.  
  62.   #include <stdio.h>
  63.   #include "wildargs.h"
  64.  
  65.   void main (int argc, char *argv[])
  66.   {
  67.    int i;
  68.  
  69.    wildoptions (WILDOPTIONS);
  70.  
  71.    if (!wildargs (&argc, &argv))
  72.      printf ("error expanding args!\n");
  73.  
  74.    for (i = 0; i < argc; i++)
  75.      printf ("%d\t%s\n", i, argv[i]);
  76.   }
  77.  
  78.   Consider also that the current directory contains two files, "fileA" and
  79. "fileB", and two directories, "dirA" and "dirB".
  80.  
  81.   if WILDOPTIONS is WILD_FILES:
  82.   > test *
  83.   0    test
  84.   1    fileA
  85.   2    fileB
  86.  
  87.   > test *a
  88.   0    test
  89.   1    fileA
  90.  
  91.   if WILDOPTIONS is WILD_DIRS:
  92.   > test *
  93.   0    test
  94.   1    dirA
  95.   2    dirB
  96.  
  97.   > test *a
  98.   0    test
  99.   1    dirA
  100.  
  101.   if WILDOPTIONS is WILD_DIRS | WILD_KEEPSTAR:
  102.   > test *
  103.   0    test
  104.  
  105.   > test *a
  106.   0    test
  107.   1    dirA
  108.  
  109.  
  110. BUGS
  111.  
  112.   If  there  is  no  match  for a particular wildcard, it is substituted by
  113. nothing.   Although  this is different from the behavior of Unix shells, it
  114. just seemed the natural thing to do.
  115.  
  116.   There is a limitation of at most 256 arguments after expansion, and each
  117. filename can be at most 100 characters in lenght, but this can be easily
  118. changed in the source code.
  119.  
  120.  
  121. AUTHOR
  122.  
  123.   The  accompanying  program  and  this documentation were written by Bruno
  124. Costa.  He can be reached in the following ways:
  125.  
  126.   E-Mail: bruno@brlncc.bitnet (InterNet)
  127.           bruno@BRLNCC        (BitNet)
  128.  
  129.   Mail:   Bruno Costa
  130.           Rua Almirante Guilhem 454/102 bloco 1
  131.           Leblon - Rio de Janeiro
  132.           RJ 22440
  133.           BRAZIL
  134.  
  135.  
  136. DISCLAIMER
  137.  
  138.   This  software  and documentation are released into the public domain for
  139. personal,  non-commercial  use  only.   Limited  rights to use, modify, and
  140. redistribute  are hereby granted for non-commercial purposes, provided that
  141. all copyright notices remain intact and all changes are clearly documented.
  142. The  author  makes no warranty of any kind with respect to this product and
  143. explicitly  disclaims  any implied warranties of merchantability or fitness
  144. for any particular purpose.  (Thanks Fred! :-)
  145.