Re: More uh. yep. Dynamic Board stuff.

From: Akuma/Chris Baggett/DOOMer (doomer@BAYOU.COM)
Date: 03/04/98


I changed a small thing in this, assuming the way strings are saved
is done the same way all the time.
because what if someone does this

something
something else
~something else
~
? eh? well, it still has the error.

why not do what I did at the bottom (trust me, people are going to crash it if
possible and what I changed won't stop them either.)

The change will check to see if the '~' is on a line by itself.
(since using fgets() it would look like this  "~\n\0"

>        Two.  The boards don't like tildes.  Not even a little.  So, you
>might want to do the following:
>
>to db.c add the following function
>char *
>fread_string2(FILE * fl, char *error)
>{
>  char buf[MAX_STRING_LENGTH], tmp[512], *rslt;
>  register char *point;
>  int done = 0, length = 0, templength = 0;
>
>  *buf = '\0';
>
>  do {
>    if (!fgets(tmp, 512, fl)) {
>
>      fprintf(stderr, "SYSERR: fread_string2: format error at or near %s\n",
>              error);
>      exit(1);
>    }
>    /* If there is a '~' at the front, end; else put an "\r\n" over the
>                                                                '\n'. */
>    if ((point=strchr(tmp, '~')) && point==tmp)  {
   change this line --^   to read :
     if ((point = strchr(tmp, '~')) && point == tmp && *(point+1) == '\n' &&
         *(point + 2) == '\0') {
>      *point = '\0';
>      done = 1;
>    } else {
>      point = tmp + strlen(tmp) - 1;
>      *(point++) = '\r';
>      *(point++) = '\n';
>      *point = '\0';
>    }
>
>    templength = strlen(tmp);
>    if (length + templength >= MAX_STRING_LENGTH) {
>      log("SYSERR: fread_string: string too large (db.c)");
>      log(error);
>      exit(1);
>    } else {
>      strcat(buf + length, tmp);
>      length += templength;
>    }

That would allow it only to kill if a ~ is on a line by itself.
which means all you would need to do is go through the
string and if any of the lines has a ~ on a line by itself,
kill that line.

Anyway, just adding my $((1 << 1)/100.0) worth

Code On
Akuma the Raging Coder
PS -- I don't use this, I just use a hide_tilde funtion in the
strip_string() function, and a show_tilde in the fread_string function.

anyway, that's it all.

  +------------------------------------------------------------+
  | "The poets talk about love, but what I talk about is DOOM, |
  |      because in the end, DOOM is all that counts." -       |
  |   Alex Machine/George Stark/Stephen King, The Dark Half    |
  |        "Nothing is IMPOSSIBLE, Just IMPROBABLE"            |
  |   "Easier Said Than Done, But Better Done Than Said..."    |
  +------------------------------------------------------------+


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST