On 5/19/06, Thomas Chust <[EMAIL PROTECTED]> wrote:
On Fri, 19 May 2006, Graham Fawcett wrote: > While speaking of buffers, is there an efficient, low-level way to set > a substring within an existing string? [...]But you can also always resort to C: (define (substring-set! buffer replace #!optional (start 0) (count (string-length replace)) (if (or (< start 0) (< count 0) (> start (string-length buffer)) (> count (string-length replace)) (> count (- (string-length buffer) start))) (error 'substring-set! "start and/or count parameters have bad values" buffer replace start count)) ((foreign-lambda* void ((scheme-pointer buffer) (scheme-pointer replace) (integer start) (integer count)) "memmove(buffer + start, replace, count);") buffer replace start count)) Beware that the above code is completely untested, I just hacked it quickly into my mail client.
Thanks -- that ought to do the trick! Graham _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
