]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_bio.c
* added a comment infront of the svn modifieable returns. Now it will be me listed...
[citadel.git] / citadel / serv_bio.c
index 926fb3be6294009d56712c37c924a022f08c662f..19820a956090175d66801541fdce7de50bb55a79 100644 (file)
@@ -44,7 +44,7 @@
 #include "database.h"
 #include "msgbase.h"
 #include "tools.h"
-
+#include "citadel_dirs.h"
 
 
 
@@ -55,12 +55,14 @@ void cmd_ebio(char *cmdbuf) {
        char buf[SIZ];
        FILE *fp;
 
+       unbuffer_output();
+
        if (!(CC->logged_in)) {
                cprintf("%d Not logged in.\n",ERROR + NOT_LOGGED_IN);
                return;
        }
 
-       snprintf(buf, sizeof buf, "./bio/%ld",CC->user.usernum);
+       snprintf(buf, sizeof buf, "%s%ld",ctdl_bio_dir,CC->user.usernum);
        fp = fopen(buf,"w");
        if (fp == NULL) {
                cprintf("%d Cannot create file: %s\n", ERROR + INTERNAL_ERROR,
@@ -68,7 +70,7 @@ void cmd_ebio(char *cmdbuf) {
                return;
        }
        cprintf("%d  \n",SEND_LISTING);
-       while(client_gets(buf), strcmp(buf,"000")) {
+       while(client_getln(buf, sizeof buf), strcmp(buf,"000")) {
                if (ftell(fp) < config.c_maxmsglen) {
                        fprintf(fp,"%s\n",buf);
                }
@@ -82,15 +84,15 @@ void cmd_ebio(char *cmdbuf) {
 void cmd_rbio(char *cmdbuf)
 {
        struct ctdluser ruser;
-       char buf[SIZ];
+       char buf[256];
        FILE *fp;
 
-       extract(buf,cmdbuf,0);
-       if (getuser(&ruser,buf)!=0) {
+       extract_token(buf, cmdbuf, 0, '|', sizeof buf);
+       if (getuser(&ruser, buf) != 0) {
                cprintf("%d No such user.\n",ERROR + NO_SUCH_USER);
                return;
        }
-       snprintf(buf, sizeof buf, "./bio/%ld",ruser.usernum);
+       snprintf(buf, sizeof buf, "%s%ld",ctdl_bio_dir,ruser.usernum);
        
        cprintf("%d OK|%s|%ld|%d|%ld|%ld|%ld\n", LISTING_FOLLOWS,
                ruser.fullname, ruser.usernum, ruser.axlevel,
@@ -99,7 +101,7 @@ void cmd_rbio(char *cmdbuf)
        if (fp == NULL)
                cprintf("%s has no bio on file.\n", ruser.fullname);
        else {
-               while (fgets(buf,256,fp)!=NULL) cprintf("%s",buf);
+               while (fgets(buf, sizeof buf, fp) != NULL) cprintf("%s",buf);
                fclose(fp);
        }
        cprintf("000\n");
@@ -109,20 +111,22 @@ void cmd_rbio(char *cmdbuf)
  * list of users who have entered bios
  */
 void cmd_lbio(char *cmdbuf) {
-       char buf[SIZ];
+       char buf[256];
        FILE *ls;
        struct ctdluser usbuf;
+       char listbios[256];
 
-       ls=popen("cd ./bio; ls","r");
-       if (ls==NULL) {
-               cprintf("%d Cannot open listing.\n",ERROR + FILE_NOT_FOUND);
+       snprintf(listbios, sizeof(listbios),"cd %s; ls",ctdl_bio_dir);
+       ls = popen(listbios, "r");
+       if (ls == NULL) {
+               cprintf("%d Cannot open listing.\n", ERROR + FILE_NOT_FOUND);
                return;
        }
 
-       cprintf("%d\n",LISTING_FOLLOWS);
-       while (fgets(buf,sizeof buf,ls)!=NULL)
+       cprintf("%d\n", LISTING_FOLLOWS);
+       while (fgets(buf, sizeof buf, ls)!=NULL)
                if (getuserbynumber(&usbuf,atol(buf))==0)
-                       cprintf("%s\n",usbuf.fullname);
+                       cprintf("%s\n", usbuf.fullname);
        pclose(ls);
        cprintf("000\n");
 }
@@ -135,6 +139,8 @@ char *serv_bio_init(void)
         CtdlRegisterProtoHook(cmd_ebio, "EBIO", "Enter your bio");
         CtdlRegisterProtoHook(cmd_rbio, "RBIO", "Read a user's bio");
         CtdlRegisterProtoHook(cmd_lbio, "LBIO", "List users with bios");
+
+       /* return our Subversion id for the Log */
         return "$Id$";
 }