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