chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] efficient procedure for setting a substring?


From: Graham Fawcett
Subject: Re: [Chicken-users] efficient procedure for setting a substring?
Date: Fri, 19 May 2006 16:32:10 -0400

On 5/19/06, Thomas Chust <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]