--- mtools-4.0.35/config.c 2021-07-23 12:11:13.000000000 +0200 +++ mtools-4.0.35/config.c 2021-09-08 11:47:32.994496537 +0200 @@ -66,6 +66,7 @@ unsigned int mtools_twenty_four_hour_clock=1; unsigned int mtools_lock_timeout=30; unsigned int mtools_default_codepage=850; +unsigned int mtools_permit_empty=0; const char *mtools_date_string="yyyy-mm-dd"; char *country_string=0; @@ -96,6 +97,7 @@ { "MTOOLS_DATE_STRING", (caddr_t) &mtools_date_string, T_STRING }, { "MTOOLS_LOCK_TIMEOUT", (caddr_t) &mtools_lock_timeout, T_UINT }, + { "MTOOLS_PERMIT_EMPTY", (caddr_t) &mtools_permit_empty, T_UINT }, { "DEFAULT_CODEPAGE", (caddr_t) &mtools_default_codepage, T_UINT } }; --- mtools-4.0.35/mdir.c 2021-07-23 12:11:15.000000000 +0200 +++ mtools-4.0.35/mdir.c 2021-09-08 11:57:59.183942279 +0200 @@ -494,7 +494,10 @@ subMp.dirCallback = list_file; subMp.callback = list_file; - ret = mp->loop(mp->File, &subMp, "*"); + if (mtools_permit_empty) + ret = mp->loop(mp->File, &subMp, "*") | GOT_ONE; + else + ret = mp->loop(mp->File, &subMp, "*"); /* then list subdirectories */ subMp = *mp; --- mtools-4.0.35/mtools.h 2021-07-23 12:11:13.000000000 +0200 +++ mtools-4.0.35/mtools.h 2021-09-08 11:47:34.594501129 +0200 @@ -171,6 +171,7 @@ extern unsigned int mtools_dotted_dir; extern unsigned int mtools_lock_timeout; extern unsigned int mtools_twenty_four_hour_clock; +extern unsigned int mtools_permit_empty; extern const char *mtools_date_string; extern uint8_t mtools_rate_0, mtools_rate_any; extern unsigned int mtools_default_codepage;