Fix M*LIB usage (#2762)
* Fix M*LIB usage * Fix oplist definition of SubGhzFrequencyAnalyzerLogItem * Fix oplist definition of M_CSTR_DUP_OPLIST * Remove dependency of furi_string_utf8_decode to the internal definition of string_unicode_t * Replace obsolete macro M_IF_DEFAULT1 to M_DEFAULT_ARGS Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							parent
							
								
									75354ec5ba
								
							
						
					
					
						commit
						0a5508a8a1
					
				| @ -27,7 +27,12 @@ TUPLE_DEF2( | ||||
|     (rssi_max, uint8_t)) | ||||
| /* Register globally the oplist */ | ||||
| #define M_OPL_SubGhzFrequencyAnalyzerLogItem_t() \ | ||||
|     TUPLE_OPLIST(SubGhzFrequencyAnalyzerLogItem, M_POD_OPLIST, M_DEFAULT_OPLIST, M_DEFAULT_OPLIST) | ||||
|     TUPLE_OPLIST(                                \ | ||||
|         SubGhzFrequencyAnalyzerLogItem,          \ | ||||
|         M_DEFAULT_OPLIST,                        \ | ||||
|         M_DEFAULT_OPLIST,                        \ | ||||
|         M_DEFAULT_OPLIST,                        \ | ||||
|         M_DEFAULT_OPLIST) | ||||
| 
 | ||||
| /* Define the array, register the oplist and define further algorithms on it */ | ||||
| ARRAY_DEF(SubGhzFrequencyAnalyzerLogItemArray, SubGhzFrequencyAnalyzerLogItem_t) | ||||
|  | ||||
| @ -296,7 +296,9 @@ static FuriStringUTF8State state_to_furi_state(m_str1ng_utf8_state_e state) { | ||||
| } | ||||
| 
 | ||||
| void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnicodeValue* unicode) { | ||||
|     string_unicode_t m_u = *unicode; | ||||
|     m_str1ng_utf8_state_e m_state = furi_state_to_state(*state); | ||||
|     m_str1ng_utf8_decode(c, &m_state, unicode); | ||||
|     m_str1ng_utf8_decode(c, &m_state, &m_u); | ||||
|     *state = state_to_furi_state(m_state); | ||||
|     *unicode = m_u; | ||||
| } | ||||
|  | ||||
| @ -633,20 +633,17 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico | ||||
|  * @brief Search for a string (or C string) in a string | ||||
|  * (string, [c]string[, start=0]) | ||||
|  */ | ||||
| #define furi_string_search(v, ...) \ | ||||
|     M_APPLY(                       \ | ||||
|         FURI_STRING_SELECT3,       \ | ||||
|         furi_string_search,        \ | ||||
|         furi_string_search_str,    \ | ||||
|         v,                         \ | ||||
|         M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| 
 | ||||
| #define furi_string_search(...) \ | ||||
|     M_APPLY(                    \ | ||||
|         FURI_STRING_SELECT3,    \ | ||||
|         furi_string_search,     \ | ||||
|         furi_string_search_str, \ | ||||
|         M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) | ||||
| /**
 | ||||
|  * @brief Search for a C string in a string | ||||
|  * (string, cstring[, start=0]) | ||||
|  */ | ||||
| #define furi_string_search_str(v, ...) \ | ||||
|     M_APPLY(furi_string_search_str, v, M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| #define furi_string_search_str(...) furi_string_search_str(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Test if the string starts with the given string (or C string). | ||||
| @ -672,41 +669,36 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico | ||||
|  * @brief Trim a string from the given set of characters (default is " \n\r\t"). | ||||
|  * (string[, set=" \n\r\t"]) | ||||
|  */ | ||||
| #define furi_string_trim(...) M_APPLY(furi_string_trim, M_IF_DEFAULT1("  \n\r\t", __VA_ARGS__)) | ||||
| #define furi_string_trim(...) furi_string_trim(M_DEFAULT_ARGS(2, ("  \n\r\t"), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Search for a character in a string. | ||||
|  * (string, character[, start=0]) | ||||
|  */ | ||||
| #define furi_string_search_char(v, ...) \ | ||||
|     M_APPLY(furi_string_search_char, v, M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| #define furi_string_search_char(...) furi_string_search_char(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Reverse Search for a character in a string. | ||||
|  * (string, character[, start=0]) | ||||
|  */ | ||||
| #define furi_string_search_rchar(v, ...) \ | ||||
|     M_APPLY(furi_string_search_rchar, v, M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| #define furi_string_search_rchar(...) furi_string_search_rchar(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Replace a string to another string (or C string to another C string) in a string. | ||||
|  * (string, [c]string, [c]string[, start=0]) | ||||
|  */ | ||||
| #define furi_string_replace(a, b, ...) \ | ||||
|     M_APPLY(                           \ | ||||
|         FURI_STRING_SELECT4,           \ | ||||
|         furi_string_replace,           \ | ||||
|         furi_string_replace_str,       \ | ||||
|         a,                             \ | ||||
|         b,                             \ | ||||
|         M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| #define furi_string_replace(...) \ | ||||
|     M_APPLY(                     \ | ||||
|         FURI_STRING_SELECT4,     \ | ||||
|         furi_string_replace,     \ | ||||
|         furi_string_replace_str, \ | ||||
|         M_DEFAULT_ARGS(4, (0), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Replace a C string to another C string in a string. | ||||
|  * (string, cstring, cstring[, start=0]) | ||||
|  */ | ||||
| #define furi_string_replace_str(a, b, ...) \ | ||||
|     M_APPLY(furi_string_replace_str, a, b, M_IF_DEFAULT1(0, __VA_ARGS__)) | ||||
| #define furi_string_replace_str(...) furi_string_replace_str(M_DEFAULT_ARGS(4, (0), __VA_ARGS__)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief INIT OPLIST for FuriString. | ||||
|  | ||||
| @ -2,15 +2,16 @@ | ||||
| #include <m-core.h> | ||||
| 
 | ||||
| #define M_INIT_DUP(a) ((a) = strdup("")) | ||||
| #define M_SET_DUP(a, b) (M_CHECK_DEFAULT_TYPE(a), free((void*)a), (a) = strdup(b)) | ||||
| #define M_INIT_SET_DUP(a, b) ((a) = strdup(b)) | ||||
| #define M_SET_DUP(a, b) (free((void*)a), (a) = strdup(b)) | ||||
| #define M_CLEAR_DUP(a) (free((void*)a)) | ||||
| 
 | ||||
| #define M_CSTR_DUP_OPLIST    \ | ||||
|     (INIT(M_INIT_DUP),       \ | ||||
|      INIT_SET(M_SET_DUP),    \ | ||||
|      SET(M_SET_DUP),         \ | ||||
|      CLEAR(M_CLEAR_DUP),     \ | ||||
|      HASH(m_core_cstr_hash), \ | ||||
|      EQUAL(M_CSTR_EQUAL),    \ | ||||
|      CMP(strcmp),            \ | ||||
| #define M_CSTR_DUP_OPLIST      \ | ||||
|     (INIT(M_INIT_DUP),         \ | ||||
|      INIT_SET(M_INIT_SET_DUP), \ | ||||
|      SET(M_SET_DUP),           \ | ||||
|      CLEAR(M_CLEAR_DUP),       \ | ||||
|      HASH(m_core_cstr_hash),   \ | ||||
|      EQUAL(M_CSTR_EQUAL),      \ | ||||
|      CMP(strcmp),              \ | ||||
|      TYPE(const char*)) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 PpHd
						PpHd