On 10/30/2012 8:06 PM, Jack Tucky wrote:
if write(fd: %addr(indata): %size(indata))<1;
Change this to:
if write(fd: %addr(indata): %len(%trimr(indata)))<1;
The first parameter %addr(indata) is just a pointer to the first byte of
the data. It then write how ever many bytes you tell it in the second
parameter. %len(%trimr(indata)) will calculate the number of bytes to
the last non-blank character. Note the use of %trimr: that makes sure
you don't reduce the length too much when there are leading blanks.
Luis' idea of copying to a varying field will work too, but it takes a
little more work. I think this what I posted above is the better solution.