diff --git a/scheme/browse-directory-list.scm b/scheme/browse-directory-list.scm index c050910..3c4f242 100644 --- a/scheme/browse-directory-list.scm +++ b/scheme/browse-directory-list.scm @@ -146,13 +146,18 @@ (define (make-file-select-list fsobjects parent-dir num-lines num-cols) (let ((parent-dir-len (string-length parent-dir))) (make-select-list - (cons (make-unmarked-text-element 'parent-dir #f " ..") - (map (lambda (fs-object) - (make-unmarked-text-element - fs-object #t (layout-fsobject parent-dir-len - fs-object num-cols))) - fsobjects)) - num-lines))) + (cons (make-unmarked-text-element (file-name->fs-object ".") + #t " .") + (cons (make-unmarked-text-element + (file-name->fs-object "..") + #t " ..") + (map (lambda (fs-object) + (make-unmarked-text-element + fs-object #t (layout-fsobject parent-dir-len + fs-object num-cols))) + fsobjects))) + num-lines + (if (null? fsobjects) 1 2)))) ;;; lacks some coolness (define (abbrev-path path length) @@ -210,7 +215,7 @@ (make-fsobjects-viewer (directory-files) buffer (cwd)))) - + (define (make-fsobjects-viewer fs-objects buffer . maybe-parent) (let-optionals maybe-parent ((working-dir (find-common-parent @@ -226,13 +231,7 @@ (select-line (make-file-select-line))) (define (handle-return-key self selected-entry num-lines) - (cond - ((eq? selected-entry 'parent-dir) - (let* ((maybe-parent (file-name-directory working-dir)) - (parent (if (string=? maybe-parent "") "/" maybe-parent))) - (make-browser-for-dir parent buffer))) - (else - (let ((fi (fs-object-info selected-entry))) + (let ((fi (fs-object-info selected-entry))) (if (and fi (file-info-directory? fi)) (with-errno-handler ((errno packet) @@ -242,7 +241,7 @@ self)) (make-browser-for-dir (fs-object-complete-path selected-entry) buffer)) - self))))) + self))) (define (set-fs-objects! new-fs-objects) (set! fs-objects new-fs-objects)