wrap and sort CLEANFILES
[alioth/cvs.git] / src / diff.c
index 84fc103..f8b0c09 100644 (file)
@@ -21,6 +21,8 @@
 
 #include "cvs.h"
 
+#define TAG_BHEAD ".bhead"
+
 enum diff_file
 {
     DIFF_ERROR,
@@ -444,9 +446,9 @@ diff (int argc, char **argv)
     }
 #endif
 
-    if (diff_rev1 != NULL)
+    if (diff_rev1 != NULL && strcmp(diff_rev1, TAG_BHEAD))
        tag_check_valid (diff_rev1, argc, argv, local, 0, "", false);
-    if (diff_rev2 != NULL)
+    if (diff_rev2 != NULL && strcmp(diff_rev2, TAG_BHEAD))
        tag_check_valid (diff_rev2, argc, argv, local, 0, "", false);
 
     which = W_LOCAL;
@@ -903,8 +905,14 @@ diff_file_nodiff (struct file_info *finfo, Vers_TS *vers,
 
     if (diff_rev1 || diff_date1)
     {
-       /* special handling for TAG_HEAD */
-       if (diff_rev1 && strcmp (diff_rev1, TAG_HEAD) == 0)
+       /*
+        * the special handling is broken, -rbranchname is the
+        * head (tip) of the branch already, -rHEAD is supposed
+        * to be the head (tip) of the MAIN branch (trunk); we
+        * introduce ".bhead" here, for now, but only here
+        */
+       /* special handling for TAG_BHEAD */
+       if (diff_rev1 && strcmp (diff_rev1, TAG_BHEAD) == 0)
        {
            if (vers->vn_rcs != NULL && vers->srcfile != NULL)
                use_rev1 = RCS_branch_head (vers->srcfile, vers->vn_rcs);
@@ -919,8 +927,8 @@ diff_file_nodiff (struct file_info *finfo, Vers_TS *vers,
     }
     if (diff_rev2 || diff_date2)
     {
-       /* special handling for TAG_HEAD */
-       if (diff_rev2 && strcmp (diff_rev2, TAG_HEAD) == 0)
+       /* special handling for TAG_BHEAD */
+       if (diff_rev2 && strcmp (diff_rev2, TAG_BHEAD) == 0)
        {
            if (vers->vn_rcs && vers->srcfile)
                use_rev2 = RCS_branch_head (vers->srcfile, vers->vn_rcs);