mirror of https://github.com/basinserver/basin/
Moved varstrlen to xstring
This commit is contained in:
parent
caf30fe11c
commit
8850ae88d7
|
@ -29,6 +29,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "tileentity.h"
|
#include "tileentity.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include "xstring.h"
|
||||||
|
|
||||||
void flush_outgoing(struct player* player) {
|
void flush_outgoing(struct player* player) {
|
||||||
if (player->conn == NULL) return;
|
if (player->conn == NULL) return;
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
void* xmalloc(size_t size) {
|
void* xmalloc(size_t size) {
|
||||||
if (size > 10485760) {
|
if (size > 10485760) {
|
||||||
|
@ -117,22 +116,3 @@ int memseq(const unsigned char* mem, size_t mem_size, const unsigned char c) {
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t varstrlen(const char* fmt, const va_list args) {
|
|
||||||
va_list args_cpy ;
|
|
||||||
va_copy(args_cpy, args);
|
|
||||||
|
|
||||||
size_t len = strlen(fmt) + 64;
|
|
||||||
for (const char* p = fmt; *p != '\0'; p++) {
|
|
||||||
if (*p != '%')
|
|
||||||
continue;
|
|
||||||
switch (*++p) {
|
|
||||||
case 's':
|
|
||||||
len += strlen(va_arg(args_cpy, char *));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
va_arg(args_cpy, int); // pop from list
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return len;
|
|
||||||
}
|
|
|
@ -30,7 +30,4 @@ int memeq(const unsigned char* mem1, size_t mem1_size, const unsigned char* mem2
|
||||||
|
|
||||||
int memseq(const unsigned char* mem, size_t mem_size, const unsigned char c);
|
int memseq(const unsigned char* mem, size_t mem_size, const unsigned char c);
|
||||||
|
|
||||||
// Estimates vararg string length based on format string and STRING ARGS ONLY
|
|
||||||
size_t varstrlen(const char* fmt, const va_list args);
|
|
||||||
|
|
||||||
#endif /* UTIL_H_ */
|
#endif /* UTIL_H_ */
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
char* trim(char* str) {
|
char* trim(char* str) {
|
||||||
if (str == NULL) return NULL;
|
if (str == NULL) return NULL;
|
||||||
|
@ -269,3 +270,20 @@ int strisunum(const char* str) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t varstrlen(const char* fmt, const va_list args) {
|
||||||
|
va_list args_cpy;
|
||||||
|
va_copy(args_cpy, args);
|
||||||
|
|
||||||
|
size_t len = strlen(fmt) + 64;
|
||||||
|
for (const char* p = fmt; *p != '\0'; p++) {
|
||||||
|
if (*p != '%') continue;
|
||||||
|
switch (*++p) {
|
||||||
|
case 's':
|
||||||
|
len += strlen(va_arg(args_cpy, char *));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
va_arg(args_cpy, int); // pop from list
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
|
@ -40,4 +40,6 @@ char* replace_nocase(char* str, char* from, char* to);
|
||||||
|
|
||||||
int strisunum(const char* str);
|
int strisunum(const char* str);
|
||||||
|
|
||||||
|
size_t varstrlen(const char* fmt, const va_list args);
|
||||||
|
|
||||||
#endif /* XSTRING_H_ */
|
#endif /* XSTRING_H_ */
|
||||||
|
|
Loading…
Reference in New Issue