Cleanup: remove compilation warning in previous commit.
[blender-staging.git] / source / blender / python / BPY_extern_run.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16
17 /** \file
18  * \ingroup python
19  */
20
21 #pragma once
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include "BLI_sys_types.h"
28
29 struct ReportList;
30 struct Text;
31 struct bContext;
32
33 /* bpy_interface_run.c */
34 bool BPY_run_filepath(struct bContext *C, const char *filepath, struct ReportList *reports);
35 bool BPY_run_text(struct bContext *C,
36                   struct Text *text,
37                   struct ReportList *reports,
38                   const bool do_jump);
39
40 /* Use the 'eval' for simple single-line expressions,
41  * otherwise 'exec' for full multi-line scripts. */
42 bool BPY_run_string_exec(struct bContext *C, const char *imports[], const char *expr);
43 bool BPY_run_string_eval(struct bContext *C, const char *imports[], const char *expr);
44
45 /**
46  * \note When this struct is passed in as NULL,
47  * print errors to the `stdout` and clear.
48  */
49 struct BPy_RunErrInfo {
50   /** Brief text, single line (can show this in status bar for e.g.). */
51   bool use_single_line_error;
52
53   /** Report with optional prefix (when non-NULL). */
54   struct ReportList *reports;
55   const char *report_prefix;
56
57   /** Allocated exception text (assign when non-NULL). */
58   char **r_string;
59 };
60
61 /* Run, evaluating to fixed type result. */
62 bool BPY_run_string_as_number(struct bContext *C,
63                               const char *imports[],
64                               const char *expr,
65                               struct BPy_RunErrInfo *err_info,
66                               double *r_value);
67 bool BPY_run_string_as_intptr(struct bContext *C,
68                               const char *imports[],
69                               const char *expr,
70                               struct BPy_RunErrInfo *err_info,
71                               intptr_t *r_value);
72 bool BPY_run_string_as_string_and_size(struct bContext *C,
73                                        const char *imports[],
74                                        const char *expr,
75                                        struct BPy_RunErrInfo *err_info,
76                                        char **r_value,
77                                        size_t *r_value_size);
78 bool BPY_run_string_as_string(struct bContext *C,
79                               const char *imports[],
80                               const char *expr,
81                               struct BPy_RunErrInfo *err_info,
82                               char **r_value);
83
84 #ifdef __cplusplus
85 } /* extern "C" */
86 #endif