get rid of epicsShareAPI; epicsStrtok_r is new; clean up epicsStdlib
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
#define epicsExportSharedSymbols
|
||||
#include "adjustment.h"
|
||||
|
||||
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size)
|
||||
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size)
|
||||
{
|
||||
int align_size, adjust;
|
||||
struct test_long_word { char c; long lw; };
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size);
|
||||
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "cantProceed.h"
|
||||
#include "epicsThread.h"
|
||||
|
||||
epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size, const char *errorMessage)
|
||||
epicsShareFunc void * callocMustSucceed(size_t count, size_t size, const char *errorMessage)
|
||||
{
|
||||
void *mem = calloc(count,size);
|
||||
if(mem==0) {
|
||||
@@ -33,7 +33,7 @@ epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size,
|
||||
return(mem);
|
||||
}
|
||||
|
||||
epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *errorMessage)
|
||||
epicsShareFunc void * mallocMustSucceed(size_t size, const char *errorMessage)
|
||||
{
|
||||
void *mem = malloc(size);
|
||||
if(mem==0) {
|
||||
@@ -44,7 +44,7 @@ epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *e
|
||||
return(mem);
|
||||
}
|
||||
|
||||
epicsShareFunc void epicsShareAPI cantProceed(const char *errorMessage)
|
||||
epicsShareFunc void cantProceed(const char *errorMessage)
|
||||
{
|
||||
if(errorMessage) errlogPrintf("fatal error: %s\n",errorMessage);
|
||||
else errlogPrintf("fatal error\n");
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc void epicsShareAPI cantProceed(const char *errorMessage);
|
||||
epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size, const char *errorMessage);
|
||||
epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *errorMessage);
|
||||
epicsShareFunc void cantProceed(const char *errorMessage);
|
||||
epicsShareFunc void * callocMustSucceed(size_t count, size_t size, const char *errorMessage);
|
||||
epicsShareFunc void * mallocMustSucceed(size_t size, const char *errorMessage);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "epicsConvert.h"
|
||||
#include "cantProceed.h"
|
||||
|
||||
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value)
|
||||
epicsShareFunc float epicsConvertDoubleToFloat(double value)
|
||||
{
|
||||
float rtnvalue;
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value);
|
||||
epicsShareFunc float epicsConvertDoubleToFloat(double value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, 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 Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*epicsScanReal.c*/
|
||||
/*Author: Eric Norum */
|
||||
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include <epicsStdlib.h>
|
||||
#include "epicsStdio.h"
|
||||
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsScanDouble(const char *str, double *dest)
|
||||
{
|
||||
char *endp;
|
||||
double dtmp;
|
||||
|
||||
dtmp = epicsStrtod(str, &endp);
|
||||
if (endp == str)
|
||||
return 0;
|
||||
*dest = dtmp;
|
||||
return 1;
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsScanFloat(const char *str, float *dest)
|
||||
{
|
||||
char *endp;
|
||||
double dtmp;
|
||||
|
||||
dtmp = epicsStrtod(str, &endp);
|
||||
if (endp == str)
|
||||
return 0;
|
||||
*dest = dtmp;
|
||||
return 1;
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*epicsStrtod.c*/
|
||||
/*epicsStdlib.c*/
|
||||
/*Author: Eric Norum */
|
||||
|
||||
#include <ctype.h>
|
||||
@@ -15,14 +15,35 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsString.h"
|
||||
#include "epicsStdlib.h"
|
||||
#include "epicsString.h"
|
||||
|
||||
#ifdef epicsStrtod
|
||||
# undef epicsStrtod
|
||||
#endif
|
||||
|
||||
epicsShareFunc double epicsShareAPI epicsStrtod(
|
||||
epicsShareFunc int epicsScanDouble(const char *str, double *dest)
|
||||
{
|
||||
char *endp;
|
||||
double dtmp;
|
||||
|
||||
dtmp = epicsStrtod(str, &endp);
|
||||
if (endp == str)
|
||||
return 0;
|
||||
*dest = dtmp;
|
||||
return 1;
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsScanFloat(const char *str, float *dest)
|
||||
{
|
||||
char *endp;
|
||||
double dtmp;
|
||||
|
||||
dtmp = epicsStrtod(str, &endp);
|
||||
if (endp == str)
|
||||
return 0;
|
||||
*dest = dtmp;
|
||||
return 1;
|
||||
}
|
||||
|
||||
epicsShareFunc double epicsStrtod(
|
||||
const char *str, char **endp)
|
||||
{
|
||||
const char *cp = str;
|
||||
@@ -16,8 +16,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsScanDouble(const char *str, double *dest);
|
||||
epicsShareFunc int epicsShareAPI epicsScanFloat(const char *str, float *dest);
|
||||
epicsShareFunc int epicsScanDouble(const char *str, double *dest);
|
||||
epicsShareFunc int epicsScanFloat(const char *str, float *dest);
|
||||
epicsShareFunc double epicsStrtod(const char *str, char **endp);
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <osdStrtod.h>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*epicsString.c*/
|
||||
/*Authors: Jun-ichi Odagiri and Marty Kraimer*/
|
||||
/*Authors: Jun-ichi Odagiri, Marty Kraimer, Eric Norum, Mark Rivers*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "cantProceed.h"
|
||||
#include "epicsString.h"
|
||||
|
||||
epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
|
||||
epicsShareFunc int dbTranslateEscape(char *to, const char *from)
|
||||
{
|
||||
const char *pfrom = from;
|
||||
char *pto = to;
|
||||
@@ -88,7 +88,7 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
|
||||
return(nto);
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
|
||||
epicsShareFunc int epicsStrCaseCmp(
|
||||
const char *s1, const char *s2)
|
||||
{
|
||||
int nexts1,nexts2;
|
||||
@@ -106,7 +106,7 @@ epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
|
||||
}
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(
|
||||
epicsShareFunc int epicsStrnCaseCmp(
|
||||
const char *s1, const char *s2, int n)
|
||||
{
|
||||
size_t ind = 0;
|
||||
@@ -127,12 +127,12 @@ epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(
|
||||
return(0);
|
||||
}
|
||||
|
||||
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s)
|
||||
epicsShareFunc char * epicsStrDup(const char *s)
|
||||
{
|
||||
return strcpy(mallocMustSucceed(strlen(s)+1,"epicsStrDup"),s);
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
|
||||
epicsShareFunc int epicsStrPrintEscaped(
|
||||
FILE *fp, const char *s, int n)
|
||||
{
|
||||
int nout=0;
|
||||
@@ -162,7 +162,7 @@ epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
|
||||
return nout;
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
|
||||
epicsShareFunc int epicsStrSnPrintEscaped(
|
||||
char *outbuf, int outsize, const char *inbuf, int inlen)
|
||||
{
|
||||
int maxout = outsize;
|
||||
@@ -205,7 +205,7 @@ epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
|
||||
return nout;
|
||||
}
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
|
||||
epicsShareFunc int epicsStrGlobMatch(
|
||||
const char *str, const char *pattern)
|
||||
{
|
||||
const char *cp=NULL, *mp=NULL;
|
||||
@@ -236,3 +236,49 @@ epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
|
||||
pattern++;
|
||||
return !*pattern;
|
||||
}
|
||||
|
||||
epicsShareFunc char * epicsStrtok_r(char *s, const char *delim, char **lasts)
|
||||
{
|
||||
char *spanp;
|
||||
int c, sc;
|
||||
char *tok;
|
||||
|
||||
|
||||
if (s == NULL && (s = *lasts) == NULL)
|
||||
return (NULL);
|
||||
|
||||
/*
|
||||
* Skip (span) leading delimiters (s += strspn(s, delim), sort of).
|
||||
*/
|
||||
cont:
|
||||
c = *s++;
|
||||
for (spanp = (char *)delim; (sc = *spanp++) != 0;) {
|
||||
if (c == sc)
|
||||
goto cont;
|
||||
}
|
||||
|
||||
if (c == 0) { /* no non-delimiter characters */
|
||||
*lasts = NULL;
|
||||
return (NULL);
|
||||
}
|
||||
tok = s - 1;
|
||||
|
||||
/*
|
||||
* Scan token (scan for delimiters: s += strcspn(s, delim), sort of).
|
||||
* Note that delim must have one NUL; we stop if we see that, too.
|
||||
*/
|
||||
for (;;) {
|
||||
c = *s++;
|
||||
spanp = (char *)delim;
|
||||
do {
|
||||
if ((sc = *spanp++) == c) {
|
||||
if (c == 0)
|
||||
s = NULL;
|
||||
else
|
||||
s[-1] = 0;
|
||||
*lasts = s;
|
||||
return (tok);
|
||||
}
|
||||
} while (sc != 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*epicsString.h*/
|
||||
/*Authors: Jun-ichi Odagiri and Marty Kraimer*/
|
||||
/*Authors: Jun-ichi Odagiri, Marty Kraimer, Eric Norum, Mark Rivers*/
|
||||
|
||||
/* int dbTranslateEscape(char *s,const char *ct);
|
||||
*
|
||||
@@ -22,16 +22,18 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc int epicsShareAPI dbTranslateEscape(char *s,const char *ct);
|
||||
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(const char *s1,const char *s2);
|
||||
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(const char *s1,const char *s2, int n);
|
||||
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s);
|
||||
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
|
||||
epicsShareFunc int dbTranslateEscape(char *s,const char *ct);
|
||||
epicsShareFunc int epicsStrCaseCmp(const char *s1,const char *s2);
|
||||
epicsShareFunc int epicsStrnCaseCmp(const char *s1,const char *s2, int n);
|
||||
epicsShareFunc char * epicsStrDup(const char *s);
|
||||
epicsShareFunc int epicsStrPrintEscaped(
|
||||
FILE *fp, const char *s, int n);
|
||||
epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
|
||||
epicsShareFunc int epicsStrSnPrintEscaped(
|
||||
char *outbuf, int outsize, const char *inbuf, int inlen);
|
||||
epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
|
||||
epicsShareFunc int epicsStrGlobMatch(
|
||||
const char *str, const char *pattern);
|
||||
epicsShareFunc char * epicsStrtok_r(
|
||||
char *s, const char *delim, char **lasts);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* truncate to specified size (we dont use truncate()
|
||||
* because it is not portable)
|
||||
*/
|
||||
epicsShareFunc enum TF_RETURN epicsShareAPI truncateFile (const char *pFileName, unsigned size)
|
||||
epicsShareFunc enum TF_RETURN truncateFile (const char *pFileName, unsigned size)
|
||||
{
|
||||
char tmpName[256>L_tmpnam?256:L_tmpnam];
|
||||
long filePos;
|
||||
|
||||
Reference in New Issue
Block a user