 |
Index for Section 1X |
|
 |
Alphabetical listing for M |
|
 |
Bottom of page |
|
mgdiff(1X)
X11R6
NAME
mgdiff - Motif-based graphical file difference browser
SYNOPSIS
mgdiff [-toolkitoption...] [-quit] [-file name] [-args diffargs] [file1
file2]
OPTIONS
-toolkitoption
These are the standard options accepted by all applications that use
the X Toolkit Intrinsics. See the OPTIONS section in the X(1X) manual
page.
-quit
This option sets the resource Mgdiff.quitIfSame to "true". This will
cause the program to exit immediately without bringing up a window if
the two files have no differences (as determined by the diff command).
-args diffargs
This option sets the resource Mgdiff.diffArgs to the value of the
diffargs argument. These options are passed to the diff command that
actually computes the differences between the two files. Since any
argument can be passed, it is possible to specify options that cause
the diff command to fail or to generate output in a different format
that will cause mgdiff to fail. For most versions of diff, only three
options make any sense. The first is '-b'; this causes diff to ignore
trailing blanks (spaces and tabs) and to treat all other strings of
blanks as equivalent. The second option is '-w'; this ignores blanks
and treats strings of blanks as equivalent. The last option is '-i';
this ignores case when comparing letters.
-file name
This command sets the resource Mgdiff.filename to the value of the name
argument. mgdiff uses this string to display over a file read from
standard input.
DESCRIPTION
Mgdiff is a graphical front end to the diff command. It permits the user
to view the differences between two ASCII files in context and, optionally,
to write out a third file which is the user-defined merging of those two
files. It is inspired by a similar program, called gdiff, which runs only
on Silicon Graphics workstations and for which source code is not provided.
The program takes as arguments various options (described in the next
section) and the names of two files to compare. Either filename (but not
both) may be given as '-' to use standard input instead.
The resulting display consists mostly of two panes of text; the one on the
left is the first file specified and the one on the right is the second
file specified. Between and below the text panes are scrollbars that
permit changing the visible portions of the two files being compared. In
addition, the program implements the Scrolled Region recommendations of
Section 2.3.4 of the OSF/Motif Style Guide (release 1.1), meaning that the
arrow and paging keys will work to scroll as well. Above each text pane is
the name of the file in that text pane and the line number in the file
which is being displayed.
The text in each of the text panes is divided into blocks of lines which
are color-coded with one of five different colors. This indicates that the
block:
differs between the two files
is identical between the two files
has been inserted in one file or the other
is for display purposes (to match an inserted block in the
other file)
has been selected by the user (for writing to a merged file)
These colors can be modified by the user via X resources; see the RESOURCES
section of this manual page. A legend display of the colors and their
meanings is available using the Help menu.
On the right-hand side of the display is an overview area; this shows the
files in their entirety. The sliders in the overview area track the lines
being displayed in the text panes.
At the top of the display is a Motif menu bar; those functions are
discussed in the MENUS section of this manual page.
MENUS
The menubar contains the following menu topics as CascadeButtons: File,
View, Select, Options and Help. The rest of this section discusses each
menu entry, showing it's name and accelerator, if any.
File
This pulldown menu controls file access:
Open... Ctrl+O
Brings up the "Open Files" FileSelectionDialog to allow the user to open
two files for comparison.
Open Left... Ctrl+L
Brings up the "Open File" FileSelectionDialog to allow the user to specify
a file to open and compare with the already opened right-hand file.
Open Right... Ctrl+R
Brings up the "Open File" FileSelectionDialog to allow the user to specify
a file to open and compare with the already opened left-hand file.
Save As... Ctrl+S
Brings up the "Save File" FileSelectionDialog to allow the user to specify
an output file for writing the merged file; this is an application modal
dialog. The program will allow the user to overwrite an existing file but
pops up a QuestionDialog to allow the user to cancel the operation if
desired. If there are any unselected areas of difference between the two
files the user is notified via an ErrorDialog and the save operation is
canceled.
Exit Ctrl+C
Exits the program immediately.
View
This pulldown menu contains commands for moving through the files.
Previous Ctrl+P
Scrolls both file views so that the previous area of difference is
Mgdiff.linesOfContext lines from the top of the application window.
Next Ctrl+N
Scrolls both file views so that the next area of difference is
Mgdiff.linesOfContext lines from the top of the application window.
Next Unselected Ctrl+U
Scrolls both file views so that the next unselected area of difference is
Mgdiff.linesOfContext lines from the top of the application window.
Select
The two files being compared can be optionally merged into one file. To do
this, the user must select for each area of difference between the two
files which version should be written to the merged file. The menu entries
in this pulldown menu allow the user to select or unselect differences in
groups rather than individually.
Left All
For all areas of difference between the two files select the left-hand file
version.
Right All
For all areas of difference between the two files select the right-hand
file version.
Unselect All
Unselects all areas of difference in both files.
Options
This pulldown menu controls miscellaneous appearance and/or behavior
options.
Overview Ctrl+W
This menu entry toggles the presence of the overview area on the right-hand
side of the application window. The default value for this toggle is
controlled by a resource, Mgdiff.overview, which is described in the
RESOURCES section.
Horizontal Scrollbar Ctrl+H
This menu entry toggles the presence of the horizontal scrollbar at the
bottom of the application window. The default value for this toggle is
controlled by a resource, Mgdiff.horzScrollbar, which is described in the
RESOURCES section.
Drag Scroll Ctrl+D
This menu entry toggles the behaviour of the scrollbars in the application
window. When set, dragging the slider of a scrollbar results in a
immediate change in the view of the text being compared. When unset, the
view is only changed at the end of a slider drag (when the mouse button is
released.) This setting might be preferred on a slower X server. The
default value for this toggle is controlled by a resource,
Mgdiff.dragScroll, which is described in the RESOURCES section.
Help
This pulldown menu displays commands for obtaining help on or information
about mgdiff.
Version... Ctrl+V
Brings up an InformationDialog with author and version information.
Manual Page... Ctrl+M
Brings up a DialogShell with a ScrolledText widget containing this manual
page. The command for generating this is customizable via a resource,
Mgdiff.manCommand, which is described in the RESOURCES section.
Color Legend... Ctrl+G
Brings up a DialogShell which summarizes the use of color in encoding the
types of differences between the two files being compared.
OTHER DISPLAYS/CONTROLS
You can move directly to a particular spot in the two files by using BDrag
in the overview area.
The program uses what the OSF/Motif Style Guide calls "multiple selection"
to select individual blocks for writing to a merged file. Clicking BSelect
on an unselected block adds it to the list of selected blocks. Clicking
BSelect on a selected block removes it from the list of selected blocks.
In addition, Clicking BSelect on an unselected block which is opposite a
selected block (in the other text panes) removes the selected block from
the list of selected blocks.
The numbers in the small boxes next to the file names are the line numbers
of the lines at the top of the text panes.
WIDGETS
What follows is the hierarchy of Motif widgets, as generated by
editres(1X). The hierarchical structure of the widget tree is reflected in
the indentation. Each line consists of the widget class name followed by
the widget instance name. This information might be useful if you wish to
customize the appearance of the program via resource settings.
Mgdiff mgdiff
XmMainWindow mainw
XmSeparatorGadget MainWinSep1
XmSeparatorGadget MainWinSep2
XmSeparatorGadget MainWinSep3
XmRowColumn menubar
XmCascadeButtonGadget button_0
XmCascadeButtonGadget button_1
XmCascadeButtonGadget button_2
XmCascadeButtonGadget button_3
XmCascadeButtonGadget button_4
XmMenuShell popup_file_menu
XmRowColumn select_menu
XmPushButtonGadget button_0
XmPushButtonGadget button_1
XmSeparatorGadget separator_0
XmPushButtonGadget button_2
XmRowColumn file_menu
XmPushButtonGadget button_0
XmPushButtonGadget button_1
XmPushButtonGadget button_2
XmPushButtonGadget button_3
XmSeparatorGadget separator_0
XmPushButtonGadget button_4
XmRowColumn options_menu
XmToggleButtonGadget button_0
XmToggleButtonGadget button_1
XmToggleButtonGadget button_2
XmRowColumn help_menu
XmPushButtonGadget button_0
XmPushButtonGadget button_1
XmPushButtonGadget button_2
XmRowColumn view_menu
XmPushButtonGadget button_0
XmPushButtonGadget button_1
XmPushButtonGadget button_2
XmForm form1
XmFrame frame1
XmForm form3
XmScrollBar sbl
XmDrawingArea dam
XmScrollBar sbr
XmFrame frame2
XmForm form4
XmForm form2
XmScrollBar sb
XmForm form21
XmFrame frame3
XmLabel fnamel
XmFrame frame31
XmTextField linenuml
XmForm form22
XmFrame frame4
XmLabel fnamer
XmFrame frame41
XmTextField linenumr
XmDrawingArea textl
XmDrawingArea textr
XmScrollBar sbh
XmDialogShell version_popup
XmMessageBox version
XmLabelGadget symbol
XmLabelGadget
XmSeparatorGadget separator
XmPushButtonGadget OK
XmPushButtonGadget Cancel
XmPushButtonGadget Help
XmDialogShell manualpage_popup
XmForm manualpage
XmPanedWindow pane
XmScrolledWindow help_textSW
XmScrollBar vbar
XmText help_text
XmForm form2a
XmPushButton OK
XmSash sash
XmSeparatorGadget separator
XmSash sash
XmSeparatorGadget separator
XmDialogShell legend_popup
XmForm legend
XmPanedWindow pane
XmRowColumn rc
XmLabel label1
XmLabel label2
XmLabel label3
XmLabel label4
XmLabel label5
XmForm form2a
XmPushButton OK
XmSash sash
XmSeparatorGadget separator
XmSash sash
XmSeparatorGadget separator
XmDialogShell werror_popup
XmMessageBox werror
XmLabelGadget symbol
XmLabelGadget
XmSeparatorGadget separator
XmPushButtonGadget OK
XmPushButtonGadget Cancel
XmPushButtonGadget Help
X RESOURCES
Mgdiff.diffForeground: black
Mgdiff.diffBackground: yellow
These colors are for blocks which differ between files.
Mgdiff.sameForeground: black
Mgdiff.sameBackground: grey
These colors are for blocks which are identical between files.
Mgdiff.insertForeground: black
Mgdiff.insertBackground: orange
These colors are for blocks which have been inserted in one file.
Mgdiff.blankForeground: black
Mgdiff.blankBackground: grey66
These colors are for blocks which are for display purposes.
Mgdiff.selectForeground: black
Mgdiff.selectBackground: light slate blue
These colors are for blocks which have been selected by the user.
Mgdiff.font: 7x13bold
Font for displaying text blocks.
Mgdiff.dragScroll: true
Set to true if scrollbar dragging should cause immediate changes in the
viewed text, and false if the view should only change after the scrollbar
has been moved.
Mgdiff.overview: true
Set to true if the file overview section should appear.
Mgdiff.horzScrollbar: true
Set to true if the horizontal scrollbar should appear.
Mgdiff.linesOfContext: 3
Number of lines that should appear above a difference block gotten to using
the Previous or Next commands. Should be greater or equal to zero.
Mgdiff.manCommand: (man mgdiff | col -b) 2>&1
The command (or pipeline) used to produce a formatted manual page without
escape codes.
Mgdiff.diffCommand: diff
The diff(1) compatible command to use for calculating differences between
text files.
Mgdiff.diffArgs: ""
The arguments to be provided to the diff command. This resource can also
be set via the -args command line option.
Mgdiff.quitIfSame: false
If the two files have no differences (as determined by the diff command)
then exit immediately without bringing up a window. This resource can also
be set to "true" via the -quit command line option.
Mgdiff.filename: (stdin)
mgdiff uses this string to display over a file read from standard input.
This resource can also be set via the -file command line option.
DIAGNOSTICS
Returns the exit status generated by the diff command. This is usually 0
for no differences, 1 for some differences and 2 for errors.
RESTRICTIONS
Using BDrag in the overview area doesn't work well when drag scrolling is
turned off.
Doesn't support monochrome displays.
Input lines longer than BUFSIZ (see /usr/include/stdio.h) are silently
truncated.
The code for parsing and passing arguments to the diff command assumes
arguments are delimited by white space and does not do any quote
processing.
COPYRIGHT
Copyright (c) 1994, Daniel Williams
See X(1X) for a full statement of rights and permissions.
SEE ALSO
diff(1), X(1X)
AUTHOR
Daniel Williams (dan@sass.com)
ACKNOWLEDGEMENTS
To Andrew C. Myers for writing gdiff.
 |
Index for Section 1X |
|
 |
Alphabetical listing for M |
|
 |
Top of page |
|