Переглянути джерело

Add function benc_strcmp.

master
Richard Nyberg 18 роки тому
джерело
коміт
00db1f1ced
2 змінених файлів з 21 додано та 0 видалено
  1. +19
    -0
      misc/benc.c
  2. +2
    -0
      misc/benc.h

+ 19
- 0
misc/benc.c Переглянути файл

@@ -7,6 +7,7 @@
#include <string.h>

#include "benc.h"
#include "subr.h"

#define benc_safeset(out, val) if ((out) != NULL) *(out) = (val)

@@ -78,6 +79,24 @@ benc_validate_aux(const char *p, const char *end)
return p;
}

int
benc_strcmp(const char *str1, const char *str2)
{
size_t len1, len2;
const char *cs1 = benc_mem(str1, &len1, NULL);
const char *cs2 = benc_mem(str2, &len2, NULL);
int test = strncmp(cs1, cs2, min(len1, len2));
if (test == 0) {
if (len1 == len2)
return 0;
else if (len1 < len2)
return -1;
else
return 1;
} else
return test;
}

size_t
benc_strlen(const char *p)
{


+ 2
- 0
misc/benc.h Переглянути файл

@@ -17,6 +17,8 @@ int benc_isdct(const char *p);
int benc_isint(const char *p);
int benc_isstr(const char *p);

int benc_strcmp(const char *str1, const char *str2);

size_t benc_strlen(const char *p);
size_t benc_length(const char *p);
size_t benc_nelems(const char *p);


Завантаження…
Відмінити
Зберегти