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 ofthe 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.

