From Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>:
* dir.c [__MSDOS__] [DJGPP > 1]: Include <libc/dosio.h> and defin
`__opendir_flags' initialized to 0.
[__MSDOS__] (dosify) [DJGPP > 1]: Return name unchanged if _USE_LFN.
(find_directory) [__MSDOS__ && DJGPP > 1]: If _USE_LGN, set
__opendir_flags to __OPENDIR_PRESERVE_CASE.
\f
#ifdef __MSDOS__
#include <ctype.h>
+#if (DJGPP > 1)
+#include <libc/dosio.h>
+int __opendir_flags = 0;
+#endif
static char *
dosify (filename)
char *df;
int i;
+#if (DJGPP > 1)
+ if (_USE_LFN)
+ /* Using long file names; do no transformation. */
+ return filename;
+#endif
if (filename == 0)
return 0;
dc->next = directories_contents[hash];
directories_contents[hash] = dc;
+#if defined (__MSDOS__) && (DJGPP > 1)
+ if (_USE_LFN)
+ /* We are using long filenames, so tell opendir not
+ to mess with them. */
+ __opendir_flags = __OPENDIR_PRESERVE_CASE;
+#endif
+
dc->dirstream = opendir (name);
if (dc->dirstream == 0)
{