* Add LPRM command
authorArt Cancro <ajc@citadel.org>
Fri, 16 Aug 2002 21:04:57 +0000 (21:04 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 16 Aug 2002 21:04:57 +0000 (21:04 +0000)
citadel/ChangeLog
citadel/citserver.c
citadel/room_ops.c
citadel/room_ops.h
citadel/techdoc/session.txt

index 0f32fc0aa9b83f50aee8fe89e5ab47f07d7ed3ea..33ee1adaa811b0877879dcfd8f276896e75c6a2d 100644 (file)
@@ -1,4 +1,7 @@
  $Log$
+ Revision 591.94  2002/08/16 21:04:56  ajc
+ * Add LPRM command
+
  Revision 591.93  2002/08/14 20:21:52  ajc
  * Extend GETR/SETR to allow twiddling of bits in the QRflags2 bucket
  * New flag and config options to allow/disallow self-service list subscription
@@ -3909,4 +3912,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import
-
index 7785c73cb52bdca140d303a30bcaeb52402c0132..42201f7bb2eba17fcd697d44228dbe4fdc239faa 100644 (file)
@@ -987,6 +987,10 @@ void do_command_loop(void) {
                cmd_lzrm(&cmdbuf[5]);
        }
 
+       else if (!strncasecmp(cmdbuf,"LPRM",4)) {
+               cmd_lprm(&cmdbuf[5]);
+       }
+
        else if (!strncasecmp(cmdbuf,"GETU",4)) {
                cmd_getu();
        }
index eb80025e8cea9a7a599f6c2c7235b1e1f3d67f5d..aab6583e1cfdeb017138c4c7ed1214e4c1e72a6c 100644 (file)
@@ -576,6 +576,32 @@ void cmd_lkra(char *argbuf)
 
 
 
+void cmd_lprm_backend(struct quickroom *qrbuf, void *data)
+{
+       int FloorBeingSearched = (-1);
+       FloorBeingSearched = *(int *)data;
+
+       if (   ((qrbuf->QRflags & QR_PRIVATE) == 0)
+               && ((qrbuf->QRflags & QR_MAILBOX) == 0)
+           && ((qrbuf->QRfloor == (FloorBeingSearched))
+               || ((FloorBeingSearched) < 0)))
+               list_roomname(qrbuf);
+}
+
+void cmd_lprm(char *argbuf)
+{
+       int FloorBeingSearched = (-1);
+       if (strlen(argbuf) > 0)
+               FloorBeingSearched = extract_int(argbuf, 0);
+
+       cprintf("%d Publiic rooms:\n", LISTING_FOLLOWS);
+
+       ForEachRoom(cmd_lprm_backend, &FloorBeingSearched);
+       cprintf("000\n");
+}
+
+
+
 /* 
  * cmd_lkrn()   -  List all known rooms with new messages
  */
index 5bf9634637331646361e2bf3eb9009ee6c570170..ea065314b1d9464d8ad2f3ad75770b084dc7c905 100644 (file)
@@ -22,6 +22,7 @@ void cmd_lkra (char *argbuf);
 void cmd_lkrn (char *argbuf);
 void cmd_lkro (char *argbuf);
 void cmd_lzrm (char *argbuf);
+void cmd_lprm (char *argbuf);
 void usergoto (char *where, int display_result, int transiently,
                        int *msgs, int *new);
 void cmd_goto (char *gargs);
index 7fabd9f9b1ea3ce9b18db1139b1e694adacb9acb..e0a752183b0d310c32783626bad448290fdef515 100644 (file)
@@ -284,6 +284,13 @@ forgotten, with and without new messages.  It does not, however, list
 inaccessible private rooms.
   
  
+ LPRM   (List all Public RooMs)
+ Again, same format.  This command lists all public rooms, and nothing else.
+Unlike the other list rooms commands, this one can be executed without logging
+in.
+  
  GETU   (GET User configuration)
  
  This command retrieves the screen dimensions and user options for the