summaryrefslogtreecommitdiffstatshomepage
path: root/lib/memzip/lexermemzip.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/memzip/lexermemzip.c')
-rw-r--r--lib/memzip/lexermemzip.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/memzip/lexermemzip.c b/lib/memzip/lexermemzip.c
new file mode 100644
index 0000000000..72fe6b1c6b
--- /dev/null
+++ b/lib/memzip/lexermemzip.c
@@ -0,0 +1,17 @@
+#include <stdlib.h>
+
+#include "py/lexer.h"
+#include "memzip.h"
+
+mp_lexer_t *mp_lexer_new_from_file(const char *filename)
+{
+ void *data;
+ size_t len;
+
+ if (memzip_locate(filename, &data, &len) != MZ_OK) {
+ return NULL;
+ }
+
+ return mp_lexer_new_from_str_len(qstr_from_str(filename), (const char *)data, (mp_uint_t)len, 0);
+}
+