Alexander Reinwarth <alexander(a)reinwarth.de> wrote:
Excuse my putting it bluntly, but, at least for me, this code does
not
work any better than the code in the distribution.
To test it, I fired up a fresh XEmacs[2] via xemacs -vanilla and evaluated
the above (defmacro ...).
Now I used the following code to open 10 temporary buffers with the
new `with-output-to-string' and count the survivors.
(progn
(let ((i 0))
(while (< i 10)
;(insert (number-to-string i))
(shell-command-to-string "ls")
(setq i ( + i 1))))
(let ((i 0)
(buffers (buffer-list)))
(while buffers
(if (string-match "string-output" (buffer-name(car buffers)))
(setq i (+ i 1)))
(setq buffers (cdr buffers)))
i))
For me this evaluates to ten, none of the temporary buffers had been
duly killed in the process.
Like Hrovje said, be sure to recompile! I think you want to
recompile whichever file defines `shell-command-to-string'.
--
John Paul Wallington