get rid of epicsShareAPI; epicsStrtok_r is new; clean up epicsStdlib

This commit is contained in:
Marty Kraimer
2005-12-12 19:54:48 +00:00
parent bd14b17c94
commit 3499fbe51d
12 changed files with 105 additions and 76 deletions
+1 -1
View File
@@ -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; };
+1 -1
View File
@@ -17,7 +17,7 @@
extern "C" {
#endif
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size);
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size);
#ifdef __cplusplus
}
+3 -3
View File
@@ -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");
+3 -3
View File
@@ -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
}
+1 -1
View File
@@ -17,7 +17,7 @@
#include "epicsConvert.h"
#include "cantProceed.h"
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value)
epicsShareFunc float epicsConvertDoubleToFloat(double value)
{
float rtnvalue;
+1 -1
View File
@@ -15,7 +15,7 @@
extern "C" {
#endif
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value);
epicsShareFunc float epicsConvertDoubleToFloat(double value);
#ifdef __cplusplus
}
-41
View File
@@ -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;
+3 -2
View File
@@ -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>
+54 -8
View File
@@ -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);
}
}
+10 -8
View File
@@ -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
}
+1 -1
View File
@@ -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;