From 5b228618e14300e2610e588efef5b94384e5578f Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Thu, 3 May 2012 12:19:34 -0500
Subject: [PATCH] Merged epicsStdioRedirect.h into epicsStdio.h
---
documentation/RELEASE_NOTES.html | 9 ++++++
src/ioc/as/asCa.c | 2 +-
src/ioc/as/asDbLib.c | 2 +-
src/ioc/db/dbCaTest.c | 2 +-
src/ioc/db/dbLock.c | 2 +-
src/ioc/db/dbScan.c | 2 +-
src/ioc/db/dbTest.c | 1 -
src/ioc/db/db_test.c | 2 +-
src/ioc/dbStatic/dbStaticLib.c | 2 +-
src/ioc/misc/epicsRelease.c | 2 +-
src/ioc/rsrv/caservertask.c | 2 +-
src/libCom/as/asLibRoutines.c | 2 +-
src/libCom/as/asTrapWrite.c | 2 +-
src/libCom/env/envSubr.c | 2 +-
src/libCom/flex/flex.c | 2 +-
src/libCom/osi/Makefile | 1 +
src/libCom/osi/epicsEvent.cpp | 2 +-
src/libCom/osi/epicsMessageQueue.cpp | 2 +-
src/libCom/osi/epicsMutex.cpp | 2 +-
src/libCom/osi/epicsStdio.c | 1 +
src/libCom/osi/epicsStdio.h | 30 ++++++++++++++++--
src/libCom/osi/epicsStdioRedirect.h | 38 ++++-------------------
src/libCom/osi/epicsTempFile.h | 30 ++++++++++++++++++
src/libCom/osi/epicsTime.cpp | 1 -
src/libCom/osi/os/Darwin/osdEnv.c | 2 +-
src/libCom/osi/os/RTEMS/osdMutex.c | 2 +-
src/libCom/osi/os/WIN32/epicsTempFile.cpp | 2 +-
src/libCom/osi/os/WIN32/osdMutex.c | 2 +-
src/libCom/osi/os/default/osdEnv.c | 2 +-
src/libCom/osi/os/iOS/osdEnv.c | 2 +-
src/libCom/osi/os/posix/epicsTempFile.cpp | 2 +-
src/libCom/osi/os/vxWorks/osdEnv.c | 2 +-
src/libCom/test/epicsStdioTest.c | 1 -
src/libCom/yacc/antelope.c | 2 +-
34 files changed, 99 insertions(+), 63 deletions(-)
create mode 100644 src/libCom/osi/epicsTempFile.h
diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
index 2e56b647c..9f0c79849 100644
--- a/documentation/RELEASE_NOTES.html
+++ b/documentation/RELEASE_NOTES.html
@@ -15,6 +15,15 @@ EPICS Base 3.15.0.x releases are not intended for use in production systems.
Changes between 3.14.x and 3.15.0.x
+epicsStdioRedirect.h merged into epicsStdio.h
+
+The definitions from the header file epicsStdioRedirect.h have been moved
+into epicsStdio.h so all calls to printf(), puts() and putchar() in files that
+include that OSI header will now be subject to stdout redirection. In past
+releases (3.14.7 and later) it was necessary to request the redirection support
+by including the epicsStdioRedirect.h header file. The header file is still
+provided, but now it just includes epicsStdio.h.
+
Named Soft Events
Soft events can now be given meaningful names instead of just using the
diff --git a/src/ioc/as/asCa.c b/src/ioc/as/asCa.c
index 387a1ad79..fd6ba8c7e 100644
--- a/src/ioc/as/asCa.c
+++ b/src/ioc/as/asCa.c
@@ -29,7 +29,7 @@
#include "caerr.h"
#include "caeventmask.h"
#include "alarm.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "asLib.h"
#include "epicsExport.h"
diff --git a/src/ioc/as/asDbLib.c b/src/ioc/as/asDbLib.c
index bf4a85dcc..e087c2228 100644
--- a/src/ioc/as/asDbLib.c
+++ b/src/ioc/as/asDbLib.c
@@ -18,7 +18,7 @@
#include "errlog.h"
#include "cantProceed.h"
#include "epicsThread.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "dbDefs.h"
#include "taskwd.h"
#include "asLib.h"
diff --git a/src/ioc/db/dbCaTest.c b/src/ioc/db/dbCaTest.c
index f0ce5c88a..4d7c9cbce 100644
--- a/src/ioc/db/dbCaTest.c
+++ b/src/ioc/db/dbCaTest.c
@@ -24,7 +24,7 @@
#include "dbStaticLib.h"
#include "link.h"
#undef epicsExportSharedSymbols
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
/*definitions needed because of old vs new database access*/
#undef DBR_SHORT
#undef DBR_PUT_ACKT
diff --git a/src/ioc/db/dbLock.c b/src/ioc/db/dbLock.c
index 1c69026b7..538be59a8 100644
--- a/src/ioc/db/dbLock.c
+++ b/src/ioc/db/dbLock.c
@@ -47,7 +47,7 @@ since this will delay all other threads.
#include
#include
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "dbDefs.h"
#include "epicsPrint.h"
#include "errMdef.h"
diff --git a/src/ioc/db/dbScan.c b/src/ioc/db/dbScan.c
index 8aaf1b14e..0222c565f 100644
--- a/src/ioc/db/dbScan.c
+++ b/src/ioc/db/dbScan.c
@@ -21,7 +21,7 @@
#include
#include
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "dbDefs.h"
#include "ellLib.h"
#include "taskwd.h"
diff --git a/src/ioc/db/dbTest.c b/src/ioc/db/dbTest.c
index 9ef57f479..979344c4f 100644
--- a/src/ioc/db/dbTest.c
+++ b/src/ioc/db/dbTest.c
@@ -21,7 +21,6 @@
#include "errlog.h"
#include "ellLib.h"
#include "epicsMutex.h"
-#include "epicsStdioRedirect.h"
#include "ellLib.h"
#include "epicsString.h"
#define epicsExportSharedSymbols
diff --git a/src/ioc/db/db_test.c b/src/ioc/db/db_test.c
index 0ad5ad2e2..5f44e28ca 100644
--- a/src/ioc/db/db_test.c
+++ b/src/ioc/db/db_test.c
@@ -21,7 +21,7 @@
#include "dbDefs.h"
#include "errlog.h"
#include "cadef.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#define epicsExportSharedSymbols
#include "db_access_routines.h"
#include "dbNotify.h"
diff --git a/src/ioc/dbStatic/dbStaticLib.c b/src/ioc/dbStatic/dbStaticLib.c
index 7b42704f5..a41562be3 100644
--- a/src/ioc/dbStatic/dbStaticLib.c
+++ b/src/ioc/dbStatic/dbStaticLib.c
@@ -30,7 +30,7 @@
#include "osiFileName.h"
#include "epicsStdlib.h"
#include "epicsString.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#define epicsExportSharedSymbols
#include "link.h"
diff --git a/src/ioc/misc/epicsRelease.c b/src/ioc/misc/epicsRelease.c
index d1fce539f..03197d7a8 100644
--- a/src/ioc/misc/epicsRelease.c
+++ b/src/ioc/misc/epicsRelease.c
@@ -13,7 +13,7 @@
#include
#include
#include "epicsVersion.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#define epicsExportSharedSymbols
#include "epicsRelease.h"
diff --git a/src/ioc/rsrv/caservertask.c b/src/ioc/rsrv/caservertask.c
index 21bcba9f4..e86277306 100644
--- a/src/ioc/rsrv/caservertask.c
+++ b/src/ioc/rsrv/caservertask.c
@@ -36,7 +36,7 @@
#include "dbAddr.h"
#include "dbEvent.h"
#include "dbCommon.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#define epicsExportSharedSymbols
#include "rsrv.h"
diff --git a/src/libCom/as/asLibRoutines.c b/src/libCom/as/asLibRoutines.c
index b45920636..a92aa19d2 100644
--- a/src/libCom/as/asLibRoutines.c
+++ b/src/libCom/as/asLibRoutines.c
@@ -17,7 +17,7 @@
#include
#define epicsExportSharedSymbols
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "dbDefs.h"
#include "epicsThread.h"
#include "cantProceed.h"
diff --git a/src/libCom/as/asTrapWrite.c b/src/libCom/as/asTrapWrite.c
index a447ea95c..9aa795262 100644
--- a/src/libCom/as/asTrapWrite.c
+++ b/src/libCom/as/asTrapWrite.c
@@ -23,7 +23,7 @@
#define epicsExportSharedSymbols
#include "ellLib.h"
#include "freeList.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "cantProceed.h"
#include "epicsMutex.h"
#include "ellLib.h"
diff --git a/src/libCom/env/envSubr.c b/src/libCom/env/envSubr.c
index 5bbd83d83..5e90b1a81 100644
--- a/src/libCom/env/envSubr.c
+++ b/src/libCom/env/envSubr.c
@@ -42,7 +42,7 @@
#define epicsExportSharedSymbols
#include "epicsStdlib.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "errMdef.h"
#include "errlog.h"
#include "envDefs.h"
diff --git a/src/libCom/flex/flex.c b/src/libCom/flex/flex.c
index f69c9ff7f..eb966b8e5 100644
--- a/src/libCom/flex/flex.c
+++ b/src/libCom/flex/flex.c
@@ -52,7 +52,7 @@ static char rcsid[] =
*/
#define epicsExportSharedSymbols
-#include "epicsStdio.h"
+#include "epicsTempFile.h"
#undef epicsExportSharedSymbols
static char flex_version[] = "2.3";
diff --git a/src/libCom/osi/Makefile b/src/libCom/osi/Makefile
index b2baad92c..989784685 100644
--- a/src/libCom/osi/Makefile
+++ b/src/libCom/osi/Makefile
@@ -53,6 +53,7 @@ INC += epicsReadline.h
INC += epicsMessageQueue.h
INC += epicsStdio.h
INC += epicsStdioRedirect.h
+INC += epicsTempFile.h
INC += epicsGetopt.h
INC += devLib.h
diff --git a/src/libCom/osi/epicsEvent.cpp b/src/libCom/osi/epicsEvent.cpp
index 04b4a08d0..237f7d268 100644
--- a/src/libCom/osi/epicsEvent.cpp
+++ b/src/libCom/osi/epicsEvent.cpp
@@ -15,7 +15,7 @@
#define epicsExportSharedSymbols
#include "epicsEvent.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "cantProceed.h"
// vxWorks 5.4 gcc fails during compile when I use std::exception
diff --git a/src/libCom/osi/epicsMessageQueue.cpp b/src/libCom/osi/epicsMessageQueue.cpp
index e416c46d0..1561fbf7d 100644
--- a/src/libCom/osi/epicsMessageQueue.cpp
+++ b/src/libCom/osi/epicsMessageQueue.cpp
@@ -19,7 +19,7 @@
#define epicsExportSharedSymbols
#include "epicsMessageQueue.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
epicsMessageQueue::epicsMessageQueue(unsigned int aCapacity,
unsigned int aMaxMessageSize)
diff --git a/src/libCom/osi/epicsMutex.cpp b/src/libCom/osi/epicsMutex.cpp
index d2e421204..84c6fcf3a 100644
--- a/src/libCom/osi/epicsMutex.cpp
+++ b/src/libCom/osi/epicsMutex.cpp
@@ -26,7 +26,7 @@
#include
#define epicsExportSharedSymbols
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "epicsThread.h"
#include "ellLib.h"
#include "errlog.h"
diff --git a/src/libCom/osi/epicsStdio.c b/src/libCom/osi/epicsStdio.c
index 50c696a2c..bdce19db1 100644
--- a/src/libCom/osi/epicsStdio.c
+++ b/src/libCom/osi/epicsStdio.c
@@ -19,6 +19,7 @@
#include
#define epicsExportSharedSymbols
+#define epicsStdioStdStreams
#include "shareLib.h"
#include "epicsThread.h"
#include "epicsStdio.h"
diff --git a/src/libCom/osi/epicsStdio.h b/src/libCom/osi/epicsStdio.h
index 7a2dc5ade..d05a6912a 100644
--- a/src/libCom/osi/epicsStdio.h
+++ b/src/libCom/osi/epicsStdio.h
@@ -17,18 +17,42 @@
#include "shareLib.h"
#include "compilerDependencies.h"
+#include "epicsTempFile.h"
#ifdef __cplusplus
extern "C" {
#endif
+#ifndef epicsStdioStdStreams
+# undef stdin
+# define stdin epicsGetStdin()
+# undef stdout
+# define stdout epicsGetStdout()
+# undef stderr
+# define stderr epicsGetStderr()
+#endif
+
+/* Make printf, puts and putchar use *our* version of stdout */
+
+#ifdef printf
+# undef printf
+#endif /* printf */
+#define printf epicsStdoutPrintf
+
+#ifdef puts
+# undef puts
+#endif /* puts */
+#define puts epicsStdoutPuts
+
+#ifdef putchar
+# undef putchar
+#endif /* putchar */
+#define putchar epicsStdoutPutchar
+
epicsShareFunc int epicsShareAPI epicsSnprintf(
char *str, size_t size, const char *format, ...) EPICS_PRINTF_STYLE(3,4);
epicsShareFunc int epicsShareAPI epicsVsnprintf(
char *str, size_t size, const char *format, va_list ap);
-epicsShareFunc void epicsShareAPI epicsTempName (
- char * pNameBuf, size_t nameBufLength );
-epicsShareFunc FILE * epicsShareAPI epicsTempFile (void);
/*
* truncate to specified size (we dont use truncate()
diff --git a/src/libCom/osi/epicsStdioRedirect.h b/src/libCom/osi/epicsStdioRedirect.h
index 36edf1dbe..6f99cc9a5 100644
--- a/src/libCom/osi/epicsStdioRedirect.h
+++ b/src/libCom/osi/epicsStdioRedirect.h
@@ -9,41 +9,15 @@
/* epicsStdioRedirect.h */
+/* This file is now obselete, and is likely to be
+ * deleted in a future release of EPICS Base.
+ *
+ * Use the epicsStdio.h header file instead.
+ */
+
#ifndef epicsStdioRedirecth
#define epicsStdioRedirecth
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include
-#undef stdin
-#define stdin epicsGetStdin()
-#undef stdout
-#define stdout epicsGetStdout()
-#undef stderr
-#define stderr epicsGetStderr()
-
-/* Make printf, puts and putchar use *our* version of stdout */
-
-#ifdef printf
-# undef printf
-#endif /* printf */
-#define printf epicsStdoutPrintf
-
-#ifdef puts
-# undef puts
-#endif /* puts */
-#define puts epicsStdoutPuts
-
-#ifdef putchar
-# undef putchar
-#endif /* putchar */
-#define putchar epicsStdoutPutchar
-
-#ifdef __cplusplus
-}
-#endif
-
#endif /* epicsStdioRedirecth */
diff --git a/src/libCom/osi/epicsTempFile.h b/src/libCom/osi/epicsTempFile.h
new file mode 100644
index 000000000..c48e336ec
--- /dev/null
+++ b/src/libCom/osi/epicsTempFile.h
@@ -0,0 +1,30 @@
+/*************************************************************************\
+* Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
+* National Laboratory.
+* Copyright (c) 2002 The Regents of the University of California, as
+* Operator of Los Alamos National Laboratory.
+* EPICS BASE is distributed subject to a Software License Agreement found
+* in file LICENSE that is included with this distribution.
+\*************************************************************************/
+
+/* epicsTempFile.h */
+
+#ifndef INC_epicsTempFile_H
+#define INC_epicsTempFile_H
+
+#include
+
+#include "shareLib.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+epicsShareFunc void epicsShareAPI epicsTempName(char *pbuf, size_t bufLen);
+epicsShareFunc FILE * epicsShareAPI epicsTempFile(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INC_epicsTempFile_H */
diff --git a/src/libCom/osi/epicsTime.cpp b/src/libCom/osi/epicsTime.cpp
index ef6437ffa..4b150ea10 100644
--- a/src/libCom/osi/epicsTime.cpp
+++ b/src/libCom/osi/epicsTime.cpp
@@ -27,7 +27,6 @@
#include // vxWorks 6.0 requires this include
#define epicsExportSharedSymbols
-#include "epicsStdioRedirect.h"
#include "locationException.h"
#include "epicsAssert.h"
#include "epicsVersion.h"
diff --git a/src/libCom/osi/os/Darwin/osdEnv.c b/src/libCom/osi/os/Darwin/osdEnv.c
index 8287f41bd..4d957ad87 100644
--- a/src/libCom/osi/os/Darwin/osdEnv.c
+++ b/src/libCom/osi/os/Darwin/osdEnv.c
@@ -29,7 +29,7 @@
# define environ (*_NSGetEnviron())
#define epicsExportSharedSymbols
-#include
+#include "epicsStdio.h"
#include
#include
#include
diff --git a/src/libCom/osi/os/RTEMS/osdMutex.c b/src/libCom/osi/os/RTEMS/osdMutex.c
index 2706facfe..eb02b86ff 100644
--- a/src/libCom/osi/os/RTEMS/osdMutex.c
+++ b/src/libCom/osi/os/RTEMS/osdMutex.c
@@ -23,7 +23,7 @@
#include
#include
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
#include "epicsMutex.h"
#include "epicsEvent.h"
#include "errlog.h"
diff --git a/src/libCom/osi/os/WIN32/epicsTempFile.cpp b/src/libCom/osi/os/WIN32/epicsTempFile.cpp
index 486535460..7ef99b4fa 100644
--- a/src/libCom/osi/os/WIN32/epicsTempFile.cpp
+++ b/src/libCom/osi/os/WIN32/epicsTempFile.cpp
@@ -20,7 +20,7 @@
#include
#define epicsExportSharedSymbols
-#include "epicsStdio.h"
+#include "epicsTempFile.h"
//
// epicsTempName
diff --git a/src/libCom/osi/os/WIN32/osdMutex.c b/src/libCom/osi/os/WIN32/osdMutex.c
index 63c039eef..6fa1a987e 100644
--- a/src/libCom/osi/os/WIN32/osdMutex.c
+++ b/src/libCom/osi/os/WIN32/osdMutex.c
@@ -45,7 +45,7 @@
#include "shareLib.h"
#include "epicsMutex.h"
#include "epicsAssert.h"
-#include "epicsStdioRedirect.h"
+#include "epicsStdio.h"
typedef struct epicsMutexOSD {
union {
diff --git a/src/libCom/osi/os/default/osdEnv.c b/src/libCom/osi/os/default/osdEnv.c
index c31ab7e09..ff1675fda 100644
--- a/src/libCom/osi/os/default/osdEnv.c
+++ b/src/libCom/osi/os/default/osdEnv.c
@@ -22,7 +22,7 @@
#include
#define epicsExportSharedSymbols
-#include
+#include "epicsStdio.h"
#include
#include
#include
diff --git a/src/libCom/osi/os/iOS/osdEnv.c b/src/libCom/osi/os/iOS/osdEnv.c
index 90561aff3..f55b174a8 100644
--- a/src/libCom/osi/os/iOS/osdEnv.c
+++ b/src/libCom/osi/os/iOS/osdEnv.c
@@ -22,7 +22,7 @@
#include
#define epicsExportSharedSymbols
-#include
+#include "epicsStdio.h"
#include
#include
#include
diff --git a/src/libCom/osi/os/posix/epicsTempFile.cpp b/src/libCom/osi/os/posix/epicsTempFile.cpp
index f662284d5..19b5fb4bc 100644
--- a/src/libCom/osi/os/posix/epicsTempFile.cpp
+++ b/src/libCom/osi/os/posix/epicsTempFile.cpp
@@ -11,7 +11,7 @@
#include
#define epicsExportSharedSymbols
-#include "epicsStdio.h"
+#include "epicsTempFile.h"
extern "C"
epicsShareFunc void epicsShareAPI epicsTempName (
diff --git a/src/libCom/osi/os/vxWorks/osdEnv.c b/src/libCom/osi/os/vxWorks/osdEnv.c
index dd53e4078..e41d57440 100644
--- a/src/libCom/osi/os/vxWorks/osdEnv.c
+++ b/src/libCom/osi/os/vxWorks/osdEnv.c
@@ -23,7 +23,7 @@
#include
#include
-#include
+#include "epicsStdio.h"
#include
#include
diff --git a/src/libCom/test/epicsStdioTest.c b/src/libCom/test/epicsStdioTest.c
index 54fc3a48a..d649aa061 100644
--- a/src/libCom/test/epicsStdioTest.c
+++ b/src/libCom/test/epicsStdioTest.c
@@ -21,7 +21,6 @@
#include
#include "epicsStdio.h"
-#include "epicsStdioRedirect.h"
#include "epicsUnitTest.h"
#include "testMain.h"
diff --git a/src/libCom/yacc/antelope.c b/src/libCom/yacc/antelope.c
index 48983b587..65d360a58 100644
--- a/src/libCom/yacc/antelope.c
+++ b/src/libCom/yacc/antelope.c
@@ -9,7 +9,7 @@
#include
#include "defs.h"
#define epicsExportSharedSymbols
-#include "epicsStdio.h"
+#include "epicsTempFile.h"
#undef epicsExportSharedSymbols
char dflag;