 inside loops."
   (if (<= level svn-status-debug-level)
       (apply 'message args)))
+
+;; taken from esh-util: eshell-for
+(defmacro svn-status-for (for-var for-list &rest forms)
+  "Iterate through a list"
+  `(let ((list-iter ,for-list))
+     (while list-iter
+       (let ((,for-var (car list-iter)))
+         ,@forms)
+       (setq list-iter (cdr list-iter)))))
+(put 'svn-status-for 'lisp-indent-function 2)
+
+;; taken from esh-util: eshell-flatten-list
+(defun svn-status-flatten-list (args)
+  "Flatten any lists within ARGS, so that there are no sublists."
+  (let ((new-list (list t)))
+    (svn-status-for a args
+      (if (and (listp a)
+               (listp (cdr a)))
+          (nconc new-list (svn-status-flatten-list a))
+        (nconc new-list (list a))))
+    (cdr new-list)))
 
 (defvar svn-status-display-new-status-buffer nil)
 ;;;###autoload

  "*Arguments to pass to svn log.
\(used in `svn-status-show-svn-log'; override these by giving prefixes\).")

(defvar svn-trac-project-root nil "Path for an eventual existing trac issue tracker.")

(defvar svn-status-module-name nil "A nice short name for the actual project.")

                       (goto-char (previous-overlay-change cached-pos)))
                     (point)))
        (found))
    ;; performance optimization: search from point to end of buffer
    (while (and (not found) (< (point) (point-max)))
      (goto-char (next-overlay-change (point)))
      (when (string= name (svn-status-line-info->filename
                           (svn-status-get-line-information)))
        (setq start-pos (+ (point) svn-status-default-column))
        (setq found t)))
    ;; search from buffer start to point
    (goto-char (point-min))
    (while (and (not found) (< (point) start-pos))
      (goto-char (next-overlay-change (point)))
      (when (string= name (svn-status-line-info->filename
                           (svn-status-get-line-information)))
        (setq start-pos (+ (point) svn-status-default-column))
        (setq found t)))
    (and found start-pos)))

(defun svn-status-goto-file-name (name)
  "Move the cursor the the line that displays NAME."
