mirror of https://github.com/0Nera/BMOSP.git
Добавлена функция str_contains
This commit is contained in:
parent
adf6d4a8b9
commit
73bf252f98
|
@ -44,6 +44,7 @@ void *tool_memset(void *ptr, uint8_t n, uint64_t size);
|
|||
uint64_t tool_strlen(const char *str);
|
||||
void tool_strcpy(char *dest, char *src);
|
||||
uint64_t tool_starts_with(const char *str, const char *prefix);
|
||||
uint64_t tool_str_contains(const char *str, const char *substr);
|
||||
void tool_format(void (*putc)(char c), const char *format_string, va_list args);
|
||||
|
||||
#endif // tool.h
|
||||
|
|
|
@ -66,6 +66,24 @@ uint64_t tool_starts_with(const char *str, const char *prefix) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
uint64_t tool_str_contains(const char *str, const char *substr) {
|
||||
uint64_t str_len = tool_strlen(str);
|
||||
uint64_t substr_len = tool_strlen(substr);
|
||||
|
||||
if (substr_len > str_len) { return 0; }
|
||||
|
||||
for (uint64_t i = 0; i <= str_len - substr_len; i++) {
|
||||
uint64_t j;
|
||||
for (j = 0; j < substr_len; j++) {
|
||||
if (str[i + j] != substr[j]) { break; }
|
||||
}
|
||||
|
||||
if (j == substr_len) { return 1; }
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Функция для переворачивания строки
|
||||
void tool_reverse_str(char *str) {
|
||||
int len = 0;
|
||||
|
|
|
@ -214,6 +214,24 @@ size_t count_chars(char *str, char c) {
|
|||
return count;
|
||||
}
|
||||
|
||||
uint64_t str_contains(const char *str, const char *substr) {
|
||||
uint64_t str_len = strlen(str);
|
||||
uint64_t substr_len = strlen(substr);
|
||||
|
||||
if (substr_len > str_len) { return 0; }
|
||||
|
||||
for (uint64_t i = 0; i <= str_len - substr_len; i++) {
|
||||
uint64_t j;
|
||||
for (j = 0; j < substr_len; j++) {
|
||||
if (str[i + j] != substr[j]) { break; }
|
||||
}
|
||||
|
||||
if (j == substr_len) { return 1; }
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void memcpy(void *dest, void *src, size_t n) {
|
||||
char *d = (char *)dest;
|
||||
char *s = (char *)src;
|
||||
|
|
|
@ -71,9 +71,9 @@ def handle_module_actions(module_list):
|
|||
choice = input("[MOD]: ")
|
||||
if choice == "1":
|
||||
print("Доступные модули:")
|
||||
for i, module in enumerate(module_list, start=1):
|
||||
for i, module in enumerate(module_list, start=0):
|
||||
print(f"{i}. {module['name']}")
|
||||
module_index = int(input("Введите номер модуля: ")) - 1
|
||||
module_index = int(input("Введите номер модуля: "))
|
||||
install_selected_module(module_list, module_index)
|
||||
elif choice == "2":
|
||||
print("Установленные модули:")
|
||||
|
@ -87,15 +87,9 @@ def handle_module_actions(module_list):
|
|||
elif choice == "3":
|
||||
break
|
||||
|
||||
def parse_arguments():
|
||||
parser = argparse.ArgumentParser(description="Менеджер модулей")
|
||||
parser.add_argument("-r", "--refresh", action="store_true", help="Обновить список модулей")
|
||||
return parser.parse_args()
|
||||
|
||||
def main():
|
||||
args = parse_arguments()
|
||||
|
||||
if args.refresh:
|
||||
with open(module_path) as file:
|
||||
repositories = json.load(file)
|
||||
for repo in repositories:
|
||||
|
|
Loading…
Reference in New Issue