# Problem - pad out a string # Here is the original snippet of code: $nSize = length($str); if ($nSize > 0 ) { while ((($nSize + 1) % 4) != 0) { $nSize++; } $nSize++; $nValue = $nOffset; $nOffset += $nSize; } # and the corresponding part where they pad out the string: # Pad out the string with NULLs out to the nearest 4 byte mark. while (((length($str) + 1) % 4) != 0) { $str .= "\0"; $nSize++; } # you can change the loop to: while ((++$nSize % 4) != 0) { # the test does it all } # Or stop all this nonsense and just write: $nSize += 4 - ($nSize % 4); # Since what we are doing is computing: # the length of the string + one null terminator + # some null bytes to pad to a modulo four boundary. # Note that our problem was simplified because we are always going # to add at least one byte. # I like this sort of "condensing" exercise. The best thing here is that # the condensation doesn't simply obfuscate; it actually simplifies -- -- |\ _,,,---,,_ Vicki Brown <vlb@cfcl.com> ZZZzz /,`.-'`' -. ;-;;,_ Journeyman Sourceror: Scripts & Philtres |,4- ) )-,_. ,\ ( `'-' P.O. Box 1269 San Bruno CA 94066 '---''(_/--' `-'\_) http://www.cfcl.com/~vlb http://www.macperl.com ==== Want to unsubscribe from Fun With Perl? ==== Well, if you insist... Send mail with body "unsubscribe" to ==== fwp-request@technofile.org