<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">The mappings of windows to c errors are enumerated in the <span style="orphans: 2; white-space: pre-wrap; widows: 2;">errtable in the cbits of base like so:</span></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><span style="orphans: 2; white-space: pre-wrap; widows: 2;"><br></span></div><div id="bloop_customfont" style="margin: 0px;"><span style="orphans: 2; widows: 2; white-space: pre-wrap;"><a href="https://hackage.haskell.org/package/base-4.10.1.0/src/cbits/Win32Utils.c">https://hackage.haskell.org/package/base-4.10.1.0/src/cbits/Win32Utils.c</a></span></div><div id="bloop_customfont" style="margin: 0px;"><span style="orphans: 2; widows: 2; white-space: pre-wrap;"><br></span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;">It is invoked from </span><span style="white-space: pre-wrap;">maperrno_func in the same file, which sends all other errors to EACCES, ENOEXEC or EINVAL.</span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;"><br></span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;">Since it never sends anything to ENOTDIR, it seems clear that from the windows side, we will never get an `InappropriateType` error. Meanwhile, on the posix side, we of course may: <a href="http://hackage.haskell.org/package/base-4.10.1.0/docs/src/Foreign.C.Error.html#errnoToIOError">http://hackage.haskell.org/package/base-4.10.1.0/docs/src/Foreign.C.Error.html#errnoToIOError</a></span><br></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;"><br></span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;">I think a PR to the docs that clarified which codes are not returned on windows, and what would be returned instead would be welcomed.</span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;"><br></span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;">Cheers,</span></div><div id="bloop_customfont" style="orphans: 2; widows: 2; margin: 0px;"><span style="white-space: pre-wrap;">G</span></div> <div id="bloop_sign_1520739172001319936" class="bloop_sign"></div> <br><p class="airmail_on">On March 10, 2018 at 2:26:34 PM, sonne (<a href="mailto:kindaro@gmail.com">kindaro@gmail.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>Hello!<br><br>In `directory` package, there is a function<br>`System.Directory.listDirectory`. It says on the box that it throws<br>error messages that can be branched on. (`isDoesNotExistError`,<br>`InappropriateType` and so on.) I dug into it a little, and it appears<br>to me that, in actuality, on Windows (unlike on a Posix compliant<br>operating system) there is no reliable way to sort the errors in some<br>pre-defined categories like "no such file", "not a directory", et<br>cetera.<br><br>Therefore I must presume that either the documentation is incomplete<br>and misleading, or it is I who is somehow misled. The information I<br>have is summarized in a Stack Overflow question linked below. I would<br>like to receive a clarification. Perhaps an amendment to the<br>documentation should be considered?<br><br>The point that initially aroused my suspicion is that `NoSuchThing` is<br>associated with both `eNoEnt` and `eNotDir`. Is there a rationale<br>behind this? From the `man 3 opendir`, I do not see the need for this<br>ambiguity.<br><br>This is the S.O. question I mentioned: stackoverflow.com/q/49212400<br>There is also a linked question that elaborates on the motivation<br>behind my inquiry.<br><br>Thank you!<br>_______________________________________________<br>Libraries mailing list<br>Libraries@haskell.org<br>http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries<br></div></div></span></blockquote></body></html>