Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/flipper_file/flipper_file_helper.c')
-rw-r--r--lib/flipper_file/flipper_file_helper.c121
1 files changed, 0 insertions, 121 deletions
diff --git a/lib/flipper_file/flipper_file_helper.c b/lib/flipper_file/flipper_file_helper.c
deleted file mode 100644
index c06945bd..00000000
--- a/lib/flipper_file/flipper_file_helper.c
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "flipper_file_helper.h"
-
-const char* const flipper_file_filetype_key = "Filetype";
-const char* const flipper_file_version_key = "Version";
-const char flipper_file_delimiter = ':';
-const char flipper_file_comment = '#';
-
-#ifdef __linux__
-const char* flipper_file_scratchpad = ".scratch.pad";
-#else
-const char* flipper_file_scratchpad = "/any/.scratch.pad";
-#endif
-
-bool flipper_file_read_valid_key(File* file, string_t key) {
- string_reset(key);
- bool found = false;
- bool error = false;
- const uint8_t buffer_size = 32;
- uint8_t buffer[buffer_size];
- bool accumulate = true;
- bool new_line = true;
-
- while(true) {
- uint16_t bytes_were_read = storage_file_read(file, buffer, buffer_size);
- if(bytes_were_read == 0) break;
-
- for(uint16_t i = 0; i < bytes_were_read; i++) {
- if(buffer[i] == flipper_file_eoln) {
- // EOL found, clean data, start accumulating data and set the new_line flag
- string_reset(key);
- accumulate = true;
- new_line = true;
- } else if(buffer[i] == flipper_file_eolr) {
- // Ignore
- } else if(buffer[i] == flipper_file_comment && new_line) {
- // if there is a comment character and we are at the beginning of a new line
- // do not accumulate comment data and reset the new_line flag
- accumulate = false;
- new_line = false;
- } else if(buffer[i] == flipper_file_delimiter) {
- if(new_line) {
- // we are on a "new line" and found the delimiter
- // this can only be if we have previously found some kind of key, so
- // clear the data, set the flag that we no longer want to accumulate data
- // and reset the new_line flag
- string_reset(key);
- accumulate = false;
- new_line = false;
- } else {
- // parse the delimiter only if we are accumulating data
- if(accumulate) {
- // we found the delimiter, move the rw pointer to the correct location
- // and signal that we have found something
- if(!file_helper_seek(file, i - bytes_were_read)) {
- error = true;
- break;
- }
-
- found = true;
- break;
- }
- }
- } else {
- // just new symbol, reset the new_line flag
- new_line = false;
- if(accumulate) {
- // and accumulate data if we want
- string_push_back(key, buffer[i]);
- }
- }
- }
-
- if(found || error) break;
- }
-
- return found;
-}
-
-bool flipper_file_seek_to_key(File* file, const char* key, bool strict_mode) {
- bool found = false;
- string_t readed_key;
-
- string_init(readed_key);
-
- while(!storage_file_eof(file)) {
- if(flipper_file_read_valid_key(file, readed_key)) {
- if(string_cmp_str(readed_key, key) == 0) {
- if(!file_helper_seek(file, 2)) break;
-
- found = true;
- break;
- } else if(strict_mode) {
- found = false;
- break;
- }
- }
- }
- string_clear(readed_key);
-
- return found;
-}
-
-bool flipper_file_write_key(File* file, const char* key) {
- bool result = false;
-
- do {
- result = file_helper_write(file, key, strlen(key));
- if(!result) break;
-
- const char delimiter_buffer[2] = {flipper_file_delimiter, ' '};
- result = file_helper_write(file, delimiter_buffer, sizeof(delimiter_buffer));
- } while(false);
-
- return result;
-}
-
-bool flipper_file_get_scratchpad_name(const char** name) {
- // TODO do not rewrite existing file
- *name = flipper_file_scratchpad;
- return true;
-}