Skip to content
Extraits de code Groupes Projets
Valider 985b5f46 rédigé par Etienne BRATEAU's avatar Etienne BRATEAU
Parcourir les fichiers

strings: clean warnings and use size_t for length

parent e0683c38
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
#ifndef P2C_STRING_H
#define P2C_STRING_H
void strsafeappend(char *s, char *s2);
#include <p2c/p2c.h>
/**
* Append the second string to the first.
*
* DEPRECATED : use strcat instead
*/
void strsafeappend(char *s, char *s2) DEPRECATED;
//void strappendc(char *s, int ch);
char *strupper (char *result, char *s);
char *strlower (char *result, char *s);
char *strpart (char *result, char *s, long fist, long last);
char *strlast (char *result, char *s, long num);
char *strlast (char *result, char *s, size_t num);
char *strljust (char *result, char *s, long wid);
char *strrjust (char *result, char *s, long wid);
char *strcjust (char *result, char *s, long wid);
......@@ -14,27 +23,27 @@ int strbegins (char *s1, char *s2);
int strends (char *s1, char *s2);
int strcibegins (char *s1, char *s2);
int strciends (char *s1, char *s2);
long strsubcmp (long n, char *s1, long i1, char *s2, long i2);
int strcisubcmp (long n, char *s1, long i1, char *s2, long i2);
void strsubst (char *repl, char *s, long index, long size);
int strsubcmp (size_t n, char *s1, size_t i1, char *s2, size_t i2);
int strcisubcmp (size_t n, char *s1, size_t i1, char *s2, size_t i2);
void strsubst (char *repl, char *s, size_t index, size_t size);
char *strint (char *result, long i);
char *strint2 (char *result, long i, long w);
char *streal (char *result, double r);
char *strchar (char *result, int ch);
long strreadint (char *s);
double strreadreal (char *s);
long strposb (char *s1, char *s2, long i);
long strposc (char *s1, char ch, long i);
long strposcset (char *s1, char *s2, long i);
long strposbcset (char *s1, char *s2, long i);
long strpcipos2 (char *s1, char *s2, long i);
long strpciposb (char *s1, char *s2, long i);
size_t strposb (char *s1, char *s2, ptrdiff_t i);
size_t strposc (char *s1, char ch, ptrdiff_t i);
size_t strposcset (char *s1, char *s2, size_t i);
size_t strposbcset (char *s1, char *s2, size_t i);
size_t strpcipos2 (char *s1, char *s2, size_t i);
size_t strpciposb (char *s1, char *s2, size_t i);
int strpcontains (char *s1, char *s2);
int strsubset (char *s1, char *s2);
int strcommon (char *s1, char *s2);
long strlenv (char *s);
size_t strlenv (char *s);
char *strhex (char * Result, long i, long w);
char *strbinary (char *Result, long i, long w);
char *strbinary (char *Result, long i, size_t w);
char *stadate (char *Result, char *opts);
void strword (char *s, char *s2);
void strword2 (char *s, char *s2);
......
......@@ -10,7 +10,7 @@ void strsafeappend (char *s, char *s2)
s += 255;
while(cp < s && *s2)
*cp++ = *s2++;
*cp = 0;
*cp = '\0';
}
char *strupper(char *result, char *s)
......@@ -18,7 +18,7 @@ char *strupper(char *result, char *s)
char *d = result;
while (*s)
*d++ = toupper(*s++);
*d = 0;
*d = '\0';
return result;
}
......@@ -27,7 +27,7 @@ char *strlower(char *result, char *s)
char *d = result;
while (*s)
*d++ = tolower(*s++);
*d = 0;
*d = '\0';
return result;
}
......@@ -36,34 +36,42 @@ char *strpart(char *result, char *s, long first, long last)
return strsub(result, s, first, last-first+1);
}
char *strlast(char *result, char *s, long num)
char *strlast(char *result, char *s, size_t num)
{
char *cp = s + strlen(s) - num;
ptrdiff_t diff = strlen(s) - num;
char *cp = s + diff;
if (cp <= s)
return strcpy(result, s);
else
return strcpy(result, cp);
}
char *strjust(char *result, char *s, long wid)
char *strjust(char *result, char *s, size_t wid)
{
int len = strlen(s);
int wid2;
size_t len = strlen(s);
ptrdiff_t wid2;
char *cp = result;
if (wid > 255)
wid = 255;
wid -= len;
if (wid <=0)
return strcpy(result, s);
wid2 = wid >> 1;
while (--wid2 >= 0)
*cp++ = ' ';
while (*s)
*cp++ = *s++;
wid2 = (wid + 1) >> 1;
while (--wid2 >= 0)
*cp++ = ' ';
*cp = 0;
return result;
}
......@@ -71,7 +79,7 @@ char *strjust(char *result, char *s, long wid)
int strbegins(char *s1, char *s2)
{
while (*s2)
if (*s1++ != *s2++)
if (*s1 == '\0' || *s1++ != *s2++)
return false;
return true;
}
......@@ -95,7 +103,7 @@ int strcibegins(char *s1, char *s2)
int strciends(char *s1, char *s2)
{
int skip = strlen(s1) - strlen(s2);
ptrdiff_t skip = strlen(s1) - strlen(s2);
if (skip < 0)
return 0;
......@@ -112,7 +120,7 @@ int strcicmp(char *s1, char *s2)
{
if(*s1++ != *s2++)
{
if(!s2[-1])
if(s2[-1] == '\0')
return 1;
c1 = toupper(s1[-1]);
c2 = toupper(s2[-1]);
......@@ -125,7 +133,7 @@ int strcicmp(char *s1, char *s2)
return 0;
}
long strsubcmp(long n, char *s1, long i1, char *s2, long i2)
int strsubcmp(size_t n, char *s1, size_t i1, char *s2, size_t i2)
{
if (i1 <= 0) s1 = (char *) "";
if (i2 <= 0) s2 = (char *) "";
......@@ -148,7 +156,7 @@ long strsubcmp(long n, char *s1, long i1, char *s2, long i2)
return strncmp(s1, s2, n);
}
int strcisubcmp(long n, char * s1, long i1, char * s2, long i2)
int strcisubcmp(size_t n, char * s1, size_t i1, char * s2, size_t i2)
{
if (i1 <= 0) s1 = (char *) "";
if (i2 <= 0) s2 = (char *) "";
......@@ -168,7 +176,7 @@ int strcisubcmp(long n, char * s1, long i1, char * s2, long i2)
break;
}
}
while (--n >= 0)
while (n-- > 0)
{
if (toupper(*s1++) != toupper(*s2++))
return 0;
......@@ -176,18 +184,12 @@ int strcisubcmp(long n, char * s1, long i1, char * s2, long i2)
return 1;
}
void strsubst(char *repl, char *s, long index, long size)
void strsubst(char *repl, char *s, size_t index, size_t size)
{
int len = strlen(repl);
size_t len = strlen(repl);
s += index - 1;
if (size < 0)
{
char* cp;
for (cp = s + strlen(s); cp >= s; cp--)
*cp = cp[size];
}
else if (size > 0)
if (size > 0)
{
char *cp;
for (cp = s; (*cp = cp[size]); cp++) ;
......@@ -204,13 +206,14 @@ char *strint2(char *res, long i, long w)
return res;
}
long strposb(char *s1, char *s2, long i)
size_t strposb(char *s1, char *s2, ptrdiff_t i)
{
int len1 = strlen(s1);
int len2 = strlen(s2);
size_t len1 = strlen(s1);
size_t len2 = strlen(s2);
ptrdiff_t diff = len1 - len2;
if (--i > len1 - len2)
i = len1 - len2;
if (--i > diff)
i = diff;
if (i < 0 || !len2)
return 0;
while (i > 0 && strncmp(s1 +i, s2, len2))
......@@ -218,7 +221,7 @@ long strposb(char *s1, char *s2, long i)
return i+1;
}
long strposc (char *s1, char ch, long i)
size_t strposc (char *s1, char ch, ptrdiff_t i)
{
char *cp = s1;
......@@ -233,10 +236,10 @@ long strposc (char *s1, char ch, long i)
return 0;
}
long strcipos2(char *s1, char *s2, long i)
size_t strcipos2(char *s1, char *s2, ptrdiff_t i)
{
char *cp = s1;
int len = strlen(s2);
size_t len = strlen(s2);
if (i <= 0 || ! len)
return 0;
......@@ -249,20 +252,20 @@ long strcipos2(char *s1, char *s2, long i)
return 0;
}
long strciposb(char *s1, char *s2, long i)
size_t strciposb(char *s1, char *s2, ptrdiff_t i)
{
int len = strlen(s1) - strlen(s2);
ptrdiff_t len = strlen(s1) - strlen(s2);
if(--i > len)
i = len;
if (i < 0 || !*s2)
if (!*s2)
return 0;
while (i >= 0 && !! strcibegins(s1 + i, s2))
i--;
return i + 1;
}
long strposcset(char *s1, char *s2, long i)
size_t strposcset(char *s1, char *s2, size_t i)
{
char *cp = s1;
char *cp2;
......@@ -283,19 +286,15 @@ long strposcset(char *s1, char *s2, long i)
return 0;
}
long strposbcset(char *s1, char *s2, long i)
size_t strposbcset(char *s1, char *s2, size_t i)
{
char *cp2;
char ch;
char ch2;
int len;
len = strlen(s1);
size_t len = strlen(s1);
if (i >= len)
i = len;
if (i <= 0)
i = 0;
while (--i >= 0)
while (i-- > 0)
{
ch = s1[i];
for (cp2 =s2; (ch2 = *cp2); cp2++)
......@@ -308,12 +307,12 @@ long strposbcset(char *s1, char *s2, long i)
int strsubset( char *s1, char *s2)
{
char *cp;
char* ch;
char *ch2;
char ch;
char ch2;
while (ch = *s1++)
while ((ch = *s1++))
{
for (cp = s2; (ch2 = *s2++) != ch; cp++)
for (cp = s2; (ch2 = *(s2++)) != ch; cp++)
if (!ch2)
return 0;
}
......@@ -325,9 +324,9 @@ int strcommon(char *s1, char *s2)
return strsubset(s1, s2) && strsubset(s2,s1);
}
long strlenv(char *s1)
size_t strlenv(char *s1)
{
int len = 0;
size_t len = 0;
char ch;
while ((ch = *s1++))
{
......@@ -338,8 +337,8 @@ long strlenv(char *s1)
break;
case 8:
if (--len < 0)
++len;
if (len > 0)
len--;
break;
case 9:
len = (len | 7) + 1;
......@@ -359,13 +358,13 @@ long strlenv(char *s1)
char *strhex(char *res, long i, long w)
{
if (w < 1 || w > 8)
sprintf(res, "%IIX", i);
sprintf(res, "%lX", i);
else
sprintf(res, "%.*IX", (int)w, i);
sprintf(res, "%i.%lX", (int)w, i);
return res;
}
char *strbinary(char *res, long i, long w)
char *strbinary(char *res, long i, size_t w)
{
if (w < 1 || w > 32)
{
......@@ -398,7 +397,7 @@ char *strdate(char *res, char *opts) /* ignore opts for now */
{
time_t t = time(NULL);
strcpy(res, (char*) ctime(&t));
res[strlen(res)-1] = 0; /* change the \n to a NULdL */
res[strlen(res)-1] = '\0'; /* change the \n to a "\0" (NULL character) */
return res;
}
......@@ -411,7 +410,7 @@ void strword(char *s, char *word)
while (*s1 == ' ') s1++;
while (*s1)
*s++ = *s1++;
*s = 0;
*s = '\0';
}
void strword2(char* s, char* word)
......@@ -434,10 +433,10 @@ void strword2(char* s, char* word)
*word++ = *s1++;
}
while (*s1 == ' ') s1++;
*word = 0;
*word = '\0';
while (*s1)
*s++ = *s1++;
*s = 0;
*s = '\0';
}
void strcomment(char *s, char* bracket)
......@@ -473,7 +472,7 @@ void strcomment(char *s, char* bracket)
*cp++ = *s++;
}
}
*cp = 0;
*cp = '\0';
}
}
......@@ -503,7 +502,7 @@ void strcompress(char *s, char *chars, int all)
s++;
}
}
*cp = 0;
*cp = '\0';
}
void strdispose(char **sp)
......@@ -515,8 +514,8 @@ void strdispose(char **sp)
void strchange(char **sp, char *s)
{
int len1;
int len2 = strlen(s);
size_t len1;
size_t len2 = strlen(s);
if (*sp)
{
len1 = strlen(*sp);
......@@ -536,7 +535,7 @@ void strchange(char **sp, char *s)
char *strcpy_overlap(char *dst, char *src)
{
int i = 0;
size_t i = 0;
do {
dst[i] = src[i];
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter