mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	core: port string handling in divecomputer.cpp to C++
Replace formatstring() by the C++ version. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
		
							parent
							
								
									f0b2bda9f5
								
							
						
					
					
						commit
						6de8f6a93b
					
				
					 1 changed files with 10 additions and 18 deletions
				
			
		| 
						 | 
				
			
			@ -37,7 +37,6 @@
 | 
			
		|||
#include "libdivecomputer.h"
 | 
			
		||||
#include "core/version.h"
 | 
			
		||||
#include "core/qthelper.h"
 | 
			
		||||
#include "core/membuffer.h"
 | 
			
		||||
#include "core/file.h"
 | 
			
		||||
#include <QtGlobal>
 | 
			
		||||
#include <array>
 | 
			
		||||
| 
						 | 
				
			
			@ -947,7 +946,7 @@ static void do_save_fingerprint(device_data_t *devdata, const char *tmp, const c
 | 
			
		|||
	unlink(tmp);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static char *fingerprint_file(device_data_t *devdata)
 | 
			
		||||
static std::string fingerprint_file(device_data_t *devdata)
 | 
			
		||||
{
 | 
			
		||||
	uint32_t model, serial;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -955,7 +954,7 @@ static char *fingerprint_file(device_data_t *devdata)
 | 
			
		|||
	model = calculate_string_hash(devdata->model);
 | 
			
		||||
	serial = devdata->devinfo.serial;
 | 
			
		||||
 | 
			
		||||
	return format_string("%s/fingerprints/%04x.%u",
 | 
			
		||||
	return format_string_std("%s/fingerprints/%04x.%u",
 | 
			
		||||
		system_default_directory(),
 | 
			
		||||
		model, serial);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -992,23 +991,18 @@ static char *fingerprint_file(device_data_t *devdata)
 | 
			
		|||
 */
 | 
			
		||||
static void save_fingerprint(device_data_t *devdata)
 | 
			
		||||
{
 | 
			
		||||
	char *dir, *tmp, *final;
 | 
			
		||||
 | 
			
		||||
	// Don't try to save nonexistent fingerprint data
 | 
			
		||||
	if (!devdata->fingerprint || !devdata->fdiveid)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	// Make sure the fingerprints directory exists
 | 
			
		||||
	dir = format_string("%s/fingerprints", system_default_directory());
 | 
			
		||||
	subsurface_mkdir(dir);
 | 
			
		||||
	std::string dir = format_string_std("%s/fingerprints", system_default_directory());
 | 
			
		||||
	subsurface_mkdir(dir.c_str());
 | 
			
		||||
 | 
			
		||||
	final = fingerprint_file(devdata);
 | 
			
		||||
	tmp = format_string("%s.tmp", final);
 | 
			
		||||
	free(dir);
 | 
			
		||||
	std::string final = fingerprint_file(devdata);
 | 
			
		||||
	std::string tmp = final + ".tmp";
 | 
			
		||||
 | 
			
		||||
	do_save_fingerprint(devdata, tmp, final);
 | 
			
		||||
	free(tmp);
 | 
			
		||||
	free(final);
 | 
			
		||||
	do_save_fingerprint(devdata, tmp.c_str(), final.c_str());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -1050,7 +1044,6 @@ static void verify_fingerprint(dc_device_t *device, device_data_t *devdata, cons
 | 
			
		|||
 */
 | 
			
		||||
static void lookup_fingerprint(dc_device_t *device, device_data_t *devdata)
 | 
			
		||||
{
 | 
			
		||||
	char *cachename;
 | 
			
		||||
	const unsigned char *raw_data;
 | 
			
		||||
 | 
			
		||||
	if (devdata->force_download)
 | 
			
		||||
| 
						 | 
				
			
			@ -1065,16 +1058,15 @@ static void lookup_fingerprint(dc_device_t *device, device_data_t *devdata)
 | 
			
		|||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	/* now check if we have a fingerprint on disk */
 | 
			
		||||
	cachename = fingerprint_file(devdata);
 | 
			
		||||
	std::string cachename = fingerprint_file(devdata);
 | 
			
		||||
	if (verbose)
 | 
			
		||||
		dev_info(devdata, "Looking for fingerprint in '%s'", cachename);
 | 
			
		||||
	auto [mem, err] = readfile(cachename);
 | 
			
		||||
		dev_info(devdata, "Looking for fingerprint in '%s'", cachename.c_str());
 | 
			
		||||
	auto [mem, err] = readfile(cachename.c_str());
 | 
			
		||||
	if (err > 0) {
 | 
			
		||||
		if (verbose)
 | 
			
		||||
			dev_info(devdata, " ... got %zu bytes", mem.size());
 | 
			
		||||
		verify_fingerprint(device, devdata, (unsigned char *)mem.data(), mem.size());
 | 
			
		||||
	}
 | 
			
		||||
	free(cachename);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue