home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mdf160.zip
/
MDF_ENG.TXT
< prev
next >
Wrap
Text File
|
1997-01-11
|
16KB
|
411 lines
MDIFF - MPATCH
Release 1.60
Simple but complete program to produce and apply patches to your programs
and data files for Dos, OS/2, Windows95 and WindowsNT.
English manual
(C) 1997/98 Maurizio Giunti - All rights reserved
1.INDEX
1.INDEX 2
2.DISCLAIMER OF WARRANTY 3
3.DISTRIBUTION AND USE 3
4.WHY? 3
5.WHAT MDIFF-MPATCH DO? 3
6.EXAMPLE 3
7.DOS, OS/2, WINDOWS 95 AND WINDOWS NT 4
8.LIMITS AND KNOWN BUGS 4
9.MDIFF - MDIFF2 - MDIFFW 4
10.MPATCH - MPATCH2 - MPATCHW 5
11.MDF2EXE - MDF2EXE2 - MDF2EXEW 6
12.SUGGESTIONS 6
13.LIBRARIES TO APPLY PATCHES 6
14.REGISTERING MDIFF 6
15.HOW TO CONTACT THE AUTHOR 7
16.ACKNOWLEDGEMENTS 7
2
2.DISCLAIMER OF WARRANTY
THIS SOFTWARE AND THE ACCOMPANYING FILES ARE SOLD "AS IS" AND WITHOUT
WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES
WHETHER EXPRESSED OR IMPLIED.
The only warranty that comes with this software is that it will occupy
disk space. I absolutely can NOT warrant that it will perfectly work, or
that it will be your problems' solution.
Nevertheless, it is not a virus and does not contain (unless infected or
modified after the compilation) Trojan-horses, backdoors and similar
tricky garbage. In any case, the author is not responsible for any
damage, moral or material, direct or indirect, derived from its use.
3.DISTRIBUTION AND USE
This software belongs to Shareware programs: anyone can freely distribute
and use it for a trial period of 15 days. After this period, users that
continue to use it must register their copy by sending the registration
fee to the author, Maurizio Giunti.
The registered users will receive a "registration key" which contains
their name (or their firm/organisation name for site-licenses).
This software can be freely distributed at no cost, except for eventual
copy and/or shipping expenses.
It is imperative anyway that the ORIGINAL PACKET is distributed without
any modification WHATSOEVER.
There is an exception: you can distribute MPATCH.EXE, MPATCH2.EXE and/or
MPATCHW.EXE with one or more *.MDF files produced with a REGISTERED copy
of MDIFF. Moreover you can distribute any executable file produced by
MDF2EXE.EXE, MDF2EXE2.EXE and MDF2EXEW.EXE which contains ONLY MDF
patches built by a registered copy of MDIFF.
About *.MDF patches the author of this program does not claim rights.
4.WHY?
A few months ago I was updating a program of mine: since the compressed
packet was about 200 Kbytes, I thought it was better to use a patch, but
I could not find a program of my satisfaction among the patch
makers/appliers. In addition I could not trace a program that could run
under DOS and OS/2.
I decided to make my own patch software and.....here it is ! 8-)
5.WHAT MDIFF-MPATCH DO?
MDIFF creates a binary difference between two files. With MPATCH and the
older file you can create a new file using the difference file. What is
the advantage? Usually the difference file is smaller and therefore more
suitable for distribution, especially by modem.
6.EXAMPLE
As an example I put in two directories named OLD and NEW, respectively
MDIFF.EXE release 1.45a (a work in progress alpha release) and MDIFF.EXE
release 1.45:
Directory of OLD\*.EXE
MDIFF.EXE 46602 16/08/95 21.01
Directory of NEW\*.EXE
MDIFF.EXE 46602 21/08/95 00.45
3
C:\>mdiff OLD\MDIFF.EXE NEW\MDIFF.EXE
MDIFF V1.50 - MDF file generator (Dos)
(C) Copyright 1995/96 Maurizio Giunti
Registered to: MAURIZIO GIUNTI
OLD\MDIFF.EXE,NEW\MDIFF.EXE => MDIFF.MDF
Working...(100%) MDF size: 1215 bytes Rate: 2%
<Done!>
Directory of *.MDF
MDIFF.MDF 1215 7/10/95 13.43
Now, we can apply the patch named MDIFF.MDF to the old file to rebuild
the new one:
C:\>mpatch MDIFF.MDF old\MDIFF.EXE
MPATCH V1.50 - MDF file applier (Dos)
(C) Copyright 1995/96 Maurizio Giunti
MDF file produced by: MAURIZIO GIUNTI
Working: 0% |###########| 100%
<Done!>
I obtain the following file:
Directory of *.EXE
MDIFF.EXE 46602 21/08/95 0.41
which is BINARY EQUAL to the new file.
7.DOS, OS/2, WINDOWS 95 AND WINDOWS NT
I usually build MDIFF and MPATCH for Dos, OS/2 and Windows32 by compiling
the same source, so there is NO difference between them. Moreover
difference files produced with MDIFF for Dos can be used with MPATCH for
OS/2 or Windows32 and viceversa.
8.LIMITS AND KNOWN BUGS
MDIFF can't work on files greater than 16 Mbytes and it can't process
files smaller than 20 times the current chunk length.
Since its source is the same as Dos' MDIFF, OS/2's MDIFF can't manage
Extended Attributes: it will ignore them.
Moreover if you build a patch by MDIFF for Dos or OS/2, when applying it
by MPATCH for Windows32 and viceversa if you build a patch by MDIFF for
Windows32 and apply it by MPATCH for Dos or OS/2, you will obtain a wrong
date and time on the new file. This bug depends from a different
implementation of the utime() function in Borland and Microsoft
compilers.
9.MDIFF - MDIFF2 - MDIFFW
MDIFF compares 2 files and stores the differences between them in a
difference file. This is the command line syntax:
4
MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
[<MDFfile>]
<OldFile> is the name of the older file, <NewFile> is the name of the new
file. If you wish you can specify the name of the difference file that
MDIFF will produce, otherwise MDIFF will create a file with the name of
the new file but with the extension ".MDF".
To search differences between files, MDIFF uses a base string of defined
length named Chunk. The Chunk length is by default automatically chosed,
but you can set it, in the range 4-1024, with the -C switch followed by
the desired length.
When MDIFF loses the synchronism between the two files being compared, it
scans the older file searching the current chunk. This scansion is
executed, by default, in a range of 8 blocks of 512 bytes each. You can
change the number of the blocks scanned, in the range 1-16, with the -R
switch followed by the desired number of blocks.
If this search fails, MDIFF tries to force synchronisation through a
large range search. This range is defined as 1/16 of the old file length,
but you can change it by the -F switch on the command line.
If you specify -S switch, MDIFF will provide some information about the
composition of the difference file.
Moreover you can add to the difference file produced a short comment
(max. 2 Kbytes) to display when the patch is applied, with the -Z switch.
MDIFF gets the comment from standard input, so you can type it directly
or redirect it from a file with the "<" command.
You can also protect the patch by a password using the -P switch followed
by the password. Please notice that the password field is case sensitive.
10.MPATCH - MPATCH2 - MPATCHW
With the old file and the .MDF file you can rebuild the new file by
running MPATCH. This is the command line syntax:
MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]
MPATCH needs only the name of the MDF file (<MDFfile>) because it
contains the names of the other 2 files, but it's possible to override
these names specifying the desired names on the command line. MPATCH has
only the -P switch by which you can specify a password.
If there are errors during the patch applying, MPATCH returns an
errorlevel as follows:
0 "OK!"
1 "Out of memory !"
2 "Can't open MDF file !"
3 "Invalid MDF file !"
4 "MDF file version mismatch !"
5 "UNREGISTERED !"
6 "Bad or incorrect OLD file !"
7 "Can't open OLD file !"
8 "Can't create NEW file !"
9 "General failure: NEW file corrupted !"
10 "OLD and NEW can't be the same file !"
11 "NEW file was already patched !"
12 "Wrong password !"
5
11.MDF2EXE - MDF2EXE2 - MDF2EXEW
MDF2EXE is a simple utility which stores one or more (up to 127) MDF
patch files created by MDIFF, to an executable (Dos, OS/2 or Windows32).
This kind of executable is called self installing patch.
MDF2EXE syntax is:
MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>
Where <mdf_file x> can contain wildcards.
The <exe_file> (which MUST have .EXE extension) will be executed without
any parameters on the command line. It will automatically search the
files to update.
Eventually you can use a -P switch to specify a password or the -V or -L
switches to list the patches stored in the file.
Warning: don't compress a self installing patch by PKLite or LZexe or
other similar compression/encryption tools.
12.SUGGESTIONS
The best method to build a difference file, is to search the chunks of
the new file in the entire older file, but this is a very slow way to
do! MDIFF's algorithm tries to give a small diff file in a faster way; so
you are sometimes required to tune the work parameters with the command
line switches.
Let's look at some typical situations:
1. Very similar files: use a large chunk (32, 64 or more) to reduce the
size of the diff file, in particular if the files contain text or
archives.
2. Text files: try to use a chunk size of 32, sometimes it is better to
turn the forced sync off or reduce its range by the -F switch.
3. Very large executable: try to use a larger resync range (16 or more),
with the -R switch.
Remember: MDIFF can't make miracles! If the two files are really
different, the patch will result very large. In this situation you must
distribute the entire new file. MDIFF is useful only when the amount of
changes is limited.
13.LIBRARIES TO APPLY PATCHES
Up to release 1.50 a set of libraries was included in the distribution
packet. These libraries are no more distributed but now you can purchase
(see chapter 14) a C source you can use as a sample to build your own
patch applying software. The C sample can only apply patches made by a
registered copy of MDIFF.
14.REGISTERING MDIFF
By registering MDIFF you will obtain a REGISTRATION KEY which contains
your name (or your firm/organisation for site-licenses). When you produce
a patch by a registered MDIFF, it will store your name in the patch. When
MPATCH will install your patches it will display your name.
Moreover any registered user has permission to freely distribute
MPATCH.EXE, MPATCH2.EXE and MPATCHW.EXE with any MDF file prepared by the
user. Any self-installing patches produced by the registered user can be
freely distributed and used.
No royalty or extra charge required!
Included in MDIFF packet you will find a Windows registration program
named REGISTER.EXE. Please run it on Windows environment.
6
REGISTER.EXE is a small Windows application written by Grzegorz (Greg)
Kochaniak, which provides all info needed to purchase MDIFF and it allows
you to send them directly to Kagi Shareware service by snail mail, e-mail
or fax. If you do not use Windows please contact me.
For any info about Kagi Shareware please read KAGI.TXT file or go to the
URL:
http://www.kagi.com/
15.HOW TO CONTACT THE AUTHOR
For any problem or question you can contact me at the following
addresses:
snail mail:
Maurizio Giunti
Via G.B. Foggini, 24
50142 Firenze (FI)
ITALY
e-mail:
Fidonet: 2:332/102.3
Internet: giunti@kagi.com
URL: http://www.kagi.com/authors/giunti/
16.ACKNOWLEDGEMENTS
I'd like to thank all those who helped me to develop this software and
its documentation and all those who helped me in beta-testing. In
alphabetical order:
Mauricio Mello de Andreade
Andrea Baitelli
Silvia Borri
Juan Jose Comellas
Filippo Dini
Fabrizio Fioravanti
Cristiano Guidoccio
Giovanni Lopes Pegna
Marco Maccaferri
Marco Menichelli
Giuseppe Scarpi
Toni Tatafiore
Duncan Wilcox
7