From aaf01481aa5ded82a4706770f235c490649437bf Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Thu, 25 May 2017 12:14:42 -0700 Subject: Change the approach for input so that its not included in every single build. Put it next to readline instead. --- atmel-samd/Makefile | 1 + esp8266/Makefile | 1 + lib/mp-readline/builtin_input.c | 44 +++++++++++++++++++++++++++++++++++++++++ py/builtininput.c | 44 ----------------------------------------- py/py.mk | 1 - stmhal/Makefile | 1 + teensy/Makefile | 1 + 7 files changed, 48 insertions(+), 45 deletions(-) create mode 100644 lib/mp-readline/builtin_input.c delete mode 100644 py/builtininput.c diff --git a/atmel-samd/Makefile b/atmel-samd/Makefile index bbfa62a25..92b1e305b 100644 --- a/atmel-samd/Makefile +++ b/atmel-samd/Makefile @@ -223,6 +223,7 @@ SRC_C = \ lib/utils/pyhelp.c \ lib/utils/stdout_helpers.c \ lib/libc/string0.c \ + lib/mp-readline/builtin_input.c \ lib/mp-readline/readline.c STM_SRC_C = $(addprefix stmhal/,\ diff --git a/esp8266/Makefile b/esp8266/Makefile index 2e92e1c0a..00370a519 100644 --- a/esp8266/Makefile +++ b/esp8266/Makefile @@ -167,6 +167,7 @@ LIB_SRC_C = $(addprefix lib/,\ libm/asinfacosf.c \ libm/atanf.c \ libm/atan2f.c \ + mp-readline/builtin_input.c \ mp-readline/readline.c \ netutils/netutils.c \ timeutils/timeutils.c \ diff --git a/lib/mp-readline/builtin_input.c b/lib/mp-readline/builtin_input.c new file mode 100644 index 000000000..07e7ba35c --- /dev/null +++ b/lib/mp-readline/builtin_input.c @@ -0,0 +1,44 @@ +/* + * This file is part of the Micro Python project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2013, 2014 Damien P. George + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "py/nlr.h" +#include "py/obj.h" +#include "readline.h" + +STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) { + if (n_args == 1) { + mp_obj_print(args[0], PRINT_STR); + } + vstr_t line; + vstr_init(&line, 16); + int ret = readline(&line, ""); + if (line.len == 0 && ret == CHAR_CTRL_D) { + nlr_raise(mp_obj_new_exception(&mp_type_EOFError)); + } + return mp_obj_new_str_from_vstr(&mp_type_str, &line); +} + +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_input_obj, 0, 1, mp_builtin_input); diff --git a/py/builtininput.c b/py/builtininput.c deleted file mode 100644 index 07e7ba35c..000000000 --- a/py/builtininput.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of the Micro Python project, http://micropython.org/ - * - * The MIT License (MIT) - * - * Copyright (c) 2013, 2014 Damien P. George - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include "py/nlr.h" -#include "py/obj.h" -#include "readline.h" - -STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) { - if (n_args == 1) { - mp_obj_print(args[0], PRINT_STR); - } - vstr_t line; - vstr_init(&line, 16); - int ret = readline(&line, ""); - if (line.len == 0 && ret == CHAR_CTRL_D) { - nlr_raise(mp_obj_new_exception(&mp_type_EOFError)); - } - return mp_obj_new_str_from_vstr(&mp_type_str, &line); -} - -MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_input_obj, 0, 1, mp_builtin_input); diff --git a/py/py.mk b/py/py.mk index 0e2c6c1f3..ec22fbe63 100644 --- a/py/py.mk +++ b/py/py.mk @@ -188,7 +188,6 @@ PY_O_BASENAME = \ stream.o \ binary.o \ builtinimport.o \ - builtininput.o \ builtinevex.o \ modarray.o \ modbuiltins.o \ diff --git a/stmhal/Makefile b/stmhal/Makefile index 6073a7690..30ec40f3a 100644 --- a/stmhal/Makefile +++ b/stmhal/Makefile @@ -108,6 +108,7 @@ SRC_LIB = $(addprefix lib/,\ libm/wf_tgamma.c \ fatfs/ff.c \ fatfs/option/ccsbcs.c \ + mp-readline/builtin_input.c \ mp-readline/readline.c \ netutils/netutils.c \ timeutils/timeutils.c \ diff --git a/teensy/Makefile b/teensy/Makefile index a38916ff8..ab377dfb2 100644 --- a/teensy/Makefile +++ b/teensy/Makefile @@ -106,6 +106,7 @@ STM_SRC_S = $(addprefix stmhal/,\ LIB_SRC_C = $(addprefix lib/,\ libc/string0.c \ + mp-readline/builtin_input.c \ mp-readline/readline.c \ utils/pyexec.c \ utils/pyhelp.c \ -- cgit v1.2.3