home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / scohelp / root.1 / usr / man / bin / common.awk / common
Text File  |  1998-08-19  |  3KB  |  123 lines

  1. #       @(#) SCCS ID:    15.1
  2. #
  3. #    TechPubs SCCS ID:
  4. #    @(#) Filetype:   AS 
  5. #    @(#) SCCS ID:    100.5 
  6. #    @(#) File:       common.awk 
  7. #    @(#) Last delta: 97/05/13 10:47:33 
  8. #    @(#) Last get:   97/05/13 10:47:47 
  9. #    @(#) SCCS file:  /f/doctools/bin/s.common.awk 
  10. #    @(#) Book:       tools 
  11. #    
  12. #    Copyright (C) 1986-1997 The Santa Cruz Operation, Inc.  
  13. #    All Rights Reserved. 
  14. #    
  15. #    This Module contains Proprietary Information of    
  16. #    The Santa Cruz Operation, Inc. and should be    
  17. #    treated as Confidential.             
  18. #    
  19. # This is part of the install_help utility.
  20. #
  21. # Awk functions that perform some common tasks used by several scripts.
  22. # These provide case conversion, file existance testing, whitespace
  23. # stripping and pattern generation capabilities.
  24. #
  25. function StripWhitespace(s)
  26.     {    # Removes any whitespace from the beginning and end of s.
  27.     sub(/^[[:blank:]]*/, "", s);
  28.     sub(/[[:blank:]]*$/, "", s);
  29.     return(s);
  30.     }
  31.  
  32. function Quote(s, o)
  33.     {    # Quotes characters that are special in REs.
  34.     o = "";
  35.     while    (match(s, /[.*+?()\[\]{}^$|\\]/))
  36.         {    # Escape the special character.
  37.         o = o substr(s, 1, RSTART - 1) "\\" substr(s, RSTART, 1);
  38.         s = substr(s, RSTART + 1);
  39.         }
  40.     return(o s);
  41.     }
  42.  
  43. function basename(f)
  44.     {    # Returns the filename component of its argument.
  45.     sub(/\/*$/, "", f);
  46.     sub(/^.*\//, "", f);
  47.     return(f);
  48.     }
  49.  
  50. function dirname(f)
  51.     {    # Returns the directory component of its argument.
  52.     if    (match(f, /^.*\//))
  53.         return(substr(f, RSTART, RLENGTH));
  54.     else    return(".");
  55.     }
  56.  
  57. function FileExists(f)
  58.     {    # Returns 1 if the file f exists and is readable, 0 otherwise.
  59.     if    (system("test -r " f " -a ! -d " f))
  60.         return(0);
  61.     return(1);
  62.     }
  63.  
  64. function DirExists(d)
  65.     {    # Returns 1 if the directory f exists and is searchable,
  66.         # 0 otherwise.
  67.     if    (system("test -d " d " -a -x " d))
  68.         return(0);
  69.     return(1);
  70.     }
  71.  
  72. function FileIsText(f, c,l)
  73.     {    # Returns 1 if the file f is a text file, zero otherwise.
  74.     c = "file " f;        # Construct the file(1) command.
  75.     c | getline l;        # Execute the command and get the output.
  76.     close(c);        # Terminate the command.
  77.     if    (match(l, /text/) || match(l, /script/))
  78.         return(1);
  79.     return(0);
  80.     }
  81.  
  82. function ToUpper(s, LC,UC,c,i,o,p)
  83.     {    # Convert string s to all uppercase.
  84.     UC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  85.     LC = "abcdefghijklmnopqrstuvwxyz"
  86.     for    (i = 1; i <= length(s); i++)
  87.         {    # For each character in the string.
  88.         c = substr(s, i, 1);
  89.         if    (p = index(LC, c))
  90.             o = o substr(UC, p, 1);
  91.         else    o = o c;
  92.         }
  93.     return(o);
  94.     }
  95.  
  96. function ToLower(s, LC,UC,c,i,o,p)
  97.     {    # Convert string s to all lowercase.
  98.     UC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  99.     LC = "abcdefghijklmnopqrstuvwxyz"
  100.     for    (i = 1; i <= length(s); i++)
  101.         {    # For each character in the string.
  102.         c = substr(s, i, 1);
  103.         if    (p = index(UC, c))
  104.             o = o substr(LC, p, 1);
  105.         else    o = o c;
  106.         }
  107.     return(o);
  108.     }
  109.  
  110. function NoCasePattern(s, i,l,p,u)
  111.     {    # Return a pattern that matches s without regard to case.
  112.     p = "";
  113.     l = ToLower(s);
  114.     u = ToUpper(s);
  115.     for    (i = 1; i <= length(s); i++)
  116.         {    # For each character in the string.
  117.         p = p "[" substr(u,i,1) substr(l,i,1) "]";
  118.         }
  119.     return(p);
  120.     }
  121. #
  122. ### EOF
  123.