+\f
+;; Methods for listing files in folders.
+
+(defun mhspool-list-folders-using-ls (directory)
+ "List files in folders under DIRECTORY using 'ls'."
+ (apply 'call-process
+ "ls" nil t nil
+ (append mhspool-list-directory-switches (list directory))))
+
+;; Basic ideas by tanaka@flab.fujitsu.co.jp (Hiroshi TANAKA)
+
+(defun mhspool-list-folders-using-sh (directory)
+ "List files in folders under DIRECTORY using '/bin/sh'."
+ (let ((buffer (current-buffer))
+ (script (get-buffer-create " *MHSPOOL Shell Script Buffer*")))
+ (save-excursion
+ (save-restriction
+ (set-buffer script)
+ (erase-buffer)
+ ;; /bin/sh script which does 'ls -R'.
+ (insert
+ "PS2=
+ ffind() {
+ cd $1; echo $1:
+ ls -1
+ echo
+ for j in `echo *[a-zA-Z]*`
+ do
+ if [ -d $1/$j ]; then
+ ffind $1/$j
+ fi
+ done
+ }
+ cd " directory "; ffind `pwd`; exit 0\n")
+ (call-process-region (point-min) (point-max) "sh" nil buffer nil)
+ ))
+ (kill-buffer script)
+ ))
+