On 8/22/05, Benoit Boissinot wrote: > On Sun, Aug 21, 2005 at 06:34:48PM -0400, Jon Smirl wrote: > > This should fix it, but I'm not on a machine where I can test it. Can > > you give it a try and let me know? > > > > it works ok. > But there is still at least one problem: if ops->store returns an error, > then there will be a substraction and the write will loop (i could do it > with a store wich returned EINVAL and a 22 length string). > > I don't know if you can put a '\0' at buffer->page[count] if > count == PAGE_SIZE. > > Moreover, i think it is more correct to add only the leading > whitespace from the count because if the ops->store doesn't read > everything it will do something weird: > > For example, if we have ' 123 ' and ops->store read only one char, > then the function will return 7 (1 leading + 4 trailing + 1 read). For > the next call the buffer will be filled only by spaces which is > incorrect (it should be '23 '). The attached version tries to fix these issues. I am still not somewhere where I can test, so please check it out. -- Jon Smirl jonsmirl@gmail.com