From 07ffc1ffae6ba341fc1ac35133a03f3aa1fd7ecb Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sun, 19 Jun 2022 15:39:50 -0700 Subject: [PATCH] Com: introduce epicsReadlinePvt.h Helping IDEs understand gnuReadline.c and osdReadline.c --- modules/libcom/src/osi/epicsReadline.c | 26 +--------------- modules/libcom/src/osi/epicsReadlinePvt.h | 30 +++++++++++++++++++ .../src/osi/os/RTEMS-score/osdReadline.c | 2 ++ .../libcom/src/osi/os/default/gnuReadline.c | 2 ++ .../libcom/src/osi/os/vxWorks/osdReadline.c | 2 ++ 5 files changed, 37 insertions(+), 25 deletions(-) create mode 100644 modules/libcom/src/osi/epicsReadlinePvt.h diff --git a/modules/libcom/src/osi/epicsReadline.c b/modules/libcom/src/osi/epicsReadline.c index 5c3d74138..f74430aa1 100644 --- a/modules/libcom/src/osi/epicsReadline.c +++ b/modules/libcom/src/osi/epicsReadline.c @@ -13,31 +13,7 @@ #include #include "envDefs.h" -#include "epicsReadline.h" - -/* Basic command-line input, no editing or history: */ -#define EPICS_COMMANDLINE_LIBRARY_EPICS 0 - -/* OS-specific command-line editing and/or history: */ -#define EPICS_COMMANDLINE_LIBRARY_LIBTECLA 1 -#define EPICS_COMMANDLINE_LIBRARY_LEDLIB 1 -#define EPICS_COMMANDLINE_LIBRARY_OTHER 1 - -/* GNU readline, or Apple's libedit wrapper: */ -#define EPICS_COMMANDLINE_LIBRARY_READLINE 2 -#define EPICS_COMMANDLINE_LIBRARY_READLINE_CURSES 2 -#define EPICS_COMMANDLINE_LIBRARY_READLINE_NCURSES 2 - -#ifndef EPICS_COMMANDLINE_LIBRARY -# define EPICS_COMMANDLINE_LIBRARY EPICS_COMMANDLINE_LIBRARY_EPICS -#endif - -struct osdContext; -struct readlineContext { - FILE *in; - char *line; - struct osdContext *osd; -}; +#include "epicsReadlinePvt.h" static void osdReadlineBegin(struct readlineContext *); static char * osdReadline(const char *prompt, struct readlineContext *); diff --git a/modules/libcom/src/osi/epicsReadlinePvt.h b/modules/libcom/src/osi/epicsReadlinePvt.h new file mode 100644 index 000000000..4bfab39bf --- /dev/null +++ b/modules/libcom/src/osi/epicsReadlinePvt.h @@ -0,0 +1,30 @@ +#ifndef EPICSREADLINEPVT_H +#define EPICSREADLINEPVT_H + +#include "epicsReadline.h" + +/* Basic command-line input, no editing or history: */ +#define EPICS_COMMANDLINE_LIBRARY_EPICS 0 + +/* OS-specific command-line editing and/or history: */ +#define EPICS_COMMANDLINE_LIBRARY_LIBTECLA 1 +#define EPICS_COMMANDLINE_LIBRARY_LEDLIB 1 +#define EPICS_COMMANDLINE_LIBRARY_OTHER 1 + +/* GNU readline, or Apple's libedit wrapper: */ +#define EPICS_COMMANDLINE_LIBRARY_READLINE 2 +#define EPICS_COMMANDLINE_LIBRARY_READLINE_CURSES 2 +#define EPICS_COMMANDLINE_LIBRARY_READLINE_NCURSES 2 + +#ifndef EPICS_COMMANDLINE_LIBRARY +# define EPICS_COMMANDLINE_LIBRARY EPICS_COMMANDLINE_LIBRARY_EPICS +#endif + +struct osdContext; +struct readlineContext { + FILE *in; + char *line; + struct osdContext *osd; +}; + +#endif // EPICSREADLINEPVT_H diff --git a/modules/libcom/src/osi/os/RTEMS-score/osdReadline.c b/modules/libcom/src/osi/os/RTEMS-score/osdReadline.c index 1d3bc3f8b..08272a8ae 100644 --- a/modules/libcom/src/osi/os/RTEMS-score/osdReadline.c +++ b/modules/libcom/src/osi/os/RTEMS-score/osdReadline.c @@ -16,6 +16,8 @@ #include #include +#include "epicsReadlinePvt.h" + struct osdContext {}; /* diff --git a/modules/libcom/src/osi/os/default/gnuReadline.c b/modules/libcom/src/osi/os/default/gnuReadline.c index ce98673e6..11551586e 100644 --- a/modules/libcom/src/osi/os/default/gnuReadline.c +++ b/modules/libcom/src/osi/os/default/gnuReadline.c @@ -17,6 +17,8 @@ #include #include "epicsExit.h" +#include "envDefs.h" +#include "epicsReadlinePvt.h" static struct osdContext { char dummy; /* Required for older compilers */ diff --git a/modules/libcom/src/osi/os/vxWorks/osdReadline.c b/modules/libcom/src/osi/os/vxWorks/osdReadline.c index 46091dea9..24d46f131 100644 --- a/modules/libcom/src/osi/os/vxWorks/osdReadline.c +++ b/modules/libcom/src/osi/os/vxWorks/osdReadline.c @@ -16,6 +16,8 @@ #include #include +#include "epicsReadlinePvt.h" + /* FIXME: Remove line-lenth limitation */ #define LEDLIB_LINESIZE 1000