diff options
| author | Tylo <[email protected]> | 2020-05-20 08:20:04 +0200 |
|---|---|---|
| committer | Tylo <[email protected]> | 2020-05-20 08:20:04 +0200 |
| commit | f3f8e8cc7453c8f0c4f6f9e4411eb1f9c42f6b5b (patch) | |
| tree | 6eaef4c6269cce561612bfab6b18eabbac234a2b | |
| parent | 2ab143075b3734c1fe83b840ff4b0a7681113616 (diff) | |
| download | STC-modified-f3f8e8cc7453c8f0c4f6f9e4411eb1f9c42f6b5b.tar.gz STC-modified-f3f8e8cc7453c8f0c4f6f9e4411eb1f9c42f6b5b.zip | |
Cleanup, and small fix in makeFmt.
| -rw-r--r-- | stc/cstring.h | 54 |
1 files changed, 18 insertions, 36 deletions
diff --git a/stc/cstring.h b/stc/cstring.h index ba9b622e..a71c4017 100644 --- a/stc/cstring.h +++ b/stc/cstring.h @@ -87,7 +87,7 @@ cstring_makeN(const char* str, size_t len) { if (len) {
cstring_reserve(&cs, len);
strncpy(cs.str, str, len);
- cs.str[ _cstring_size(cs) = len ] = '\0';
+ cs.str[_cstring_size(cs) = len] = '\0';
}
return cs;
}
@@ -103,6 +103,23 @@ cstring_makeCopy(CString cs) { }
static inline CString
+cstring_makeFmt(const char* fmt, ...) {
+ CString tmp = cstring_init;
+ int len;
+ va_list args;
+ va_start(args, fmt);
+ len = vsnprintf(NULL, (size_t)0, fmt, args);
+ if (len > 0) {
+ cstring_reserve(&tmp, len);
+ _cstring_size(tmp) = len;
+ vsprintf(tmp.str, fmt, args);
+ }
+ va_end(args);
+ return tmp;
+}
+
+
+static inline CString
cstring_move(CString* self) {
CString mv = *self;
*self = cstring_init;
@@ -157,32 +174,6 @@ cstring_appendS(CString* self, CString cs2) { return cstring_appendN(self, cs2.str, cstring_size(cs2));
}
-static inline CString*
-cstring_printf(CString* self, const char* fmt, ...) {
- size_t len = 0;
- va_list args;
- va_start(args, fmt);
- len = vsnprintf(NULL, len, fmt, args);
- cstring_reserve(self, len);
- vsprintf(self->str, fmt, args);
- _cstring_size(*self) = len;
- va_end(args);
- return self;
-}
-static inline CString
-cstring_makeFmt(const char* fmt, ...) {
- CString tmp = cstring_init;
- size_t len = 0;
- va_list args;
- va_start(args, fmt);
- len = vsnprintf(NULL, len, fmt, args);
- cstring_reserve(&tmp, len);
- vsprintf(tmp.str, fmt, args);
- _cstring_size(tmp) = len;
- va_end(args);
- return tmp;
-}
-
static inline void _cstring_internalMove(CString* self, size_t pos1, size_t pos2) {
if (pos1 == pos2)
return;
@@ -301,15 +292,6 @@ cstring_find(CString cs, size_t pos, const char* needle) { return res ? res - cs.str : cstring_npos;
}
-static inline char*
-cstring_splitFirst(const char* delimiters, CString cs) {
- return strtok(cs.str, delimiters);
-}
-
-static inline char*
-cstring_splitNext(const char* delimiters) {
- return strtok(NULL, delimiters);
-}
static inline CString
cstring_temp(const char* str) {
|
