The real danger from this is not the crash, which I dont have and cannot replicate. all ''" etc does is gets zapped out by the filters used (sacred codebase has this fix in there if stock). The real issue is that if you save these characters to your pfile you WILL lose the rest of the pfile. People will login without any equipment. Its rather nasty bug in stock rom.
To find out how to fix it, and other stock bugs, there is a nice buglisting I maintain and have maintained for 5 years on: www.mageslair.net look in the coders corner for buglisting.txt Also, all those and more were fixed in the sacred codebase so take a look at it. Chris "Winston" Litchfield ----- Original Message ----- From: "Carlos Moreno" <[EMAIL PROTECTED]> To: "'Jason Gauthier'" <[EMAIL PROTECTED]> Cc: <[email protected]> Sent: Saturday, March 22, 2003 8:53 AM Subject: RE: ROM 'Crashing'... In inputs like "cast 'lightning breath' mob", one_argument must return "lightning breath" as a single argument. To do this, it takes the cEnd character (" or ') as a 'start of argument' and try to search the end of the parameter with another occurrence of cEnd (or end of input). This ' in the case of "Alias ' ' a" prevents the first for instruction to eliminate the space between the 's and sets cEnd to '. In the next block ( while ( *argument != '\0' ).... ) copies the space to arg_first and in the next iteration found the cEnd, copy the '\0' at the end and returns that single space. ' ' is a blank input, but the "arg[0] != '\0'" check fails, because arg[0] is the space and arg[1] is the '\0'. What the fix does is delete all leading spaces again. If cEnd is not found, it does nothing. If is found, it will remove leading spaces in that argument. Without leading spaces, blank inputs are blank inputs. In addition, inputs like "cast ' lightning breath' mob" works fine. -----Mensaje original----- De: Jason Gauthier [mailto:[EMAIL PROTECTED] Enviado el: sábado, 22 de marzo de 2003 14:28 Para: 'Carlos Moreno' Asunto: RE: ROM 'Crashing'... Yup, you're right! Good eye, I totally missed that and made the change quite some time ago. I'm not sure what your fix is down below. Can you elaborate? > > One way to correct this is to add in the one_argument > > function the next > > lines: > > > > if ( *argument == '\'' || *argument == '"' ) > > cEnd = *argument++; > > > > + while ( isspace(*argument) ) > > + argument++; > > > > while ( *argument != '\0' ) > > { > > > > PS: Sorry if that was already posted. -- ROM mailing list [email protected] http://www.rom.org/cgi-bin/mailman/listinfo/rom

