From fc5bab30ba4d77a5c040f2c461aa8b2dd5361482 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 24 Nov 2025 02:42:00 +0100 Subject: feat: system and CI improvements. Signed-off-by: Amlal El Mahrouss --- lib/libocl | 2 +- lib/libsteps/dev/.keep | 0 lib/libsteps/dev/lib/defines.hpp | 13 ------- lib/libsteps/dev/lib/steps.hpp | 61 ------------------------------ lib/libsteps/include/.keep | 0 lib/libsteps/include/steps/config.hpp | 17 +++++++++ lib/libsteps/include/steps/steps.hpp | 71 +++++++++++++++++++++++++++++++++++ 7 files changed, 89 insertions(+), 75 deletions(-) delete mode 100644 lib/libsteps/dev/.keep delete mode 100644 lib/libsteps/dev/lib/defines.hpp delete mode 100644 lib/libsteps/dev/lib/steps.hpp create mode 100644 lib/libsteps/include/.keep create mode 100644 lib/libsteps/include/steps/config.hpp create mode 100644 lib/libsteps/include/steps/steps.hpp (limited to 'lib') diff --git a/lib/libocl b/lib/libocl index 9a70f32..85f89ee 160000 --- a/lib/libocl +++ b/lib/libocl @@ -1 +1 @@ -Subproject commit 9a70f32ddaec0eef99efbf7ff5597c2adf08f45a +Subproject commit 85f89ee4bb137100cbeffcbc10168eb8ea52e6cc diff --git a/lib/libsteps/dev/.keep b/lib/libsteps/dev/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/lib/libsteps/dev/lib/defines.hpp b/lib/libsteps/dev/lib/defines.hpp deleted file mode 100644 index 4c7c38b..0000000 --- a/lib/libsteps/dev/lib/defines.hpp +++ /dev/null @@ -1,13 +0,0 @@ -/* ------------------------------------------- - -Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -------------------------------------------- */ - -#pragma once - -#ifdef OCL_USE_UTF8 -#undef OCL_USE_UTF8 -#endif - -#include diff --git a/lib/libsteps/dev/lib/steps.hpp b/lib/libsteps/dev/lib/steps.hpp deleted file mode 100644 index ce6be51..0000000 --- a/lib/libsteps/dev/lib/steps.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* ------------------------------------------- - -Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -------------------------------------------- */ - -#pragma once - -#include -#include -#include - -#define kStepsExtension ".stp" -#define kStepsStrLen (256U) - -#define kStepsMagic " pls" -#define kStepsMagicLen (4U) -#define kStepsVersion (0x0100) - -namespace ocl::steps { -struct __attribute__((packed)) record final { - ocl::char_type magic[kStepsMagicLen] = {kStepsMagic[0], kStepsMagic[1], - kStepsMagic[2], kStepsMagic[3]}; - ocl::char_type name[kStepsStrLen] = ""; - ocl::char_type company[kStepsStrLen] = ""; - ocl::char_type author[kStepsStrLen] = ""; - int32_t version = 0; - int32_t pages = 0; - int32_t check_page = 0, eula_page = 0; -}; - -inline bool is_valid(record& r) noexcept { - return r.pages > 1 && r.version > 0 && strcmp(r.magic, kStepsMagic) == 0; -} - -namespace operators { -inline std::ifstream &operator>>(std::ifstream &f, record &r) { - f.read((char *)&r, sizeof(r)); - return f; -} - -inline std::ofstream &operator<<(std::ofstream &f, record &r) { - f.write((char *)&r, sizeof(r)); - return f; -} - -/// =========================================================== /// -/// @brief Equal operator for steps records. -/// =========================================================== /// -inline bool operator==(const record &r, const record &l) { - return (std::strncmp(r.magic, l.magic, kStepsMagicLen) == 0); -} - -/// =========================================================== /// -/// @brief Not equal operator for steps records. -/// =========================================================== /// -inline bool operator!=(const record &r, const record &l) { - return (std::strncmp(r.magic, l.magic, kStepsMagicLen) > 0); -} -} // namespace operators -} // namespace ocl::steps diff --git a/lib/libsteps/include/.keep b/lib/libsteps/include/.keep new file mode 100644 index 0000000..e69de29 diff --git a/lib/libsteps/include/steps/config.hpp b/lib/libsteps/include/steps/config.hpp new file mode 100644 index 0000000..6eefe3c --- /dev/null +++ b/lib/libsteps/include/steps/config.hpp @@ -0,0 +1,17 @@ +/* ------------------------------------------- + +Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +------------------------------------------- */ + +#pragma once + +#ifdef OCL_USE_UTF8 +#undef OCL_USE_UTF8 +#endif + +#include + +#include +#include + diff --git a/lib/libsteps/include/steps/steps.hpp b/lib/libsteps/include/steps/steps.hpp new file mode 100644 index 0000000..c524149 --- /dev/null +++ b/lib/libsteps/include/steps/steps.hpp @@ -0,0 +1,71 @@ +/* ------------------------------------------- + +Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +------------------------------------------- */ + +#pragma once + +#include + +#define kStepsExtension ".stp" +#define kStepsStrLen (256U) + +#define kStepsMagic " pls" +#define kStepsMagicLen (4U) +#define kStepsVersion (0x0100) + +#ifdef __GNUC__ +#define STEPS_PACKED __attribute__((packed)) +#else +#define STEPS_PACKED +#endif + +namespace ocl::steps { +struct STEPS_PACKED record final { + ocl::char_type magic[kStepsMagicLen] = {kStepsMagic[0], kStepsMagic[1], + kStepsMagic[2], kStepsMagic[3]}; + ocl::char_type name[kStepsStrLen] = ""; + ocl::char_type company[kStepsStrLen] = ""; + ocl::char_type author[kStepsStrLen] = ""; + int32_t version = 0; + int32_t pages = 0; + int32_t check_page = 0, eula_page = 0; +}; + +inline bool is_valid(record& r) noexcept { + return r.pages > 1 && r.version > 0 && strcmp(r.magic, kStepsMagic) == 0; +} + +namespace operators { +/// =========================================================== /// +/// @brief Read operator for steps records. +/// =========================================================== /// +inline std::ifstream &operator>>(std::ifstream &f, record &r) { + f.read((char *)&r, sizeof(r)); + return f; +} + +/// =========================================================== /// +/// @brief Write operator for steps records. +/// =========================================================== /// +inline std::ofstream &operator<<(std::ofstream &f, record &r) { + f.write((char *)&r, sizeof(r)); + return f; +} + +/// =========================================================== /// +/// @brief Equal operator for steps records. +/// =========================================================== /// +inline bool operator==(const record &r, const record &l) { + return (std::strncmp(r.magic, l.magic, kStepsMagicLen) == 0); +} + +/// =========================================================== /// +/// @brief Not equal operator for steps records. +/// =========================================================== /// +inline bool operator!=(const record &r, const record &l) { + return (std::strncmp(r.magic, l.magic, kStepsMagicLen) > 0); +} +} // namespace operators +} // namespace ocl::steps -- cgit v1.2.3