From 741db21f7004cf713d5d794fa2c8d72c68327e64 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 13 Dec 2016 18:04:43 -0600 Subject: [PATCH] Remvoe std_readline(). This called up_getc() and up_putc() directly, violating the POSIX OS interface. --- system/readline/Makefile | 8 +- system/readline/readline.h | 3 +- system/readline/std_readline.c | 156 --------------------------------- 3 files changed, 3 insertions(+), 164 deletions(-) delete mode 100644 system/readline/std_readline.c diff --git a/system/readline/Makefile b/system/readline/Makefile index b6aafbe09..993387524 100644 --- a/system/readline/Makefile +++ b/system/readline/Makefile @@ -40,13 +40,7 @@ include $(APPDIR)/Make.defs # The Readline Library ASRCS = -CSRCS = readline_common.c - -ifeq ($(CONFIG_NFILE_STREAMS),0) -CSRCS += std_readline.c -else -CSRCS += readline.c -endif +CSRCS = readline.c readline_common.c AOBJS = $(ASRCS:.S=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT)) diff --git a/system/readline/readline.h b/system/readline/readline.h index de84ce7ae..3a56990f8 100644 --- a/system/readline/readline.h +++ b/system/readline/readline.h @@ -105,7 +105,8 @@ struct rl_common_s /**************************************************************************** * Name: readline_common * - * Common logic shared by readline and std_readline(). + * Common logic shared by various readline frone-ends (currently only + * readline()). * * Input Parameters: * buf - The user allocated buffer to be filled. diff --git a/system/readline/std_readline.c b/system/readline/std_readline.c deleted file mode 100644 index 52fae64fb..000000000 --- a/system/readline/std_readline.c +++ /dev/null @@ -1,156 +0,0 @@ -/**************************************************************************** - * apps/system/readline/std_readline.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include "system/readline.h" - -#include "readline.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static int readline_getc(FAR struct rl_common_s *vtbl); -static void readline_putc(FAR struct rl_common_s *vtbl, int ch); -static void readline_write(FAR struct rl_common_s *vtbl, - FAR const char *buffer, size_t buflen); - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static const struct rl_common_s g_stdreadline = -{ - readline_getc -#ifdef CONFIG_READLINE_ECHO - , readline_putc - , readline_write -#endif -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: readline_getc - ****************************************************************************/ - -static int readline_getc(FAR struct rl_common_s *vtbl) -{ - return up_getc(); -} - -/**************************************************************************** - * Name: readline_putc - ****************************************************************************/ - -#ifdef CONFIG_READLINE_ECHO -static void readline_putc(FAR struct rl_common_s *vtbl, int ch) -{ - up_putc(ch); -} -#endif - -/**************************************************************************** - * Name: readline_write - ****************************************************************************/ - -#ifdef CONFIG_READLINE_ECHO -static void readline_write(FAR struct rl_common_s *vtbl, - FAR const char *buffer, size_t buflen) -{ - for (; buflen > 0; buflen--) - { - up_putc(*buffer++); - } -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: std_readline - * - * readline() reads in at most one less than 'buflen' characters from - * 'stdin' and stores them into the buffer pointed to by 'buf'. - * Characters are echoed on 'stdout'. Reading stops after an EOF or a - * newline. If a newline is read, it is stored into the buffer. A null - * terminator is stored after the last character in the buffer. - * - * This version of realine assumes that we are reading and writing to - * a VT100 console. This will not work well if 'stdin' or 'stdout' - * corresponds to a raw byte steam. - * - * This function is inspired by the GNU readline but is an entirely - * different creature. - * - * Input Parameters: - * buf - The user allocated buffer to be filled. - * buflen - the size of the buffer. - * - * Returned values: - * On success, the (positive) number of bytes transferred is returned. - * EOF is returned to indicate either an end of file condition or a - * failure. - * - ****************************************************************************/ - -ssize_t std_readline(FAR char *buf, int buflen) -{ - return readline_common((FAR struct rl_common_s *)&g_stdreadline, - buf, buflen); -}