home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.5 / udk / usr / ccs / bin / sccsdiff < prev   
Text File  |  1998-08-19  |  2KB  |  91 lines

  1. #!/sbin/sh
  2.  
  3. # Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  4. #                                                                         
  5. #        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  6. #                   SANTA CRUZ OPERATION INC.                             
  7. #                                                                         
  8. #   The copyright notice above does not evidence any actual or intended   
  9. #   publication of such source code.                                      
  10.  
  11.  
  12. #ident    "@(#)sccs:cmd/sccsdiff.sh    6.5.1.3"
  13. #    DESCRIPTION:
  14. #        Execute bdiff(1) on two versions of a set of
  15. #        SCCS files and optionally pipe through pr(1).
  16. #        Optionally specify bdiff segmentation size.
  17.  
  18. trap "rm -f /tmp/get[abc]$$;exit 1" 0 1 2 3 15
  19.  
  20. if [ $# -lt 3 ]
  21. then
  22.     pfmt -l "UX:sccsdiff" -s action -g uxepu:147 "Usage: sccsdiff -r<sid1> -r<sid2> [-p] [-s<num-arg>] sccsfile ...\n"
  23.     exit 1
  24. fi
  25.  
  26. for i in $@
  27. do
  28.     case $i in
  29.  
  30.     -*)
  31.         case $i in
  32.  
  33.         -r*)
  34.             if [ ! "$sid1" ]
  35.             then
  36.                 sid1=`echo $i | sed -e 's/^-r//'`
  37.             elif [ ! "$sid2" ]
  38.             then
  39.                 sid2=`echo $i | sed -e 's/^-r//'`
  40.             fi
  41.             ;;
  42.         -s*)
  43.             num=`echo $i | sed -e 's/^-s//'`
  44.             ;;
  45.         -p*)
  46.             pipe=yes
  47.             ;;
  48.         *)
  49.             pfmt -l "UX:sccsdiff" -s error -g uxepu:148 "unknown argument: %s\n" $i
  50.             exit 1
  51.             ;;
  52.         esac
  53.         ;;
  54.     *s.*)
  55.         files="$files $i"
  56.         ;;
  57.     *)
  58.         pfmt -l "UX:sccsdiff" -s error -g uxepu:149 "%s not an SCCS file\n" $i
  59.         ;;
  60.     esac
  61. done
  62.  
  63. for i in $files
  64. do
  65.     if get -s -p -k -r$sid1 $i > /tmp/geta$$
  66.     then
  67.         if get -s -p -k -r$sid2 $i > /tmp/getb$$
  68.         then
  69.             bdiff /tmp/geta$$ /tmp/getb$$ $num > /tmp/getc$$
  70.         fi
  71.     fi
  72.     if [ ! -s /tmp/getc$$ ]
  73.     then
  74.         if [ -f /tmp/getc$$ ]
  75.         then
  76.             pfmt -l "UX:sccsdiff" -s error -g uxepu:150 "%s: No differences\n" $i 2> /tmp/getc$$
  77.         else
  78.             exit 1
  79.         fi
  80.     fi
  81.     if [ "$pipe" ]
  82.     then
  83.         pr -h "$i: $sid1 vs. $sid2" /tmp/getc$$
  84.     else
  85.         cat /tmp/getc$$
  86.     fi
  87. done
  88.  
  89. trap 0
  90. rm -f /tmp/get[abc]$$
  91.