summaryrefslogtreecommitdiff
path: root/py/frozenmod.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/frozenmod.c')
-rw-r--r--py/frozenmod.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/py/frozenmod.c b/py/frozenmod.c
index 18beb0f8e..0fabb06a9 100644
--- a/py/frozenmod.c
+++ b/py/frozenmod.c
@@ -43,6 +43,24 @@ extern const char mp_frozen_str_names[];
extern const uint32_t mp_frozen_str_sizes[];
extern const char mp_frozen_str_content[];
+mp_import_stat_t mp_frozen_stat(const char *str) {
+ size_t len = strlen(str);
+ const char *name = mp_frozen_str_names;
+
+ for (int i = 0; *name != 0; i++) {
+ size_t l = strlen(name);
+ if (l >= len && !memcmp(str, name, len)) {
+ if (name[len] == 0) {
+ return MP_IMPORT_STAT_FILE;
+ } else if (name[len] == '/') {
+ return MP_IMPORT_STAT_DIR;
+ }
+ }
+ name += l + 1;
+ }
+ return MP_IMPORT_STAT_NO_EXIST;
+}
+
STATIC mp_lexer_t *mp_find_frozen_str(const char *str, size_t len) {
const char *name = mp_frozen_str_names;