Re: TWO_X Patch/Snippet

From: George (greerga@CIRCLEMUD.ORG)
Date: 01/19/98


On Mon, 19 Jan 1998, Akuma/Chris Baggett/DOOMer wrote:

>I've had to make a few changes to the is_evil_char() function.

That's why it's there.

>Now, I realize that strstr() is faster for the TWOX patch, but it also
>allows for weird things to happen.  I don't know if maybe I should print
>everything to a buffer, and then send it out or what, but it's pretty
>freaky.

Every line should be sent at a time, not pieces of a line.

>    1. HISTORY
>    2. history
>    3. HISTORY
>    4. history
>    5. HISTORY
>    6. history
>    7. HISTORY
>    8. history
>->  9. HISTORY
>   10. history

You must be doing:
sprintf(buf, "%2d. ", i);
send_to_char(buf, ch);
send_to_char(variable, ch);

Use:
sprintf(buf, "%3d. %s", i, variable);
send_to_char(buf, ch);

>I was wondering if it could be changed just to start with
>BEGINNINGS of lines?  eh?  mainly because the strstr() call sorts

How would it know what it the beginning of a line?  I suppose you could
check for a \r\n to only stack lines which appear to be at the end but I
don't know how effective that would be.

>maybe, find a way to have it check the lines sent?
>like maybe on deeper, in the  process_output() function
>or maybe even  write_to_descriptor??

Harder.

>I figured i'd ask this, because in write_to_output, you are only able to
>check the currently sent in text, and you check it everytime.  Whereas
>process_output()  you'd go through it looking for similarities in lines,
>and then go from there (b/c that's the reason of a (2*) stacking patch is
>to go line-by-line)

It's a lot easier to check the incoming line for a duplicate than it is to
look though an existing string for two pieces which *may* be similiar.

>I realize, that I'm probably the only one who is having this problem, but
>I feel it shouldn't be necessary to add EVERY letter to the is_evil_char()
>function just to because someone spams the command that begins with that
>letter

The is_evil_char() is meant for control characters to prevent color
bleeding.  If you have other problems, fix your printing.  The one I know
of that I don't have fixed and would be 'interesting' to fix is the
equipment list problem. (wear two of the same ring for example.)

>These are all stock commands, and i'd be required to add every letter of
>the alphabet along with !, and ^ into is_evil_char() not to mention both
>case versions, AND the numbers 0-9 (if i had his goto without goto
>snippet) and that would completely take away from the point of the
>snippet.

Why do you add those to the function?

> (By-the-by, just in case you did read it, and you feel like
>  flaming, please quote this to prove you read it: 2+2=5 )

2+2 != 5, even for large values of 2.

>Anyway, don't get me wrong, the snippet is great and I love all the work
>George has put into CircleMUD and his snippets, but if I must get rid of
>the history command to make use of this snippet, I'd rather fix it to how
>it possibly (IMHO) should be done.

I think I already mentioned to send one line at a time.  A suggestion on
the 'eq' problem would be nice as it's not a pressing matter I'm looking
into at the moment.  I do think searching the existing string for possible
matches is the wrong way to go about it though.

You could give the "\r\n required to stack" idea a try and see how it goes.
I doubt it'll do much though. (It will help the 'eq' problem though.)

--
George Greer  -  Me@Null.net   | Genius may have its limitations, but stupidity
http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard


     +------------------------------------------------------------+
     | 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