diff options
-rw-r--r-- | core/load-git.c | 62 | ||||
-rw-r--r-- | core/qthelper.cpp | 28 | ||||
-rw-r--r-- | core/qthelper.h | 2 | ||||
-rw-r--r-- | core/save-git.c | 16 |
4 files changed, 1 insertions, 107 deletions
diff --git a/core/load-git.c b/core/load-git.c index 731045087..3de094356 100644 --- a/core/load-git.c +++ b/core/load-git.c @@ -29,14 +29,6 @@ const char *saved_git_id = NULL; -struct picture_entry_list { - void *data; - int len; - const char *hash; - struct picture_entry_list *next; -}; -struct picture_entry_list *pel = NULL; - struct keyword_action { const char *keyword; void (*fn)(char *, struct membuffer *, void *); @@ -46,23 +38,6 @@ struct keyword_action { extern degrees_t parse_degrees(char *buf, char **end); git_blob *git_tree_entry_blob(git_repository *repo, const git_tree_entry *entry); -static void save_picture_from_git(struct picture *picture) -{ - struct picture_entry_list *pic_entry = pel; - - while (pic_entry) { - char *hash = hashstring(picture->filename); - if (same_string(pic_entry->hash, hash)) { - savePictureLocal(picture, hash, pic_entry->data, pic_entry->len); - free(hash); - return; - } - free(hash); - pic_entry = pic_entry->next; - } - fprintf(stderr, "didn't find picture entry for %s\n", picture->filename); -} - static char *get_utf8(struct membuffer *b) { int len = b->len; @@ -1217,18 +1192,6 @@ static void finish_active_dive(void) struct dive *dive = active_dive; if (dive) { - /* check if we need to save pictures */ - FOR_EACH_PICTURE(dive) { - if (!picture_exists(picture)) - save_picture_from_git(picture); - } - /* free any memory we allocated to track pictures */ - while (pel) { - free(pel->data); - void *lastone = pel; - pel = pel->next; - free(lastone); - } active_dive = NULL; record_dive(dive); } @@ -1590,26 +1553,6 @@ static int parse_settings_entry(git_repository *repo, const git_tree_entry *entr return 0; } -static int parse_picture_file(git_repository *repo, const git_tree_entry *entry, const char *name) -{ - /* remember the picture data so we can handle it when all dive data has been loaded - * the name of the git file is PIC-<hash> */ - git_blob *blob = git_tree_entry_blob(repo, entry); - if (blob) { - const void*rawdata = git_blob_rawcontent(blob); - int len = git_blob_rawsize(blob); - struct picture_entry_list *new_pel = malloc(sizeof(struct picture_entry_list)); - new_pel->next = pel; - pel = new_pel; - pel->data = malloc(len); - memcpy(pel->data, rawdata, len); - pel->len = len; - pel->hash = strdup(name + 4); - git_blob_free(blob); - } - return 0; -} - static int parse_picture_entry(git_repository *repo, const git_tree_entry *entry, const char *name) { git_blob *blob; @@ -1651,7 +1594,6 @@ static int walk_tree_file(const char *root, const git_tree_entry *entry, git_rep if (verbose > 1) fprintf(stderr, "git load handling file %s\n", name); switch (*name) { - /* Picture file? They are saved as time offsets in the dive */ case '-': case '+': if (dive) return parse_picture_entry(repo, entry, name); @@ -1672,10 +1614,6 @@ static int walk_tree_file(const char *root, const git_tree_entry *entry, git_rep if (!strcmp(name, "00-Subsurface")) return parse_settings_entry(repo, entry); break; - case 'P': - if (dive && !strncmp(name, "PIC-", 4)) - return parse_picture_file(repo, entry, name); - break; } report_error("Unknown file %s%s (%p %p)", root, name, dive, trip); return GIT_WALK_SKIP; diff --git a/core/qthelper.cpp b/core/qthelper.cpp index b44ef7d6f..11d74a14e 100644 --- a/core/qthelper.cpp +++ b/core/qthelper.cpp @@ -1293,15 +1293,6 @@ extern "C" const char *local_file_path(struct picture *picture) return copy_qstring(localFilePath(picture->filename)); } -extern "C" bool picture_exists(struct picture *picture) -{ - QString localPath = localFilePath(picture->filename); - if (localPath.isEmpty()) - return false; - QByteArray hash = hashFile(localPath); - return !hash.isEmpty() && getHash(QString(picture->filename)) == hash; -} - const QString picturedir() { return QString(system_default_directory()).append("/picturedata/"); @@ -1312,25 +1303,6 @@ extern "C" char *picturedir_string() return copy_qstring(picturedir()); } -/* when we get a picture from git storage (local or remote) and can't find the picture - * based on its hash, we create a local copy with the hash as filename and the appropriate - * suffix */ -extern "C" void savePictureLocal(struct picture *picture, const char *hash, const char *data, int len) -{ - QString dirname = picturedir(); - QDir localPictureDir(dirname); - localPictureDir.mkpath(dirname); - QString suffix(picture->filename); - suffix.replace(QRegularExpression(".*\\."), ""); - QString filename(dirname + hash + "." + suffix); - QSaveFile out(filename); - if (out.open(QIODevice::WriteOnly)) { - out.write(data, len); - out.commit(); - add_hash(filename, QByteArray::fromHex(hash)); - } -} - QString get_gas_string(struct gasmix gas) { uint o2 = (get_o2(&gas) + 5) / 10, he = (get_he(&gas) + 5) / 10; diff --git a/core/qthelper.h b/core/qthelper.h index 41a76ad3b..e6a5d7fd6 100644 --- a/core/qthelper.h +++ b/core/qthelper.h @@ -69,10 +69,8 @@ char *get_file_name(const char *fileName); void copy_image_and_overwrite(const char *cfileName, const char *path, const char *cnewName); char *hashstring(const char *filename); void register_hash(const char *filename, const char *hash); -bool picture_exists(struct picture *picture); char *move_away(const char *path); const char *local_file_path(struct picture *picture); -void savePictureLocal(struct picture *picture, const char *hash, const char *data, int len); void cache_picture(struct picture *picture); char *cloud_url(); char *hashfile_name_string(); diff --git a/core/save-git.c b/core/save-git.c index 23d26961f..9ed315028 100644 --- a/core/save-git.c +++ b/core/save-git.c @@ -611,7 +611,6 @@ static int save_one_picture(git_repository *repo, struct dir *dir, struct pictur char sign = '+'; char *hash; unsigned h; - int error; show_utf8(&buf, "filename ", pic->filename, "\n"); show_gps(&buf, pic->latitude, pic->longitude); @@ -628,21 +627,8 @@ static int save_one_picture(git_repository *repo, struct dir *dir, struct pictur /* Use full hh:mm:ss format to make it all sort nicely */ h = offset / 3600; offset -= h *3600; - error = blob_insert(repo, dir, &buf, "%c%02u=%02u=%02u", + return blob_insert(repo, dir, &buf, "%c%02u=%02u=%02u", sign, h, FRACTION(offset, 60)); -#if 0 - /* storing pictures into git was a mistake. This makes for HUGE git repositories */ - if (!error) { - /* next store the actual picture; we prefix all picture names - * with "PIC-" to make things easier on the parsing side */ - struct membuffer namebuf = { 0 }; - const char *localfn = local_file_path(pic); - put_format(&namebuf, "PIC-%s", pic->hash); - error = blob_insert_fromdisk(repo, dir, localfn, mb_cstring(&namebuf)); - free((void *)localfn); - } -#endif - return error; } static int save_pictures(git_repository *repo, struct dir *dir, struct dive *dive) |