From 1926e748a451c9f75dcebac4d5ddb158a004cef4 Mon Sep 17 00:00:00 2001
From: Alexey Pavlov <alexpux@gmail.com>
Date: Fri, 5 Sep 2025 15:15:15 +0300
Subject: [PATCH 163/N] sys module: Implement flags "is_mingw" and
 "use_alt_sep"

---
 Python/sysmodule.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 48b46da..83a6d98 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -177,6 +177,28 @@ PySys_GetObject(const char *name)
     return value;
 }
 
+static int
+use_alt_sep()
+{
+#ifdef MS_WINDOWS
+    char* msystem = getenv("MSYSTEM");
+    if (msystem != NULL && strcmp(msystem, "") != 0) {
+        return 1;
+    }
+#endif
+    return 0;
+}
+
+static int
+is_mingw_platform()
+{
+#ifdef __MINGW32__
+    return 1;
+#else
+    return 0;
+#endif
+}
+
 static int
 sys_set_object(PyInterpreterState *interp, PyObject *key, PyObject *v)
 {
@@ -3141,11 +3163,13 @@ hash_info -- a named tuple with information about the hash algorithm.\n\
 hexversion -- version information encoded as a single integer\n\
 implementation -- Python implementation information.\n\
 int_info -- a named tuple with information about the int implementation.\n\
+is_mingw -- integer value if Python builded with mingw-w64 toolchain\n\
 maxsize -- the largest supported length of containers.\n\
 maxunicode -- the value of the largest Unicode code point\n\
 platform -- platform identifier\n\
 prefix -- prefix used to find the Python library\n\
 thread_info -- a named tuple with information about the thread implementation.\n\
+use_alt_sep -- indicate if need use posix style path setparator for path normalize\n\
 version -- the version of this interpreter as a string\n\
 version_info -- version information as a named tuple\n\
 "
@@ -3623,6 +3647,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
     SET_SYS_FROM_STRING("byteorder", "little");
 #endif
 
+    SET_SYS("is_mingw", PyLong_FromLong(is_mingw_platform()));
+    SET_SYS("use_alt_sep", PyLong_FromLong(use_alt_sep()));
+
 #if defined(MS_WINDOWS) && defined(Py_ENABLE_SHARED)
     SET_SYS("dllhandle", PyLong_FromVoidPtr(PyWin_DLLhModule));
     SET_SYS_FROM_STRING("winver", PyWin_DLLVersionString);
