(to && from) ?
StrCat(to, from) : to;
94 return(to && from) ?
StrNCat(to, from,
max) : to;
99 return(
a&&
b) ?
StrCmp(
a,
b) : (
a? 1 : (
b? -1 : 0));
165 while(ch !=
'\0'&& strchr (str2, ch) !=
NULL) {
174 while(ch !=
'\0'&& strchr (str2, ch) ==
NULL) {
226 if(
a==
b)
return0;
248 if(
a==
b)
return0;
285 if(
a==
b)
return0;
309 if(
a==
b)
return0;
366 while(*from !=
'\0')
379 if((
unsigned char)(*
str++) >
' ')
402 while(ch !=
'\0'&& ch <=
' ') {
406 while(ch !=
'\0') {
416 while(ch !=
'\0') {
419}
else if(dst ==
NULL) {
444 while(ch !=
'\0'&& ch <=
' ') {
448 while(ch !=
'\0') {
454 if(ch !=
'\0'&& ch <
' ') {
458 while(ch !=
'\0'&&
last<=
' '&& ch <=
' ') {
467 while(ch !=
'\0') {
470}
else if(dst ==
NULL) {
494 for(u = 0; u <
DIM(cmap); ++u)
496 while(*blist !=
'\0')
502 while((c = *bs++) !=
'\0')
563 if(str2 ==
NULL)
return0;
566 if(str2 ==
NULL)
return-1;
570 if(caseInsensitive) {
575 while(
ch1!=
'\0'&&
ch2!=
'\0') {
581}
else if(len1 < len2) {
596 if(caseInsensitive) {
615 if(caseInsensitive) {
623 if(
ch2==
'\0')
return0;
626 if(
ch2==
'\0')
return-1;
658 else if(str2 ==
NULL)
661 while((*str1 >=
' ') && (*str2 >=
' ') && (
TO_LOWER(*str1) ==
TO_LOWER(*str2)))
668 if((
ch1<
' ') && (
ch2<
' '))
670 else if(
ch1<
' ')
672 else if(
ch2<
' ')
708 if(sub ==
NULL|| sub [0] ==
'\0')
return FALSE;
712 for(ch = 0; ch < 256; ch++) {
715 for(j = 0; j < (
int)(subLen - 1); j++) {
716ch = (
int) (caseCounts ? sub [j] :
TO_UPPER(sub [j]));
717 if(ch >= 0 && ch <= 255) {
718 data->d [ch] = (
int)(subLen - j - 1);
722 data->subLen = subLen;
723 data->caseCounts = caseCounts;
749subLen =
data->subLen;
750 if(strLen < subLen)
return NULL;
752caseCounts =
data->caseCounts;
754 if(sub ==
NULL|| sub [0] ==
'\0')
return NULL;
764(caseCounts ? sub [j] :
TO_UPPER(sub [j])) ==
768 if(ch >= 0 && ch <= 255) {
774}
while(j >= 0 &&
i<= (
int) strLen);
796 if(sub !=
NULL&& sub [0] !=
'\0'&&
str!=
NULL&&
str[0] !=
'\0') {
799 if(subLen <= strLen) {
800 for(ch = 0; ch < 256; ch++) {
801d [ch] = (
int)subLen;
803 for(j = 0; j < (
int)(subLen - 1); j++) {
804ch = (
int) (caseCounts ? sub [j] :
TO_UPPER(sub [j]));
805 if(ch >= 0 && ch <= 255) {
806d [ch] = subLen - j - 1;
817(caseCounts ? sub [j] :
TO_UPPER(sub [j])) ==
821 if(ch >= 0 && ch <= 255) {
827}
while(j >= 0 &&
i<= (
int)strLen);
856 for(
i= 0;
i< 8;
i++) {
870 for(
i= 7;
i>= 0;
i--) {
881 const char*s, *save;
900}
else if(*s ==
'+') {
910 for(c = *s; c; c = *++s) {
915 if(
result> limdiv || (
result== limdiv && c > limoff)) {
961 if(!
str|| str_size < 2)
964 for(
i=
sizeof(
buf) - 1;
i> 0;
i--) {
970 if(!
i|| (j =
sizeof(
buf) -
i) >= str_size)
990 if(!
str|| !str_size) {
1013 while(ch !=
'\0') {
1032 while(ch !=
'\0') {
1051 while(ch !=
'\0') {
1070 while(ch !=
'\0') {
1097 if((to ==
NULL) || (from ==
NULL) || (buflen == 0)) {
1104 while((*from !=
'\0') && (buflen))
1107from++; to++; buflen--;
1110 if(
len&& (*from !=
'\0'))
1124*buflen -= diff; *to += diff;
1150 if((to ==
NULL) || (from ==
NULL) || (buflen == 0)) {
1156buflen -= diff; to += diff;
1159buflen -= diff; to += diff;
1167 #define NEWLINE '\n' 1176 while( *Start && ( Start < Stop ) )
1193 while( *Start && ( Start < Stop ) )
1194*DestPtr++ = *Start++;
1212 while(*theString && ( !
isspace(*theString) ))
1221 while(*theString && ( *theString ==
Char) )
1231 while(*theString && ( *theString !=
Char) )
1241 while(*theString && ( *theString !=
Char) )
1245 return(theString+1);
1254 char*FindPtr,*theStringPtr;
1259theStringPtr = theString;
1260 while(*FindPtr && ( *FindPtr == *theStringPtr))
1266 if(*FindPtr ==
'\0')
1280 char*FindPtr,*theStringPtr;
1285theStringPtr = theString;
1286 while(*FindPtr && (
toupper(*FindPtr) ==
toupper(*theStringPtr)))
1292 if(*FindPtr ==
'\0')
1334CharSetPtr = CharSet;
1335 while( *CharSetPtr && *theString != *CharSetPtr )
1337 if( ! *CharSetPtr )
1351CharSetPtr = CharSet;
1352 while( *CharSetPtr && (*theString != *CharSetPtr) )
1368 while( *theString !=
NULLB)
1370 if( *theString == Find )
1372*theString = Replace;
1388 while( *theString !=
NULLB)
1391 while( *FindPtr !=
NULLB)
1393 if(*theString == *FindPtr )
1395*theString = Replace;
1414 Nlm_CharPtrFindPtr, ComparePtr, StringPtr, NewString, NewStringPtr;
1418 if(*Find ==
NULLB) {
1430NewStringPtr = NewString;
1431StringPtr = theString;
1433 while(*StringPtr) {
1437ComparePtr = StringPtr;
1438 while( *FindPtr && (*FindPtr == *ComparePtr) ) {
1444 if( *FindPtr ==
NULLB) {
1445NewStringPtr =
StringMove(NewStringPtr, Replace);
1446StringPtr = ComparePtr;
1450*NewStringPtr++ = *StringPtr++;
1453*NewStringPtr =
NULLB;
1455 if(MaxLength <= 0) {
1456MaxLength = (
Nlm_Int4)strlen(theString) + 1;
1460 if((
Nlm_Int4)strlen(NewString) >= MaxLength - 1) {
1461NewString[MaxLength-1] =
NULLB;
1475 while(*theString !=
NULLB)
1489 if(*theString++ ==
Char)
1529 if(*theString == *SetPtr)
1573 while( *LinePtr && !
isspace(*LinePtr) )
1574*
Line++ = *LinePtr++;
1576HasNewLine =
FALSE;
1600 while(*This && (*This == *That) )
1620 while((NumChars > 0) && *This && (*This == *That) )
1628 if( NumChars && (*This || *That) )
1638 if((
Nlm_Int4)strlen(theString) >= Length - 1)
1639theString [Length-1] =
NULLB;
1648 StrNCpy(NewString, theString, (
size_t)(Length - 1));
1649NewString[Length-1] =
NULLB;
1682 if(*StringPtr != Delete)
1683*theString++ = *StringPtr++;
1688*theString =
NULLB;
1704 for(s =
str; *s; s++)
1707 else if(*s ==
'\t'||
IS_PRINT(*s))
1712 for(s =
str; *s; s++)
1713 if(*s ==
'\n'|| *s ==
'\t'||
IS_PRINT(*s))
1723 for(s =
str, new_s = new_str; *s; s++)
1729 else if(*s ==
'\t'||
IS_PRINT(*s))
1734 for(s =
str, new_s = new_str; *s; s++)
1735 if(*s ==
'\n'|| *s ==
'\t'||
IS_PRINT(*s))
1748 #define MAX_NO_DASH 2 1759 for( ;
n--; src++)
1813 if(
ch1!=
'.'&&
ch1!=
'?'&&
ch1!=
'!')
1849s - line > 1 && *(s-1) ==
'-'&&
IS_ALPHA(*(s-2)))
1886 for(sb = &
str[
len-1];
1903 for(s = &
str[
len]; *s !=
'\0'&&
IS_ALPHA(*s); s++, n_tail++)
continue;
1904 for(s = &
str[
len-1];
IS_ALPHA(*s); s--, n_lead++)
continue;
1915 return(sb -
str+ 1);
1920 return(s -
str+ n_lead + 1);
1946 if(
len<= str_len) {
1951n_space =
len- str_len;
1971 for( ;
i--; _str++)
1976 if( !prev_space ) {
1989 size_tn_div = n_space / n_gap;
1990 size_tn_mod = n_space % n_gap;
1993 for(_str =
str; *_str; )
1999 size_tn_add = n_div;
2008 for(_str++;
IS_WHITESP(*_str); _str++)
continue;
2034 #ifdef TEST_TEXT_FMT 2045FILE *logfile = Nlm_FileOpen(
"stdout",
"w");
2049fprintf(logfile,
"Usage: %s <file_name>\n", argv[0]);
2053 fp= Nlm_FileOpen(argv[1],
"rb");
2055fprintf(logfile,
"Cannot open file: \"%s\"\n", argv[1]);
2059n_read = FileRead(x_str, 1,
sizeof(x_str) - 1,
fp);
2060 if(n_read < 2 * MAX_COL) {
2061fprintf(logfile,
"Too few bytes read from \"%s\": %d\n", argv[1], n_read);
2065 _ASSERT( n_read <
sizeof(x_str) );
2066x_str[n_read] =
'\0';
2069 size_tmax_col = MAX_COL - 1;
2076fprintf(logfile,
"No non-space symbols in \"%s\"\n", argv[1]);
2080 while(*
str!=
'\0')
2090 _ASSERT( (max_col > 0 &&
str&& *
str) == (n_print > 0) );
2091 _ASSERT( n_print <= max_col );
2096 _ASSERT( dash == 0 || n_print > 1 );
2098s[--n_print] =
'-';
2106fprintf(logfile,
"|%s|\n", ruled_str);
2112 if(max_col == 0 || max_col == MAX_COL)
2126Nlm_FileClose( logfile );
2127Nlm_FileClose(
fp);
2133 #ifdef TEST_INT8_CONVERSION 2144printf(
"0 = %s\n", s);
2147printf(
"1 = %s\n", s);
2150printf(
"1222222 = %s\n", s);
2153printf(
"-15 = %s\n", s);
2156printf(
"-15555555 = %s\n", s);
2159printf(
"INT8_MAX = %s\n", s);
2162printf(
"INT8_MIN = %s\n", s);
2165printf(
"UINT8_MAX = %s\n", s);
2168printf(
"UINT8_MAX = %s\n", s);
2170strcpy(
buffer,
"9223372036854775807");
2177printf(
"INT8_MAX input Ok\n");
2181printf(
"INT8_MAX+1 = %s\n", s);
2183strcpy(
buffer,
"-9223372036854775808");
2190printf(
"INT8_MIN input Ok\n");
2194printf(
"INT8_MIN-1 = %s\n", s);
2196strcpy(
buffer,
"18446744073709551615");
2203printf(
"UINT8_MAX input Ok\n");
2207printf(
"UINT8_MAX+1 = %s\n", s);
2209strcpy(
buffer,
"1234567890abcdef0123546");
2215printf(
"Out of %s only %.*s was accepted as input for Int8 %s\n",
2218strcpy(
buffer,
"-987654321234567890abcdef0123546");
2224printf(
"Out of %s only %.*s was accepted as input for Int8 %s\n",
2227strcpy(
buffer,
"987654321234567890abcdef0123546");
2233printf(
"Out of %s only %.*s was accepted as input for Uint8 %s\n",
2236strcpy(
buffer,
"-987654321234567890abcdef0123546");
2239printf(
"Conversion of %s (negative) to Uint8 caused error\n",
buffer);
2241strcpy(
buffer,
"9223372036854775808");
2244printf(
"Conversion of %s (INT8_MAX + 1) to Int8 caused error\n",
buffer);
2246strcpy(
buffer,
"-9223372036854775809");
2249printf(
"Conversion of %s (INT8_MIN - 1) to Int8 caused error\n",
buffer);
2251strcpy(
buffer,
"18446744073709551616");
2254printf(
"Conversion of %s (UINT8_MAX + 1) to Uint8 caused error\n",
buffer);
2256printf(
"All tests succeeded\n");
ncbi::TMaskedQueryRegions mask
static Nlm_CharPtr Nlm_FindSubString(const char FAR *str, const char FAR *sub, Nlm_Boolean caseCounts)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringCat(char FAR *to, const char FAR *from)
NLM_EXTERN int LIBCALL Nlm_StrNIPCmp(const char FAR *a, const char FAR *b, size_t max)
NLM_EXTERN void LIBCALL Nlm_LabelCopyNext(Nlm_CharPtr PNTR to, Nlm_CharPtr from, Nlm_Uint4 PNTR buflen)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringPrintable(const Nlm_Char PNTR str, Nlm_Boolean rn_eol)
NLM_EXTERN Nlm_Boolean Nlm_StringIsAllPunctuation(Nlm_CharPtr str)
NLM_EXTERN int LIBCALL Nlm_NaturalStringICmp(Nlm_CharPtr str1, Nlm_CharPtr str2)
NLM_EXTERN char *LIBCALL Nlm_StrLower(char *string)
NLM_EXTERN void LIBCALL TruncateString(char FAR *theString, Nlm_Int4 Length)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringTokMT(char FAR *str1, const char FAR *str2, char FAR **tmp)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipToChar(char FAR *theString, char Char)
NLM_EXTERN Nlm_Int4 LIBCALL BreakString(char FAR *theString, Nlm_CharPtr PNTR Words)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringNCpy_0(char FAR *to, const char FAR *from, size_t max)
static char * s_Uint8ToString(Nlm_Uint8 value, char *str, size_t str_size)
NLM_EXTERN int LIBCALL Nlm_StrNICmp(const char FAR *a, const char FAR *b, size_t max)
NLM_EXTERN size_t LIBCALL Nlm_StringCnt(const char FAR *str, const char FAR *x_list)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringSaveNoNull(const char FAR *from)
NLM_EXTERN Nlm_Boolean LIBCALL StringSubString(char FAR *theString, char FAR *Find, char FAR *Replace, Nlm_Int4 MaxLength)
NLM_EXTERN Nlm_CharPtr LIBCALL TruncateStringCopy(char FAR *theString, Nlm_Int4 Length)
NLM_EXTERN Nlm_Boolean Nlm_StringIsAllUpperCase(Nlm_CharPtr str)
NLM_EXTERN Nlm_CharPtr LIBCALL NoCaseSkipPastString(char FAR *theString, char FAR *Find)
NLM_EXTERN Nlm_Uint4 LIBCALL Nlm_LabelCopyExtra(Nlm_CharPtr to, Nlm_CharPtr from, Nlm_Uint4 buflen, Nlm_CharPtr prefix, Nlm_CharPtr suffix)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_rule_line(const Nlm_Char FAR PNTR str, size_t len, enumRuleLine method)
NLM_EXTERN int LIBCALL Nlm_StrIPCmp(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringStr(const char FAR *str1, const char FAR *str2)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_text2stream(const Nlm_Char FAR PNTR str)
NLM_EXTERN Nlm_Int4 LIBCALL CountChar(char FAR *theString, char Char)
NLM_EXTERN Nlm_Int4 LIBCALL CountSet(char FAR *theString, char FAR *Set)
NLM_EXTERN Nlm_Boolean LIBCALL Nlm_StringHasNoText(const char FAR *str)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringMove(char FAR *to, const char FAR *from)
NLM_EXTERN Nlm_CharPtr LIBCALL NoCaseSkipToString(char FAR *theString, char FAR *Find)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipPastChar(char FAR *theString, char Char)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipToSpace(char FAR *theString)
NLM_EXTERN size_t LIBCALL Nlm_StrCnt(const char FAR *s, const char FAR *x_list)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipSet(char FAR *theString, char FAR *CharSet)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringSave(const char FAR *from)
NLM_EXTERN Nlm_Boolean Nlm_StringIsAllLowerCase(Nlm_CharPtr str)
NLM_EXTERN Nlm_Boolean Nlm_StringIsAllDigits(Nlm_CharPtr str)
NLM_EXTERN size_t LIBCALL Nlm_StringSpn(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_CharPtr LIBCALL StrCpyPtr(char FAR *Dest, char FAR *Start, char FAR *Stop)
NLM_EXTERN void LIBCALL DeleteChar(char FAR *theString, char Delete)
NLM_EXTERN Nlm_Boolean LIBCALL StringSub(char FAR *theString, char Find, char Replace)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringRChr(const char FAR *str, int chr)
NLM_EXTERN Nlm_Uint4 LIBCALL Nlm_LabelCopy(Nlm_CharPtr to, Nlm_CharPtr from, Nlm_Uint4 buflen)
NLM_EXTERN void LIBCALL CleanSpaces(char FAR *Line)
NLM_EXTERN Nlm_Boolean LIBCALL StringSubSet(char FAR *theString, char FAR *FindSet, char Replace)
NLM_EXTERN int LIBCALL Nlm_NaturalStringCmp(Nlm_CharPtr str1, Nlm_CharPtr str2)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringCpy(char FAR *to, const char FAR *from)
NLM_EXTERN size_t LIBCALL Nlm_StringCSpn(const char FAR *a, const char FAR *b)
NLM_EXTERN int LIBCALL Nlm_StrICmp(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_Int4 LIBCALL CountStrings(char FAR *theString, char FAR *Find)
NLM_EXTERN char *LIBCALL Nlm_StringUpper(char *string)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringTok(char FAR *str1, const char FAR *str2)
NLM_EXTERN Nlm_CharPtr LIBCALL StrDupPtr(char FAR *Start, char FAR *Stop)
NLM_EXTERN Nlm_CharPtr LIBCALL StringEnd(char FAR *theString)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringChr(const char FAR *str, int chr)
NLM_EXTERN char *LIBCALL Nlm_StrUpper(char *string)
NLM_EXTERN int LIBCALL Nlm_StringNCmp(const char FAR *a, const char FAR *b, size_t max)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_CompressSpaces(Nlm_CharPtr str)
static Nlm_Uint8 s_StringToUint8(const char *str, const char **endptr, int *sgn)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringNCat(char FAR *to, const char FAR *from, size_t max)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringSearch(const char FAR *str, const char FAR *sub)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringPBrk(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StrSave(const char FAR *from)
NLM_EXTERN Nlm_CharPtr LIBCALL StripSpaces(char FAR *Line)
NLM_EXTERN int LIBCALL Nlm_StringICmp(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_Int4 LIBCALL StringDiff(char FAR *This, char FAR *That)
NLM_EXTERN Nlm_Int4 LIBCALL StringDiffNum(char FAR *This, char FAR *That, Nlm_Int4 NumChars)
static int can_break(Nlm_Char ch0, Nlm_Char ch1)
NLM_EXTERN int LIBCALL Nlm_StringCmp(const char FAR *a, const char FAR *b)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipToSet(char FAR *theString, char FAR *CharSet)
NLM_EXTERN char *LIBCALL Nlm_StringLower(char *string)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringISearch(const char FAR *str, const char FAR *sub)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StrMove(char FAR *to, const char FAR *from)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_TrimSpacesAroundString(Nlm_CharPtr str)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipSpaces(char FAR *Line)
static int LIBCALL Nlm_NaturalStringCmpEx(Nlm_CharPtr str1, Nlm_CharPtr str2, Nlm_Boolean caseInsensitive)
static int Nlm_DigitRunLength(Nlm_CharPtr str)
static void x_memcpy(Nlm_Char FAR PNTR targ, const Nlm_Char FAR PNTR src, size_t n)
NLM_EXTERN size_t Nlm_stream2text(const Nlm_Char FAR PNTR str, size_t max_col, int PNTR dash)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipToString(char FAR *theString, char FAR *Find)
static BEGIN_CTRANSITION_SCOPE Nlm_CharPtr NEAR Nlm_ClearDestString(Nlm_CharPtr to, size_t max)
NLM_EXTERN Nlm_Boolean LIBCALL Nlm_StringDoesHaveText(const char FAR *str)
NLM_EXTERN int LIBCALL Nlm_StringNICmp(const char FAR *a, const char FAR *b, size_t max)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipPastString(char FAR *theString, char FAR *Find)
NLM_EXTERN Nlm_CharPtr LIBCALL Nlm_StringNCpy(char FAR *to, const char FAR *from, size_t max)
NLM_EXTERN size_t LIBCALL Nlm_StringLen(const char *str)
NLM_EXTERN Nlm_CharPtr LIBCALL SkipChar(char FAR *theString, char Char)
NLM_EXTERN Nlm_Int2 LIBCALL Nlm_MeshStringICmp(const char FAR *str1, const char FAR *str2)
void MemSet(void *p, int n, size_t sz)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
static const char * str(char *buf, int n)
char Char
Alias for char.
unsigned int
A callback function used to compare two keys in a database.
const GenericPointer< typename T::ValueType > T2 value
int strcmp(const char *str1, const char *str2)
static const BitmapCharRec ch1
static const BitmapCharRec ch0
static const BitmapCharRec ch2
#define DIM(A)
dimension of an array.
#define TRUE
bool replacment for C indicating true.
#define FALSE
bool replacment for C indicating false.
#define NULLB
terminating byte of a char* string.
#define MAX(a, b)
returns larger of a and b.
static const char * Words[]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4