I sent out a patch to add ls functionality to cvs, but found a couple of
bugs with it.  It will seg fault if you use the -a switch, and it
doesn't work in client-server mode.  I have fixed these issues, and have
attached the patches.

Thanks to everyone who has provided feedback.  I still need some help
getting it to list directories, though.  

Thanks.
Peter

--- orig-list.c Tue Oct 17 13:48:07 2000
+++ cvs/cvs-cvs/ccvs/src/list.c Tue Oct 17 10:16:55 2000
@@ -336,7 +336,7 @@
                               (int *) NULL);
 
 
-    if (list_all == 0 && vers_tag != NULL && RCS_isdead (rcsfile, vers_tag))
+    if (vers_tag != NULL && RCS_isdead (rcsfile, vers_tag) && list_all == 0)
     {
         free (vers_tag);
        vers_tag = NULL;

Index: server.c
===================================================================
RCS file: /home2/cvsroot/ccvs/src/server.c,v
retrieving revision 1.245
diff -u -r1.245 server.c
--- server.c    2000/10/11 16:23:17     1.245
+++ server.c    2000/10/17 17:52:27
@@ -3660,6 +3660,13 @@
     do_cvs_command ("release", release);
 }
 
+static void
+serve_list (arg)
+       char *arg;
+{
+       do_cvs_command ("cvslist", cvslist);
+}
+
 static void serve_watch_on PROTO ((char *));
 
 static void
@@ -4720,6 +4727,7 @@
   REQ_LINE("annotate", serve_annotate, 0),
   REQ_LINE("noop", serve_noop, RQ_ROOTLESS),
   REQ_LINE("version", serve_version, RQ_ROOTLESS),
+  REQ_LINE("list", serve_list, 0),
   REQ_LINE(NULL, NULL, 0)
 
 #undef REQ_LINE

Reply via email to