VPatch 3.1

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4275 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-09-17 17:38:50 +00:00
parent 6a76589a72
commit 319a684141
2 changed files with 27 additions and 12 deletions

View file

@ -98,7 +98,7 @@ a:hover
<tr> <tr>
<td> <td>
<h1>VPatch 3.0</h1> <h1>VPatch 3.1</h1>
<div> <div>
<h2>Introduction</h2> <h2>Introduction</h2>
<div> <div>
@ -222,14 +222,23 @@ vpatch::vpatchfile "patch.pat" "oldfile.txt" "temporary_newfile.txt"
<h3>Test framework (Python)</h3> <h3>Test framework (Python)</h3>
<div> <div>
<p>Run the <i>VPatch_tests.py</i> script (if you have <a href="http://www.python.org">Python</a> <p>Run the <i>VPatch_tests.py</i> script (if you have <a href="http://www.python.org">Python</a>
installed) to perform basic functionality tests on VPatch.</p> installed) to perform basic functionality tests on VPatch. The <i>testExtended</i>
test is known to fail if a set of big test files is not installed,
you can safely ignore this.</p>
</div> </div>
</div> </div>
<h2>Version history</h2> <h2>Version history</h2>
<div> <div>
<ul> <ul>
<li>3.0 <li>3.1
<ul> <ul>
<li>GenPat now compiles on POSIX platforms (MinGW/GCC), Visual
C++ 6 and Borland C++.</li>
<li>More test cases to verify functionality of GenPat.</li>
</ul>
</li>
<li>3.0
<ul>
<li><b>Final</b>: Updates to the GUI, installer</li> <li><b>Final</b>: Updates to the GUI, installer</li>
<li><b>RC8</b>: GenPat will now flag replacement of a patch (e.g. <li><b>RC8</b>: GenPat will now flag replacement of a patch (e.g.
the source file has the same contents as a previous patch inside the source file has the same contents as a previous patch inside

View file

@ -31,6 +31,12 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifdef __WIN32__
#define OPT_CHAR '/'
#else
#define OPT_CHAR '-'
#endif
#include "GlobalTypes.h" #include "GlobalTypes.h"
#include "POSIXUtil.h" #include "POSIXUtil.h"
#include "Checksums.h" #include "Checksums.h"
@ -61,7 +67,7 @@ int main( int argc, char * argv[] ) {
for(int i = 1; i < argc; i++) { for(int i = 1; i < argc; i++) {
string s(argv[i]); string s(argv[i]);
if(s.size() > 0) { if(s.size() > 0) {
if(s[0] == '/') { if(s[0] == OPT_CHAR) {
if(s.size() > 1) { if(s.size() > 1) {
if((s[1] == 'v') || (s[1] == 'V')) { if((s[1] == 'v') || (s[1] == 'V')) {
beVerbose = true; beVerbose = true;
@ -117,13 +123,13 @@ int main( int argc, char * argv[] ) {
cout << " GENPAT (sourcefile) (targetfile) (patchfile)\n\n"; cout << " GENPAT (sourcefile) (targetfile) (patchfile)\n\n";
cout << "Command line option (optional):\n"; cout << "Command line option (optional):\n";
cout << "/R Replace a patch with same contents as source silently if it\n already exists.\n"; cout << OPT_CHAR << "R Replace a patch with same contents as source silently if it\n already exists.\n";
cout << "/B=64 Set blocksize (default=64), multiple of 2 is required.\n"; cout << OPT_CHAR << "B=64 Set blocksize (default=64), multiple of 2 is required.\n";
cout << "/V More verbose information during patch creation.\n"; cout << OPT_CHAR << "V More verbose information during patch creation.\n";
cout << "/O Deactivate match limit of the /A switch (sometimes smaller patches).\n"; cout << OPT_CHAR << "O Deactivate match limit of the " << OPT_CHAR << "A switch (sometimes smaller patches).\n";
cout << "/A=500 Maximum number of block matches per block (improves performance).\n"; cout << OPT_CHAR << "A=500 Maximum number of block matches per block (improves performance).\n";
cout << " Default is 500, larger is slower. Use /V to see the cut-off aborts.\n\n"; cout << " Default is 500, larger is slower. Use " << OPT_CHAR << "V to see the cut-off aborts.\n\n";
cout << "Note: filenames should never start with / character!\n\n"; cout << "Note: filenames should never start with " << OPT_CHAR << " character!\n\n";
cout << "Possible exit codes:\n"; cout << "Possible exit codes:\n";
cout << " 0 Success\n"; cout << " 0 Success\n";
cout << " 1 Arguments missing\n"; cout << " 1 Arguments missing\n";