mirror of
https://github.com/Alcaro/Flips.git
synced 2026-03-21 17:45:09 -05:00
Don't clobber files with two-argument -a (also some minor cleanups)
This commit is contained in:
parent
5a3d2012b8
commit
931d7465d9
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
#ifdef FLIPS_CLI
|
||||
file* file::create(const char * filename) { return file::create_libc(filename); }
|
||||
bool file::exists(const char * filename) { return file::exists_libc(filename); }
|
||||
filewrite* filewrite::create(const char * filename) { return filewrite::create_libc(filename); }
|
||||
filemap* filemap::create(const char * filename) { return filemap::create_fallback(filename); }
|
||||
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
return flipsmain(argc, argv);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ public:
|
|||
static file* create(const char * filename)
|
||||
{
|
||||
GFile* file = g_file_new_for_commandline_arg(filename);
|
||||
if (!file) return NULL;
|
||||
GFileInputStream* io=g_file_read(file, NULL, NULL);
|
||||
g_object_unref(file);
|
||||
if (!io) return NULL;
|
||||
|
|
@ -56,6 +55,13 @@ public:
|
|||
};
|
||||
|
||||
file* file::create(const char * filename) { return file_gtk::create(filename); }
|
||||
bool file::exists(const char * filename)
|
||||
{
|
||||
GFile* file = g_file_new_for_commandline_arg(filename);
|
||||
bool ret = g_file_query_exists(file, NULL);
|
||||
g_object_unref(file);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
class filewrite_gtk : public filewrite {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ public:
|
|||
};
|
||||
|
||||
file* file::create(LPCWSTR filename) { return file_w32::create(filename); }
|
||||
bool file::exists(LPCWSTR filename) { return GetFileAttributes(filename) != INVALID_FILE_ATTRIBUTES; }
|
||||
|
||||
|
||||
class filewrite_w32 : public filewrite {
|
||||
|
|
|
|||
15
flips.cpp
15
flips.cpp
|
|
@ -109,6 +109,12 @@ public:
|
|||
~file_libc() { fclose(io); }
|
||||
};
|
||||
file* file::create_libc(const char * filename) { return file_libc::create(filename); }
|
||||
bool file::exists_libc(const char * filename)
|
||||
{
|
||||
FILE* f = fopen(filename, "rb");
|
||||
if (f) fclose(f);
|
||||
return (bool)f;
|
||||
}
|
||||
|
||||
|
||||
class filewrite_libc : public filewrite {
|
||||
|
|
@ -811,7 +817,7 @@ struct errorinfo ApplyPatchMem2(file* patch, struct mem inrom, bool verifyinput,
|
|||
# ifdef __GNUC__
|
||||
# pragma GCC diagnostic ignored "-Wformat"
|
||||
# endif
|
||||
# define z "I64"
|
||||
# define z "I"
|
||||
# else
|
||||
# define z ""
|
||||
# endif
|
||||
|
|
@ -1364,6 +1370,13 @@ int flipsmain(int argc, WCHAR * argv[])
|
|||
wcscpy(outname_buf, arg[0]);
|
||||
wcscpy(GetExtension(outname_buf), base_ext);
|
||||
outname = outname_buf;
|
||||
if (wcscmp(arg[1], outname) != 0 && file::exists(outname))
|
||||
{
|
||||
wprintf(TEXT("You have requested creation of file %s, but that file already exists.\n"
|
||||
"If you want to overwrite it, supply that filename explicitly; if not, provide another filename.\n"),
|
||||
outname);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
struct errorinfo errinf=ApplyPatch(arg[0], arg[1], !ignoreChecksum, outname, &manifestinfo, false);
|
||||
free(outname_buf);
|
||||
|
|
|
|||
5
flips.h
5
flips.h
|
|
@ -35,11 +35,6 @@
|
|||
//#endif
|
||||
|
||||
#define flipsversion "Floating IPS"
|
||||
#define flips_rc_vermajor 1
|
||||
#define flips_rc_verminor 4
|
||||
#define flips_rc_verpatch 0
|
||||
#define flips_rc_verstr "1.4.0.0"
|
||||
#define flips_rc_copyrightstr "\xA9 2013-2020 Alcaro"
|
||||
|
||||
|
||||
#if defined(FLIPS_WINDOWS)
|
||||
|
|
|
|||
8
flips.rc
8
flips.rc
|
|
@ -1,4 +1,4 @@
|
|||
#include "flips.h"
|
||||
#include <windows.h>
|
||||
|
||||
0 ICON DISCARDABLE "flips.ico"
|
||||
1 ICON DISCARDABLE "ips.ico"
|
||||
|
|
@ -6,8 +6,6 @@
|
|||
1 24 "flips.Manifest"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
//FILEVERSION flips_rc_vermajor,flips_rc_verminor,flips_rc_verpatch,0
|
||||
//PRODUCTVERSION flips_rc_vermajor,flips_rc_verminor,flips_rc_verpatch,0
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||
FILEFLAGS 0
|
||||
//VS_FF_DEBUG VS_FF_PATCHED VS_FF_PRERELEASE VS_FF_PRIVATEBUILD VS_FF_SPECIALBUILD VS_FFI_FILEFLAGSMASK
|
||||
|
|
@ -21,12 +19,10 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Alcaro"
|
||||
VALUE "FileDescription", "Flips Patch Utility"
|
||||
VALUE "FileVersion", flips_rc_verstr
|
||||
VALUE "InternalName", "Floating IPS"
|
||||
VALUE "LegalCopyright", flips_rc_copyrightstr
|
||||
VALUE "LegalCopyright", "\xA9 2013-2021 Alcaro"
|
||||
VALUE "OriginalFilename", "flips.exe"
|
||||
VALUE "ProductName", "Floating IPS"
|
||||
//VALUE "ProductVersion", flips_rc_verstr
|
||||
END
|
||||
END
|
||||
END
|
||||
|
|
|
|||
2
global.h
2
global.h
|
|
@ -31,6 +31,8 @@ class file {
|
|||
public:
|
||||
static file* create(LPCWSTR filename);
|
||||
static file* create_libc(const char * filename);
|
||||
static bool exists(LPCWSTR filename);
|
||||
static bool exists_libc(const char * filename);
|
||||
|
||||
virtual size_t len() = 0;
|
||||
virtual bool read(uint8_t* target, size_t start, size_t len) = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user