Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
diglog
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Wiki externe
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de conteneurs
Registre de modèles
Opération
Environnements
Surveillance
Incidents
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Etienne BRATEAU
diglog
Validations
985b5f46
Valider
985b5f46
rédigé
7 juil. 2018
par
Etienne BRATEAU
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
strings: clean warnings and use size_t for length
parent
e0683c38
Branches
Branches contenant la validation
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
2
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
psys/include/p2c/strings.h
+22
-13
22 ajouts, 13 suppressions
psys/include/p2c/strings.h
psys/src/strings.c
+65
-66
65 ajouts, 66 suppressions
psys/src/strings.c
avec
87 ajouts
et
79 suppressions
psys/include/p2c/strings.h
+
22
−
13
Voir le fichier @
985b5f46
#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
);
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
psys/src/strings.c
+
65
−
66
Voir le fichier @
985b5f46
...
...
@@ -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
)
{
in
t
len
=
strlen
(
s
);
in
t
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
)
{
in
t
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
)
{
in
t
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
;
in
t
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
)
{
in
t
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
)
{
in
t
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
,
"%
II
X"
,
i
);
sprintf
(
res
,
"%
l
X"
,
i
);
else
sprintf
(
res
,
"%
.*I
X"
,
(
int
)
w
,
i
);
sprintf
(
res
,
"%
i.%l
X"
,
(
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
)
{
in
t
len1
;
in
t
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
)
{
in
t
i
=
0
;
size_
t
i
=
0
;
do
{
dst
[
i
]
=
src
[
i
];
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter