feedback, comments on this php-delimiter scrubbing program?

Jeffrey Goldberg jeffrey at goldmark.org
Tue Jun 16 23:32:47 UTC 2009


On Jun 16, 2009, at 12:02 PM, Gary Kline wrote:

> 	this works, but still gives a warning.  it's sloppy coding, but
> 	as a second version...

You've got some superfluous tests for EOF in some places, and you may  
also be missing some.

Your approach has been to "look ahead" with an extra getc() when you  
come across an interesting character.  I recommended that instead of  
doing that you keep a variable "state" to keep track of where you are  
(and have very recently been) instead of looking ahead.

I haven't tried your code, but I suspect that it behaves incorrectly  
with input

   (1) that has a '<' as a final character
   (2) that includes things like "<<<<?"
   (3) that includes things like "??>"

There is a systematic (if a bit tedious) way to make sure that you  
check every condition.  When you've worked enough on this, you can  
peek at an answer which I've attached.

(For the rest of you, I know that it would be more efficient to make  
the big switch on state instead of on input character, but for  
pedagogical reasons I did it the other way around.  I deliberately  
avoided other available tunings).

The extensive comments in the code should make it clear what is going  
on.  Once you understand the concepts here it should be very easy to  
write code to do similar things in the future.

-j



-- 
Jeffrey Goldberg                        http://www.goldmark.org/jeff/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gkline.c
Type: application/octet-stream
Size: 3143 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20090616/0a8e3bcb/gkline.obj
-------------- next part --------------




More information about the freebsd-questions mailing list