Short: Displays differences of two text files in a MUI window Uploader: saragaglia@ifrance.com (Stephane SARAGAGLIA) Author: saragaglia@ifrance.com (Stephane SARAGAGLIA) Type: dev/misc Requires: AmigaOS3.x or MorphOS, MUI, aminet/dev/mui/MCC_TextEditor.lha, aminet/dev/mui/MCC_Toolbar.lha, diff cmd Version: 1.0 -------------------------------------------------------------------------- WHAT IS IT ? -------------------------------------------------------------------------- AMuiDiff is a MUI based diff tool which compares couple of text files. It is a GUI for diffutils commands... This tool is free. There is no copyright. -------------------------------------------------------------------------- INSTALL -------------------------------------------------------------------------- De-archiving: lha x amuidiff.lha Copy the amigaos version (amuidiff.aos) or the morphos version (amuidiff.mos) in C: . Copy the french catalog in locale:Catalogs/français/, or AMuiDiff speaks english. AMuidiff needs the MUI TextEditor and ToolBar classes (YAM, ...) : - aminet/dev/mui/MCC_TextEditor.lha - aminet/dev/mui/MCC_Toolbar.lha AMuiDiff needs a diff command tool. The following have been successfully tested : - aminet/util/gnu/HWGdiffP1_2_6.lha (SAS port) - GG diffutils The source is provided. Go to the "src/core" directory, and perform "make" to compile the morphos version, and "make amigaos" to compile the amigaos (68k) version. AMuiDiff has been compiled using GCC. Compilation problems could occur using other compiler... I will try to perform some tests with other compilers... To use the Editor feature, the AMuiDiff/EDITOR env var has to be set, or golded:golded will be used : - setenv "AMuiDiff/EDITOR" the_editor_you_want - copy ENV:AMuiDiff ENVARC:AMuiDiff To make AMuiDiff uses fixed font, the AMuiDiff/FIXEDFONT env var has to be set to TRUE : - setenv "AMuiDiff/FIXEDFONT" TRUE - copy ENV:AMuiDiff ENVARC:AMuiDiff -------------------------------------------------------------------------- USAGE -------------------------------------------------------------------------- AMuiDiff can be launched from WB or cli. Cli options are : FILE1,FILE2,OPTIONS,DEBUG/S FILE1 and FILE2 : strings : files to compare OPTIONS : strings : diff options. Ex : AMuiDiff.mos ss_amiga_lib_tools.c ss_lib_tools.c OPTIONS="-b" Ignore changes in the amount of white space DEBUG : switch : amuidiff generate error log messages you can send me ;) When the window is opened, it is easy to use... -------------------------------------------------------------------------- TIPS -------------------------------------------------------------------------- I currently use AMuiDiff with CVS using this script : ---------------------- .KEY file echo "--> executing : cvs update -p >T:cvs_amuidiff" cvs update -p >T:cvs_amuidiff AMuidiff T:cvs_amuidiff delete T:cvs_amuidiff ---------------------- So to compare a file with its cvs archived version, I invoke : > cvs-diff file_modified. -------------------------------------------------------------------------- FUTURE -------------------------------------------------------------------------- In priority order : - Correct bugs users could discover : Permanent - directory diffs management : In next release - Drag'n'Drop to load files : OK - Edit files from GUI : OK - Confirm or correct diffs from one file to the other (merge) : Planned - Clean the source ! : Permanent - Correct the AOS bug of the virtualgroup which prevents the user from selecting text on the right view or from clicking on arrows when the left virtgroup is too large : investigation needed -------------------------------------------------------------------------- CONTACT -------------------------------------------------------------------------- Author : Stephane SARAGAGLIA saragaglia@ifrance.com web site : http://aurora.gotdns.org/amiga -------------------------------------------------------------------------- HISTORY -------------------------------------------------------------------------- MuiDiff_V0_01 : Now this proto use the TextEditor gadget... Nothing works but the GUI... MuiDiff_V0_02 : Comments + changed gadgets from labels to text. Now the window can be resized. AMuiDiff_V0_03 : Heavy changes : Morphos + return of TextEditor + highlit management + ... AMuiDiff_V0_04 : Heavy changes : . Source files renamed . Nb diffs displayed . File name displayed in buttons . Color management regarding add, del, or changes diffs AMuiDiff_V0_05 : 21 April 2003 : Added Cycle management to go to diff pos in the view buffer... Smart layout is stil missing AMuiDiff_V0_06 : 21 April 2003 : Cycle management now handles a better "jump to" layout AMuidiff now uses SSToolLib library AMuiDiff_V0_07 : 4 May 2003 : Major cleanings AMuidif now uses SSTooLib functions AMuiDiff_V0_08 : 10 May 2003 : Major Modifications : View buffer is now allocated correctly ;) Modification not fully working about managing nb cols and auto-wrapping AMuiDiff_V0_09 : 11 May 2003 : Log management when compiled in DEBUG mode. Sliders are dependant when diffed, independant when not. First version provided to a beta tester : fab1 AMuiDiff_V0_10 : 16 May 2003 : Added the about window Corrected a relative to absolute path to prevent the GG: diff to bug with "$ amuidiff //src/toto.c //////////toto.c" (files beginning with "/") AMuiDiff_V0_11 : 18 May 2003 : Added the binary file management (in fact error management with not decoded diff result file). The view automatically jumps to the first diff Added double-quote after and before file names when invoking the diff command to prevent from space caracter problems... AMuiDiff_V0_12 : 25 May 2003 : Now compiles as well for AmigaOS 68k AMuiDiff_V0_13 : 21 June 2003 : Now handle catalogs AMuiDiff_V0_15 : 29 Sept 2003 : New catalog management : builtin = english Corrected some minor bugs Added drag'n'drop to load files Added SwapStack for MOS version (AOS to check) AMuiDiff_V0_16 : 15 Nov 2003 : The user can now swap files between views The stack issue now works as well for AOS/68k The requester has now path memory ;) The default view size is larger beacause of my new tft screen. It should not be a problem for others... New toolbar for open and swap buttons :) Cycle button displays now line numbers for both 1st and 2nd view AMuiDiff_V0_17 : 15 Jan 2004 : Requesters and Toolbar debug AMuiDiff_V0_18 : 15 Jan 2004 : New Reload system by buttons : if modified externally file is reloaded. Now 2 requesters, one for each view, with path memory. New StackSwap system. AOS was suffering from this lack, because Amuidiff uses more than 4Ko (#5.5Ko) New Toolbar management. The last was no more working with AOS version of Amuidiff. New file notification system. When a file is externally modified, the file view bottom shine. The Reload button permits to reload it. An external editor can be called for each file. A lot of minor bugs corrected. AMuiDiff_V0_19 : 13 Mar 2004 : The used editor now depends on the env:AMuiDiff/EDITOR configuration. Default is golded:golded The path is now correctly set in order to call "diff" cmd, when AMuiDiff is launched from WB. The env:AMuiDiff/FIXEDFONT var, if set to TRUE, now makes AMuiDiff use fixed font for the view (TextEditor) The AOS version was opening an empty console when opened from WB when calling diff command. I have replaced the system() invokation bny a Execute() one. AMuiDiff_V0_20 : 13 Mar 2004 : The stack was set to 8KB : not enough for MOS. The stack is now 16KB. The view files was open in read/write mode, so files could not be opened from cdroms. Now files are opened in read only mode. AMuiDiff_V0_21 : 14 Mar 2004 : The built PATH from WB was freed twice, one by system(), and another time by me... There were problems editing files with spaces in path... AMuiDiff_V0_22 : 20 Mar 2004 : Bottom file buttons replaced by string gadget + popup button When a new file is opened, "nb diffs" text gadget and cycle gadget are reset. The notification of a modified file is no more the shine of the botton button, but a selected state of the "reload" button. AMuiDiff_V1_00 : 21 Mar 2004 : Time to pass to version 1.0. Next modifications will be the merge function.