Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MGDIFF(1)		    General Commands Manual		     MGDIFF(1)

NAME
       mgdiff -	Motif-based graphical file difference browser

SYNOPSIS
       mgdiff  [-toolkitoption	...]  [-quit]  [-file  name]  [-args diffargs]
       [file1 file2]

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 flags	(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 com-
       pared.  In addition, the	program	implements the Scrolled	Region	recom-
       mendations 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	 indi-
       cates 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 RE-
       SOURCES 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 dis-
       cussed in the MENUS section of this manual page.

COMMAND	LINE OPTIONS
       -toolkitoption
	       These  are  the	standard  options accepted by all applications
	       that use	the X Toolkit Intrinsics.  See the OPTIONS section  in
	       the X(1)	manual page.

       -quit   This  option  sets  the	resource  Mgdiff.quitIfSame to "true".
	       This will cause the program to exit immediately without	bring-
	       ing up a	window if the two files	have no	differences (as	deter-
	       mined by	the diff command).

       -args diffargs
	       This  option  sets the resource Mgdiff.diffArgs to the value of
	       the diffargs argument.  These flags are passed to the diff com-
	       mand that actually computes the	differences  between  the  two
	       files.	Since  any  argument  can be passed, it	is possible to
	       specify flags that cause	the diff command to fail or to	gener-
	       ate  output  in	a  different  format that will cause mgdiff to
	       fail.  For most versions	of diff, only  three  flags  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 flag is '-w'; this ignores
	       blanks and treats strings of blanks as  equivalent.   The  last
	       flag 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.

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 win-
	      dow.

	      Next Unselected		    Ctrl+U

	      Scrolls both file	views so that the next unselected area of dif-
	      ference is Mgdiff.linesOfContext lines from the top of  the  ap-
	      plication	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  scroll-
	      bar  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  informa-
       tion about mgdiff.

	      Version...		    Ctrl+V

	      Brings  up an InformationDialog with author and version informa-
	      tion.

	      Manual Page...		    Ctrl+M

	      Brings up	a DialogShell with a  ScrolledText  widget  containing
	      this  manual page.  The command for generating this is customiz-
	      able 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 en-
	      coding the types of differences between the two files being com-
	      pared.

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	selec-
       tion" to	select individual blocks for writing to	a merged file.	Click-
       ing  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)  re-
       moves the selected block	from the list of selected blocks.

       The numbers in the small	boxes next to the file names are the line num-
       bers of the lines at the	top of the text	panes.

WIDGETS
       What  follows  is  the  hierarchy of Motif widgets, as generated	by ed-
       itres(1).  The hierarchical structure of	the widget tree	 is  reflected
       in  the	indentation.  Each line	consists of the	widget class name fol-
       lowed by	the widget instance name.  This	information might be useful if
       you wish	to customize the appearance of the program via	resource  set-
       tings.

       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 scroll-
       bar 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 with-
       out escape codes.

       Mgdiff.diffCommand:	diff

       The  diff(1)  compatible	command	to use for calculating differences be-
       tween 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 com-
       mand) then exit immediately without bringing up	a  window.   This  re-
       source 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 in-
       put.  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.

SEE ALSO
       diff(1),	X(1)

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 pro-
       cessing.

COPYRIGHT
       Copyright (c) 1994, Daniel Williams
       See X (1) for a full statement of rights	and permissions.

AUTHOR
       Daniel Williams (dan@sass.com)

ACKNOWLEDGEMENTS
       To Andrew C. Myers for writing gdiff.

								     MGDIFF(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mgdiff&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help