Add MLIB and MLIB wrapper library

This commit is contained in:
DrZlo13 2021-11-01 04:39:00 +10:00
parent e867ede2e5
commit 53b67ff02c
5 changed files with 110 additions and 0 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "components/blackmagic/blackmagic-fw"]
path = components/blackmagic/blackmagic-fw
url = https://github.com/flipperdevices/blackmagic.git
[submodule "components/mlib/mlib"]
path = components/mlib/mlib
url = https://github.com/P-p-H-d/mlib.git

View File

@ -0,0 +1,3 @@
idf_component_register(SRCS "m_string.c"
PRIV_INCLUDE_DIRS "mlib"
INCLUDE_DIRS ".")

View File

@ -0,0 +1,44 @@
#include "mlib\m-string.h"
#include "m_string.h"
struct mstring_t {
string_t str;
};
mstring_t* mstring_alloc() {
mstring_t* mstr = malloc(sizeof(mstring_t));
string_init(mstr->str);
return mstr;
}
mstring_t* mstring_alloc_set(const char* text) {
mstring_t* mstr = malloc(sizeof(mstring_t));
string_init(mstr->str);
string_set_str(mstr->str, text);
return mstr;
}
void mstring_free(mstring_t* mstr) {
string_clear(mstr->str);
free(mstr);
}
void mstring_set(mstring_t* mstr, const char* text) {
string_set_str(mstr->str, text);
}
int mstring_printf(mstring_t* mstr, const char format[], ...) {
va_list args;
va_start(args, format);
int ret = string_vprintf(mstr->str, format, args);
va_end(args);
return ret;
}
const char* mstring_get_cstr(const mstring_t* mstr) {
return string_get_cstr(mstr->str);
}
char mstring_get_char(const mstring_t* mstr, size_t index) {
return string_get_char(mstr->str, index);
}

View File

@ -0,0 +1,59 @@
/**
* @file m_string.h
*
* M*Lib string wrapper, to prevent inline code pollution
*
*/
#pragma once
typedef struct mstring_t mstring_t;
/**
* Allocate string
* @return mstring_t*
*/
mstring_t* mstring_alloc();
/**
* Allocate string and set value
* @param text
* @return mstring_t*
*/
mstring_t* mstring_alloc_set(const char* text);
/**
* Free string
* @param mstr
*/
void mstring_free(mstring_t* mstr);
/**
* Set string value
* @param mstr
* @param text
*/
void mstring_set(mstring_t* mstr, const char* text);
/**
* Printf string value
* @param mstr
* @param format
* @param ...
* @return int
*/
int mstring_printf(mstring_t* mstr, const char format[], ...);
/**
* Get constant pointer to string value
* @param mstr
* @return const char*
*/
const char* mstring_get_cstr(const mstring_t* mstr);
/**
* Get char at index
* @param mstr
* @param index
* @return char
*/
char mstring_get_char(const mstring_t* mstr, size_t index);

1
components/mlib/mlib Submodule

@ -0,0 +1 @@
Subproject commit 9549e82b048e93167529319ca1d169f3db1d2572