summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
Diffstat (limited to 'Include')
-rw-r--r--Include/cpython/initconfig.h16
-rw-r--r--Include/internal/pycore_initconfig.h2
2 files changed, 17 insertions, 1 deletions
diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h
index df93a55..69db2af 100644
--- a/Include/cpython/initconfig.h
+++ b/Include/cpython/initconfig.h
@@ -413,6 +413,14 @@ typedef struct {
/* If non-zero, disallow threads, subprocesses, and fork.
Default: 0. */
int _isolated_interpreter;
+
+ /* Original command line arguments. If _orig_argv is empty and _argv is
+ not equal to [''], PyConfig_Read() copies the configuration 'argv' list
+ into '_orig_argv' list before modifying 'argv' list (if parse_argv
+ is non-zero).
+
+ _PyConfig_Write() initializes Py_GetArgcArgv() to this list. */
+ PyWideStringList _orig_argv;
} PyConfig;
PyAPI_FUNC(void) PyConfig_InitPythonConfig(PyConfig *config);
@@ -438,6 +446,14 @@ PyAPI_FUNC(PyStatus) PyConfig_SetWideStringList(PyConfig *config,
PyWideStringList *list,
Py_ssize_t length, wchar_t **items);
+
+/* --- Helper functions --------------------------------------- */
+
+/* Get the original command line arguments, before Python modified them.
+
+ See also PyConfig._orig_argv. */
+PyAPI_FUNC(void) Py_GetArgcArgv(int *argc, wchar_t ***argv);
+
#ifdef __cplusplus
}
#endif
diff --git a/Include/internal/pycore_initconfig.h b/Include/internal/pycore_initconfig.h
index 8c6706c..457a005 100644
--- a/Include/internal/pycore_initconfig.h
+++ b/Include/internal/pycore_initconfig.h
@@ -150,7 +150,7 @@ extern PyStatus _PyConfig_Copy(
PyConfig *config,
const PyConfig *config2);
extern PyStatus _PyConfig_InitPathConfig(PyConfig *config);
-extern void _PyConfig_Write(const PyConfig *config,
+extern PyStatus _PyConfig_Write(const PyConfig *config,
struct pyruntimestate *runtime);
extern PyStatus _PyConfig_SetPyArgv(
PyConfig *config,