> 1) how to print a blank line?
You can call 'prinl' without arguments:
> a list with the subdir components of some dir, but (ffiles (cdr
> (append Dir_list (GetFullPath Item (dir Item))))) ) [line 39] does
> not seem to get that list back. When I run it, it only seems to get a
> list of one file only, even if there's a a sub-directory there.
Hmm, this unnecessarily complex. Why don't you use a simple 'for' loop
or mapping function, instead of the recursion?
Also, debugging is a lot easier if you simply call (trace 'ffiles)
instead of clobbering the code with a lot of print-statements. I
strongly recommend to trace your function, and perhaps insert
breakpoints and then single-step the execution to see where it goes
One general note, as I see this rather often: It is not a good idea to
check for an empty list with (=0 (length List)). Instead, simply test if
the list is atomic or NIL. A 'length' call traverses the whole list.
> 3) (lst? (GetFullPath Item (dir Item))) [line 38] is not doing
> what I was expecting, returning T or NIL whether GetFullPath sends a
> list or not.
That's the correct behavior. It returns T if the argument is a
(possibly empty) list. What is wrong with this?
As an example, here is a simple function that recursively prints a
(de dirTree (Path)
(for F (dir Path)
(let P (pack Path "/" F)
(when (=T (car (info P)))
(dirTree P) ) ) ) )