On Sat, 6 Jul 1996, Ground Zero Enterprises wrote:
> 
> Would some nice person be nice enough to take some time out of thier busy 
> day to explain what the functionality of this is and how it works.  I 
> have been trying to figure it out, but without knowing what it is doing, 
> I can't figure out how it's doing it and vice-versa :P
> 
> char *delete_doubledollar(char *string)
> {
>   char *read, *write;
> 
>   if ((write = strchr(string, '$')) == NULL)
>     return string;
This part uses the strchr function to check the string for dollar signs.  
If there aren't any, then no action is necessary, so reutrn without 
modifying it.
>   read = write;
Read and write are pointers to the string we're working on.  They both 
start at the first character.
>   while (*read)
When you come across a null in the string it means you've hit the end of 
the string, so break out of the loop.
>     if ((*(write++) = *(read++)) == '$')
Copy the character pointed to by read into the one pointed to by write 
(yes they will normally point to the same place).  If that character 
happens to be a $, then execute the next two lines.
>       if (*read == '$')
>         read++;
If the last read was a dollar sign, check the next one.  If it's also a 
dollar sign, skip it.
>   *write = '\0';
After going through the whole string, put a null at the end in case it's 
any shorter than it used to be, so the string will be terminated in the 
right place.
>   return string;
> }
Now that I look at this, it kinda seems like a triple dollar sign will 
turn into a double.  I've never bothered to find out why we need to kill 
double dollars, so I don't know if it matters.  *shrug*
Sam
This archive was generated by hypermail 2b30 : 12/07/00 PST