[erlang-patches] Correct ls/1 in c.erl

Björn Gustavsson <>
Tue May 14 10:46:45 CEST 2013

On Mon, May 6, 2013 at 7:01 AM, Bengt Kleberg <>wrote:

> Greetings,
>         When I use c:ls/1 it reminds me so much of Unix "ls" that I
> expect c:ls("filename") to work. The resulting error surprises me every
> time (not the same day). Here is a patch that corrects c:ls/1 to be more
> like Unix "ls".
Thanks for your patch.

The original code was written a long time ago, before the
functions in the file module returned documented error
reasons and before file:format_error/1 was introduced.

Therefore, if the code is to be updated, it should be
updated properly, by matching for enotdir and generating
the error messages for other errors using file:format_error/1.

Also, a test case is needed to ensure that the code works
and that it continues to work.

Your current version of the patch has two issues.

First, there is the style issue. Quoting

  "Make sure your changes follow the coding and indentation style of the
code surrounding your changes."

(There should not be any extra spaces inside parenthesis.)

Second, filelib:is_file/1 returns true for both files and directories.
You probably want to use filelib:is_regular/1.


Björn Gustavsson, Erlang/OTP, Ericsson AB
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20130514/0e15b4ff/attachment.html>

More information about the erlang-patches mailing list