Hi,

Let's bring status a bit more inline with its GNU cvs counter part.

This diff adds the branch revision for the sticky tag if set.

.joris

Index: status.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/status.c,v
retrieving revision 1.96
diff -u -p -r1.96 status.c
--- status.c    4 Apr 2015 14:20:11 -0000       1.96
+++ status.c    17 Oct 2016 09:06:12 -0000
@@ -16,6 +16,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <stdlib.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
@@ -119,7 +120,7 @@ void
 cvs_status_local(struct cvs_file *cf)
 {
        size_t len;
-       RCSNUM *head;
+       RCSNUM *head, *brev;
        const char *status;
        struct rcs_delta *rdp;
        char buf[PATH_MAX + CVS_REV_BUFSZ + 128];
@@ -223,11 +224,23 @@ cvs_status_local(struct cvs_file *cf)
        }
 
        if (cf->file_ent != NULL) {
-               if (cf->file_ent->ce_tag != NULL)
-                       cvs_printf("   Sticky Tag:\t\t%s\n",
-                           cf->file_ent->ce_tag);
-               else if (verbosity > 0)
+               if (cf->file_ent->ce_tag != NULL) {
+                       if ((brev = rcs_sym_getrev(cf->file_rcs,
+                           cf->file_ent->ce_tag)) == NULL) {
+                               (void)strlcpy(buf, "- MISSING from RCS file!",
+                                   sizeof(buf));
+                       } else {
+                               rcsnum_tostr(brev, revbuf, sizeof(revbuf));
+                               (void)xsnprintf(buf, sizeof(buf),
+                                   "(branch: %s)", revbuf);
+                               free(brev);
+                       }
+
+                       cvs_printf("   Sticky Tag:\t\t%s %s\n",
+                           cf->file_ent->ce_tag, buf);
+               } else if (verbosity > 0) {
                        cvs_printf("   Sticky Tag:\t\t(none)\n");
+               }
 
                if (cf->file_ent->ce_date != -1) {
                        struct tm datetm;

Reply via email to