This is the mail archive of the guile@cygnus.com mailing list for the guile project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| > Thanks anyway for the explaination for the gdb problem. I hadn't
| > gotten around to trying to fix it. The seek in the ptob probably
| > doesn't need to be set for string ports, but scm_fseek/scm_ftell
| > should be generalised to work with any kind of port. I'll do it soon.
|
| I was thinking it'd probably be easier to just implement scm_fseek
| around the port's own seek method (rather than trying to figure it out
| in scm_fseek... it's not that it's difficult, but it'd probably help
| avoid this problem coming up again); the gdb bit is basically trying
| to empty the strport first, and I didn't come across anything that did
| it easily (without munging the buffer directly, which felt sorta
| wrong; I could've been looking at the wrong file again, though ;).
It took a bit longer than I expected, since the port buffers were
still excessively oriented towards FPORTs. I think the version on my
web page fixes the gdb interface (at least the "dp" macro works, I
didn't test anything else). Since there are new ptob entries and the
changes got a bit out of hand, there isn't a simple patch for the old
version.
Output string ports are now seekable and truncatable:
guile> (call-with-output-string (lambda (str)
(display "foo" str)
(lseek str -1 SEEK_CUR)
(ftruncate str)))
"fo"